📄 serise.c
字号:
#include "reg51.h"
#include "string.h"
#include "display.h"
#define rdy 0x06
#define busy 0x15
#define ok 0x01
#define succ 0x0f
#define err 0xf0
unsigned char data data_buffer[11]_at_ 0x60;
unsigned char rch=0x00;
unsigned int num=0;
void init_serialcomm(void)
{
SCON = 0x50; //SCON: serail mode 1, 8-bit UART, enable ucvr
TMOD = 0x20; //TMOD: timer 1, mode 2, 8-bit reload
PCON = 0x80; //SMOD=1;
TH1 = 250; //Baud:4800 fosc=11.0592MHz
TL1 = 250; //Enable Serial Interrupt
TR1 = 1; // timer 1 run
EA = 1;
ES = 0;
RI = 0;
}
//向串口发送一个字符
void send_char_com(unsigned char sch)
{
SBUF=sch;
while(TI==0);
TI=0;
}
recieve_char_com(void)
{
while(!RI);
rch=SBUF;
RI=0;
return rch;
}
recievdata(void) interrupt 4
{
data_buffer[num]=SBUF;
RI=0;
num++;
if(num>=11)
ES=0;
return;
}
main()
{
unsigned int a=0x80,b=0,display=1,totle=0;
unsigned int i,j,k,n;
unsigned char com=0x00,test=0x00;
init_serialcomm(); //初始化串口
while(com!=0x06)
{com=recieve_char_com();}
send_char_com(ok);
ES=1;
delayms(1200);
test=data_buffer[0];
for(n=1;n<10;n++)
test=test^data_buffer[n];
if(test=data_buffer[10])
send_char_com(succ);
else
send_char_com(err);
/*for(j=0;j<10;j++) //十六进制数转换为十进制
{
for(i=0;i<8;i++)
{
b=(data_buffer[j]&a);
if(b==a)
{
for(k=0;k<7-i;k++)
{
display=display*2;
}
totle=totle+display;
display=1;
a=a>>1;
}
else
{
a=a>>1;
continue;
}
}
data_buffer[j]=totle;
totle=0;
}
*/
while(1)
{
for(i=0;i<11;i++)
{
for(j=0;j<40;j++)
{
counter(data_buffer[i]);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -