首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
定时中断30秒倒计时程序
来源:本站整理  作者:佚名  2011-02-05 21:45:54



定时中断30秒倒计时程序

#include <reg52.h>
char shuju[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0--9
char a=3,b=0,i=0;


/********* 延时子程序 *********/
void delay(unsigned int x)
{
while(x--);
}
/*********  初始化程序 *********/
void init()
{
P0=0;
TMOD=0x01; //定时器T0工作方式1
TH0=0x3c;
TL0=0xb0;  //装入初值50ms
ET0=1;     //允许定时器T0中断
EA=1;      //开总中断
TR0=1;     //启动定时器
}

/********* 显示子程序 *********/
void Display()
{
P2=0x00|0x80;   //位选十位CS_Y0
P0=shuju[a];    //扫描
delay(1000);
P2=0x01|0x80;   //位选个位CS_Y1
P0=shuju[b];
delay(1000);
}


/*********  主程序 *********/
void main()
{
  init();
  while(1)      //wait interrupt
 {

  Display();

 }

}
 
/********* 中断子程序 *********/
void sinterrupt(void) interrupt 1 //定时器T0中断
{

if(++i==20)                       //1 menitus come
{i=0;

if(a==0&&b==0){a=3,b=0;}
  else if(b==0){a--;b=9;}         //这个句子放上面显示30--1,放在下面显示29--0
     else b--;

}
TH0=0x3c;
TL0=0xb0;
}

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:11,984.38000 毫秒