#include <reg52.h>
sbit led1=P1^1; //声明一个发光二极管
sbit dula=P2^6; //声明数码管的段选
sbit wela=P2^7; //声明数码管的位选
unsigned char num,sec,sec2;
unsigned char code table[]={
0x3f , 0x06 , 0x5b , 0x4f , 0x66 ,
0x6d , 0x7d , 0x07 , 0x7f ,
0x6f , 0x77 , 0x7c ,0x39 ,
0x5e , 0x79 , 0x71 , 0x00}; //设置数码管的编码,依次显示0123456789ABCDE
void main()
{
num=0;
sec=1;
sec2=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TMOD=1;
EA=1;
ET0=1;
TR0=1;
while(1);
}
void T0_first() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
if(num==10)
{
led1=~led1;
num=0;
wela=1;
P0=0xDF; //开启第6个数码管
wela=0;
dula=1;
P0=table[sec];
dula=0;
sec++;
if(sec>9) 问题出在这里,
{
sec=1;
wela=1;
P0=0xEF; //开启第5个数码管
wela=0;
}
}
}
正常执行,应该是第6个数码管依次显示123456789,但是数字9却显示在了第5个数码管,第6个数码管仅仅显示到8。这是什么原因呢?
|