找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

数码管显示0-99 显示过程不停得闪烁到了99溢出

查看数: 10514 | 评论数: 8 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2016-10-13 22:17

正文摘要:

#include<reg52.h> sbit WEI = P1^6;     //位选 sbit DU = P1^7;     //段选 unsigned char  DISP_smg[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7 ...

回复

ID:94642 发表于 2016-10-15 09:26
学习,楼主加油
ID:111634 发表于 2016-10-15 08:15
实例93  99.9秒秒表
该案例可参考或移植


fosc=6MHz,按8-15电路,要求一键三用:按第一次,秒表运行计时,最大计时99.9s,超过复0按第二次,秒表停运行,但保持最后显示秒数。按第三次,秒表清0


Proteus仿真一下,确认有效。


以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版

若需99.99秒,硬件电路增加一位595。软件程序增加0.01s10ms)计数器,并修改相应计数显示程序。

书中电路和程序设计有详细说明,程序语句条条有注解。


电路设计

设计99.9秒秒表电路如图8-15所示,该电路与上例相似,删除3位显示、2个校正按键和4个秒闪烁发光二极管,就组成了99.9秒秒表电路。

80C51RXD端与控制秒十位输出显示的74HC595 DS端连接,595串行输出端QS与下一片595串行输入端DS端连接,595并行输出端Q0Q7与数码管笔段agDp端连接,依次输出3位秒数据;小数点固定在第2位,通过电阻接地;TXD端与3595 CLK端连接,串行输出时钟脉冲,控制595串行移位;P1.73595 RCK端连接,控制输出触发595片内缓冲寄存器中数据进入输出寄存器的正脉冲;int0与K0连接,按下K0,触发int0中断,控制秒表快速响应,立即计时。




74HC595特性已在实例30中介绍,此处不再赘述。
Proteus仿真
按实例1所述Proteus仿真步骤,打开Proteus ISIS软件,按表8-7选择和放置元器件,并连接线路,画出Proteus仿真电路如图8-16所示。










鼠标左键双击Proteus ISIS仿真电路中AT89C51,装入Keil调试后自动生成的Hex文件。

全速运行后,3LED显示00.0,然后计时运行。

按第一次K0(不闭锁),秒表按0.1s快速计时运行。最大计时99.9s,超过复0

需要说明的是,本例选用的BUTTON按键有两种运行功能:有锁运行和无锁运行。作有锁运行时,鼠标左键单击按键图形中小红圆点,单击第一次闭锁,第二次开锁。作无锁运行时,鼠标左键单击按键图形中键盖帽“   ”,单击一次,键闭合后弹开一次,不闭锁。

按第二次K0(不闭锁),秒表停运行,但保持最后显示秒数。

按第三次K0(不闭锁),秒表显示清0

终止程序运行,可按停止按钮。


ID:142399 发表于 2016-10-14 22:52
我正在写这个项目,正好借鉴下!&#128522;&#128522;&#128522;
ID:44900 发表于 2016-10-14 18:08

赞楼主
ID:102056 发表于 2016-10-14 17:30
wuyibin2003 发表于 2016-10-14 10:59
要暂停功能必须要用个开关

这个可以,方法一.按键按下去暂停数字不变,松手按键弹起又从暂停的数字继续计数。方法二.按一次暂停,按第二次继续计数。但是不知道怎么写暂停这个程序。
ID:142703 发表于 2016-10-14 13:11
1。闪烁到99,还是不断加1显示到99,定义一个变量不断加1,再拆分两位分别显示,变量加到99就不加就停了,大于99令变量等0就回零啊
ID:138155 发表于 2016-10-14 10:59
要暂停功能必须要用个开关
ID:142666 发表于 2016-10-13 23:55
闪烁是延时问题,99返回0,设置变量就可以。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表