基于51单片机的LCD1602实现分秒计时总结

基于51单片机的LCD1602实现分秒计时总结

  • 完成要求
    1、实现分秒计时。
    2、按键控制分秒的调整(两个按键分别控制分秒增加)。
    3、实现整分报时功能(蜂鸣器响)。
    4、PCB板的绘制及焊接

  • 设计思路及实现原理
    1、首先实现分秒计时功能。为实现分秒计时功能,需要使用到单片机中的计时器功能,通过计时器来完成秒增加的运算,进而对分进行运算。
    2、其次在实现分秒自动计时的基础上添加按键分别对分秒进行控制。此步骤需要使用到按键检测,及按键消抖。因为在程序中使用两个返回值,所以按键对这两个返回值进行操作,在调秒过程中,需要使两返回值一致,否则分秒进位发生不一致。
    3、最后在完成整分报时功能。此步骤需要对分秒的值进行判断,因为整分时,秒位为0,分位进1,而在初始时刻(即00:00)不能报时,所以在分位不为0,秒位为0是蜂鸣器响。

  • 程序
    基于51单片机的LCD1602实现分秒计时总结_第1张图片
    基于51单片机的LCD1602实现分秒计时总结_第2张图片
    基于51单片机的LCD1602实现分秒计时总结_第3张图片
    基于51单片机的LCD1602实现分秒计时总结_第4张图片
    基于51单片机的LCD1602实现分秒计时总结_第5张图片
    基于51单片机的LCD1602实现分秒计时总结_第6张图片

  • 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单片机的LCD1602实现分秒计时总结)