单片机99秒倒计时

来源:百度知道 编辑:UC知道 时间:2024/06/24 08:37:26
希望高手给个思路

想让数码管显示从99倒计到00为止

我想的是99循环一断时间,再98循环一段时间,再97循环一段时间,直到00为止

但是想了好几个方法都想不出改怎么写,想了好几个错的

高手给个思路吧,可以不用程序

我用的是汇编,51单片机,P0控制数码管显示,P0控制38译码器决定哪个数码管亮

用定时器,很简单的,我这里有个程序你可以参考一下
#include "clock.h"

void delay(uint t)
{
uint i;
while(t--)
{
/* 对于12M时钟,约延时1ms */
for (i=0;i<100;i++)
{}
}
}

void main()
{
initial();
P0=0x00;
sec=min=hour=0;
flag=1;

while(1)
{
while(flag)
{
display(0,hour/10);
display(1,hour%10);
//display(2,3);
display(3,min/10);
display(4,min%10);
//display(5,6);
display(6,sec/10);
display(7,sec%10);
flag=0;
}
}
}

void display(uchar digit,uchar num)
{
P2=0x00;
P1=n[num];
P2=m[digit];
delay(1);
}

void initial(void)
{
//--INT0的配置----------
IT0=1; // INT0为0低电平触发(为1则为下降沿触发)
EX0=1; // INT0中断开,允许INT0中断

//--T0的配置:定时器------------
TMOD = 0x11; //定时器0,1 定时,工作方式1(16位装