;кварц 11.059 Мгц все данные выкидываются в сом порт ;1 тест сом порта передача 9600 ;выкидывает в порт неприрывно строку 1234567890
org 0h ljmp start
org 023h ljmp com_rx
start: lcall com_init ;подключение порта
_test: mov r0,#13d lcall com_tx mov r0,#'1' lcall com_tx mov r0,#'2' lcall com_tx mov r0,#'3' lcall com_tx mov r0,#'4' lcall com_tx mov r0,#'5' lcall com_tx mov r0,#'6' lcall com_tx mov r0,#'7' lcall com_tx mov r0,#'8' lcall com_tx mov r0,#'9' lcall com_tx mov r0,#'0' lcall com_tx
ajmp _test
;====================================================== ; RX Com Port R0-rx озу=79h ;=============================================================================== ============= com_rx: clr ie.7 ;Запрет всех прерываний на всякий случай если нужны будут ;прерывания оттаймеров и входов то можно будет убрать clr ie.4 ;Запрет прерываний от сом порта
setb ie.4 ;разрешение прерывания от сом порта setb ie.7 ;разрешения всех прерывания общих reti ;=================================================== ; Com port INIT ;=================================================== com_init: mov scon,#01010000b ;Режим работы сом порта mov tmod,#20h ;режим таймера ; mov pcon,#0h ;упр биты мошность и скорость х1 mov th1,#0fdh ;9600 11.059 мгц ;251d ;коэф. деления частоты clr ri ;обнуляем флаг прерывания приемника ; setb ie.4;;;; ;разрешить прерывания от сом порта setb tcon.6 ;запуск таймера 1 setb ie.7 ;разрешили все прерывания ret
;====================================================== ; TX Com Port R0-tx ;=============================================================================== ============= com_tx: clr ie.7 clr ie.4 mov sbuf,r0 com_ti: jnb scon.1,com_ti clr scon.1 setb ie.4 setb ie.7 ret
end
|