📄 usart.c
字号:
#include <reg52.h>
void SendOneByte(unsigned char c);
void delayms(unsigned int k) ; //延时 n ms
//unsigned char xdata ledxs[8]={1,2,3,4,5,6,7,8};
//unsigned char xdata ledxs2[8]={1,2,3,4,5,6,7,8};
//unsigned char data CMDuart[8];//命令接收器
//unsigned char fankui[2]={'O','K'};
struct
{
unsigned char CMDuart1[8];
unsigned char fankui1[2];
}user1;
void InitUART(void)
{
user1.CMDuart1[0]=0;
user1.fankui1[0]='o';
user1.fankui1[1]='K';
delayms(200);
TMOD=0x20; // 定时器1模式2,8位自动重装
TL1=0xe8;
TH1=0xe8; // 波特率1200 晶振11.0592的
TR1=1; // to run 第一个定时器
SCON=0x50; // 串口方式1,接收允许,8位数据,无校验,1位起始位,1位结束位
ES=1;
EA=1; // 开串口中断
// 开总中断
}
void find()
{
int i;
if(user1.CMDuart1[0]==1)
{
user1.CMDuart1[0]=0;
for(i=0;i<2;i++)
{
TI = 0;
SBUF = user1.fankui1[i];
while(!TI);
}
}
}
void main(void)
{
InitUART();
while(1)
{
find();
}
}
void UARTInterrupt(void) interrupt 4
{
if(RI)
{
RI = 0;
user1.CMDuart1[0]=SBUF;
}
}
void SendOneByte(unsigned char c)
{
SBUF = c;
while(!TI);
TI = 0;
}
void delayms(unsigned int k) //延时 n ms
{
while(k)
{
int i;
i=110;
while(i--);
k=k-1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -