| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 单片机电子时钟设计(期末课程设计) -> 正文阅读 |
|
[嵌入式]单片机电子时钟设计(期末课程设计) |
目录 一、设计内容内容:用单片机控制实现基本数字电子钟的设计,扩展了4X4键盘和4位LED数码显示器,可用于显示和按键控制。 功能:能够显示时和分;可通过按键设置闹钟功能;可进行整点报时;可通过按键设置分校时。 二、总体方案设计2.1 功能分析数字电子钟系统可以分为主控制单元、复位电路、键盘电路、显示电路等。 2.2 各模块功能说明晶振电路的功能:每个单片机系统里都有晶振,全程是叫晶体震荡器,在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。 复位电路的功能:把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值。 键盘电路:根据4×4矩阵键盘,它是用四条I/O线作为行线,四条I/O线作为列线组成的键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为4×4个。这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。实现按键控制闹钟,设置时间的功能。 显示电路的功能:采用4位共阴极数码管驱动方式P2口相应的位置0 ?即选择要显示的数码管位,P0口相应的位置1即可显示相应的数码管段。负责显示时钟的时和分。 三、硬件系统设计? ? 使用了Produce软件进行硬件原理图的仿真设计。 ? ? 部分电路如图所示: ? a. 主控电路: 80C51单片机 ? ? ? ?? ? ?b. 晶振电路:89C51单片机内部的振荡电路是一个高增益反相放大器,引线XTAL1和XTAL2分别? ? ? ? ? ? 为反相振荡放大器的输入及内部时钟工作电路的输入和来自反相振荡器的输出,该反相放大? ? ? ? ? ? ?器可以配置为片内振荡器。 ? ? ? ? ? ? ? ? ?c. 复位电路:采用上电复位,上电后,由于电容充电,使RST持续一段时间的高电平,从而实? ? ? ? ? ? ? ? 现上电复位操作。这不仅能使单片机复位,还能是单片机的外围设备同时复位,当程序出? ? ? ? ? ? ? 现错误时,可以随时使电路复位。 ? ? ? ? ??? ? ? ? ??d. 键盘电路:当按键被按下时,相应的引脚被拉低,经扫描后,获得键值,并执行键功能程? ? ? ? ? ? ? ? ? ?序,因此通过按下同一个键,将执行不同的功能程序。 ? ? ? ? ? ? ? ? ? ??e. 显示电路:主要是数码管显示数字电子钟的时和分。?? ? ? ? ? ?? ? ? 四、软件系统设计? 4.1 程序总体流程图?? ? ? ?主函数的流程框图:先进行初始化设定初值,然后相关子程序的调用 ? ? ? ? ? ? ? ? 4.2 主要模块程序流程 ? ? ? ?1.调用中断服务子程序,循环次数++,因为定时时长为50ms,所以循环次数为20时,循环次数清0,秒++;秒为60时分加++,秒清0;分为60时,时++,分清0;时为24时,时清0,中断返回。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2.先确认弹簧消抖是否有键按下,之后判断扫描按键,不同的按键触发不同功能。 ? ? ? ? ? ? ? ? ?? ?五、源代码部分代码展示:
?六、测试结果展示? ? ??1. 时钟显示:最开始设置时间为12:59。 ? ? ? ? ? ? ? ? ? ? ??2 . 闹钟调时:手动按键调整时钟的时。 ? ? ? ? ? ? ?? ? ? ? ?3. 闹钟调分:手动按键调整时钟的分。 ? ? ? ? ? ? ? ? ? ? ?? ?4. 整点报时:时钟到整点蜂鸣器就会响,达到报时的效果。 ? ? ? ? ? ? ? ? ? 七、设计总结? ? ? ? ? 在做课程设计的过程中,我进一步认识到全面专业知识以及逻辑思考方式对研究问题的重要性,同时我也更加具体的掌握了课程设计的基本方法。经过不断的努力,我终于完成了这次课程设计,总的来说,我学到了不少的东西,知道了理论联系实际的重要性。在设计过程中我遇到了很多的困难,但没放弃,查阅了许多相关的书籍,自己独立思考和借鉴了前人的许多优秀成果,并与所学的知识紧密的结合了起来。我相信这过程对我今后的学习和工作有着积极的影响,并搭好了平台。通过这次设计,我对这门课有了更好的理解,尤其结合了这几年学的相关的专业知识,对各门课都有了一个较全面的理解。这必将对我以后的学习和工作有很大的帮助。本次课程设计的定时闹钟电路,可以满足人们的基本要求,但因为知识水平有限,此电路中存在一定的问题,虽可以通过增加电路解决,但过于复杂和现有水平有限,本次设计就未深入涉及,想要更好的改进电路,需要进一步的努力,如果有好的意见,希望老师给予支持指导。 ?篇幅有限,只写了一部分内容,若想获取源代码和课程设计报告的请戳👇https://download.csdn.net/download/weixin_45699237/74791451 protues仿真原理图戳👇 https://download.csdn.net/download/weixin_45699237/74791672 改进版protues原理图戳👇 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/13 7:22:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |