ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:18.21KB ,
资源ID:4295410      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4295410.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(51单片机的之间地通信程序.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

51单片机的之间地通信程序.docx

1、51单片机的之间地通信程序以下程序通过实践检测完全可以放心使用 不过注意硬件电路的连接单片机的串口通信主要理解SCON的状态控制寄存器的用法波特率的设定1 两个单片机一个为主机一个为从机,又主机控制从机的LED灯得简单程序入手 注意硬件的连线 将单片机串口的第二引脚与另一单片机串口的第三引脚相连同时另一单片机的第二串口引脚也与前一个单片机的第三引脚相连 主机部分的程序设计/主机程序 发送控制信号的 #include#define uchar unsigned char#define uint unsigned int sbit KEY=P30;/按键sbit ledA=P11;/定义了三个灯来

2、指示发送的字符是什么sbit ledB=P13;sbit ledC=P15;sbit ledstop=P16;uchar KEY_number=0;/按键计数void delay(unsigned int z)/延时函数 unsigned int x,y; for(x=z;x0;x-) for(y=240;y0;y-);void init() SCON=0x40;/主机串口工作方式1 REN=0 之允许发送不能接收 TMOD=0x20; PCON=0x00; TH1=0xfd; TL1=0xfd; T1=RI=0;/必须要做来保证可以顺利进入终端 TR1=1; EA=1; ES=1;void

3、Put_charToSBUF(uchar c) /把一个字符写入SBUF SBUF=c; while(TI=0); /巧妙的等待处理 等带发送完毕 TI=0;void main() init(); while(1) if(KEY=0) delay(5); if(KEY=0) P1=0xff; while(!KEY) ; KEY_number+; if(KEY_number=4) KEY_number=0; switch (KEY_number) case 0: ledstop=0; break; case 1: ledA=ledA; Put_charToSBUF(A); break; case

4、 2: ledB=ledB; Put_charToSBUF(B); break; case 3: ledC=ledC; Put_charToSBUF(C); break; delay(100) ; 从机部分的程序#include#define uchar unsigned char#define uint unsigned int sbit d1=P10;sbit d2=P11;sbit d3=P12; void delay(unsigned int z)/延时函数 unsigned int x,y; for(x=z;x0;x-) for(y=240;y0;y-);void init() SC

5、ON=0x50;/允许串口接收 TMOD=0x20; PCON=0x00; TH1=0xfd; TL1=0xfd; RI=0; TR1=1; EA=1; ES=1;void main() init(); while(1) if(RI) RI=0; switch(SBUF) case A: d1=d1;break; case B: d1=1; d2=d2;break; case C: d2=1; d3=d3; break; else d1=d2=d3=1; delay(100) ; 上面的程序是一主一从 单片机之间也可以建立一个双向的通信过程/甲机程序 发送控制信号的 同时接收乙机发来的串口信息

6、并/且显示在数码管上 #include#define uchar unsigned char#define uint unsigned int sbit KEY=P30;sbit ledA=P11;sbit ledB=P13;sbit ledC=P15;sbit ledstop=P16;unsigned char code duan=0x3f,0x06,0x5b, 0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar KEY_number=0;void delay(unsigned int z)/延时函数 unsigned int x,y; for(x=z;x0;x

7、-) for(y=240;y0;y-);void init() P2=0; P0=0; SCON=0x50; TMOD=0x20; PCON=0x00; TH1=0xfd; TL1=0xfd; T1=RI=0; TR1=1; EA=1; ES=1;void Put_charToSBUF(uchar c) SBUF=c; while(TI=0); TI=0;void main() init(); while(1) if(KEY=0) delay(5); if(KEY=0) P1=0xff; while(!KEY) ; KEY_number+; if(KEY_number=4) KEY_numbe

8、r=0; switch (KEY_number) case 0: ledstop=0; break; case 1: ledA=ledA; Put_charToSBUF(A); break; case 2: ledB=ledB; Put_charToSBUF(B); break; case 3: ledC=ledC; Put_charToSBUF(C); break; delay(100) ; void seral_int() interrupt 4 if(RI) RI=0; if(SBUF=0&SBUF=9) P0=duanSBUF ; else P0=0x00; 乙机部分车程序主要接收甲的

9、串口信息 同时发送字符给甲。#include#define uchar unsigned char#define uint unsigned int sbit d1=P10;sbit d2=P11;sbit d3=P12;sbit key=P30; uchar number; void delay(unsigned int z)/延时函数 unsigned int x,y; for(x=z;x0;x-) for(y=240;y0;y-);void init() P0=0x00; SCON=0x50; TMOD=0x20; PCON=0x00; TH1=0xfd; TL1=0xfd; RI=TI

10、=0; TR1=1; EA=1; ES=1;void main() init(); while(1) if(key=0) delay(5); if(key=0) while(!key) ; SBUF=number; while(TI=0) ; TI=0; number+; if(number=11) number=0; delay(100) ; d1=d2=d3=1; void serial_int() interrupt 4 if(RI) RI=0; switch(SBUF) case A: d1=d1;break; case B: d1=1; d2=d2;break; case C: d2=1; d3=d3; break; 比较上面的程序可以知道接收部分都在串口中断里进行 发送部分在MAIN函数里完成

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1