Jump to content

    
Sign in to follow this  
vishnu-krishna

USART и PIC16F628A

Recommended Posts

Итак, задача простейшая... (Ну я совсем новичок еще... :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. Т.е ошибок тоже вроде никаких нет...

 

Ну и я , конечно, понимаю, что ошибка тут, скорее всего, идиотская...

 

Share this post


Link to post
Share on other sites
В результате, при отправке байта, в логе вылетает следующий текст:

 

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

Ну и я , конечно, понимаю, что ошибка тут, скорее всего, идиотская...

Перевожу:

[PIC16 MEMORY] PC=0x0015. Попытка записи в несуществующую ячейку памяти 0x0007 ...

(PC - Program Counter, указывает адрес исполняемой команды)

Вы успели обидеть все онлайн-переводчики?

 

Ошибка в нежелании ознакомиться с ДШ на контроллер (в данном случае с "FIGURE 4-2: DATA MEMORY MAP"), с мануалом на используемый компилятор и с примерами написания/оформления программ, предоставленными производителем контроллера, компилятора или среды разработки (за протеус ничего не скажу, т.к. не знаю).

Ну я совсем новичок еще...

Новичкам обычно приходится много читать.

Для оформления кода или логов в сообщении используйте теги CODE (иконка с рулоном бумаги и зелёным треугольником над окном редактирования) или CODEBOX (для длинных простыней). Это написано в правилах конфы.

Разбираться в лапше из b'01010101' без комментариев никто (я - точно) не будет.

Share this post


Link to post
Share on other sites

Спасибо, ошибка, действительно, идиотская.. Разобрался...Заработало.

Но есть вопрос по VIRTUAL TERMINAL... Проблема в том, что он почему-то не отображает инфу, приходящую на свой RX. Хотя осциллограф показывает наличие сигнала и на RX и на TX...

Схема:

post-74271-1362861676_thumb.jpg

На всякий случай прикладываю файл протеуса:

WinRAR1.rar

Буду очень благодарен, если поможете...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this