📄 com.c
字号:
/*串口调试*/
#include<stdio.h>
#include<reg51.h>
#include<absacc.h>
#define GREEN1 XBYTE[0x9000]
#define GREEN2 XBYTE[0xA000]
#define RED1 XBYTE[0xB000]
#define RED2 XBYTE[0x8000]
#define TDELAY 2
#define OFF 0xff
void redoff(void);
void greenoff(void);
void redon(unsigned int i);
void greenon(unsigned int i);
void delayms(unsigned int i);
unsigned char code polarity[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90} ;
void redon(unsigned int i)
{
unsigned char rbai,rs,rg;
rbai = i / 100;
rs = i / 10 - rbai *10;
rg = i % 10;
P0 = polarity[rs];
RED1 = P0;
delayms(TDELAY);
P0 = polarity[rg];
RED2 = P0;
delayms(TDELAY);
}
void greenon(unsigned int i)
{
unsigned char gbai,gs,gg;
gbai = i / 100;
gs = i / 10 - gbai *10;
gg = i % 10;
P0 = polarity[gs];
GREEN1 = P0;
delayms(TDELAY);
P0 = polarity[gg];
GREEN2 = P0;
delayms(TDELAY);
}
void redoff(void)
{
P0 = OFF;
RED1 = P0;
delayms(TDELAY);
P0 = OFF;
RED2 = P0;
delayms(TDELAY);
}
void greenoff(void)
{
P0 = OFF;
GREEN1 = P0;
delayms(TDELAY);
P0 = OFF;
delayms(TDELAY);
GREEN2 = P0;
delayms(TDELAY);
}
void delayms(unsigned int i)
{
unsigned char j;
while(i--)
{
for(j=0;j<123;j++)
{;}
}
}
char send;
char ok = 'k';
main()
{
TMOD = 0x20; /*定时器1工作方式2;定时器0工作方式0*/
SCON = 0x50; /*串口工作方式1,接收允许*/
PCON = 0x00; /*波特率 不 加倍*/
TH1 = 0xFD; /*波特率 9600*/
TL1 = 0xFD;
PS = 1; /*串口中断优先级 高*/
EA = 0; /*开总中断*/
ES = 0; /*开串口中断*/
TI = 0;
RI = 0;
TR1 = 1;/*定时器1开*/
redoff();
greenoff();
redon(0);
greenon(0);
while(1)
{
while(RI)
break;
}
send = SBUF;
if(RI)
{
redoff();
RI = 0;
SBUF = ok;
while(!TI){;}
TI = 0;
greenoff();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -