#include <reg51.h>//51系列单片机定义文件
#include <intrins.h>
#define uchar unsigned char //定义无符号字符
#define uint unsigned int //定义无符
#define SEG P0
char code tab[19]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,0x80,0xf8,0x82,0x92,0x99,
0xb0,0xa4,0xf9};
void delay(uint); //声明延时函数
void main()
{
unsigned char i;
P2=0xfc;
while(1)
{
for(i=0;i<19;i++)
{
SEG=tab[i];
delay(1200);
SEG=0xff;
}
}
}
void delay(uint t) //定义延时函数 0.5ms
{
uint i,j;
for(i=0;i<t;i++)
for(j=0;j<60;j++);
}
我实现的是数码管从0-9-0的循环显示,但是在实现9-0计数到1时,先是出现向8一样的效果,完了才显示0,为什么呢? |