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

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 3413|回复: 0
打印 上一主题 下一主题

16f873;RS232硬件编程

[复制链接]
跳转到指定楼层
1#
发表于 2009-5-27 10:00:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RCDATA  EQU  30H
RCFLAG  EQU  31H
RCOneSIGN EQU  0
RCWrong  EQU  5
#INCLUDE <P16877.INC>
org 0
nop
goto start
org 4
intentr
goto intsever
;____________________________
org 9
start
clrf RCFLAG
clrf RCDATA
InitUart
bsf  STATUS,RP0
bcf  RCFLAG,RCOneSIGN
movlw b'10111111' ;TX=output
movwf TRISC
movlw b'10100110'
movwf TXSTA
movlw 19h
movwf SPBRG  ;9600,high speed mode
bsf  STATUS,RP0
movlw b'00100000'
movwf PIE1
movlw b'11000000'
movwf INTCON
bcf  STATUS,RP0
movlw b'10010000'
movwf RCSTA
main
btfsc RCFLAG,RCOneSIGN
goto TXLoop
;btfss RCFLAG,RCWrong
goto main
TXLoop
bcf  STATUS,RP0
movf RCDATA,w
movwf TXREG
bsf  STATUS,RP0
btfss TXSTA,TRMT
goto $-2
bcf  STATUS,RP0
bcf  RCFLAG,RCOneSIGN
goto main
;*****************************
intsever
movf STATUS,w
btfsc STATUS,RP0
bcf  STATUS,RP0
movwf RCFLAG
btfsc RCSTA,OERR
goto RCerror  
movf RCREG,w
movwf RCDATA
bsf  RCFLAG,RCOneSIGN
retfie
RCerror
bcf  STATUS,RP0
bcf  RCSTA,CREN
movf RCREG,w
movf RCREG,w
movlw b'10010000'
movwf RCSTA
btfsc RCFLAG,RCWrong
bsf  STATUS,RP0
clrf RCFLAG
retfie
;----------------
end
注意,这个程序是先收再发的,如果接收不到数据那么发送也就不启动。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

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

GMT+8, 2024-12-25 10:34 , Processed in 0.052225 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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