课程设计多级通信系统_第1页
课程设计多级通信系统_第2页
课程设计多级通信系统_第3页
课程设计多级通信系统_第4页
课程设计多级通信系统_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 多机通信系统单片机a,b,c. a为主机,bc为从机。a上有一个外部中断0输入,按第一次a的两个led亮500ms,再按一下,b机的两个led灯亮500ms,第三次按下c机的两个led灯亮500ms,然后周而复始。两个数码管分别显示0/1/2, 和abc(bc由从机反馈)/*主从通信基本步骤:1 主机从机初始化为方式2或者3,从机都置sm2=1,允许中断2 主机置tb8=1,发送从机地址3 所有从机均接收主机发送要寻址的从机地址4 被寻址的从机确认地址后,置本机sm2=0,向主机返回地址,供主机核对5 核对无误后,主机向被寻址的从机发送命令,通知从机接受或者发送数据。6 本次通信结束后,主从

2、机重置sm2=1,主机可再对其他从机寻址*/*主机a:*#include #define uchar unsigned char#define uint unsigned intuchar leddata=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40,0x00;uchar mode;sbit p10 = p10;sbit p13 = p13;sbit p17 = p17;sbit p20 = p20;sbit p21 = p21;void uart_init() tmod

3、 = 0x20; th1 = 0xfd; tl1 = 0xfd; tr1 = 1; scon = 0xd0; es = 1; ex0 = 1; it0 = 1; /int0下跳触发 ea = 1; ti = 0;void delayms(int ms) uchar i; while(ms-) for(i=0; i120; i+);void putc_to_serialport(uchar c) sbuf = c; while(ti = 0); ti = 0;void mastercontrol(unsigned char addr, unsigned char comd) tb8 = 1; p

4、utc_to_serialport(addr); delayms(50); tb8 = 0; putc_to_serialport(comd); delayms(50);ex0_int(void) interrupt 0 p0 = leddatamode; p20 = 0; if(mode = 0) p2 = leddata10; p10 = 0; p13 = 0; delayms(500); p10 = 1; p13 = 1;/ mastercontrol(b,c);/ mastercontrol(c,c); else if(mode = 1) p10 = 1; p13 = 1; maste

5、rcontrol(b,o); / mastercontrol(c,c); else if(mode = 2) p10 = 1; p13 = 1; / mastercontrol(b,c); mastercontrol(c,o); mode = (mode + 1) % 3; com_int(void) interrupt 4 if(ri) ri = 0; if(sbuf = b) p2 = leddata11; if(sbuf = c) p2 = leddata12; void main(void) p0 = 0x00; p1 = 0xff; p2 = 0x00; uart_init(); m

6、ode = 0; while(1);*从机b:*#include #define uchar unsigned charuchar recdata;sbit p10 = p10;sbit p13 = p13;void uart_init() tmod = 0x21; th1 = 0xfd; tl1 = 0xfd; tr1 = 1; scon = 0xf0; es = 1; ps = 1; ea = 1;void delayms(int ms) uchar i; while(ms-) for(i=0; i120; i+);void putc_to_serialport(uchar c) sbuf

7、 = c; while(ti = 0); ti = 0;com_int(void) interrupt 4 if(ri) recdata = sbuf; ri = 0; if(rb8 = 1) /地址 if(recdata = b) /是自己的地址,置sm2=0,准备接受数据 sm2 = 0; putc_to_serialport(b); else /不是自己的地址 sm2 = 1; if(rb8 = 0) /数据 if(recdata=o) p10 = 0; p13 = 0; delayms(500); p10 = 1; p13 = 1; if(recdata=c) p10 = 1; p13

8、 = 1; sm2 = 1; void main(void) p0 = 0xff; p1 = 0xff; uart_init(); while(1);*从机c:*#include #define uchar unsigned charuchar recdata;sbit p10 = p10;sbit p13 = p13;void uart_init() tmod = 0x21; th1 = 0xfd; tl1 = 0xfd; tr1 = 1; scon = 0xf0; es = 1; ps = 1; ea = 1;void delayms(int ms) uchar i; while(ms-)

9、 for(i=0; i120; i+);void putc_to_serialport(uchar c) sbuf = c; while(ti = 0); ti = 0;com_int(void) interrupt 4 if(ri) recdata = sbuf; ri = 0; if(rb8 = 1) /地址 if(recdata = c) /是自己的地址,置sm2=0,准备接受数据 sm2 = 0; putc_to_serialport(c); else /不是自己的地址 sm2 = 1; if(rb8 = 0) /数据 if(recdata=o) p10 = 0; p13 = 0; delayms(500); p10 = 1; p13 = 1; sm2 = 1; if(recdata=c) p10 = 1; p13 = 1; sm2 = 1; void main(void) p0 = 0xff; p1 = 0xff; uart_init();

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论