欢迎来到天天文库
浏览记录
ID:57684475
大小:94.00 KB
页数:3页
时间:2020-08-31
《单片机和上位机交互通讯的简单源程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一个用于单片机和上位机通讯的简单程序,程序中采用2400波特率,11.0592M晶振,8位,无校验。程序采用了简单的握手协议也就说当PC机通讯软件发小写字母j的时候,单片机再回应字符串jLQGk给上位机。你可采用串口调试助手配合完成你的实验,也可以采用proteus软件中的虚拟终端进行仿真调试,后者很方便。晶振12M时波特率因子为F3H,11.0592M时定时因子为F4H,均可正常通讯。 ORG0000H SJMPMAIN ;转主程序 ORG0023H AJMPSINTER
2、;串行中断 ORG0030HMAIN:NOP NOPRESET:MOVSP,#60H MOVSCON,#50H ;8位UART,串行通道工作方式1,REN=1,允许接收 MOVPCON,#0 ;波特率不加倍,RB8=TB8=RI=TI=0 MOVTMOD,#21H ;T1方式2(波特率发生器) MOVTH1,#0F3H MOVTL1,#0F3H ;波特率=2400(+0.16%) SETBET0 ;T0开中断
3、 SETBTR0 ;T0运行 CLRET1 ;禁止定时器溢出中断 SETBTR1 ;启动定时器T1 SETBPS ;串行通讯中断优先级为高 SETBES ;开串行通讯中断 SETBEA ;开总中断 SJMP$;-----------------------------------SINTER:NOP NOP CLRES
4、PUSHACC PUSHPSW CLRPSW.4 SETBPSW.3 JNBRI,$ CLRRIRVDATA:MOVA,SBUF CJNEA,#'j',LEND ;[0]握手字节j,否则退出 MOVA,#'j' ;[1]发送准备信号'j' CALLSBYTE MOV30H,#'L' MOV31H,#'Q' MOV32H,#'G' MO
5、VR1,#3 MOVR0,#30HSENDLOOP:MOVA,@R0 CALLSBYTE ;[2]发送数据块3字节 INCR0 DJNZR1,SENDLOOP MOVA,#'k' ;[3]发结束标志'k' CALLSBYTELEND: NOP NOP POPPSW POPACC SETBES NOP NOP RETI;-------------
6、-----------------------SBYTE:NOP NOP MOVSBUF,A JNBTI,$ CLRTI RET;---------------------------------- END(下图中勾选的选项表示,键盘输入的内容也显示在终端屏幕上,否则键盘输入不显示,仅仅显示单片机终端发来的内容,其他选项不细述,快去试试吧,很好玩的,lqg)
此文档下载收益归作者所有