智能车制作

标题: 定时器程序问题 [打印本页]

作者: duxingshiweione    时间: 2010-11-11 16:06
标题: 定时器程序问题
在下面程序的基础上,怎样实现199秒倒计时
#include <reg52.h>

typedef   unsigned char  uchar;
typedef   unsigned int   uint;

uchar  Count,Sec,shift,n;

uchar code  LEDData[ ] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,
                          0x82,0xF8,0x80,0x90,0xff};
uchar data  display[2];
/********************************************************

主函数

*********************************************************/
main()
{
   P0 = 0xff;            //端口初始化
   P2 = 0xff;
   Count = 0x00;
   Sec = 0x00;
   n = 0x00;
   shift = 0xfe;         //送位码初值

   TMOD = 0x01;
   TH0 = 0x4c;           //50ms定时
   TL0 = 0x00;
   ET0 = 1;
   
   T2CON = 0x00;         //设置T2CON寄存器
   TH2 = 0xf8;           //2ms定时
   TL2 = 0xcc;
   ET2 = 1;              //启用Timer2中断
   EA = 1;               //总中断允许
   TR2 = 1;              //启动定时器2
   TR0 = 1;              //启动定时器0

   while(1) ;

}

/*********************************************************

  Timer0中断函数 (负责定时)

**********************************************************/
void Timer0() interrupt 1
{
   TH0 = 0x4c;               //50ms定时
   TL0 = 0x00;
   ++Count;                  //中断计数单元加1
   if(Count == 20)           //50ms×20=1s
   {
     Count = 0;              //清中断计数单元
     ++Sec;                  //秒单元加1
     if(Sec == 100)
     Sec = 0;                //清秒单元
   }
}

/*********************************************************

  Timer2中断函数 (负责数码管显示)

**********************************************************/
void  timer2() interrupt 5
{
   TR2 = 0;
   TF2 = 0;                      //手工清中断标志  
   TH2 = 0xf8;                   //2ms定时常数
   TL2 = 0xcc;

   if(n >= 2)                    //两位数码管显示
   {
     n = 0;
     shift = 0x7f;               //送位码初值
     P2 = 0xff;                  //关闭显示
   }
   else
   {
     display[0] = Sec%10;          //个位
     display[1] = Sec/10;          //十位

     P0 = LEDData[display[n++]];   //送段码
     P2 = shift;                   //送位码
     shift = (shift>>1)|0x80;      //调整位码
   }
   TR2 = 1;
}

/**********************************************************/
作者: 虫子    时间: 2010-11-13 18:38
帮不忙  只能瞎看
作者: zhang54188    时间: 2011-2-24 01:52

作者: 菜鸟1号    时间: 2011-4-27 09:06
?、
作者: Hello~小月月    时间: 2012-9-9 01:39





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2