用串口助手將數字發送到數碼管,輸入一個數,在數碼管將這個數顯示出來。目前出了點問題,請幫忙檢查,謝謝。
#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;
}
}
|