当前位置:网站首页 > 技术经理的晋升之路 > 正文

51单片机时钟电路程序(51单片机时钟流程图)



1、单片机原理与应用课程设计总结报告题目:单片机电子时钟的设计与实现设计人员:学号:班级:指导老师:日期:- -题目与主要功能要求2整体设计框图及整机概述3各硬件单元电路的设计、参数分析及原理说明3软件流程图和流程说明4总结设计及调试的体会10附录图一:系统电路原理图11图二:系统电路PCB12表一:元器件清单13时钟程序源码14- - -题目:单片机电子时钟的设计与实现课程设计的目的和意义课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用电子课程中的理论知识解决实际性问题的能力。让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术

2、、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。课程设计的基本任务利用单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入、蜂鸣报警等知识,设计主单外要设控功制的能电子要时钟最基本要求1使)用6位数码管,前两位显示小时(24小时制),中间两位显示分钟,后两位显示秒。时钟每走1秒,秒数码管加1显示,60秒后分钟数码管加1显示,60分钟后小时数码管加1示。)设计单片机最小系统)掌握使用绘制原理图和布板的过程、方法和技巧。)掌握单片机开发软件(或)的使用和调试。编写并调试单片机定时及其中断程序,以实现电子时钟的功能。

3、设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。掌握硬件和软件联合调试的方法。完成系统硬件电路的设计和制作。完成系统程序的设计。10完成整个系统的设计、调试和制作。11完成课程设计报告。基本要求实现最基本要求的11部0分。键盘输入可以控制电子时钟的走时/调试。设计键盘输入电路和程序并调试。掌握键盘和显示配合使用的方法和技巧。提高发挥部分添加“闹时”功能,设计蜂鸣器闹铃电路和程序并调试。添加“整点闹时”功能。为走时准确性设计解决算法并编程实现。用液晶模块代替数码管显示,设计相应硬件电路和软件程序并调试。3使用专用时钟芯片,设计硬件电路和软件程序实现年月日和星期显示。整体设

4、计框图及整机概述整体设计框图整机概述1)开机为走时模式,正常显示时间。在此模式下整点闹时,定点闹时有效。2)共设置3个按键,分别为模式键、功能键1、功能键2。按动模式键,模式将在走时/调时/日期显示及调整/闹钟显示及调整4个模式下切换。3)走时模式下,按动功能键1/功能键2停止闹时。4)调时模式下,功能键1调整分钟数值,功能键2调整小时数值。5)日期显示及调整模式下,功能键1调整日期数值,功能键2调整月份数值。6)闹钟显示及调整模式下,功能键1调整闹钟分钟数值,功能键2调闹钟时钟数值。7)由于按键设定原因:只有2个功能键,年份调整功能取消,闹钟开关默认为开。8)年月日通过代码而不是外部芯片实现

5、。初始值201年012月24号。数码管显示101。29)由于开机时钟与闹钟都为00:0:00,0闹钟默认开启。开机会报时1分钟。各硬件单元电路的设计、参数分析及原理说明电源电路元件有限没有制作电源电路部分。使用开发板或者实验箱上的电源进行供电。按键参考书本的键盘接口电路原理图,采用Q的电阻防止输入口电流过大烧坏芯片。按键释放时,口通过Q电阻与电源相连,得到一个高电平。按下按键时,口接地,得到一个低电平。通过内部代码将其转换为正逻辑。模式键接口,功能键接口,功能键接口。单片机最小系统参考实验指导书与课本及网络资料设计按键电平复位。数码管首先口作为段码输出。由于口输出级无上拉电阻,故需添加一排阻为

6、其上拉电阻。其次采用共阳极数码管。段码端为低电平时导通,此时数码管向芯片口灌电流,为防止芯片烧坏,还需加个Q的限流电阻。考虑到数码管的亮度问题,采用了三极管做驱动电路。基极接上Q电阻后再与口相连()进行位选。发射极接电源,集电极接数码管位选。蜂鸣器蜂鸣器接口。由于使用的是有源蜂鸣器,代码的编写简单化了。只需对口清零与置位。口先接上Q电阻后再接三极管的基极。发射极接电源,集电极接蜂鸣器正极,蜂鸣器负极则接地。软件流程图和流程说明软件流程图1主)程序流程图流程图说明初始化:包括定时器赋初值,初始化各内存单元。开定时器中断,开中断,送段码表头地址给。- -)显示子程序流程图- - -)模式查询子程序

7、模式查询子程序闹钟显示及调整模式- -日期显示及调整子程序与闹钟显示及调整子程序流程图与调时模式子程序大同小异。日期显示及调整子程序送给的数据为日月年,按功能键日期加1按功能键月份加1至于数值的合法性在程序里有具体的判断。闹钟显示及调整子程序送给的数据为闹钟开关值闹钟分闹钟时,按功能键闹钟分加1按功能键闹钟时加1至于数值的合法性在程序里有具体的判断。- -)定时器中断子程序数值合法性在程序中处理与判断,流程图中不表现。N1秒到?YN1分到?YN1小时?YN1天?YNYN1年?Y1个月?*恢复现场保护现场时加1天加1分加1年加1秒加1月加1T1中断返回- -总结设计及调试体会硬件设计部分:首先要

8、通过计算与参考资料等决定参数。而后通过仿真软件等调试,确定参数无误后再开始用Protel99SE画原理图,进而生成PCB进行布板。软件设计部分:设计软件首先要考虑要做的功能,确定出合理的算法。合理的算法不仅要可以实现功能,而且在添加功能的时候要方便灵活。有的人为了实现某种功能用了各种各样的方法来实现,结果程序结构吃死,当想要添加功能或者修改其他功能的时候,将修改程序大部分结构,也就是说要破坏程序现有的结构。关于调试:Keil软件调试单片机程序的时候,编译通过并不代表程序是正确的。编译通过只能说明程序没有语法上的错误。进行软件仿真或者下载到开发板上进行调试,经常会出现各种各样的错误。许多超出预期

9、效果的现象往往是一些微小错误引起的。例如没有现场保护跟恢复现场等,所以养成良好的编程习惯也很重要。有些想达成某些功能而添加的语句,实际上确一点效果也没有。举个编程中的小问题:当有按键按下时,我们都要有软件防抖。正常的方法是调用一个延时。在实际调试中,要跳过这个抖动,需要100MS左右。如果使用正常的延时,会导致按键按下时CPU100MS内无法进行其他操作,也就是说。平均1S内100MS不调用显示子程序,这样就会导致亮度降低。这时候,考虑到显示子程序一次有十几毫秒,就特别写了一个调用7次显示的子程序来作为按键防抖的延时,实际上效果也是很不错的。这个想法就是在修改了多次程序未达到想要的效果(有按键

10、按下时显示亮度不降低)后最终想出来的办法。最后在做完板,焊完电路后,在接通电源之前,要用万用表仔细检查电路是否有连接错,以免烧坏芯片和数码管。五天以来的其他体会:态度要积极,不要认为很简单就不紧不慢。很多东西并不是自己设想的那么顺利,有时候一个小问题可以花上你半天甚至一天的时间。虽然自己在程序上并没遇到太大的问题,但是因为态度不够积极,对于没画过的图迟迟不去下手,在周四晚上才解决。本以为周五一天可以做完板并完成整机调试,可是各种突发事件让自己措手不及。发现板来不及做完后才将程序功能进行扩展。这是我在这次实验中的一个教训,也让我明白了对于自己不能太过于自信,态度决定一切。- -图一:系统电路原理

11、图cIItH*FFFFFFFH十h十- -图二:系统电路- -表一:元器件清单器件名称编号电阻电阻电阻电阻电阻电阻电阻电阻电阻电阻电阻电阻电阻电阻电阻电阻电阻电阻电阻晶振电容单片机电容电容二极管三极管三极管三极管三极管三极管三极管三极管排阻数码管数码管按键(小时)按键(分钟)按键(模式)电源插针按键(复位)蜂鸣器时钟程序源码年份的高位年份的低位月份日期每月最大天数时钟分钟秒钟键值模式标记走时调时日期显示及调整闹钟调整及闹钟开关/闹钟时钟闹钟分钟闹钟开关设为模式年高位赋初值年低位赋初值月份赋初值日期赋初值装入次中断清零小时清零分钟清零秒钟清零初始化模式关蜂鸣器闹钟默认开赋初值开中断启动送段码表头

12、AY;重复调用显示子程序扫描按键状态;查询当前模式;查询闹钟开关;保护现场重新赋计数初值未满10次,返回重置中断次数秒加转为码未满秒,返回秒清零分加转为码未满分,返回分钟清零时加转为码未满小时,返回小时清零转为码不是月,转跳不3是3月,转跳不4是5月,转跳不5是7月,转跳不6是8月,转跳不是10月转跳不是月,转跳天上限为返回不是月,转跳月,天上限天上限为天加转为码未满天数上限,返回天数置月份加转为码未满月,返回月份置年低位加转为码未满年,返回年低位清零年高位加转为码- -显=示=子=程=序未满年,返回年高位清零恢复现场;中断返回- -按=键=扫=描=程=序=模=式=查=询=程=序=闹=钟=开=关=/=查=询=- -调=时=程

到此这篇51单片机时钟电路程序(51单片机时钟流程图)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 如何快速批量删除文件名中相同的文字?(批量删除文件夹名称中的同一个字)2025-10-27 07:09:07
  • 反激电路图及其原理(反激电路工作原理视频)2025-10-27 07:09:07
  • 反激电路工作原理是什么(反激电路工作原理是什么样的)2025-10-27 07:09:07
  • 电路原理图gnd(电路原理图怎么看懂)2025-10-27 07:09:07
  • 多级列表级别是什么(多级列表中的级别是什么意思)2025-10-27 07:09:07
  • 读取pcap文件中的csi(pcap文件怎么看)2025-10-27 07:09:07
  • latex编辑器怎么换行(latex中的换行符)2025-10-27 07:09:07
  • yml文件语法(yml文件中的$date)2025-10-27 07:09:07
  • wps定义新的多级列表在哪里(wps2019定义新的多级列表在哪里)2025-10-27 07:09:07
  • max30102传感器(MAX30102传感器内部电路图)2025-10-27 07:09:07
  • 全屏图片