×
嵌入式 > 技术百科 > 详情

HT48R50A的 RS232串口示例程序

发布时间:2020-06-18 发布时间:
|

; ******************************************** 
; Function :基于HT48R50A的 RS232串口示例程序 * 

; MICroProcessor : HT48R50A-1/28SKDIP-A      * 

; Author:         www.picavr.com             * 
; Crystal :       4MHz                       * 
; ******************************************** 
#INCLUDE                HT48R50A-1.INC 
TXD                     EQU     PB.1 
RXD                     EQU     PB.0 
BAUDRATE                EQU     135                     ;2400,N,8,1 
;-------------------------------------------------------------------- 
PUBLIC                  TRANSMIT 
PUBLIC                  RECEIVE 
;-------------------------------------------------------------------- 
DATA_RS232              .SECTION        ’DATA’ 
COUNTER                 DB      ? 
DELAY_COUNTER           DB      ? 
DELAY_COUNTER_1         DB      ? 
DELAY_COUNTER_2         DB      ? 
TRANSMIT_DATA           DB      ? 
RECEIVE_DATA            DB      ? 
;-------------------------------------------------------------------- 
TRANSMIT_CODE           .SECTION        ’CODE’ 
TRANSMIT: 
                         MOV      TRANSMIT_DATA,A 
                        SET     PB 
                         MOV      A,00000001B 
                         MOV      PBC,A 

                         MOV      A,BAUDRATE 
                         MOV      DELAY_COUNTER,A 
                        CLR     TXD                     ;SEND START 
T_START_BIT:                                            ;BIT 
                        SDZ     DELAY_COUNTER 
                        JMP     T_START_BIT 
;------------------------------------------------------- 
                         MOV      A,08H 
                         MOV      COUNTER,A 
T_DATA_BIT: 
                        RRC     TRANSMIT_DATA 
                        SNZ     C 
                        JMP     T_SEND_LOW 
                        SET     TXD 
                        JMP     T_BIT_DELAY 
T_SEND_LOW: 
                        CLR     TXD 
T_BIT_DELAY: 
                         MOV      A,BAUDRATE 
                         MOV      DELAY_COUNTER,A 
T_DELAY_SEND: 
                        SDZ     DELAY_COUNTER 
                        JMP     T_DELAY_SEND 
                        SDZ     COUNTER 
                        JMP     T_DATA_BIT 
;------------------------------------------------------- 
TRANSMIT_END: 
                        SET     TXD                     ;SEND STOP 
                                                        ;BIT 
                         MOV      A,025H 
                         MOV      DELAY_COUNTER_1,A 
                         MOV      DELAY_COUNTER_2,A 
T_STOP_DELAY: 
                        SDZ     DELAY_COUNTER_2 
                        JMP     T_STOP_DELAY 
                        SDZ     DELAY_COUNTER_1 
                        JMP     T_STOP_DELAY 
                        RET 
;-------------------------------------------------------------------- 
RECEIVE_CODE            .SECTION        ’CODE’ 
RECEIVE: 
                        SET     PB 
                         MOV      A,00000001B 
                         MOV      PBC,A 
R_START_BIT: 
                        SZ      RXD                     ;RECEIVE 
                        JMP     R_START_BIT             ;START BIT 
                         MOV      A,BAUDRATE + 2 
                         MOV      DELAY_COUNTER,A 
R_START_BIT_DELAY: 
                        SDZ     DELAY_COUNTER 
                        JMP     R_START_BIT_DELAY 
;------------------------------------------------------- 
                         MOV      A,08H 
                         MOV      COUNTER,A 
R_DATA_8_BITS: 
                        CLR     C 
                        SZ      RXD 
                        SET     C 
                        RRC     RECEIVE_DATA 
                         MOV      A,BAUDRATE + 2 
                         MOV      DELAY_COUNTER,A 
R_DATA_BIT_DELAY: 
                        SDZ     DELAY_COUNTER 
                        JMP     R_DATA_BIT_DELAY 
                        SDZ     COUNTER 
                        JMP     R_DATA_8_BITS 
;------------------------------------------------------- 
                         MOV      A,RECEIVE_DATA 
;------------------------------------------------------- 
                        RET 
;-------------------------------------------------------------------- 



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
分拣机器人的工作原理是什么