Usart И Pic16F628A, Не Работает В Proteus-E..

9-03-2013, 03:47 От: admin Посмотрели: 1612
Итак, задача простейшая... (Ну я совсем новичок еще... :laughing:)

1) Послать байт на мк с терминала (COMPIM).

2) Инкриментировать его.

3) Передать результат обратно на терминал (COMPIM).



Код:



;..............................................................(инициализация)

LIST p=16F628A

__config 03FF1h

;..............................................................(прописываем регистры)

STATUS EQU 03h

TRISB EQU 06h

PORTB EQU 06h

TRISA EQU 05h

PORTA EQU 05h

SPBRG EQU 19h

RCSTA EQU 18h

TXREG EQU 19h

RCREG EQU 1Ah

TXSTA EQU 18h

PIE1 EQU 0Ch

PIR1 EQU 0Ch

REG1 EQU 07h

REG2 EQU 08h

CMCON EQU 1Fh

;............................................................

org 0

GOTO START

;............................................................(настраиваем все..)

START

BSF STATUS,5

MOVLW b'1111'

MOVWF TRISA

MOVLW b'00000110'

MOVWF TRISB

MOVLW b'110'

MOVWF SPBRG

MOVLW b'00100000'

MOVWF TXSTA

BCF PIE1,4

BCF PIE1,5

BCF STATUS,5

MOVLW b'10010000'

MOVWF RCSTA

MOVLW b'00000111'

MOVWF CMCON

;.............................................................(прием)

prog BTFSS PIR1,5

GOTO prog

MOVF RCREG,0

MOVWF REG1

INCF REG1,1

;..............................................................(передача)

MOVF REG1,0

MOVWF TXREG

BSF STATUS,5

per BTFSS TXSTA,1

GOTO per

BCF STATUS,5

GOTO prog

END

;...............................................................



Комментариев, которые в скобочках, в коде, естественно, нет.

В результате, при отправке байта, в логе вылетает следующий текст:



[PIC16 MEMORY] PC=0x0015. Attempt to write unimplemented memory location 0x0007 with 0xA8 ignored.

[PIC16 MEMORY] PC=0x0016. Attempt to read unimplemented memory location 0x0007 ignored.

[PIC16 MEMORY] PC=0x0016. Attempt to write unimplemented memory location 0x0007 with 0x01 ignored.

[PIC16 MEMORY] PC=0x0017. Attempt to read unimplemented memory location 0x0007 ignored.



Еще:

При отправке байта, значение в RCREG меняется, однако флаг RCIF (PIR1[5]), всегда почему-то равен 0. Т.е этот RCREG, получается, не заполняется? В то же время в регистре RCSTA, флаги OERR и FERR равны 0. Т.е ошибок тоже вроде никаких нет...



Ну и я , конечно, понимаю, что ошибка тут, скорее всего, идиотская...
Раздел: Песочница или Вопрос-Ответ

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться, либо войти на сайт под своим именем.

Обсудить на форуме


На момент добавления Usart И Pic16F628A, Не Работает В Proteus-E.. все ссылки были рабочие.
Все публикации статей, книг и журналов, представлены на этом сайте, исключительно для ознакомления,
авторские права на эти публикации принадлежат авторам статей, книг и издательствам журналов!
Подробно тут | Жалоба

Добавление комментария

Ваше имя:*
E-Mail:*
Текст:
Вопрос:
Решите уравнения x+2x=789
Ответ:*
Введите два слова, показанных на изображении:



Опрос

Ваши предпочтения в TRX


Одинарное преобразование
Двойное преобразование
Прямое преобразование
SDR
Другое
Мне всё равно

Календарь новостей
«    Апрель 2024    »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930