注册 登录
编程论坛 VC++/MFC

c++ 大神们,这是一帖加急电报,求指教啊!

luo8232 发布于 2016-06-09 10:08, 4673 次点击
(1)开始时,倒计时器数码管显示“24”(2)按下SP1,开始倒计时;(3)按下SP2,计时暂停;(4)再次按下SP1后,计时继续。(5)SP3按钮功能为计时清零,系统复位。发挥功能:设置两个指示灯D1(绿灯)、D2(黄灯),正常倒计时时绿灯D1亮,暂停时黄灯D2亮,倒计时至0后指示灯D1、D2同时以10Hz频率闪烁。

这是篮球24秒倒计时的要求。
#include<reg51.h>
#define uchar unsigned char
unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned int time=0,time1=25;
sbit com0=P3^0;
sbit com1=P3^1;
sbit key=P1^0;
sbit key1=P1^1;
sbit key2=P1^2;
sbit D1=P1^3;
sbit D2=P1^4;
void delay()
   {
     unsigned char m;
    m=500;
         while(m--);
   }

  
void display(unsigned char luo)
 {
    com0=1;
    P2=tab[luo/10];
    delay();
    com0=0;
   
    com1=1;
    P2=tab[luo%10];
      delay();
    com1=0;
 }
void daojishi()
{
   time1--;
   if(time1==-1) time1=25;
}




void main(void)
{   
unsigned char j;
while(1)
{
   if(key==0) {time=24;D1=0;D2=1;}
   if(key==1) {time1=25;D1=1;D2=1;}
    {

   daojishi();
   for(j=200;j>0;j--)
   {display(time1);}
   
 
     }
    if(time1==0)
    {
    while(1)
    {
       com0=1;
       com1=1;
       delay();
       D1=0;
         D2=0;
       delay();
       D1=1;
         D2=1;
       delay();
            if(key==1) break;
    }
    }
  }
}
 
 现在只有按键1能够运行,按键2跟按键三还不能控制,请问一下怎么加入中断程序?
3 回复
#2
tmteam2016-09-05 15:04
单片机的定时器中断程序
#3
tmteam2016-09-05 15:04
单片机的定时器中断程序
#4
武汉Boy2018-02-09 20:23
51的话写个定时器就行了,32也没啥,注意不同的芯片的分频系数就行了
1