2019-03-24 19:27发布
你的程序看不下去了,简单的题目被你搞得这么麻烦,而且还好几处地方有问题
直接重新写个程序给你吧
#include<reg52.h>
#define uchar unsigned char#define uint unsigned int
uchar num[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};uchar count;uint number;
sbit le = P3^7;
void T0_init(){ TMOD = 0x01; TH0 = 0xea; //6ms中断一次 TL0 = 0x66; TF0 = 0; //中断标志位清零 ET0 = 1; //允许定时器0中断 EA = 1; TR0 = 1;}
void delay(){ uchar i,j; for(i=0;i<10;i++) for(j=0;j<10;j++);}
void display(number){ P2=4; P0=num[number/100]; P2=0; delay();
P2=4; P0=num[number%100/10]; P2=1; delay();
P2=4; P0=num[number%10]; P2=2; delay();}void main(){ T0_init(); le=1; while(1) { display(number); }}
void timer0() interrupt 1{ TH0 = 0xea; TL0 = 0x66; count++; if(count==50) { count=0; number++; if(number==1000) { number=0; } }}
最多设置5个标签!
你的程序看不下去了,简单的题目被你搞得这么麻烦,而且还好几处地方有问题
直接重新写个程序给你吧
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar num[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar count;
uint number;
sbit le = P3^7;
void T0_init()
{
TMOD = 0x01;
TH0 = 0xea; //6ms中断一次
TL0 = 0x66;
TF0 = 0; //中断标志位清零
ET0 = 1; //允许定时器0中断
EA = 1;
TR0 = 1;
}
void delay()
{
uchar i,j;
for(i=0;i<10;i++)
for(j=0;j<10;j++);
}
void display(number)
{
P2=4;
P0=num[number/100];
P2=0;
delay();
P2=4;
P0=num[number%100/10];
P2=1;
delay();
P2=4;
P0=num[number%10];
P2=2;
delay();
}
void main()
{
T0_init();
le=1;
while(1)
{
display(number);
}
}
void timer0() interrupt 1
[ 本帖最后由 孤獨の快樂 于 2012-1-16 16:11 编辑 ]{
TH0 = 0xea;
TL0 = 0x66;
count++;
if(count==50)
{
count=0;
number++;
if(number==1000)
{
number=0;
}
}
}
一周热门 更多>