51单片机计时器程序60秒
时间: 2023-08-13 15:02:28 浏览: 192
以下是基于51单片机的计时器程序,可实现60秒倒计时:
```c
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit beep=P1^5; //定义蜂鸣器控制引脚
void delayms(uint xms) //延时函数
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void Timer0Init(void) //定时器初始化函数
{
TMOD|=0x01; //设置定时器0为模式1(16位定时器)
TH0=0xFC; //给定时器赋初值,定时1ms
TL0=0x66;
ET0=1; //打开定时器0中断允许
TR0=1; //启动定时器0
EA=1; //打开总中断允许
}
void main()
{
uchar num=60; //设置计时器初始值为60秒
Timer0Init(); //初始化定时器
while(1)
{
if(num==0) //计时结束
{
beep=1; //蜂鸣器响
delayms(500); //延时0.5秒
beep=0; //蜂鸣器停止响
num=60; //计时器重置为60秒
}
}
}
void Timer0() interrupt 1 //定时器0中断函数
{
TH0=0xFC; //给定时器赋初值,定时1ms
TL0=0x66;
num--; //计时器值减1
}
```
该程序使用定时器0来实现计时器功能,每次定时器中断会将计时器值减1,当计时器值为0时,蜂鸣器响起并重置计时器值为60秒。