51单片机60秒倒计时程序不要蜂鸣器一直循环的
时间: 2023-08-13 12:02:28 浏览: 48
以下是51单片机60秒倒计时程序,不含蜂鸣器且会一直循环执行:
```c
#include <reg52.h>
#define uint unsigned int
void delay(uint xms); //延时函数
void main()
{
while(1)
{
uint i;
for(i=60;i>0;i--) //60秒倒计时
{
P0 = i; //将倒计时的秒数输出到P0口
delay(1000); //延时1秒
}
}
}
void delay(uint xms) //延时函数
{
uint i,j;
for(i=xms;i>0;i--)
for(j=112;j>0;j--);
}
```
注意:此程序需要将P0口接到LED灯或数码管等输出设备上才能看到效果。
相关问题
51单片机60秒倒计时程序运用定时器不要蜂鸣器一直循环的
以下是基于定时器的51单片机60秒倒计时程序,不含蜂鸣器且会一直循环执行:
```c
#include <reg52.h>
#define uint unsigned int
void InitTimer0(); //初始化定时器0
void delay(uint xms); //延时函数
void main()
{
InitTimer0(); //初始化定时器0
while(1)
{
uint i;
for(i=60;i>0;i--) //60秒倒计时
{
P0 = i; //将倒计时的秒数输出到P0口
while(!TF0); //等待定时器0溢出
TF0 = 0; //清除定时器0溢出标志
}
}
}
void InitTimer0() //初始化定时器0
{
TMOD &= 0xF0; //设置定时器0为模式1
TH0 = 0x3C; //设置定时器0初值为0x3C
TL0 = 0xAF; //设置定时器0初值为0xAF
TR0 = 1; //启动定时器0
}
void delay(uint xms) //延时函数
{
uint i,j;
for(i=xms;i>0;i--)
for(j=112;j>0;j--);
}
```
注意:此程序需要将P0口接到LED灯或数码管等输出设备上才能看到效果。
51单片机1-100秒倒计时报警器
以下是基于51单片机制作的1-100秒倒计时报警器的代码:
```
#include<reg52.h>
sbit buzzer = P1^0; // 蜂鸣器连接P1.0口
sbit led = P1^1; // 指示灯连接P1.1口
void delay_ms(unsigned int x) // 延时函数
{
unsigned int i,j;
for(i=0;i<x;i++)
for(j=0;j<114;j++);
}
void main()
{
unsigned int i;
while(1)
{
for(i=100;i>0;i--) // 从100秒开始倒计时
{
if(i<=10) // 倒计时到10秒时,蜂鸣器报警
{
buzzer = 1; // 蜂鸣器鸣叫
delay_ms(100); // 鸣叫持续时间
buzzer = 0; // 蜂鸣器停止鸣叫
}
led = 1; // 指示灯亮
delay_ms(1000); // 等待1秒
led = 0; // 指示灯灭
}
}
}
```
这个程序通过循环从100秒开始倒计时,每倒计时到10秒时蜂鸣器会发出报警声,持续100毫秒,同时指示灯也会亮起并持续1秒。这个程序可以通过修改倒计时的起始值和报警时间来进行调整。