历史上的今天
今天是:2025年04月18日(星期五)
2020年04月18日 | 基于51单片机的LCD1602实现分秒计时总结
2020-04-18 来源:eefocus
完成要求
1、实现分秒计时。
2、按键控制分秒的调整(两个按键分别控制分秒增加)。
3、实现整分报时功能(蜂鸣器响)。
4、PCB板的绘制及焊接
设计思路及实现原理
1、首先实现分秒计时功能。为实现分秒计时功能,需要使用到单片机中的计时器功能,通过计时器来完成秒增加的运算,进而对分进行运算。
2、其次在实现分秒自动计时的基础上添加按键分别对分秒进行控制。此步骤需要使用到按键检测,及按键消抖。因为在程序中使用两个返回值,所以按键对这两个返回值进行操作,在调秒过程中,需要使两返回值一致,否则分秒进位发生不一致。
3、最后在完成整分报时功能。此步骤需要对分秒的值进行判断,因为整分时,秒位为0,分位进1,而在初始时刻(即00:00)不能报时,所以在分位不为0,秒位为0是蜂鸣器响。
程序






AD完成原理图及PCB制图
1、了解51最小系统所需元器件(晶振、复位、电源)。
2、对使用到的元器件建库封装。
3、新建工程,创建原理图,合理摆放元器件,完成元器件的连接,尽量减少导线的交叉,不要短接,不要漏接。好的原理图在PCB制图中帮助很多,走线问题上会少很多麻烦。可以在原理图上将所有引脚都连起来选择合适的走线。
4、创建PCB,如果在原理图完成很好,PCB元件的摆放可按照原理图摆放。最麻烦的也许就是连线,也许系统可给你推荐的引脚,不过这些引脚不一定是最好的选择,某些时候也会让你的路被封死。这时候你可以选择同样效果的引脚,换条路也是不错的选择。
5、根据实际合理选择封装,更改焊盘大小,走线粗细
完成过程中所遇到的问题
1、LCD1602的复位很重要,刚开始时LCD可以亮,但是亮的不正常(手动滑稽),第一行5x7点阵全亮,第二行不显示,这就是复位出现了问题,在后来调整使en=0之后才解决。如果LCD可以亮但是不显示可以调整偏压,也就是调整滑动变阻器。
2、在考虑如何做出分位和秒位也耗费了我很长时间,起初使用数组但是无法实现自动增加功能,一直停留在00:00,后来参考大神的代码才做出分位和秒位。在使用按键控制分秒增加过程,因为起初我只设置了一个返回值,此处我的逻辑也出现问题,我认为返回值由计时器控制,若使用外部中断改变返回值,回到断点时之前的操作是无效的。后来设置两个返回值,分别控制分和秒,并且抛弃使用外部中断,直接使用按键检测,按一下按键则分秒增加。然而两个返回值同样有两个返回值的麻烦,在使用按键调整秒的时候,控制秒的返回值kk增加,而控制分的jj不增加,导致后来运行时(例如16:54)本应变为17:00却变成了16:00,过一段时间之后(秒位并没有走过60s)变成了17:xx(xx自行想象)。所以秒调整时要保持jj、kk数值同步。这也完成了若kk每增加60,可完成分位进1。
3、在PCB制图之前一定画好原理图,画好原理图,画好原理图。尽可能完成所有连线,减少交叉。
上一篇:51单片机 时钟
下一篇:利用51单片机做一个简易时钟
史海拾趣
|
在start.s中, copy_loop: ldmia r0!, {r3-r10} stmia r1!, {r3-r10} cmp r0, r2 ble copy_loop 这里搬运过程,是以8个寄存器为单位的,(也就是8*4字节一次), 我看不懂的是,如果_START ...… 查看全部问答> |
|
首先强调下,我只是刚入门的。 我把PB下的startup.s移到ADS下 自己新建的project。make没有问题了。````之后,我就不知道要怎么验证了,请大家指导下,谢谢… 查看全部问答> |
|
YLP2440核心板内存能扩到256M吗. YLP2440核心板带有64M RAM, 由于项目需要扩到256M,请问这个好能实现吗,是不是仅添加两根地址线就可以了? 2440的BANK为128M,这样需要2个BANK,硬件上需要那些改动?… 查看全部问答> |
|
郑州单片机设计,嵌入式开发,电子项目设计 郑州智软科技公司 http://www.zhiruancn.com/ 为你提供定制化,个性化的电子产品设计方案。 包含需求定制----产品设计----产品加工等环节。 如有需要请联系 0371-66623272 或者QQ:1242335301 … 查看全部问答> |
|
寻求合作,基于三星S3C2410的WinCE5设备,解锁、安装中文系统和自己的App,有朋友愿意接这样的项目吗? 基于三星S3C2410的WinCE5设备,解锁、安装中文系统和自己的App,有朋友愿意接这样的项目吗? 谢谢!… 查看全部问答> |
|
用msp430f1611的捕获模式来测量方波的频率时发现:能正确测量的最高频率不超过200k。我用的是8M晶振。请问:用什么办法可以测量更高的频率呢,最好能到1M Hz?… 查看全部问答> |
|
我尽量给大家带来些新东西,一位叫做XPG 的国外网友花了好几周的时间用launchpad做个件大家很难想到的事情,他在G2553上移植了一个Ipv6的协议栈。 他使用了一个 ENC28J60 的网络MAC/PHY 模块,以他的说法是cheap off的打折货。 这位Launchpad的网 ...… 查看全部问答> |




