找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5531|回复: 3
收起左侧

单片机双机通信程序源码

[复制链接]
ID:360742 发表于 2018-6-28 09:04 | 显示全部楼层 |阅读模式
1.基本功能:
A机向B机发送控制命令,B机根据接收到的控制命令执行控制操作。
A机发送1                B机打开现场一半LED
发送2                        B机打开现场全部LED
发送3                        B机控制LED流水灯效果
发送0                        B机关闭全部LED
2.电路及程序要求:
1.先做好硬件电路
1)在Proteus中搭建好电路:两块AT89C51型号单片机,左边一块作为发送端,右边一块作为接收端;
2)搭建好按键电路,按键接在发送端单片机上,使用外部中断INT0接口,接收端单片机连接8颗LED灯,使用P2口。
2.程序
程序功能为按下相应按键发送端发送相应数据给接收端,接收端在接收到的不同数字信号下对8颗LED灯进行不同的功能显示。
3双机通信控制系统
3.1 Proteus中搭建好电路:两块AT89C51型号单片机,左边一块作为发送端,右边一块作为接收端;
3.2 搭建好按键电路,按键接在发送端单片机上,使用外部中断INT0接口,接收端单片机连接8颗LED灯,使用P2口
  3.3 电路开始运行时,发送端发送“0”,LED灯全部不亮;按下按键一次,发送1”,接收端机打开现场一半LED按下按键第二次,发送2”,接收端机打开现场全部LED按下按键第三次,发送3”,接收端控制LED流水灯效果
图片1.png



单片机源程序如下:
  1.          /*********************
  2.                 *******接收**********
  3.                 *********************/
  4. #include<reg51.h>
  5. #include"intrins.h"
  6. #define uchar unsigned char
  7. #define uint unsigned int

  8. uchar code SegTab[] = {0xC0,0xF9,0xA4,0xB0};

  9. uchar a1;

  10. void delay500ms(void)   //?? 0us
  11. {
  12.     unsigned char a,b,c;
  13.     for(c=23;c>0;c--)
  14.         for(b=152;b>0;b--)
  15.             for(a=70;a>0;a--);
  16. }

  17. void InitUART(void)
  18. {
  19.     TMOD = 0x20;
  20.     SCON = 0x50;
  21.           PCON = 0x80;
  22.     TH1 = 0xF3;
  23.     TL1 = TH1;
  24.     EA = 1;
  25.     ES = 1;
  26.     TR1 = 1;
  27. }

  28. void main(void)
  29. {
  30.   InitUART();
  31.         while(1);
  32. }

  33. void UARTInterrupt(void) interrupt 4
  34. {
  35.         uchar ch,i;
  36.         ch=SBUF;
  37.    if(RI)
  38.    {
  39.       RI = 0;
  40.                         if(SBUF==0)                        //add your code here!
  41.                         {
  42.                                 P2=0xff;
  43.                                 delay500ms();
  44.                         }            
  45.                         if(SBUF==1)
  46.                         {
  47.                                 P2=0xf0;
  48.                                 delay500ms();
  49.                         }       
  50.                         if(SBUF==2)
  51.                         {
  52.                                 P2=0x00;
  53.                                 delay500ms();
  54.                         }
  55.                         while(SBUF==3)
  56.                         {
  57.                                         P2=0xFE;
  58.                                         for(i=0;i<8;i++)
  59.                                         {
  60.                                                 P2=_crol_(P2,1);
  61.                                                 delay500ms();
  62.                                         }
  63.                                         P2=0xFE;
  64.                                         for(i=0;i<8;i++)
  65.                                         {
  66.                                                 P2=_cror_(P2,1);
  67.                                                 delay500ms(); //延时100毫秒
  68.                                         }
  69.                                         //灯花样转动
  70.                                         P2=0xfc;
  71.                                         delay500ms(); //延时500毫秒
  72.                                         P2=0xf3;
  73.                                         delay500ms();
  74.                                         P2=0xcf;
  75.                                         delay500ms();
  76.                                         P2=0x3f;
  77.                                         delay500ms();
  78. ……………………

  79. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
双机通信.rar (55.2 KB, 下载次数: 104)
回复

使用道具 举报

ID:367783 发表于 2018-9-22 21:46 | 显示全部楼层
很好,可惜现在在学汇编,要是有汇编程序就更好了
回复

使用道具 举报

ID:54795 发表于 2020-5-15 18:10 | 显示全部楼层
很有用,谢谢分享了
回复

使用道具 举报

ID:54795 发表于 2020-5-15 18:10 | 显示全部楼层
好东西,收藏了,谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表