您的位置:首页单片机合泰单片机
内容搜索:
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

基于HT48R50A的 RS232串口示例程序

[日期:2008-01-23 ] [来源:东哥开发网(www.picavr.com) 作者:] [字体: (投递新闻)
基于HT48R50A的 RS232串口示例程序

; ********************************************
; 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
;--------------------------------------------------------------------

阅读:
录入:东哥

推荐 】 【 打印
本文评论
      全部评论
发表评论


点评: 字数
姓名:
赞助商广告