发一下去年在Proteus上随手做的一个秒表
使用说明
待机状态下按
继续
按钮开始正计时,计到60秒自动停止待机状态下按
倒计时
按钮从60秒开始倒计时正(倒)计时中按
暂停
按钮暂停计时,按继续
按钮之后继续正(倒)计时正计时中按
暂停
按钮暂停计时,此时按倒计时
按钮会从当前值开始倒计时正计时运行状态下按
清零
,计数值清零,秒表继续从零计时;正计时暂停状态下按清零
,计数值清零,秒表保持暂停按
退出
按钮,计数值清零,秒表回归待机状态
电路说明
按键部分
P1口作按钮输入口,按钮不按时由于接了上拉电阻和VCC,P1.0~P1.4都处于高电平,当有按钮按下时,对应的位由于接地会变成低电平,所以读取P1口的值就可以判断是哪一个按钮按下。
显示部分
P0口作为段码输出口,这里用的是共阴极数码管,即要显示某一段管子要将对应的位置高电平,因此每一个数字会有对应的段码。
共阴极对应的段码如下:
其他部分
用于产生12MHz的晶振,使得定时器计数值加1的时候刚好对应的时间是加1μs
实际效果
这里放一个十几秒的正计时与暂停演示视频
主程序框图
1 | st=>start: 开始 |
源代码
1 | $NOMOD51 |
我很可爱,请给我钱
- 本文链接:http://kuuhaku.top/posts/Chronograph/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。