问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

基于51单片机的999倒计时C语言程序。

发布网友 发布时间:2022-04-25 01:24

我来回答

2个回答

热心网友 时间:2023-10-19 10:39

/*************************************
要求是能进行9999秒倒计时
用C语言实现
*************************************/
#include<at89X51.h>

#define uchar unsigned char
#define uint unsigned int
uchar num_qian,num_,num_shi,num_ge;//定义千位,百位,十位,个位。
uint time;//要显示的时间0~9999
uint tcnt;//计时单元
//*****************//
//以下是端口定义
//*****************//
sbit key_qian=P1^0;//按键"千加1"
sbit key_ =P1^2;//按键"百加1"
sbit key_shi =P1^4;//按键"十加1"
sbit key_ge =P1^6;//按键"个加1"
sbit laba =P3^1;//喇叭

void delay(unsigned int z)//1毫秒延时子函数
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

//*****************//
//以下是七段数码管驱动程序
//*****************//
/**************************************************
** 功能描述: 中断接受字符串驱动程序
**占用引脚资源 P30
**占用系统资源 串口中断;中断向量4
***************************************************/
#define DUAN P0
#define WEI P2

unsigned char code dispcode[]=
{
0x3F,/*0*/
0x06,/*1*/
0x5B,/*2*/
0x4F,/*3*/
0x66,/*4*/
0x6D,/*5*/
0x7D,/*6*/
0x07,/*7*/
0x7F,/*8*/
0x6F,/*9*/
}; //共阴段码表
//0,1,2,3,4,5,6,7,8,9,A,b,C,c,d,E,F,NULL,-
uchar code dispbitcode[]=
{0xef,0xdf,0xbf,0x7f}; //共阴位码表

uchar dispbuf[4],dispcount;//开辟四个显示缓冲区

void ledinit()/***初始化子函数,定时器0刷新显示内容***/
{
TMOD|=0x01; // 定时器0方式1
TH0=(65536-5000)/256; //定时器16位模式
TL0=(65536-5000)%256; //溢出时间:5ms
TR0=1; //开启定时器0
ET0=1; //使能定时器0
EA=1; //系统使能
}

void leddisp()//固定显示某些数字
{
dispbuf[0]=time/1000;
dispbuf[1]=time%1000/100;
dispbuf[2]=time%100/10;
dispbuf[3]=time%10;
}

void keytest()//按键检测程序
{
if(!key_qian)//如果千位按键
{
delay(5);//5毫秒延时去抖
if(!key_qian)//如果千位按键的确按下了
{
num_qian++;//千位数字加一
while(!key_qian);//等待按键松开
}
time+=num_qian*1000;//千位数字加1
}
if(!key_)//如果百位按键
{
delay(5);//5毫秒延时去抖
if(!key_)//如果百位按键的确按下了
{
num_++;//百位数字加一
while(!key_);//等待按键松开
}
time+=num_*100;//百位数字加1
}
if(!key_shi)//如果十位按键
{
delay(5);//5毫秒延时去抖
if(!key_shi)//如果十位按键的确按下了
{
num_shi++;//千位数字加一
while(!key_shi);//等待按键松开
}
time+=num_shi*10;//十位数字加1
}
if(!key_ge)//如果千位按键
{
delay(5);//5毫秒延时去抖
if(!key_ge)//如果个位按键的确按下了
{
num_qian++;//千位数字加一
while(!key_ge);//等待按键松开
}
time+=num_ge;//个位数字加1
}
}

void main()//主程序
{
ledinit();//数码管中断初始化,定时器0刷新显示内容
while(1)//大循环
{
if((!key_qian)||(!key_)||(!key_shi)||(!key_ge))//如果四个按键中的任何一个被按下
keytest();//执行按键检测程序
leddisp();//不断的刷新显示内容
}
}

//*************************************************
//以下是定时器0刷新数码管显示内容驱动程序
//*************************************************
/**************************************************
** 功能描述: 七段数码管驱动程序
**占用引脚资源: 数码管段选,数码管位选
**占用系统资源T0
***************************************************/

void t0(void) interrupt 1 //using 0
{
TH0=(65536-5000)/256; //5ms中断
TL0=(65536-5000)%256; //16位定时器模式
WEI=0xff;//关位选
DUAN=dispcode[dispbuf[dispcount]]; //段选
WEI=dispbitcode[dispcount]; //开位选
dispcount++;
if(dispcount==5)
dispcount=0;

tcnt++; //计数个数加一
if(tcnt==5*200)//满足1S了
{
tcnt=0;//计数个数归零
time--;//时间减一
if(time==0)//时间
while(1);
}
if(time<10)//时间小于10
laba=~laba;//声音报警
}

这是9999秒倒计时的

热心网友 时间:2023-10-19 10:40

你是说秒表么?用数码管显示出来??我有类似的设计,不知道适不适合你,需要可以随时找我,在线等......
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 楼梯的水泥台阶上可以铺地板革吗 手机腾讯会议共享屏幕播放视频没声 腾讯会议共享屏幕没声音怎么办 高压锅密封圈过紧打不开怎么办‘? 51单片机c语言程序 80分钟倒计时 求一篇写人的中考满分作文 一个51单片机的倒计时程序 汇编语言 51单片机 倒计时器程序 高中写人作文的一篇范文 单片机程序,设计一个倒计时程序,每八个小时响一次,持续时间五秒,求大神帮忙。 高考满分作文上欲扬先抑写人的作文有哪些 倒计时器 c语言程序 单片机c51 我们的这个家里的电高压锅他的这个密封是属于什么密封形式? 写人的满分作文450字有间格符题目 51单片机数码管倒计时程序,从999999开始倒计时,用定时器T1的中断完成 高中写人作文600字.要快. 如何用C51单片机做出以下程序 “秒表是倒计时,从100秒开始倒计时 用数码管实时显示当前计时值” 单片机60秒倒计时程序怎么写啊!!!这个图的!!!急用啊!!! 写人的满分作文600字(要自己,不要有事件,) 如何用单片机做一个简单的倒计时器? 写人的作文,高中水平,800字以上。 单片机100秒倒计时程序(两位数码管,设置复位和开始两个按钮) 优秀写人作文1000字左右五篇 求单片机60分倒计时程序 用汇编语言在c51单片机上实现6(时分秒)位倒计时程序,能够调节设置时间,并能暂停,终止,继续 c51单片机定时器30秒倒计时程序,一个按键控制开始,另一个按键控制暂停和继续 单片机30S倒计时程序 用共阴管 用TO实现30秒倒计时 到零停止 台词包括哪几种类型 对话的表现形式有那些? 京剧人物台词表现形式有哪些 事业单位45岁可以离岗 台词如何说 拿筷子敲碗,一边又说着那种有旋律的台词的,属什么表演形式 工作年满二十五年的事业单位工作人员可以提前离岗吗? 一个人幕后读台词,一个人演绎,这种表演形式叫什么 机关事业单位工作人员提前退休和离岗休养有什么区别? 语言表现形式有哪几种 一个演员的台词功底可以通过哪些方式来进行评价? 语言有几种表达方式? 事业单位人员辞职后社保怎么办? 潜台词的种类有哪些 潜台词发生的对象,发生的意义,发生的场合是什么... 舞台的人物对白在戏曲中做什么,有哪些形式? 事业单位可以停薪留职吗