英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 4903|回复: 3

单片机普通I/O口做串口模拟接收 zhuan

[复制链接]
发表于 2012-8-21 17:58:57 | 显示全部楼层 |阅读模式
2400波特率,关键是对时序的模拟,
;*****************接收子程序*****************************************
RXD   
       BCF    STATUS,RP0           ;Bank 0
       MOVLW  08H
       MOVWF  COUNT1               ;读8次
       NOP
       NOP
       NOP
       NOP
       NOP
       NOP
       NOP
RX1    CALL   DEL417               ;417uS延时
       BTFSS  GPIO,0               ;读bit
       GOTO   RX2                  ;为0时跳到RX2
       BSF    STATUS,C             ;置C=1
       RRF    RX_SUBF              ;右移
       GOTO   RX3
RX2    BCF    STATUS,C             ;置C=0
       RRF    RX_SUBF              ;右移
RX3    DECFSZ COUNT1               ;1个字节是否读完?
       GOTO   RX1                  ;否,继续读  
       CALL   DEL417               ;完了,判断数据/地址?
       BTFSS  GPIO,0               ;读bit
       GOTO   RX4                  ;为0时跳到RX4
       BSF    STATUS,C             ;置C=1
       GOTO   RX5
RX4    BCF    STATUS,C             ;置C=0
RX5   ;CALL   DEL417              
       BTFSS  GPIO,0               ;判断是否有停止位出现
       GOTO   RX5                  ;为0继续查寻
                                   ;为1时返回继续
       RETURN                      ;返回
;****************************************************************************                                                
;**************发送子程序****************************************************
TXD    BCF    STATUS,RP0       ;Bank 0            
       MOVLW  08H
       MOVWF  COUNT1           ;发8次
       BSF    GPIO,2           ;使MAX487处于发送状态
       BCF    GPIO,1           ;发送起始位
TXD1   CALL   DEL417           ;417uS延时
       RRF    TX_SUBF          ;右移
       BTFSS  STATUS,C         ;判断=1?
       GOTO   TXD2             ;C=0时,跳到TXD2
       BSF    GPIO,1           ;C为1时,置GP1=1
       GOTO   TXD3
TXD2   BCF    GPIO,1           ;C为0时,置GP1=0
TXD3   DECFSZ COUNT1           ;1个字节是否读完?
       GOTO   TXD1             ;未完,继续到TXD1
       CALL   DEL417
       BTFSS  SIGN_R,0         ;判断=1?
       GOTO   TXD4             ;数据/地址位=0时,跳到TXD4
       BSF    GPIO,1           ;数据/地址位=1时,置GP1=1
       GOTO   TXD5
TXD4   BCF    GPIO,1           ;数据/地址位=0时,置GP1=0
TXD5   CALL   DEL417
       BSF    GPIO,1           ;发送停止位
       CLRF   TX_SUBF
       MOVLW  03H              ;把"000011"送入GPIO口
       MOVWF  GPIO             ;使能MAX487处于接收状态
       CALL   DEL417
       RETURN                  ;返回
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-4-19 05:19 , Processed in 0.058989 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表