两个51相互之间单片机如何进行串口通信
本文总字数:1650,阅读预计需要:4分钟
只进行发送是数据的单片机
1 #include<reg52.h>
2 #define unit unsigned int
3 #define uchar unsigned char
4
5 sbit key=P3^7;
6
7 /*void delayms(unit xms)
8 {
9 unit i,j;
10 for(i=xms;i>0;i--)
11 for(j=580;j>0;j--);
12 } */
13
14 void send(uchar date)
15 {
16 SBUF=date;
17 while(!TI);
18 TI=0;
19 }
20
21 void chuaninit()
22 {
23 TMOD=0X20;
24 TH1=0Xfd;
25 TL1=0Xfd;
26 SM0=0;
27 SM1=1;
28 ES=1;
29 EA=1;
30 TR1=1;
31 }
32
33 void key1()
34 {
35 uchar d;
36 if(key==0)
37 {
38 d=2;
39 send(d);
40 }
41 else
42 {
43 d=4;
44 send(d);
45 }
46 }
47
48 void main()
49 {
50 chuaninit();
51 while(1)
52 {
53 key1();
54 }
55
56 }
只进行数据接受的单片机
1 #include<reg52.h>
2 #define unit unsigned int
3 #define uchar unsigned char
4 typedef unsigned char u8;
5
6 sbit led=P3^7;
7 sbit LSA=P2^2;
8 sbit LSB=P2^3;
9 sbit LSC=P2^4;
10
11 u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
12 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值
13
14 void chuaninit()
15 {
16 TMOD=0X20;
17 TH1=0Xfd;
18 TL1=0Xfd;
19 SM0=0;
20 SM1=1;
21 REN=1;
22 ES=1;
23 EA=1;
24 TR1=1;
25 }
26
27 void display(uchar num)
28 {
29 LSA=1;
30 LSB=1;
31 LSC=1;
32 P0=smgduan[num];
33 }
34
35
36 void main()
37 {
38 chuaninit();
39 LSA=1;
40 LSB=1;
41 LSC=1;
42 P0=smgduan[3];
43 while(1);
44 }
45
46 void chuan() interrupt 4
47 {
48 uchar a;
49 RI=0;
50 a=SBUF;
51 display(a);
52 }
我们向往远方,却忽略了此刻的美丽
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗