51单片机实现倒计时,按键控制倒计时

news/2025/1/15 17:51:14/

基于AT89C52的答辩倒计时。四个按键分别控制倒计时开始,暂停,时间加和减。剩下30S时蜂鸣器响,倒计时结束蜂鸣器响。

 

#include <REGX52.H>unsigned char min=1;
unsigned char sec=00;
sbit KEY1=P3^1;
sbit KEY2=P3^0;
sbit KEY3=P3^2;
sbit KEY4=P3^3;
sbit LSA=P2^2;    
sbit LSB=P2^3;
sbit LSC=P2^4;
sbit bee=P2^5;
sbit led=P2^6;
unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};void delay(unsigned int z)
{unsigned int x,y;for(x=z;x>0;x--)for(y=114;y>0;y--);
}void DSQ_INIT()
{TMOD=0x11;//定时器方式为方式一EA=1;//开总中断ET0=1;//开T0中断TR0=0;//定时器0计时TF0=0;//清除TF0标志TH0=0x3c; //设置初值,定时时间为50msTL0=0xb0;
}void Timer()interrupt 1
{static int i=0;TL0 = 0xb0;		TH0 = 0x3c;	i++;if(i>19){i=0;if(min>0||sec>0){	if(sec==0){sec=59;sec++;}if(sec>0){sec--;}if(sec==59){min--;}}}
}void Show_time()
{P0=table[min/10%10];LSA=0;LSB=0;LSC=1;delay(1);		//数码管位选P0=table[min%10];LSA=1;LSB=1;LSC=0;delay(1);P0=table[10];LSA=0;LSB=1;LSC=0;delay(1);P0=table[sec/10%10];LSA=1;LSB=0;LSC=0;delay(1);P0=table[sec%10];LSA=0;LSB=0;LSC=0;delay(1);P0=0x00;
}void Sec_ADD()
{if(KEY4==0){delay(20);while(!KEY4);Show_time();sec++;if(sec>59){min++;sec=0;}}
}void Sec_SUB()
{if(KEY3==0){delay(20);while(!KEY3);		//判断按键是否松手Show_time();if(min>0||sec>0){sec--;if(sec==0){min--;sec=59;}}	}
}void Pause()
{if(KEY2==0){delay(10);if(KEY2==0){TR0=0;}}if(min==0&&sec==0){TR0=0;bee=~bee;led=0;}
}void Bee()
{if(min==0&&sec==30){bee=~bee;}
}main()
{DSQ_INIT();while(1){Show_time();if(KEY1==0){if(min>0||sec>0){TR0=1;}delay(5);while(KEY1){Show_time();Pause();Bee();Sec_ADD(); Sec_SUB();}}Pause();Bee();Sec_SUB();Sec_ADD(); }			
}


http://www.ppmy.cn/news/551923.html

相关文章

单片机课设-60秒倒计时器

proteus单片机实现60秒倒计时器 项目要实现的60s秒表倒计时器&#xff0c;用 AT89C51单片机的定时 / 计数器 T0 产生一秒的定时时间&#xff0c;实现 59 到 0秒的循环显示的功能。具体要求&#xff1a; 1&#xff09;按下启动按键后&#xff0c;倒计时器开始工作&#xff0c;从…

基于51单片机的倒计时系统

具体实现功能 系统由STC89C52单片机按键电路复位电路晶振电路LCD1602显示模块构成。 具体功能&#xff1a; &#xff08;1&#xff09;六位LED显示&#xff0c;从59分59秒99开始倒计时&#xff1b; &#xff08;2&#xff09;倒计时精度为0.01秒&#xff0c;能正确地进行倒…

51单片机应用篇-- --倒计时数字钟,矩阵按键可调

开篇先说一句废话 本旺名字叫萨摩耶&#xff0c;&#xff0c;Please 叫我旺财&#xff0c;&#xff0c;&#xff0c;哈哈&#xff0c;招财进宝嘛&#xff01; 项目要求 这篇也和之前那篇文章单片机应用篇-- --数码管60秒计时&#xff0c;独立按键可调 差不多&#xff0c;而且…

8051单片机(STC89C52)倒计时器

#include <STC89C5xRC.H>void delay()//用定时器0实现10ms精准定时 {TMOD 0x01;TH0 0xd8;TL0 0xf0;//65536 - 10000 55536TF0 0;//置溢出标志位为0TR0 1;//开启定时器0while(TF0 0);TR0 0;//暂停定时器0 }void disp_digit(int d) {unsigned char code DIG_CODE[1…

STC8H8K系列汇编和C51实战——秒倒计时器(汇编版)

秒倒计时器&#xff08;汇编版&#xff09; 一、题目二、代码总结系列文章——STC8H8K系列汇编51实战 一、题目 在实验箱上利用单片机定时器/计数器&#xff08;工作于中断方式&#xff09;设计一个秒倒计时器&#xff0c;用数码管显示秒数&#xff0c;从100 倒计时至0 s 后从…

51单片机通过计时器实现倒计时

51单片机通过计时器实现倒计时 文章目录 51单片机通过计时器实现倒计时实验环境仿真图代码实现成果图 实验环境 软件: Keil5Proteus7 元件: AT89C51 * 1&#xff0c;7SEG-MPX2-CA * 1 仿真图 代码实现 //名称: 定时器实现数码管倒计时 #include <reg51.h> #define uint …

555定时器+74系列芯片搭建八路抢答器,30s倒计时,附Proteus仿真等

设计要求 1.设计一个基于数字电路的30秒定时抢答器&#xff0c;可同时供8人或8队比赛&#xff1b; 2.给节目主持人设置一个控制开关&#xff0c;用于控制系统复位和抢答开始&#xff1b; 3.抢答器具有数据锁存和显示功能。抢答开始后&#xff0c;如有选手抢答成功&#xff0c…

STC8H8K系列汇编和C51实战——秒倒计时器(可自行设定初值)(51版)

秒倒计时器&#xff08;可自行设定初值&#xff09;&#xff08;51版&#xff09; 一、题目二、代码总结系列文章——STC8H8K系列汇编51实战 一、题目 在实验箱上利用单片机定时器/计数器&#xff08;工作于中断方式&#xff09;设计一个秒倒计时器&#xff0c;用数码管显示秒…