📄 s_communication_1.c
字号:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
#include<LCD_1602.h>
uchar num;
sbit s1=P3^2;
sbit judge_p30=P3^0;
void initial();
void txd(uchar temp);
void rxd();
void keyscan();
void delay(uint z);
void main()
{
initial();
initial_1602();
display_1602(0,1,0,'S');
display_1602(0,1,1,'e');
display_1602(0,1,2,'n');
display_1602(0,1,3,'d');
display_1602(0,1,4,':');
display_1602(0,2,0,'R');
display_1602(0,2,1,'e');
display_1602(0,2,2,'c');
display_1602(0,2,3,'e');
display_1602(0,2,4,'i');
display_1602(0,2,5,'v');
display_1602(0,2,6,'e');
display_1602(0,2,7,':');
while(1)
{
keyscan();
if(judge_p30==0) rxd();
}
}
void initial()
{
TMOD=0x20; //T1工作方式2
TH1=0xfd; //波特率9600bps
TL1=0xfd;
TR1=1;
SM0=0; SM1=1; //设置方式1 8位异步收发 波特率可变
REN=1; //允许串行口接收
}
void keyscan()
{
if(s1==0)
{
delay(2);
if(s1==0)
{
while(!s1);
num++;
txd(num); //发送数据
if(num==255) num=0;
}
}
}
void txd(uchar temp)
{
display_1602(1,1,8,temp);
SBUF=temp; //发送数据
while(TI==0);
TI=0;
}
void rxd()
{
uchar temp;
while(RI==0);
RI=0;
temp=SBUF; //接收数据
display_1602(1,2,8,temp);
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -