基于51单片机数字电压表设计的LED数字倒计时器设计

C51单片机 制作一个数码管24秒倒计时的源程序 求大神_百度知道
C51单片机 制作一个数码管24秒倒计时的源程序 求大神
数码管在P0端 ,在P2端口连接一个LED灯 ,P3端连接一个开关 。按下开关时开始24秒倒计时,24秒倒计时结束后LED灯亮
使用共阴的数码管 求帮助呀
我有更好的答案
如有帮助请采纳,再计数24次,即24秒。计时结束后输出控制信息值LED端口就行了!手打不易,用单片机定时器先定时20ms,再计数50次很简单啊,谢谢!,即1s
采纳率:84%
来自团队:
为您推荐:
其他类似问题
单片机的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。求用51单片机设计一个0-9999秒正/倒计时器_百度知道
求用51单片机设计一个0-9999秒正/倒计时器
二个按钮,一个点击进行0-9999顺序:1要求,一个点击进行0-9999倒序。显示使用数码管显示
只要是基于51单片机的就行,电路图随意
我有更好的答案
编写程序不难,但是需要楼主指定电路图。
采纳率:64%
两位相同的数字所占的百分比:两位数有11-99 9个三位数有 100-900 9个(是0重复的)
不是0重复的不含0的有C3(2)C9(1)C8(1)=216个
不是0重复的含0的有 C2(1)C9(1)=18个四位数有 C3(2)C9(1)C8(1)=216(0重复) 不是0重复的不含0的有C4(2)C(9)A8(2)=3024 不是0重复的含0的有 C3(1)C3(2)C9(1)C8(1)=648一共为41.31%三位数相同的数字所占的百分比:三位数的有9个四位数有个(是0重复的)
不是0重复的不含0的有C4(3)C9(1)C8(1)=288 不是0重复的含0的有C3(1)C9(1)=27一共为3.24%
为您推荐:
其他类似问题
您可能关注的内容
51单片机的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。步街网_一折特卖优惠券_名品导购_天天折扣今日特价网!
品质6道人工质检+低价全网最低价=步街网每天10点独家开抢每天最多可赚:20&积分&后才能签到&&|&& 系统繁忙系统繁忙。即将为您跳转到淘宝详情页...Copyright (C) 2010 - 2015 步街网◆今日订单0◆◆◆列表◆◆◆意见反馈◆返回顶部◆51单片机倒计时器 - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
51单片机倒计时器
22:29:06  
新手自己写了一个倒计时程序,目标是实现10毫秒到24小时,用8个数码管进行动态显示,功能有开始,暂停,置零,可以设置时,分,秒,10毫秒。但是仿真的时候总是按键没反应,求大神帮忙看下?附件里面有程序和仿真
附件: 您需要
才可以下载或查看,没有帐号?
你的程序注释太少,只能帮你倒这:
& &看如下程序:
& && &&&if(k3==0)
& & & & & & & && &{
& & & & & & & && & delay(5);
& & & & & & & && & if(k3==0)
& & & & & & & && & {
& & & & & & & && &&&while(!k3) ;
& & & & & & & & //P3 = 0;
& && && && &keyscan();
& & & & & & & && &&&}
& && && &&&}& &
加上 P3 = 0; 调试K3按键是有用的,另外你的按键扫描程序是每按一次执行一次,这肯定不行的
助理工程师
22:29:07  
你的程序注释太少,只能帮你倒这:
& &看如下程序:
& && &&&if(k3==0)
& & & & & & & && &{
& & & & & & & && & delay(5);
& & & & & & & && & if(k3==0)
& & & & & & & && & {
& & & & & & & && &&&while(!k3) ;
& & & & & & & & //P3 = 0;
& && && && &keyscan();
& & & & & & & && &&&}
& && && &&&}& &
加上 P3 = 0; 调试K3按键是有用的,另外你的按键扫描程序是每按一次执行一次,这肯定不行的
等待验证会员
09:38:38  
学习& && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && &&&
23:24:14  
噢,是不是因为k3按下去执行速度太快然后就不会去执行下面的
11:18:04  
助理工程师
17:19:56  
是不是因为k3按下去执行速度太快然后就不会去执行下面的
20:05:25  
谢谢分享!!!谢谢分享!!!谢谢分享!!!谢谢分享!!!谢谢分享!!!
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司基于51单片机的倒计时器设计
> 基于51单片机的倒计时器设计
基于51单片机的倒计时器设计
// 本程序的电路很简单就不画图了,就是8位数码管的段选接在P0口,//为了节约端口8个位接在了74hc138上,由P2.1 P2.0 P2.2控制译码器输出位选.//本程序完全测试通过.完整代码下载地址:http://www.51hei.com/f/djsq.rar/************************************************************************//************8位数码管倒计时显示 时间格式24&00&00~~00-00-00**************//************************************************************************/#include #define uchar unsigned char#define uint unsigned intsbit D0=P2^0; //定义数码管片选参数sbit D1=P2^1;sbit D2=P2^2;sbit D3=P1^2; //定义蜂鸣器输出引脚#define CLOCK_NUM 4 //动态定义闹钟的个数struct SAVE_TIME {uint save_uint save_uint save_};void key_scan_pro(void);void Displaypro(void);void Print_play_pro(void);struct SAVE_TIME save_time[CLOCK_NUM]={0};uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴极数码管0&9uchar StrTab[8]; //定义缓冲区static uint minute=0,hour=24,second=0; //定义并初始化为 24:00:00static uchar num=0;static uchar temp,count1=1;static uchar time_save_value=0;void delay(uint z) //按键消抖延时函数{uint x,y; for(x=z; x>0; x--) for(y=110; y>0; y--);}void hour_add_pro(void) //小时加一减一处理函数 KEY0{if(24==hour) { hour=24; minute=0; second=0; } //小时为24时,将分钟和秒置零else { hour++; }Displaypro();}void hour_sub_pro(void) //KEY1{if(0==hour) { hour=0; }else { hour--; } Displaypro();}void minute_add_pro(void) //分钟加一减一处理函数 KEY2{if(59==minute) { minute=59; }else{ if((24==hour)&&(minute==0)){} //分钟边界压力判断,当24:00:00,不允许往上加 else { minute++; }} Displaypro();}void minute_sub_pro(void) //KEY3{if(0==minute) { minute=0; }else { minute--; }Displaypro();}void second_add_pro(void) //秒加一减一处理函数 KEY4{ if(60==second) { second=60; } else //秒边界压力判断 当24:00:00,不允许往上加 { if((24==hour)&&(minute==0)) {} else { second++; } } Displaypro();}void second_sub_pro(void) //KEY5{if(0==second) { second=0; }else { second--; } Displaypro();}void begin_suspend_pro(void) //开始/暂停处理函数{ TR0 ^=0x1; }void time_save_pro(void) //定时值保存函数{if(time_save_value<CLOCK_NUM){ save_time[time_save_value].save_hour = save_time[time_save_value].save_minute = save_time[time_save_value].save_second = time_save_value++; if(CLOCK_NUM==time_save_value) //循环调用闹钟 { time_save_value=0; }}}void clock_judge_pro(void) //闹钟值判断函数{for(i=0; i< CLOCK_NUM; i++){ if((hour==save_time[i].save_hour)&&(minute==save_time[i].save_minute)&&(second==save_time[i].save_second)){ TR0=0; TR1=1; } }}void time_init_pro(void) //定时器初始化函数{ TMOD |=0x01; //定时器0 10ms inM crystal 用于计时 TH0=0xd8; //定时器初值10ms TL0=0xf0; ET0=1; //定时器/计数器T0中断允许位 TR0=0; //TCON寄存器的TR0位 1:启动T1/0 0:停止T1/0 TMOD |=0x10; //定时器1用于处理蜂鸣器 TH1=0xd8; //初值20ms TL1=0xf0; ET1=1; TR1=0; //定时器的允许位 EA =1; //开总中断}/********************************主函数***************************************/void main(void){ time_init_pro(); //调用定时器初始化函数 Displaypro(); //调用显示函数 while(1) { key_scan_pro(); //不断扫描按键 }}/********************************主函数***************************************/void key_scan_pro(void) //键盘扫描函数{ D3=1; Print_play_pro(); //调用显示处理函数 P1=0 temp=P1; temp&=0xf0; while(temp!=0xf0) //按键消抖 { delay(6); temp=P1; temp&=0xf0; while(temp!=0xf0) { temp=P1; switch(temp) { case 0xee: num=0; hour_add_pro(); //按键0,1控制小时 case 0xde: num=1; hour_sub_pro(); case 0xbe: num=2; //按键2,3控制分钟 minute_add_pro(); case 0x7e: num=3; minute_sub_pro(); default: } while(temp!=0xf0) { temp=P1; temp&=0xf0; } delay(6); while(temp!=0xf0) { temp=P1; temp&=0xf0; } } } P1=0 temp=P1; temp&=0xf0; while(temp!=0xf0) { delay(6); temp=P1; temp&=0xf0; while(temp!=0xf0) { temp=P1; switch(temp) { case 0xed: num=4; //按键4,5控制秒 second_add_pro(); case 0xdd: num=5; second_sub_pro(); case 0xbd: num=6; //按键6控制开始/暂停处理函数 begin_suspend_pro(); case 0x7d: num=7; //按键7控制定时保存函数 time_save_pro(); default: } while(temp!=0xf0) { temp=P1; temp&=0xf0; } delay(6); while(temp!=0xf0) { temp=P1; temp&=0xf0; } } }}
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一

我要回帖

更多关于 单片机数字时钟设计 的文章

 

随机推荐