用串口助手将数字发送到数码管,输入一个数,在数码管将这个数显示出来。目前出了点问题,请帮忙检查,谢谢。
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula = P2^6;
sbit wela = P2^7;
uchar num;
uchar code du[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x7f,0x6f};
uchar code we[]={0xfe,0xfd,0xfb};
void display(uchar i)
{
static uchar wei;
switch (wei)
{
case 0: dula=1;
P0=du[i/100];
dula=0;
break;
case 1: dula=1;
P0=du[i%100/10];
dula=0;
break;
case 2: dula=1;
P0=du[i%10];
dula=0;
break;
}
wei++;
if(wei == 3)
wei = 0;
P0=0xff;
wela=1;
P0=we[wei];
wela=0;
}
void timer0Init()
{
EA=1;
ET0=1;
TR0=1;
REN=1;
TMOD|=0x01;
TH0=0xED;
TL0=0xFF;
}
void uartInit()
{
EA=1;
ES=1;
SM0=0;
SM1=1;
REN=1;
TR1=1;
TMOD|=0x20;
TH1=0xfd;
TL1=0xfd;
}
void main()
{
timer0Init();
uartInit();
while(1);
}
void timmer0() interrupt 1
{
TH0=0xED;
TH1=0xFF;
display(num);
}
void uart() interrupt 4
{
if(RI)
{
num=SBUF;
RI=0;
}
}
|