2019-07-15 20:54发布
xjtuwm@ 发表于 2014-2-23 17:39 我也写了一个程序,可是也是好像不计数,定时器也依次打开关闭,变量也定义为全局变量了,还是不行啊,不计 ...
星无泪 发表于 2014-2-23 19:51 #include #define uchar unsigned char
me860 发表于 2014-2-23 19:46 P0=shuma[offset]; //你的shuma[offset]中,offset没有操作,当然没有变化了,参照楼主写的那个显示函数 ...
最多设置5个标签!
P0=shuma[offset]; //你的shuma[offset]中,offset没有操作,当然没有变化了,参照楼主写的那个显示函数就行
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uint offset=0;
uint count=0;
void init_sys();
void shumaguan();
void display(uint offset);
void timer0();
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
sbit dula=P2^5;
sbit wela=P2^6;
uchar code shuma[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0X88,0X83,0XC6,0XA1,0X86,0X8E,0X89,0X7F,0XBF};
void main()
{
init_sys();
while(1)
{
shumaguan();
}
}
void init_sys()
{
dula=0;
wela=0;
TMOD=0x01;
TH0=0x3c;
TL0=0xB0;
TR0=1;
}
void init_timer0()
{
TH0=0x3c;
TL0=0xB0;
TR0=1;
}
void shumaguan()
{
//uint count=0;
if(TF0==1)
{
count++;
TF0=0;
TR0=0;
//TH0=0x3c;
//TL0=0xB0;
init_timer0();
}
if(count==20)
{
count=0;
display(offset);你的计数时间到了,变量offset没有加1,它的初始值是零,显示的肯定是零。
}
}
void display(uint offset)
{
wela=0;
dula=0;
P0=0xdd;
wela=1;
delay(1);
wela=0;
P0=shuma[offset];这里的变量offset时间到了没加1,初始值是0显示肯定是0
dula=1;
delay(1);
dula=0;
}
糊涂糊涂了,忘了++了,明天试一下也不知道行不行
对的对的,忘了++
一周热门 更多>