⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 新建 文本文档.txt

📁 51单片机中断方式串口收发数据
💻 TXT
字号:
UART_SEND:
    PUSH IE
    PUSH DPH
    PUSH DPL
    PUSH PSW
    PUSH 00H
    PUSH ACC
    CLR EA
    SETB UART_TXD        ;START BIT
    
    MOV R0,A
    CLR TR2    ;TR2置1,计数器2启动,时间计数启动。
    MOV A,RCAP2L;计数器2重新装载值
    MOV TL2,A    ;置计数器2初值  ;T2需要重新装载
    MOV A,DPH
    MOV A,RCAP2H
    MOV TH2,A
    MOV A,R0
    
    SETB TR2    ;TR2置1,计数器
    JNB TF2,$
    CLR TF2
    JNB TF2,$
    CLR TF2
    
    CLR UART_TXD        ;START BIT
    JNB TF2,$
    CLR TF2
    JNB TF2,$
    CLR TF2
    
    MOV R0,#08H
UART_SEND_LOOP:
    RRC A
    MOV UART_TXD,C        ;8 BIT
    JNB TF2,$
    CLR TF2
    JNB TF2,$
    CLR TF2
    DJNZ R0,UART_SEND_LOOP
    
    SETB UART_TXD        ;END BIT
    JNB TF2,$
    CLR TF2
    JNB TF2,$
    CLR TF2
    
    POP ACC
    POP 00H
    POP PSW
    POP DPL
    POP DPH
    POP IE
    RET
    
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
UART_REC:
    PUSH IE
    PUSH DPH
    PUSH DPL
    CLR EA
    
    CLR TR2    ;TR2置1,计数器2启动,时间计数启动。
    MOV A,RCAP2L;计数器2重新装载值
    MOV TL2,A    ;置计数器2初值  ;T2需要重新装载
    MOV A,DPH
    MOV A,RCAP2H
    MOV TH2,A
    
    JB UART_RXD,$    ;REC
    SETB TR2    ;TR2置1,计数器2启动,时间计数启动。
    JNB TF2,$
    CLR TF2        ;0.5 BIT
    
    JNB TF2,$
    CLR TF2        ;1 BIT
    
    JNB TF2,$
    CLR TF2        ;1.5 BIT
    MOV C,UART_RXD
    MOV ACC.0,C
    
    JNB TF2,$
    CLR TF2
    
    JNB TF2,$
    CLR TF2        ;2.5
    MOV C,UART_RXD
    MOV ACC.1,C
    
    JNB TF2,$
    CLR TF2
    
    JNB TF2,$
    CLR TF2        ;3.5
    MOV C,UART_RXD
    MOV ACC.2,C
    
    JNB TF2,$
    CLR TF2
    
    JNB TF2,$
    CLR TF2        ;4.5
    MOV C,UART_RXD
    MOV ACC.3,C
    
    JNB TF2,$
    CLR TF2
    
    JNB TF2,$
    CLR TF2        ;5.5
    MOV C,UART_RXD
    MOV ACC.4,C
    
    JNB TF2,$
    CLR TF2
    
    JNB TF2,$
    CLR TF2        ;6.5
    MOV C,UART_RXD
    MOV ACC.5,C
    
    JNB TF2,$
    CLR TF2
    
    JNB TF2,$
    CLR TF2        ;7.5
    MOV C,UART_RXD
    MOV ACC.6,C
    
    JNB TF2,$
    CLR TF2
    
    JNB TF2,$
    CLR TF2        ;8.5
    MOV C,UART_RXD
    MOV ACC.7,C
    
    JNB TF2,$
    CLR TF2        ;9.5
    JNB UART_RXD,$    ;等待停止位,并重新复位计数器
    SETB UART_RXD
    
    POP DPL
    POP DPH
    POP IE
    RET


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -