📄 tongxin.c
字号:
//10位异步串行双机通信,无校验位
//可改写成,11位的,奇偶校验
#include <reg51.h>
#define uchar unsigned char
#define Display_Send P1
#define Display_Receive P2
sbit Key_Send=P3^2;//发送按键
uchar Code_Seg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void PIN_Init(void)
{
Display_Send=0x0e;//显示F
Display_Receive=0x0e;
}
void UART_Init(void)
{
TMOD=0x20;//定时器1,方式2
TH1=0xfd;//9600Bps,11 059.2晶振
TL1=0xfd;//
PCON=0x00;//波特率不倍增
SCON=0x50;//串行方式1
PS=1;//串行优先级高
TR1=1;//启动计时
ES=1;//开串口中断
EA=1;//开总中断
}
/*
bit Check(uchar uData)//检验
{
static bit bCheck;
static uchar i;
bCheck=uData;
for(i=1;i<7;i++)
{
bCheck=bCheck^(uData>>i);
}
return bCheck;
}
*/
void Send()//发送
{
static uchar i;
i++;
if(i==10)
i=0;
Display_Send=Code_Seg[i];
SBUF=i;
}
void Receive(void)//接收
{
static uchar uBuffer;
uBuffer=SBUF;
Display_Receive=Code_Seg[uBuffer];
}
void UART_INT(void) interrupt 4//串口初始化
{
if(TI==1)
{
TI=0;
}
if(RI==1)
{
Receive();
RI=0;
}
}
main()
{
PIN_Init();//管脚初始化
UART_Init();
while(1)
{
if(!Key_Send)//按键发送
{
while(!Key_Send);//等待按键放开
Send();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -