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

写一个满足此电路图单片机c程序,实现60s倒计时。注:protues用到了74ls138译码器,cd4511.

发布网友 发布时间:2022-05-15 09:40

我来回答

2个回答

懂视网 时间:2022-05-15 14:02

本文主要给大家分享一段实例代码给大家详细介绍了JavaScript实现短信倒计时60s功能,非常不错,具有参考借鉴价值,需要的朋友参考下吧,希望能帮助到大家。

废话不多说了,直接给大家贴代码了,具体代码如下所示;


                                        

热心网友 时间:2022-05-15 11:10

//晶振:11.0592M T1-250微秒按键P30 P31 P32 P33
/*变量的定义:
show_val: 显示的值0-59
init_val: 初始值
state_val: 状态值 0-计数状态;1-设置状态;2-闪烁状态
shan_val:

key_val1: 四个按键的值 0-无键;1-设置键 2-增一键
3-减一键 4-确定键
T1_cnt: 定时器计数溢出数
cnt_val: 倒计时的数值
led_seg_code:数码管7段码
*/
#include "reg51.h" //包含文件
sbit P3_0=P3^0; //设置键
sbit P3_1=P3^1; //增一键
sbit P3_2=P3^2; //减一键
sbit P3_3=P3^3; //确定键
unsigned char shan_val; //闪烁时LED的开/关状态
unsigned char cnt_val; //保存倒计数的当前值
unsigned int T1_cnt; //保存定时器溢出次数
unsigned char key_val_new,key_val_old;//存放当前扫描的键和前一次按下的键值
unsigned char state_val; //状态值
unsigned char show_val; //存放需要在数码管显示的数字
unsigned char init_val; //暂存倒计数的初始值
char codeled_seg_code[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//----------延时--------------
void delay(unsigned int i) //大约延时i*2个微秒
{ while(--i);}
//-----------按键扫描-------------
unsigned char scan_key()
{ unsigned char i;
i=P3&0x0f;
delay(100); //延时,去抖动
if(i==(P3&0x0f))
{ if (P3_0==0)
{ while(P3_0==0); i=1; }
else
{ if (P3_1==0)
{while(P3_1==0); i=2;}
else
{ if (P3_2==0)
{while(P3_2==0); i=3;}
else
{ if (P3_3==0)
{while(P3_3==0); i=4;} }
} } }
else
{ i=0; }
return i;
EA=1;
}
//---------数码管显示--------------
void led_show(unsigned char v)
{
unsigned char i;
if(1) //动态扫描
{i=v/100; //取要显示的数的个位
P0=led_seg_code[i]; //转换为7段码
P2=0xfb; //显示个位
delay(15); //延时
i=(v%100)/10; //取十位
P0=led_seg_code[i]; //转换为7段码
P2=0xfd; //显示十位
delay(5); //延时
i=(v%100)%10;
P0=led_seg_code[i];
P2=0xfe;
delay(5);
}
else
{P0=led_seg_code[0]; //处于闪烁状态
if(shan_val)
{P2=0xff; } //将数码管的关闭
else
{P2=0xfc; } //将数码管的打开
}
}
//----------定时器T1中断服务程序---------------
void timer1() interrupt 3 //T1中断,250us中断一次
{ T1_cnt++;
switch (state_val)
{case 0:
if(T1_cnt>3999) //如果计数>3999, 计时1s
{ T1_cnt=0;
if(cnt_val!=0)
{ cnt_val--;}
else
{state_val=2;} //定时计数到0时,切换状态
show_val=cnt_val;
}
break;
case 2:
if(T1_cnt>1999) //如果计数>1999, 计时0.5s
{ T1_cnt=0; shan_val=!shan_val; } //闪烁状态
break;
}
}
//---------主程序----------------
main()
{init_val=200; //初始化各变量
cnt_val=init_val;
show_val=cnt_val;
state_val=0;
key_val_old=0;
T1_cnt=0;
shan_val=0; //初始化51的寄存器
TMOD=0x20; //用T1计时 8位自动装载定时模式
TH1=0x19; //250微秒溢出一次; 250=(256-x)*12/11.0592 -> x= 230.4
TL1=0x19;
EA=1; //打开总中断允许
ET1=1; //开中断允许
TR1=1; //开定时器T1
while(1)
{
key_val_new=scan_key(); //
255表示无键按下
if(key_val_new!=0)
{ // 只有当前扫描的键值与上次扫描的不同,才判断是有键按下
//key_val_old=key_val_new;
switch (key_val_new)
{ case 1: //设置键
state_val=1; //处于设置状态
TR1=0; //停止计时
show_val=init_val; //显示原来的倒计数初始值
break;
case 2: if(state_val==1) //只有在设置状态,增1键才有用
{ if (init_val>0) //更改原来的倒计数初始值
{init_val--; }
else
{init_val=200;}
show_val=init_val;//显示更改后的倒计数初始值
}
break;
case 3: if(state_val==1) //只有在设置状态,减1键才有用
{ if (init_val<200) //更改原来的倒计数初始值
{init_val++; }
else
{init_val=0;}
show_val=init_val; //显示更改后的计数初始值
}
break;
case 4: if(state_val!=0) //如果已处于计数模式,确认键不起作用
{ cnt_val=init_val; //将初始值赋给计数变量
show_val=cnt_val; //将计数变量的数字显示
TR1=1; //启动定时器T1
state_val=0; //将状态切换为计数模式
}
break;
}
}

led_show(show_val);
//动态扫描
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
《Lycoris Recoil》泷奈千里走单骑救千束,她们还真有夫妻相 美少女、热兵器——起底《lycoris recoil》的流量密码 西方的饮茶礼仪 天津 大众卡 什么叫“大众卡是按天扣费的” iPhone发送短信技巧你知道吗 收不到手机短信验证码怎么解决? 人体一共有多少快骨头! 人体由多少块骨头组成其中头颅骨、躯干骨、四肢骨、各是多少._百度知 ... 电测量及电能计量装置设计技术规程内容简介 大家谁知道配电盘安装规范是什么 腿小手臂粗跳郑多燕那套健身操 关于阴阳师和半仙的小说 如何瘦腿?? 网上说半仙和风逍遥是一对,我想知道他们俩怎么了? 本人自幼受风寒,致使脉络不通,导致两只胳膊异常瘦弱,请健身高手指导一下,如何快速有效的增长双臂肌肉 “蛇仙附体”女子被半仙和丈夫鞭打致死,世界上真的有牛鬼蛇神吗? 半仙和为你闯迷你什么关系? 商务笔记本哪个哪一款的比较好? 半仙和兔美美是什么关系 如何将胳膊练得有线条,但不粗壮,减掉肚子和腿上的赘肉 怀孕了请半仙好吗?听说寺庙和道观,半仙这种地方阴气比较重,最好别去是真的吗? 散仙和半仙是什么?有什么区别 有哪些必较好用的商务笔记本电脑 请推荐一款高端商务笔记本品牌、型号 请推荐一款高端商务笔记本,价格在一万左右的。 脸上到处都是绒毛,以后会长出来变黑或更多吗? 脸上汗毛如果非自然脱落(例如刮掉,用手拔掉,洗脸时洗掉等)会不会再生?再生时汗毛变粗黑变长? 前几年把脸上的汗毛都给刮掉了 差不对两年了 现在脸上的又黑又粗又硬怎么办 近一个月发现脸上汗毛变黑变长喝豆浆和吃维生素e有用吗 女生脸上汗毛多而且黑怎么办?可以用醋泡吗? 装linux之前必须要先装vmware吗? 任一心 个性签名诗 华夏心汇(北京)科技有限公司怎么样? 七雄争霸主题任一心谋国务商山守将第三关怎么过 为什么蛇在进化过程中没有形成正常的视觉系统却有了蛇信子系统? 男人之苦的剧情简介 唐僧师徒四人中,我最想评论的人 把蛇信子比作火苗的好处是什么? 一心的历史相关记载 读书难过的说说 求一个表示马上就会幸福的个性签名 这个“月+户”是什么字? 你会和前任复合嘛 一个挨着一个走的成语 克什么丰什么的成语谢谢了,大神帮忙啊 户十月=什么字 雷达数字信号处理的介绍 请问电子科技大学师兄,师姐,电子信息学院硕士有十个方向,选哪一个好,谢谢 我在新浪微博上建了一个微群,觉得管理不好现在我想退出不当群主 应该怎么退出? Jenny Gonzalez is excited to go to school these d