收藏 分销(赏)

两个单片机之间的串行通信.docx

上传人:s4****5z 文档编号:8735476 上传时间:2025-02-28 格式:DOCX 页数:6 大小:232.17KB 下载积分:10 金币
下载 相关 举报
两个单片机之间的串行通信.docx_第1页
第1页 / 共6页
两个单片机之间的串行通信.docx_第2页
第2页 / 共6页


点击查看更多>>
资源描述
两个单片机之间的串行通信 一、设计要求 在某个控制系统中有U1、U2这两个单片机,U1单片机首先将P1端口指拨开关数据载入SBUF,然后经由TXD将数据传送给U2单片机,U2单片机将接收数据存入SBUF,再由SBUF载入累加器,并输出至P1端口,点亮相应端口的LED。 二、实验所需元器件 单片机AT89C51 瓷片电容CAP-22pF 晶振CRYSTAL 电解电容CAP-ELEC 电阻RES 按扭BUTTON 发光二极管LED-YELLOW 发光二极管LED-RED 开关SWITCH 拨码开关DIPSW-S 发光二极管LED-GREEN 发光二极管LED-RED 三、电路原理图: 两个单片机之间的串行通信电路图 四、程序设计 这两个单片机均工作在半工状态,U1将P1端口的状态通过TXD发半空给U2,而U2接收U1的数据,然后控制P1端口的LED显示。因此,需编写两个不同的程序,其程序流程图如下所示: 设置波特率 单片机2开始 设置波特率 单片机1开始 是否发送完毕? 结束 结束 清除RI 数据输出到P1 数据暂存 载入SBUF发送 是否接收到数据? 启动TR 串行寄存器设置 载入SBUF发送 键值是否与前次相同 读拨入键值 启动TR 串行寄存器设置 Y N N 五、C语言程序: U1的C语言程序: #include "reg51.h" #define uint unsigned int #define uchar unsigned char void send(uchar state) { SBUF=state; while(TI==0); TI=0; } void SCON_init(void) { SCON=0x50; TMOD=0x20; PCON=0x00; TH1=0xfd; TL1=0xfd; TI=0; TR1=1; ES=1; } void main() { P1=0xff; SCON_init(); while(1) { send(P1); } } U2的C语言程序: #include "reg51.h" #define uint unsigned int #define uchar unsigned char uchar state; void receive() { while(RI==0) state=SBUF; RI=0; } void SCON_init(void) { SCON=0x50; TMOD=0x20; PCON=0x00; TH1=0xfd; TL1=0xfd; RI=0; TR1=1; } void main() { SCON_init(); while(1) { receive(); P1=state; } } 六、调试与仿真:
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服