c51单片机秒表计时程序
时间: 2023-08-12 22:06:31 浏览: 85
以下是基于C51单片机的秒表计时程序示例:
```
#include <reg51.h>
sbit led = P2^0; //连接到LED的引脚
void delay(unsigned int time)
{
unsigned int i,j;
for(i=0;i<time;i++)
for(j=0;j<1275;j++);
}
void main()
{
unsigned char sec = 0; //秒数
unsigned char min = 0; //分钟数
unsigned char hour = 0; //小时数
TMOD = 0x01; //设置定时器0为模式1
TH0 = 0xFC; //设置计数初值
TL0 = 0x66;
TR0 = 1; //启动定时器0
while(1)
{
if(TF0 == 1) //如果定时器0溢出
{
TF0 = 0; //清除溢出标志
sec++; //秒数加1
if(sec == 60) //如果秒数达到60
{
sec = 0; //秒数清零
min++; //分钟数加1
}
if(min == 60) //如果分钟数达到60
{
min = 0; //分钟数清零
hour++; //小时数加1
}
if(hour == 24) //如果小时数达到24
{
hour = 0; //小时数清零
}
}
//显示计时结果
led = 1; //LED灯亮
delay(100); //延时100毫秒
led = 0; //LED灯灭
delay(100); //延时100毫秒
}
}
```
该程序使用定时器0来实现计时功能,每当定时器0溢出时,秒数加1,同时判断是否需要增加分钟数和小时数,并在LED上以1秒亮1秒灭的方式显示计时结果。程序中的delay函数是简单的延时函数,用于控制LED灯的亮灭时间。
阅读全文