flysnow的个人空间 https://blog.eetop.cn/64112 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

51单片机模拟串口程序

已有 851 次阅读| 2007-11-5 14:46

天气: 晴朗
心情: 高兴
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      ;TR21,计数器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        

      MOV C,UART_RXD
      MOV ACC.5,C
    
      JNB TF2,$
      CLR TF2
    
      JNB TF2,$
      CLR TF2         
      MOV C,UART_RXD
      MOV ACC.6,C
    
      JNB TF2,$
      CLR TF2
    
      JNB TF2,$
      CLR TF2         
      MOV C,UART_RXD
      MOV ACC.7,C
    
      JNB TF2,$
      CLR TF2         
      JNB UART_RXD,$      ;
等待停止位,并重新复位计数器
      SETB UART_RXD
    
      POP DPL
      POP DPH
      POP IE
      RET

;;;此程序已经过实际检测,运行良好。


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 0

    评论
  • 68

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-6-28 18:18 , Processed in 0.046430 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部