📄 trasmit.c
字号:
#define uchar unsigned char
#define uint unsigned int
#include <reg52.h>
#include <string.h>
#include <stdio.h>
uchar ccc[10]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
uchar rec[10];
uchar err[6]={"error"};
uchar i,j,k;
sbit LED1=P2^1;
bit read_flag=0;
void init_serialcom(void) //初始化串口
{
P2=0x00;
SCON=0x50; //串口工作在方式1
PCON=0x80; //SMOD=1
TMOD=0x20; //定时器1工作在方式2
TL1=0xFD;
TH1=0xFD; //波特率设置为19200bps
EA=1;
ES=1; //串口中断使能
TR1=1; //开启定时器1
i=0;
j=0;
k=0;
}
void send_char_com(uchar chh) //向串口发送一字符
{
SBUF=chh;
while(TI==0);
TI=0;
}
void send_string_com(uchar *str,uchar strlen) //向串口发送字符串
{
uint k=0;
do
{
send_char_com(*(str+k));
k++;
} while(k<strlen);
}
void main()
{
init_serialcom();
while(1) ;
/* {
if(read_flag)
{
while(k<10) //检验收到的字符串是否正确
{
if(!(rec[k]==ccc[k]))
{
LED1=1;
send_string_com(err,6);
}
k++;
}
send_string_com(rec,10);
read_flag=0;
k=0;
}
}*/
}
void UART() interrupt 4 using 3 //串口中断服务程序
{
if(RI)
{
uchar ch;
RI=0;
ch=SBUF;
if(i<10)
{
rec[i]=ch;
i++;
if(i==10)
{
i=0;
//read_flag=1;
while(k<10) //检验收到的字符串是否正确
{
if(!(rec[k]==ccc[k]))
{
LED1=1;
//send_string_com(err,6);
}
k++;
}
send_string_com(rec,10);
read_flag=0;
k=0;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -