- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
项目5:单片机U1 与单片机U2 进行双向通信
1.项目要求
(1)了解80C51 串行口的通信方式;
(2 )掌握单片机串行口RXD (P3.0 引脚)、TXD (P3.1 引脚);
(3 )掌握80C51 串行通信的编程方法。
2.项目描述
本项目就是在任务 28-1 基础上完成双向通信扩展,即单片机 U1 按键 S1(P3.7 引脚)按
下,U1 通过串行口TXD (P3.1 引脚)端将开关状态以方式1 发至单片机U2 的RXD (P3.0 引
脚)端,U2 单片机接收后把开关状态送P1 口显示;同理单片机U2 按键S2(P3.6 引脚)按下,
U2 通过串行口TXD (P3.1 引脚)端将开关状态以方式1 发至单片机U1 的RXD (P3.0 引脚)
端,U1 单片机接收后把开关状态送P1 口显示,这样就实现了单片机U1 与单片机U2 双向
通信。
3.项目实现
(1)分析
本项目用到了单片机U1 和单片机U2,因此需要对单片机U1 和单片机U2 分别设计两
个程序:单片机 U1 负责完成数据发送、接收显示任务;单片机U2 负责完成数据发送、接
收显示任务。
对单片机 U1 编程时,由于使用方式 1,需要设置串行控制寄存器SCON,使SM0=0 ,
SM1=1 和REN=1 (允许接收),选波特率为9600b/s ,SMOD=0,计算出TH1=FAH ;
对单片机U2 编程时,需要设置SM0=0 ,SM1=1 和REN=1 (允许接收),选波特率为9600b/s ,
SMOD=0,计算出TH1=FAH 。
(2 )程序设计
方法1查询方式
单片机U1、U2 发送、接收显示程序(相同)
先建立文件夹“XM28-1-1”,然后建立“send ”工程项目,最后建立源程序文件“send.c ”,
输入如下源程序:
#includereg51.h //包含单片机寄存器的头文件
/******** *********************************************
函数功能:发送一个字节数据
***************************************************/
void Send(unsigned char dat)
{
dat=P3;
SBUF=P3; //将数据写入发送缓冲器,启动发送
while(TI==0) //若没有发送完毕,等待
;
TI=0; //发送完毕,TI 被置“1”,需将其清0
}
/*****************************************************
函数功能:接收一个字节数据
***************************************************/
unsigned char Receive(void)
{
unsigned char dat;
while(RI==0) // 只要接收中断标志位RI 没有被置“1”
; //等待,直至接收完毕(RI=1)
RI=0; //为了接收下一帧数据,需用软件将RI 清0
dat=SBUF; //将接收缓冲器中的数据存于dat
return dat;//将接收到的数据返回
}
/**************************************************************
函数功能:延时约150ms
**************************************************************/
void delay(void)
{
unsigned char m,n;
for(m=0;m200;m++)
for(n=0;n250;n++)
;
}
/******************
您可能关注的文档
- (6.3.4)--6.3.4层次分析法应用.ppt
- (6.4.1)--4-医院药事管理主要内容——医院药品及制剂管理.pdf
- (6.4.1)--6-3营销发展战略的选择.pdf
- (6.4.1)--税收管理(增值税和消费税).ppt
- (6.4.1)--医院感染管理-4感染监测-9.pdf
- (6.4.1)--专题项目5实训指导书:一元二次方程(异常).pdf
- (6.4.1)--6.4.1DEA模型数据库技术与程序设计.ppt
- (6.4.2)--6.4.2评价系统的DEA有效性.ppt
- (6.4)--5_04_JS原始类型(2)数据库技术与程序设计.pdf
- (6.4.2)--税收管理(企业所得税和个人所得税).ppt
- (8.1.1)--1-医学模式的转变和三级预防.pdf
- (8.1.1)--1-医院技术评估概述.pdf
- (8.1)--第六章Logistic回归数据库技术与程序设计.pdf
- (8.1.1)--8课程回顾与自学建议.pdf
- (8.1.1)--09-HowtocreatetheApronanddrainag数据库技术与程序设计.ppt
- (8.1.1)--第八章__逻辑斯谛回归与最大熵模型.pdf
- (8.2)--第八章群决策.ppt
- (8.2)--项目6基于AT89S52单片机人体反应速度测试仪的设计.pdf
- (8.2.1)--2-医院公共卫生服务职责.pdf
- (8.2)--7_02_各司其责数据库技术与程序设计.pdf
文档评论(0)