C51 调试

来源:百度知道 编辑:UC知道 时间:2024/05/05 03:14:34
各位老大帮忙看看下面的程序有没有问题,
程序要实现以下功能:0-60S计时,满60蜂鸣器响8S。
按下按钮后,60-0倒计时,到30时蜂鸣器响5s.

#include <REGX51.H>
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char Second;
unsigned char Secdi;
unsigned char Secgao;
unsigned char Daosec;
signed int N;
sbit Led=P2^1;
sbit Fm=P2^0;
sbit Di=P3^0;
sbit Gao=P3^1;
sbit Ctrl=P3^2;
void xianshi(void) //dongtaixianshi
{
if(Ctrl==0)
{
Secdi=table[Daosec/10];
Secgao=table[Daosec%10];
}
else
{
Secdi=table[Second/10];
Secgao=table[Second%10];
}
Di=0;
P1=Secdi;
Di=1;
Gao=0;
P1=Secgao;
Gao=1;
}
void delay1s(void) //-------1s延时------
{
unsigned char i,j,k;

for(k=100;k>0;k--)

f

什么东西啊 看着迷糊

别的就不多说了, 至少应该用定时器做个每秒触发的中断, 中断中对unsigned int k变量加一。
int get_time(void)
{
return(k);
}

void main(void)
{
unsigned int old;
// 延迟10秒。
old = get_time();
do{}while(get_time() - old < 10);
}