«Телесистемы»: Микроэлектронные проекты. Юрий Горский. Передача отладочной информации из PIC-контроллера через COM-порт

В процессе отладки любой программы на PIC, всегда полезно посмотреть что же получилось в результате каких-либо действий. Если в устройстве есть LCD, то можно конечно отладочную информацию выводить на него. Однако если большинство выводов портов занято, подключить LCD проблематично. Но если есть хоть ОДИН свободный вывод порта, то можно передать результат каких-либо вычислений через COM-порт в компьютер. При этом можно обойтись без преобразования уровней напряжения для RS-232. Для этого желательно, чтобы PIC запитывался от 5 вольт.

Схема передачи отладочной информации в COM-порт
Работа схемы опробована на PIC16F84, но я не вижу препятствий, почему не может быть использован практически ЛЮБОЙ PIC. Правда, подпрограмма расчитана на частоту 4 Мгц, для другой частоты просто нужно подкорректировать подпрограммы пауз:
;===============================================================================================
; передача символа по протоколу RS232, скорость 9600, data = 8, nonparity, 
; 1 stopbit, 4 Мгц, символ в Char_RS232
;===============================================================================================
 
#define _TxD PORTB, 5
 
PutChar_RS232
     movlw .8
     movwf tmpdelay01
     bcf _TxD                           ; стартовый бит
     call delay_95mks
     call delay_8mks
     
m_PutChar_RS232_01               ; данные 
     rrf Char_RS232, f
     btfss STATUS,C
     bcf _TxD
     btfsc STATUS,C
     bsf _TxD                       
     call delay_95mks   
     decfsz tmpdelay01,f
     goto m_PutChar_RS232_01
 
     bsf _TxD                           ; бит четности
     call delay_95mks 
     call delay_8mks
     bsf _TxD                            ; стоповый бит
     call delay_95mks
     call delay_8mks
     rrf Char_RS232, f 
     return
 
delay_95mks
     movlw .22
     movwf  tmpdelay01
     nop
     decfsz tmpdelay01, f
     goto $-2
     nop 
     nop 
     return
 
delay_8mks
     nop
     nop
     nop
     nop
     return 
;=========================================
Для создания программы работы с COM-портом предлагается класс для Win32 на Builder C++ (файл mserial.h). В классе MSerial используются только API функции, так что его переделать под любой компилятор — дело пяти минут. Исходный текст примера программы, читающей 2 байта из COM-порта размещён в файле prog.cpp.

Автор проекта: Юрий Горский (E-mail: yuragv@mbox.com.ua)


Микроэлектронные проекты   |||  Главная страница   |||  Содержание   |||  Без кадра

E-mail: info@telesys.ru