- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验4UART0通讯实验
实验4 UART0通讯实验
实验目的:
1.学习双机通信的常识;
2.掌握双机通信程序状态字的设置方法;
3.学习双机通信程序的编制方法。
实验设备:
计算机、U-EC5仿真器、C8051F020实验板。
实验要求:
利用2台C8051F020,一台(如A机)用做发送器,用来读入Pl口指拨开关的状态;另一台(如B机)用做接收器,用来接收A机发送过来的指拨开关的状态,并将其在P1口输出的8个LED灯上显示出来。
实验内容:
(一)在D盘上建立名称为URAT的文件夹,在文件夹内建立工程为UART.uv2
参阅教材165页例4.7查询方式发送程序、查询方式接收程序。器件选80C51F020单片机。利用仿真状态将发送及接收程序都调试通过。
查询方式发送程序名称设为:chaxun_t.c
查询方式接收程序名称设为:chaxun_r.c
图4-1 双机通信的硬件电路
1.建立工程UART.uv2
2.选择器件型号
点击“Silicon Laboratories”前的“+”号,经器件系列展开,选择“C8051F020”。
3.选择连接器
4.下图中选择 “NO”。
5.选择“文件”→新建,输入后面的程序后,选择文件→另存为一个文件名。发送方存为 “chaxun_T.C”到你自己建立的目录下,接收方存为 “chaxun_R.C”到你自己建立的目录下。
注意:你自己建立的目录不要使用汉字。
6.在 “源代码组”上点击鼠标右键,选择 “添加文件到源代码组1”
先选择汇编类程序(*。c)
在刚保存的文件夹内选中刚建立的汇编文件,点击“Add”后点击“Close”
还可通过“目标选项卡”选择参数设置或修改参数。
编译当前文件/创建目标/重建所有目标文件:
开始/停止调试,选择端口
显示P4端口
使用“步进”, “步越”来跟踪程序的执行。
通过 “复位”, 可重新执行程序。通过“全速运行”可观察程序的仿真运行状态
(二)端口显示接收数据的UART0实验,同样使用80C51F020单片机,修改如上两端查询程序,完成发送方P4口的状态通过串行方式发送给接收方,接收方予以还原发送方的状态并通过LED对应显示。
先利用仿真状态将发送及接收程序都调试通过,然后两组之间完成通讯。
参考程序代码如下:
1.C8051F020-T的发送程序chaxun_Tp4.asm
$include (c8051f020.inc)
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: MOV SP,#50H ;设定堆栈区
MOV XBR0,#04H ;XBR0.2=1,UART0使能占用P0.0和P0.1口线
MOV XBR2,#40H ;低端口使能
MOV SCON0,#40H ;串行口工作在方式l,禁止接收
MOV TMOD,#20H ;定时器1工作在方式2
MOV TL1,#0E8H ;波特率为l 200bps
MOV TH1,#0E8H
SETB TR1 ;起动定时器1
MOV 30H,#0FFH ;设定指拨开关初值
MOV P1,#0FFH ;P1口设为输入状态
MOV P4,#0FFH ;P4口设为输入状态
READ: CLR TI
MOV A,P1 ;读入指拨开关值
CJNE A,30H,KEY ;若输入值改变,则跳转至KEY
AJMP READ ;否则继续读指拨开关值
KEY: MOV 30H,A ;保存指拨开关新值
MOV P4,30H
MOV SBUF0,A ;送串行口发送
WAIT: JBC TI,READ ;查看是否发送完
AJMP WAIT
END
2.C8051F020-R的接收程序chaxun_Rp4.asm
$include (c8051f020.inc)
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: MOV SCON0,#50H ;串行口工作在方式l,允许接收
MOV XBR0,#04H ;XBR0.2=1,UART0使能占用P0.0和P0.1口线
MOV XBR2,#40H ;低端口使能
MOV TMOD,#20H ;定时器1工作在方式2
MOV TL1,#0E8H ;波特率为l 200 bps
MOV TH1,#0E8H
SETB TR1 ;起动定时器1
READ: JBC RI,UART ;若接收到数据,则跳转到UART
AJMP READ
UART: CLR RI
MOV A,SBUF0 ;收到的数据送A
MOV P1,A ;发送至P1口
MOV P4,A ;发送至P4口
AJMP
文档评论(0)