proteus闹钟课程设计要点
基于proteus仿真的数字钟
摘要数字钟是一个对1Hz频率进行计数的电路.振荡器产生的时钟旌旗灯号经由火频器形成秒脉冲旌旗灯号,秒脉冲旌旗灯号输入计数器进行计数,显示出时光.秒计数器电路计满60后触发分计数器电路,分计数器电路计满60后触发时计数器电路,当计满24小时后重零开端计数.一般由振荡器.分频器.计数器.译码器.数码显示器等几部分构成.振荡电路:重要用来产生时光尺度旌旗灯号.石英晶体振荡器可以进步时光旌旗灯号的稳固度.分频器:振荡器产生的尺度旌旗灯号频率很高,要得到“秒”旌旗灯号,需必定级数的分频器进行分频.计数器:有了“秒”旌旗灯号,则可以依据60秒为1分,24小时为1天的进制,分离设定“时”.“分”.“秒”的计数器,分离为60进制,60进制,24进制计数器,并输出一分,一小时,一天的进位旌旗灯号.译码显示:将“时”“分”“秒”显示出来.将计数器输入状况,输入到译码器,产生驱动数码显示器旌旗灯号,呈现出对应的进位数字字型.症结词数字钟振荡计数校订目次2.1计划比较42.2计划选择63单元模块设计73.3.1按键一:光标的移位与闪耀123.3.2按键二:时光的上翻让时光得到修正143.3.3 按键三:肯定154 体系调试155 体系功效和指标参数155.1 体系功效166 设计总结和领会17申谢18参考文献18附录数字电子钟电路总图19数字电子钟是一个用数字电路实现的时,分,秒计时的装配,与机械式时钟比拟具有更高的精确性.本次的数字电子钟的设计道理就是一种典范的数字电路,个中还包含了一些组合逻辑电路和时序电路.本次的数字电子钟的设计重要目标是为了让我们更好的控制数字电子钟的道理,从而控制逻辑电路的一些典范应用,学会本身制造电子钟.经由过程对数字电子钟得设计进一步的懂得各类中小范围集成电路的感化和适用办法.我们此次设计的数字电子钟是以24小时为一个时光周期,显示的满刻度是23时59分59秒,在六位7段共阴极的数码管上精确显示其响应的时,分,秒.并设置了三个时光的按键,分离控制时光的移位闪耀,时光的上翻修正,时光的确认.便利认为控制和设置时光.同时为了包管计时的稳固性和计时的精确性我们采取了用32.768K 的晶体振荡器来产生时钟旌旗灯号,来供给表针时光的基准旌旗灯号.数字电子钟的整体设计道理框图如图一所示:秒,然后主动清零从00时00分00秒开端从新计时,别的还加进了按键部分的操纵,便利人们对时光的控制,设置,调剂.秒旌旗灯号产生器是全部体系的时基旌旗灯号,它直接决议了计时体系的精度,在此次设计中采取的是石英晶体振荡器加分频器来实现.将得到的尺度旌旗灯号1HZ送入秒计数器中,秒计数器采取的是60进制的计数器,每累计都60秒得时刻就会发出一个分脉冲旌旗灯号,该旌旗灯号将作为分计数器的时钟脉冲,分计数器也是采取的60进制的计数器,每累计到60分钟,发出一个时脉冲旌旗灯号,该旌旗灯号将被作为时脉冲时钟脉冲,式计数器采取的24进制的计数器,如许就可以实现一天24小时的累计.2.1 计划比较计划一:555构成的多谢振荡器如图二因为f=1.43(R1+2R2)C1,我们可以经由过程调剂R1,R2,C1的值,转变其输出的频率.计划二:晶体振荡器分频电路石英晶体振荡电路1,采取频率fs=32768HZ的石英晶体图三D1,D2是反向器,D1用于振荡,D2用于缓冲整形.Rf为反馈电电阻(10—100M),反馈电阻的感化为COMS反相器供给偏置,使其工作在放大状况.电容C1,C2与晶体配合构成pi型收集,完成对振荡器频率的控制,并供给须要的180度相移,最后输出fs=32768HZ.图三2,多级分频电路1HZ将32768HZ脉冲旌旗灯号输入到CD4060(如图四:CD4060的引脚图介绍)构成的脉冲振荡的14位二进制计数器,所以从最后一级Q14输出的脉冲旌旗灯号频率为:32768/16384=2HZ.再经由二次分频,得到最后的1HZ 的尺度旌旗灯号脉冲,即秒脉冲.如图五,就是所得到最后的脉冲旌旗灯号.图四:CD4060引脚图图五:1HZ的旌旗灯号产生的波形2.2 计划选择1,采取555多谢振荡器长处:555内部的比较器敏锐度较高,并且采取差分电路情势,它的振荡频率受电源电压和温度变更的影响很小.缺陷:要精确的输出1HZ的脉冲,对电容和电阻的数值精度请求很高,所以输出脉冲既不敷精确也不敷稳固.2,采取晶体振荡分频电路长处:因为晶体的阻抗频率响应可知,它的选频特征异常好,有一个极为稳固的串联谐振频率fs,且等效品德因数Q很高.只有频率为fs的旌旗灯号最轻易经由过程,且其他频率的旌旗灯号均会被晶体所衰减.3,比较的成果因为振荡器是数字钟的焦点,振荡器的稳固度及频率的精度决议了数字钟计时的精确程度.为了达到设计请求,获得更高的计时精度,我们在设计中选用了计划二即用晶体振荡器构成振荡电路.一般来说振荡器的频率越高,计时精度就越高.如图六图六3单元模块设计时光计数电路的设计将分频器产生的尺度基旌旗灯号即秒旌旗灯号经由秒计数器,分计数器,时计数器,分离得到“秒”个位,十位,“分”个位,十位以及“时”个位,十位的计时输出旌旗灯号,然后送至译码显示电路,以便实现用数码管显示时,分,秒的请求.在设计中“秒”和“分”的计数器应当为六十进制的计数器,而“时”计数器应当为二十四进制的计数器.在设计中采取的10进制的计数器74LS160来实现时光的计数单元的计数功效.74LS160的芯片引脚图如图七所示:图七:74LS160引脚图P0,P1,P2,P3---计数器的输入端QO,Q1,Q2,Q3—计数器的输出端CEP,CET---计数器的计数端CP---计数器的触发端TC---计数器的进位端R---计数器的清零端PE----计数器的置数端74LS160计数器是同步计数,异步清零表1是74LS160的逻辑表:计数器部分计数的道理图八:图八:计数器的道理图此图为“秒”计数器部分,用两片74LS160来构成60进制的计数器,因为160本身就是10进制的计数器,故在“秒”个位当主动的加到10时就会主动清零,同时向“秒”十位的计数器的进位,在这片160当“秒”十位和个位分离显示到“5”和“9”时向下一级的“分”计数器进位.同应当“分”的十位和个位分离显示“5”和“9”时向“时”计数器进位.当“时”计数器的十位和个位分离显示“2”和“4”时用反馈清零的办法将其清零.其“分”计数器,“时”计数器的道理图同“秒”计数器的道理图大致雷同.设计中“时”,“分”,“秒”的显示是选择共阴极的七段数码管显示的.共阴极七段数码管译码显示电路是将计数器输出的8421BCD码译成数码显示所须要的高下电平,其引脚如图九.在译码显示电路中采取的是CD4511-7段译码驱动器,其芯片的引脚如图十.译码器的A,B,C,D分离与十进制的计数器的四个输出端相连接a,b,c,d,e,f,g即为驱动七段数码管的旌旗灯号.其依据A,B,C,D所得的计数旌旗灯号,数码管就显示出相对应的字型.图九:共阴极七段数码管的引脚图图十:CD4511的引脚图个中A,B,C,D---BCD码得输入端a,b,c,d,e,f,g—译码的输出端,输出为“1”有用,用来驱动共阴极LED数码管.LT—测试输入端,LT=“0”时,译码输出全为“1”BI—消隐输入端,BI=“0”时,译码输出全为“0”LE—锁定器,LE=“1”时译码器处于锁定(保持)状况,译码器输出保持在LE=0时的数值,LE=0为正常译码其译码的显示电路如图十一所示:图十一:译码器的驱动显示电路三个按键的电路本次设计还用到了按键部分,设计顶用到了三个按键,其功效分离是移位并闪耀,时光的上翻,时光的肯定.设置这三个按键的目标其主如果为了人们能很好的控制和调剂时光.便利人们对时光的调剂.按键部分主如果采取各类逻辑门与计数芯片,译码芯片的有理联合来实现各个按键的功效的.如图十二图十二:三个按键按键一:光标的移位与闪耀认为部分:下之后计数器停滞计数即在这里给“秒”计数器输入的无效的旌旗灯号脉冲,此时数码管保持先前记下的时光不在走动.采取计数器160和译码器138的联合.给计数器160送一个初始数1即此时D3D2D1D0=0001.将计数器的Q2Q1Q0分离与138的输入端CBA相连接.且在138输出端的Y0接一个反相器包管在正常的情形下计数器能正常的计数.将输出端得Y0,Y1,Y2,Y3进行与运算,并将输出的值与产生的旌旗灯号脉冲进行与运算.在未按下按键的时刻则不会影响到脉冲的正常输入,计数器的正常计数.个中74LS138的引脚图如图十三:图十三:74LS138引脚图A2,A1,A0—译码器的3位二进制输入端Y0,Y1,Y2,Y3,Y4,Y5,Y6.,Y7—译码器的8个输出旌旗灯号,并且输出的均为低电平有用.S3,S2,S1—译码器的三个使能端,当S1=1,且S2=0,S3=0时,译码器处于正常的工作状况.闪耀部分:因为要使光标移位,须要断定认为在了那只数码管上,所以想到使数码管闪耀的办法,产生显著的视觉后果从而精确的断定须要转变那只数码管的时光值.斟酌到译码器CD4511的一个使能端BI,当BI 为高电平的时刻会产生消隐的现象.故在使数码管闪耀的这一功效,选择从译码器查找办法.数码管的闪耀与高下脉冲相连.当按键一被按下之后,译码器138的输出端Y1,Y2,Y3的值不竭的变更且有且只有一个为有用的点平0.当它们分离与旌旗灯号脉冲进行或运算后输出的的成果取决与旌旗灯号脉冲,当脉冲为高点平的时刻则数码管就熄灭,当脉冲输出的是低电平的时刻数码管就点亮.如斯的亮灭亮灭…….从而达到视觉上的数码管的闪耀功效.按键一电路如图十四,十五,十六图十四:计数器与138的联合图十五:与运算产生kk控制旌旗灯号脉冲图十六:光标的闪耀按键二:时光的上翻让时光得到修正按键二的功效主如果修正时光.在这里让时光上翻转变即当按键二被按下一次对应闪耀的数码管的值就加一次,一向到所得的值是我们本身想要的值为止.按键二必须在按键一被按下之后才有用.故当按键一被按下后译码器Y1,Y2,Y3有且有一个输出的是有用的低电平,按键二被按下后也会得到一个有用的低电平.将Y1,Y2,Y3分离与按键二得到的低电平进行或运算,并在得到的成果后面加一个反相器,如许就只有当输出的值均为0时才干得到1,如许就可以得到三个旌旗灯号clk1,clk2,clk3.同时要使计数器加数,只要给响应的计数器输入有用的正脉冲就可以了.故在设计中将得到的三个旌旗灯号对应的与计数器的脉冲输入相连接.如图十七:图十七:产生有用的信按键三:肯定按键三的功效就是肯定键即恢复正常有用的脉冲旌旗灯号,让计数器正常的计数,译码器正常的译码,数码管正常的显示时光.使按键部分的那些功效都消掉.当按键三被按下后即立时得到一个低电平的旌旗灯号.将按键三得到的旌旗灯号与计数器的清零端相连接,即可控制其的可否正常工作.从而让输出的kk为高电平,如许在kk与产生的旌旗灯号脉冲进行与运算的时刻就取决于产生的脉冲旌旗灯号.如许产生的脉冲旌旗灯号又恢复成为有用的脉冲旌旗灯号,使计数器正常的计数工作.4 体系调试单个元件的调试数码管共阴,共阳的检测:在proteus的仿真软件中将数码管的的a,b,c,d,e,f,g的随意率性一段或者几段置于高电平,数码管剩下的另一管脚置于低电平,假如数码管发亮且输出的字符是对应输入的字符的,那么此数码管为共阴数码管.假如数码管不亮,没有反响则解释数码管是共阳的数码管.时钟电路的调试将晶体振荡器电路产生的旌旗灯号脉冲经由过程proteus软件进行仿真.1,将仿真的示波器记到晶体振荡电路的波形的输出端,在示波器上显示出波形旌旗灯号的频率为32768HZ.2,再将仿真的示波器接到经由CD4060分频器后的输出端,得到的输出波形旌旗灯号的频率为2HZ.3,最后将仿真里面的示波器接到二分频器后的输出端得到的旌旗灯号波形的频率为1HZ即为全部设计须要的尺度基旌旗灯号.计数电路的调试在秒计数器上参加一个尺度的1HZ脉冲旌旗灯号,在proteus仿真软件长进行计数器的精确计数的调试.这部分重要调试的是“秒”计数器,“分”计数器的60进制得到调试,当“秒”或“分”的计数达到“59”时,“秒”或者“分”可以或许精确的清零并向前一计数器进位.其数码管的显示如图十八:图十八:时光的精确显示5 体系功效和指标参数5.1 体系功效该电路重要实现了时光的精确计数,在设计中将计数器74LS160与译码器CD4511,计数器74LS160和译码器74LS138,分频器与晶体振荡电路有用的分散在了一路,得到比较精确的时光显示.此外,加上三个按键的设置,便利了人们随时对时光的调剂,从而更好的控制时光.1.基旌旗灯号的频率1HZ2.电路供电+5v3设计总结和领会本次课程设计经由为期2周的不懈尽力,今朝根本达到了预期的请求,可以或许精确的以一秒为周期的在数码管上显示时光,并且三个按键也能精确的实现它们各自的功效,让人们能很好的调节时光.在设计中所采取的各个芯片都在运行很好的实现了它们各安闲设计中的功效感化.全部设计的道理简略,靠得住机能高,成本低,功效很轻易实现,并且实现的后果也异常的优越.因为此次设计是在放假时代自力完成的,所以在各模块之间的连接上,以及某些参数的肯定上可能还消失必定的问题.但经由过程此次设计,收成也颇多.总体上来说此次设计电路道理其实不难,但是在设计进程固然许多器械本身明确该那么做,但是在真正的应用中倒是其实是无从下手,碰到的许多小问题比本身想象中的要庞杂得许多,让本身疑惑是不是斟酌错了或者是走错了偏向.在设计中,许多芯片的功效是本身不是很熟习的,不合芯片之间的连接更是让本身觉得生疏.比方,在晶体振荡电路中产生的32768HZ的旌旗灯号与分频器CD4511的链接,分频的道理对当时设计本身来说是很隐约的,但是经由过程讯问同窗和先生后让本身对分频的道理有了懂得,并且还从许多的办法中选择了32768HZ的晶体振荡器和CD4511分频器来产生尺度的基旌旗灯号.在计数器的选择上,固然本身对这部分比较熟习,但是当真正的接触它时,才知道许多的器械不是本身想象中的那样轻易,许多的小错误就让本身觉得寸步难行.经由过程不竭的查阅材料懂得选择了十进制的74LS160实现了精确的计数功效.在按键部分,这是全部设计让我受益最多的部分,按键部分是本身在设计最后才做的部分,刚开端真的是无从下手,感到斟酌的器械许多,并且许多的器械本身又不会.在先生和同窗的帮忙下才让本身有了一个比较清楚的思绪,在设计中将计数器74LS160和译码器74LS138有机的联合来实现了三个按键的根本功效.经由过程此次的设计让本身熟习了许多器械,学会了许多器械,进修了本身已经学过的器械,也进修了本身没有接触过的器械.对计数器74LS160,译码器74LS138,CD4511,分频器CD4060都有了一个很清楚的熟习.同时不单对此次设计中应用到的芯片本身有了懂得,对其他得芯片如:74LS190,74LS161,触发器等也有懂得和熟习,对设计中的芯片的其他功效也有所懂得,如:计数器在必定的时刻也可以做为分频器应用等.此次为期两周的课程设计,让我对各类电路有所懂得,也让我懂得了关于数字时钟的道理和设计理念.经由过程本身的亲手实践,才让我熟习到本身的缺少.所以说,坐而言不如立而行,对于这些电路和连接照样须要本身亲手的现实操纵才会真正的懂得和控制,才会有深入的印象.致谢在这里我起首要感激我们这组的指导先生林竟力先生对我们的设计进程中的仔细指导.在设计和论文写作进程中,得到了先生的指导和点拨,使得我的理论和实践操纵才能都得到了进步.同时也要感激我们这和我一路合作的组员以及在我设计进程中碰到问题就教的同窗,他们的虚心帮忙和提示也是让我的设计能顺遂的完成的重要原因之一.【参考文献】[1] 康华光.[2]康华光.附录数字电子钟电路总图数字电子钟的总电路图。
C语言Lcd1602万年历闹钟Proteus仿真单片机毕业课程电子设计
C语言Lcd1602万年历闹钟Proteus仿真单片机毕业课程电子设计
C语言Lcd1602万年历闹钟Proteus仿真单片机设计
AT89C51+Lcd1602+DS1302+独立按键+蜂鸣器
Lcd1602万年历闹钟。
时间信息来自DS1302,显示采用
Lcd1602,蜂鸣器提供闹音和按键提示音。
液晶上面显示年月日时分秒星期以及闹钟时间。
有时间调节和闹钟调节,可以调节年月日时分秒星期信息以及闹钟时间。
具体介绍如下。
1.做好的仿真图,如下图所示。
2.启动仿真后,先在液晶屏显示系统信息,然后在第二屏显示需要的万年历闹钟信息。
如下图所示!
3.通过单片机右侧的三个按键,即可设置闹钟。
如下图所示。
4.通过单片机左侧的四个按键,来设置年月日时分秒星期的值。
设置时,参数闪烁,同时会有按键提示音。
5.本设计默认套餐1,具体套餐详情请看下面的发货清单。
如需要其它套餐,请联系客服询问。
详情请:点击此处。
proteus数字钟课程设计
proteus数字钟课程设计一、课程目标知识目标:1. 理解数字钟的基本原理,掌握数字钟电路的设计方法。
2. 掌握使用proteus软件进行电路设计与仿真。
3. 了解数字电路中常见元件的功能和用法,如LED、开关、计数器等。
技能目标:1. 能够运用proteus软件设计并搭建一个简单的数字钟电路。
2. 学会使用proteus进行电路调试,排除基本故障。
3. 培养动手操作能力,提高实际问题解决技巧。
情感态度价值观目标:1. 激发学生对电子制作和科技创新的兴趣,培养创新意识。
2. 培养学生的团队合作精神,学会在团队中发挥个人优势,共同解决问题。
3. 增强学生对我国电子科技事业的自豪感,树立正确的科技价值观。
课程性质:本课程为实践性较强的课程,注重培养学生的动手能力和实际问题解决能力。
学生特点:学生具备一定的电子基础知识,对电子制作和科技创新感兴趣,但实践经验不足。
教学要求:结合学生特点,注重理论与实践相结合,通过课程设计,使学生能够将所学知识应用于实际操作中,提高综合运用能力。
在教学过程中,注重引导学生积极思考,培养其自主学习和创新能力。
课程目标分解为具体学习成果,以便后续教学设计和评估。
二、教学内容1. 理论知识:- 数字电路基础知识:数字信号与模拟信号区别,数字电路基本元件原理。
- 数字钟原理:时钟信号产生,计数器工作原理,显示电路设计。
2. 实践操作:- Proteus软件使用:基本操作界面,元件库的选择和使用,电路布线与仿真。
- 数字钟电路设计:使用Proteus设计数字钟电路,包括时钟源、分频器、计数器、显示驱动电路等。
3. 教学大纲安排:- 理论部分:第1-2课时,数字电路基础及数字钟原理学习。
- 实践部分:第3-4课时,Proteus软件操作与数字钟电路设计实践。
4. 教材章节:- 《电子技术基础》第3章:数字电路基础。
- 《电子技术基础》第4章:数字电路设计实例。
5. 教学内容列举:- 数字电路元件:门电路、触发器、计数器等。
89C51Proteus仿真数字闹钟报告
数字电子钟一、LED数字电子钟介绍一、设计LED数字电子钟的目的目前市场上提供的不管是机械钟仍是石英钟在晚上无照明的情形下都是不可见的。
要明白当前的时刻,必需先开灯,故较为不便。
此刻市场上也显现了一些电子钟,它以六只LED 数码管来显示时分秒,与传统的以指针显示秒的方式不同,违抗了人们传统的适应与理念,而且这种电子钟一样是采纳大型显示器件,适合于银行、车站等公开场合,且外观设计欠美观,很少进入百姓家庭,另外,不管是机械钟、石英钟仍是电子钟。
都存在着一起的问题:时刻误差。
针对以上存在的问题,咱们设计了一款采纳LED显示器件显示的电子时钟,有效克服了时钟存在的误差问题。
二、LED数字电子钟的特点和功能(1)、设计特点:本LED电子按时闹钟是一种基于单片机技术的多功能、多用途的电子产品,有电子时钟、按时闹铃功能。
采纳LED显示加倍直观,是一个比较有效的电子产品。
(2)、要紧功能:能够显示24小时制“不时—分分—秒秒”,LED显示;能够方便的设定定不时刻闹铃功能,预设定不时刻到将发出闹铃声;能够修改时钟时刻的时、分、秒。
二、系统整体方案及硬件设计1、整体方案设计本LED电子数字闹钟,是以单片机及外围接口电路作为核心硬件,辅之外围硬件电路,用汇编语言设计的程序来设计并实现的。
依照AT89C51单片机的外围接口特点扩展成相应的硬件电路,然后依照单片机的指令设计出数字钟相应的软件,在利用软件来执行必然的程序实现数字钟的功能。
之因此用单片机来制作电子钟,是因为如此在设计制作简单而且功能多、精准度高,也可方便的扩充其他功能。
这次设计是利用AT89C51单片机为主控芯片,由七段数码管、晶振、电容、开关、喇叭等元件组成硬件电路,通过编写软件程序来实现和操纵的数字按时闹钟。
二、硬件设计整体的硬件系统结构框图如以下图所示:图1:硬件电路概念示用意图2:硬件电路框图3、主控芯片AT89C51AT89C51单片机由微处置器,存储器,I/O口和特殊功能寄放器SFR等部份组成。
proteu数字钟设计
实验五数字钟设计一、实验目的1.学习AT89S52内部定时/计数器的原理及应用2.了解使用单片机处理复杂逻辑的方法3.掌握多位数码动态显示的方法二、实验内容和要求用AT89S52单片机的定时/计数器T0产生一秒的定时时间,作为秒计数时间,当一秒产生时,秒计数加1。
开机时显示00-00-00的时间,开始计时;P1.0控制“秒”的调整,每按一次加1秒;P1.1控制“分”的调整,每按一次加1分;P1.2控制“时”的调整,每按一次加1个小时。
计时满23-59-59时,返回00-00-00重新计时。
P1.3用作复位键,在计时过程中如果按下复位键,则返回00-00-00重新计时。
三、实验主要仪器设备和材料安装Proteus仿真软件的PC机四、实验方法、步骤及结果测试1.在Proteus中搭建实验电路,如下图1-1、1-2所示:图1-1 实验电路图图1-2 控制模块2.AT89S52内部定时/计数器0的使用方法AT89S52单片机的内部16位定时/计数器是一个可编程定时/计数器,它既可以工作在13位定时方式,也可以工作在16位定时方式和8位定时方式。
只要通过设置特殊功能寄存器TMOD,即可完成。
定时/计数器何时工作也是通过TCON特殊功能寄存器来设置的。
在此设计中,选择16位定时工作方式。
对于T0来说,系统时钟为12MHz,最大定时也只有65536us,即65.536ms,无法达到我们所需要的1秒的定时,因此,必须通过软件来处理这个问题,假设取T0的最大定时为50ms,即要定时1秒需要经过20次的50ms的定时。
对于这20次计数,就可以采用软件的方法来统计了。
设定TMOD=00000001B,即TMOD=01H,设置定时/计数器0工作在方式1下面我们要给T0定时/计数器的TH0,TL0装入预置初值,通过下面的公式可以计算出TH0=(216-50000)/256TL0=(216-50000)MOD 256这样,当定时/计数器0计满50ms时,产生一个中断,我们可以在中断服务程序中,对中断次数加以统计,以实现数字钟的逻辑功能。
基于Proteus的单片机控制电子时钟电路设计与仿真
方案二:AT89S52是一个低消耗,高性能CMOS8为单片机,片内含4kBytes ISP的可反复撰写1000次的Flash只读程序存储器。主要性能有:与MCS-51单片机产品兼容、全静态操作:0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器、八个中断源、全双工UART串行通道、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符、易编程。
第三章
3.1
方案一:AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容.由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
2
现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走路精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用液晶显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能.
数字钟设计 proteus仿真
数字钟设计Digital clock design1.实验目的1.掌握数字钟的设计方法。
2.熟悉集成电路的使用方法。
2.实验内容及要求时钟显示功能,能够以十进制显示“时”、“分”、“秒”。
其中时为24进制,分秒为60进。
3.设计思路、芯片选择及单元电路功能简介1.设计思路:数字钟的设计可以分为4个单元电路来设计,分别为1Hz脉冲产生电路、数码管显示电路、60进制计数器电路、24进制计数器电路这四个单元电路。
2.芯片的选择:BCD——七段译码器74LS47十进制可逆计数器74192555定时器集成与门芯片74LS113.单元电路功能简介:①1Hz脉冲产生电路:图1 1Hz脉冲产生电路该单元电路是用由555定时器构成的多谐振荡器来产生的1HZ方波的电路,其中考虑到电路的“延时”效应,该电路产生的方波的频率并不是标准的1HZ方波,而是频率稍大于1Hz的方波。
它是为整个电路提供时钟源的,它的输出脉冲提供给秒单元电路的低位计数芯片。
②数码管显示电路:图2数码管显示电路该单元电路是用来显示一位数字的电路,它由一块数码管和一块数码管驱动芯片组成,它的输入信号由计数器提供。
③60进制计数器电路:图3 60进制计数器电路该单元电路由两片74LS192可逆计数器芯片、一个三输入与非门和一个非门构成的60进制计数器电路,它是为秒显示和分显示电路提供驱动信号的单元电路。
④24进制计数器电路:图4 24进制计数器电路该单元电路是由两片74LS192可逆计数器芯片和一个与门构成的24进制计数器电路,它的低位脉冲信号由分钟计数器单元电路的进位信号提供,它为小时显示电路提供驱动信号。
4.总电路图图5 总电路图5.仿真效果1.在接通电源之前,应保持开关SW1断开且SW2闭合,如下图所示:图6 SW1和SW2状态(1)2.接通电源后应先断开开关SW2,保持开关SW1断开状态不变,如下图所示:图7 SW1和SW2状态(2)3.在做完第二步之后,应保持开关SW2断开状态不变,闭合开关SW1,如下图所示:图8 SW1和SW2状态(3)在执行完以上三步之后,就是仿真的正确结果了,如下图所示:图9 总的运行效果6.实验结论在本次实验中,对于74LS192可逆计数器芯片来说,它本是十进制计数器,若用它构成六进制计数器,据理论知识,仅需要将它的输出端Q1和Q2端通过一个与门后反馈到清零端CR即可。
基于Proteus的数字电子钟的设计与仿真
基于Proteus的数字电子钟的设计与仿真一、设计目的与要求 (1)二、设计内容与方案制定 (1)三、芯片简介 (1)1、AT89C52 (1)2、AT24C02 (2)四、设计步骤 (3)1、硬件电路设计 (3)1.1.硬件电路组成框图 (3)1.2.各单元电路及工作原理 (3)1.3.绘制原理图 (5)1.4.元件清单列表 (6)2、程序设计 (7)2.1程序流程 (7)2.2主程序 (9)2.2.源程序 (10)五、调试与仿真 (22)六、心得体会 (23)七、参考文献 (23)一、设计目的与要求设计目的:通过课程设计,培养学生运用已学知识解决实际问题的能力、查阅资料的能力、自学能力和独立分析问题、解决问题的能力和能通过独立思考。
设计要求:设计一个时、分可调的数字电子钟、断电后将数据保存,开启后时间将从断电后时间继续行走。
二、设计内容与方案制定具有校时功能,按键控制电路其中时键、分键六个键分别控制时、分时间的调整。
按下小时数实现对小时数加减,按下分钟数实现对分钟数进行加减,并设置有复位键,启始键。
以AT89C51单片机进行实现秒、分、时上的正常显示和进位,其中显示功能由单片机控制共阴极数码管来实现,数码管进行动态显示。
通过AT24C02分别写入时、分、秒数据在断电后实现保存,在下次通电后将数据读出保持为断电前数据。
三、芯片简介1、AT89C52AT89C52是一个低电压,高性能CMOS8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系2、AT24C02AT24C02支持I2C,总线数据传送协议I2C,总线协议规定任何将数据传件为接收器。
数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。
主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,由于A0、A1和A2可以组成000~111八种情况,即通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上,通过进行不同的配置进行选择器件。
Protues电子钟设计报告
Protues电子钟设计报告学院机电学院姓名吕志军班级电信三班1.任务目的通过电字钟的设计与制作,前所学的单片机内部定时器资源、I/O端口、键盘和显示接口等知识融会贯通,锻炼独立设计、制作和调试应用系统的能力,深入领会单片机应用系统的硬件设计、模块化程序设计及软件调试方法等,并掌握单片机应用系统的开发过程。
2. 设计要求实现功能:1.八位数码管显示电子钟的时间(时钟,分钟,秒钟)。
2.具备调节时间的功能3.每到一小时的时候,蜂鸣器响一分钟。
3.系统方案选择1)单片机选型选用2块Mcs-51系列主流芯片AT89C51,内部带有4KB的Flash ROM,无须外扩程序存储器。
由于电子钟没有大量运算和暂存数据,片内128B的RAM可以满足设计要求,无须外扩片外RAM。
本设计我是用两块单片机共同控制实现功能的,第一块控制电子钟。
第二块控制蜂鸣器播放音乐一分钟,里面有三首歌可以选择。
八位数码管。
一个蜂鸣器。
4个开关。
2)计时方案采用芯片AT89C51内部时钟计时,具备显示时、分、秒。
虽然计时不是很准确,但是容易操作,适合我们初学单片机的同学们。
蜂鸣器响一分钟也是采用芯片AT89C51控制的。
内存三首音乐,可以选择播放。
3)软件控制利用芯片AT89C51内部定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时。
该方案节省硬件成本,且能够使读者对所学知识进行综合运用,因此本系统设计采用这一方案。
4)显示方案利用P1、P2口分别对八段数码管进行位显示和位选择。
这里采用动态显示方案。
5)按键选择功能第一块单片机的P0.0是对八位数码管显示的时分秒位选,P0.1是分别对时分秒进行加加的,P0.2是分别对时分秒进行减减的。
第二块单片机的P2.0是选择播放那首音乐的。
4.硬件设计硬件设计电路如图1.0所示,八位数码管分别接在第一块单片机的P1、P2口,蜂鸣器接在第二块单片机的P1.0口上。
第一块单片机的P0口接了控制时分秒的按键,并接上上拉电阻,以驱动八位数码管。
毕业设计(论文)-基于PROTEUS的多功能数字电子钟的设计
毕业设计(论文)-基于PROTEUS 的多功能数字电子钟的设计自动化专业综合设计报告设计题目:基于PROTEUS的多功能数字电子钟的设计所在实验室:指导教师:学生姓名班级学号撰写时间:成绩评定:一、设计目的利用单片机STC89C52,液晶显示器等实现时间的显示以及闹钟等功能的数字电子钟,数字电子钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,节省了电能。
因此得到了广泛的使用。
数字钟是一种典型的数字电路,包括了组合逻辑电路和时序电路。
通过设计加深对学习了的单片机和PROTEUS的认识。
二、设计内容(1)用PROTEUS画出原理图,并完成下列任务:(2)用6只LED数码管输出显示时、分和秒。
(3)可通过按键设置闹钟功能,且停闹无须手工操作。
(4)可通过按键设置分校时。
(5)写出详细的设计报告。
(6)给出电路的原理图、源程序,仿真实现。
三、设计步骤1 系统主要功能电子钟的主要功能有:整点报时;四只LED数码管显示当前时分;并且具有闹钟功能。
2 系统的硬件构成及功能电脑钟的原理框图如图1所示。
它由以下几个部件组成:单片机89C2051、电源、时分显示部件。
时分显示采用动态扫描,以降低对单片机端口数的要求,同时也降低系统的功耗。
时分显示模块以及显示驱动都通过89C2051的I/O口控制。
电源部分:电源部分有二部分组成。
一部分是由220V的市电通过变压、整流稳压来得到+5V电压,维持系统的正常工作。
图1 电子钟系统原理框图2.1 AT89C2051单片机及其引脚说明AT89C2051单片机是51系列单片机的一个成员,是8051单片机的简化版。
内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与Intel MCS-51系列单片机的指令和输出管脚相兼容。
由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。
基于Proteus的数字钟的设计与实现
基于Proteus的数字钟的设计与实现本系统采用小规模集成电路构成数字钟的硬件电路。
利用多谐振荡器产生时间标准信號,三个计数器(分别为60进制,60进制,24进制)用来设定“时”、“分”、“秒”信号,并输出分,小时,天的进位信号。
译码显示电路则用来将“时”“分”“秒”显示出来。
由于计数的起始时间不可能与标准时间一致,故需要在电路上加个校时电路可以对分和时进行校时。
另外,计时过程要具有报时功能,当时间到达整点前10秒开始,蜂鸣器有间隔地地响5秒钟。
标签:数字钟;振荡;计数;校正;报时0 引言数字电子钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。
数字电子钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
1.硬件电路设计数字钟的设计框图与原理如图1所示。
首先,用555多谐振荡器产生的方波脉冲信号,再用计数器分频得到1HZ的方波脉冲信号,作为时钟脉冲信号CP。
其次,设计出1个24进制计数器和2个60进制计数器分别连接7段数码管,用来显示时、分、秒。
接着,用2个数据选择器控制小时计数器和分钟计数器的时钟脉冲频率,完成快速校时校分的功能。
最后,用数据选择器选择整点报时和闹钟时间,控制扬声器振动发声。
1KHZ信号可通过555定时器的多谐振荡器来产生。
依据,取,可得。
取,取滑动变阻器。
有关分频,我选取3个异步清零同步置数的十进制计数器74ls160来完成分频功能。
时分秒数字显示电路需用两片74ls160组成60进制计数器,采取异步清零方式,则60作为清零状态。
即权重为40、20的通过与非门接清零端,即Q6和Q5通过与非门接清零端。
同理可得,24可作为24进制计数器的清零状态,即将输出端的Q5和Q2通过与非门接清零端。
校时校分电路即用数据选择器来选择计数器的低位片频率。
数据选择器的使能端由手动开关控制,开关断开则数字钟正常运行,闭合则用来校时校分。
基于proteus仿真的数字钟
摘要数字钟是一个对1Hz频率进行计数的电路。
振荡器产生的时钟信号经过分频器形成秒脉冲信号,秒脉冲信号输入计数器进行计数,显示出时间。
秒计数器电路计满60后触发分计数器电路,分计数器电路计满60后触发时计数器电路,当计满24小时后重零开始计数。
一般由振荡器、分频器、计数器、译码器、数码显示器等几部分组成。
振荡电路:主要用来产生时间标准信号。
石英晶体振荡器可以提高时间信号的稳定度。
分频器:振荡器产生的标准信号频率很高,要得到“秒”信号,需一定级数的分频器进行分频。
计数器:有了“秒”信号,则可以根据60秒为1分,24小时为1天的进制,分别设定“时”、“分”、“秒”的计数器,分别为60进制,60进制,24进制计数器,并输出一分,一小时,一天的进位信号。
译码显示:将“时”“分”“秒”显示出来。
将计数器输入状态,输入到译码器,产生驱动数码显示器信号,呈现出对应的进位数字字型。
关键词数字钟振荡计数校正目录1.前言 (2)2.系统总体方案设计 (3)2.1方案比较 (4)2.2方案选择 (6)3单元模块设计 (7)3.1时间计数电路的设计 (7)3.2译码显示电路 (9)3.3三个按键的电路 (11)3.3.1按键一:光标的移位与闪烁 (12)3.3.2按键二:时间的上翻让时间得到修改 (14)3.3.3 按键三:确定 (15)4 系统调试 (15)5 系统功能和指标参数 (15)5.1系统功能 (16)5.2系统指标参数 (16)6 设计总结和体会 (17)6.1设计总结 (17)6.2设计的收获体会 (17)致谢 (18)参考文献 (18)附录数字电子钟电路总图 (19)1.前言数字电子钟是一个用数字电路实现的时,分,秒计时的装置,与机械式时钟相比具有更高的准确性。
本次的数字电子钟的设计原理就是一种典型的数字电路,其中还包括了一些组合逻辑电路和时序电路。
本次的数字电子钟的设计主要目的是为了让我们更好的掌握数字电子钟的原理,从而掌握逻辑电路的一些典型运用,学会自己制作电子钟。
protues数字钟课程设计
protues 数字钟课程设计一、课程目标知识目标:1. 学生能理解数字时钟的原理,掌握使用Protues软件设计数字时钟电路的基本步骤。
2. 学生能描述数字时钟各部分功能,如时钟振荡器、分频器、计数器、译码器等,并解释它们的工作原理。
3. 学生能运用所学知识,分析并解决数字时钟电路设计中出现的问题。
技能目标:1. 学生能运用Protues软件进行电路设计,包括选择合适的元器件、搭建电路图、设置仿真参数等。
2. 学生能通过仿真实验,调试并优化数字时钟电路,确保其正常运行。
3. 学生能运用所学知识,对数字时钟进行创新设计和改进。
情感态度价值观目标:1. 学生对电子设计产生兴趣,培养探究精神和动手能力。
2. 学生在团队合作中,学会沟通、协作、分享,提高解决问题的能力。
3. 学生养成严谨的科学态度,注重实验数据的真实性,培养诚信意识。
课程性质:本课程为电子技术实践课程,旨在培养学生的实际操作能力和创新思维。
学生特点:学生为高中年级,具有一定的电子技术基础和Protues软件操作能力。
教学要求:结合学生特点,注重理论与实践相结合,提高学生的动手实践能力和创新能力。
将课程目标分解为具体的学习成果,以便在教学过程中进行有效指导和评估。
二、教学内容1. 理论知识:- 数字时钟原理:时钟振荡器、分频器、计数器、译码器等部分的功能和工作原理。
- Protues软件操作:介绍软件界面,元器件选择、放置、连接,仿真参数设置等。
2. 实践操作:- 数字时钟电路设计:按照原理图,在Protues软件中搭建电路图。
- 仿真与调试:进行电路仿真,观察并分析运行结果,调整电路参数,优化电路性能。
3. 教学大纲:- 第一阶段:数字时钟原理学习,预计2课时。
- 第二阶段:Protues软件操作教学,预计2课时。
- 第三阶段:数字时钟电路设计与仿真,预计3课时。
4. 教材章节及内容:- 第四章 电子时钟:学习数字时钟原理,了解各部分功能及工作原理。
proteus环境下的电子时钟设计
单片机课程设计说明书设计题目: proteus环境下的电子时钟设计系别:电控系专业班级:学生姓名:学号:指导老师:日期:电子时钟课程设计目录1.设计要求 (3)1.1实验目的 (3)1.2系统功能 (3)1.2.1基本功能 (3)1.2.2扩展功能 (3)2.系统设计 (3)2.1实验原理 (3)2.2实验分析 (4)2.2.1电路的总体设计 (4)2.2.2程序的总体设计 (4)3.单元电路设计 (6)3.1输入部分 (6)3.2输出部分 (7)3.3晶振与复位电路 (7)4程序设计 (8)4.1延时模块 (8)4.2中断服务程序 (9)4.3主程序 (11)5.系统仿真 (14)6.参考文献 (16)1.设计要求1.1实验目的1. 学习8051定时器时间计时处理、按键扫描及LED数码管显示的设计方法。
2. 设计任务及要求利用实验平台上4个LED数码管,设计带有闹铃功能的数字时钟1.2系统功能1.2.1基本功能1. 在4位数码管上显示当前时间。
显示格式“时时分分”2. 由LED闪动做秒显示。
3. 利用按键可对时间及闹玲进行设置,并可显示闹玲时间。
当闹玲时间到蜂鸣器发出声响,按停止键使可使闹玲声停止。
4.实现秒表功能(百分之一秒显示)1.2.2扩展功能1.日历功能(能对年,月,日,星期进行显示,分辨平年,闰年以及各月天数,并调整)2.音乐闹铃(铃音可选择,闹铃被停止后,闪烁显示当前时刻8秒后,或按键跳入正常时间显示状态)3.定时功能(设定一段时间长度,定时到后,闪烁提示)4.倒计时功能(设定一段时间长度,能实现倒计时显示,时间长减到0时,闪烁提示)5.闹铃重响功能(闹铃被停止后,以停止时刻开始,一段时间后闹铃重响,且重响时间的间隔可调)2.系统设计2.1实验基本原理利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断一次并当作一个计数,设定定时1秒的中断计数初值为100,每中断一次中断计数初值减1,当减到0时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。
proteus闹钟课程设计要点
题目:闹钟的设计学生姓名:黄书林学生学号: 1114010110 系别:电气信息工程学院专业:自动化年级: 11 级任课教师:张水锋电气信息工程学院制2013年10月目录摘要 (2)课程任务与要求 (2)方案论证 (2)闹钟流程图 (3)单元电路: (6)单片机芯片 (6)八位数码管显示电路 (7)闹钟调节按键电路 (9)晶振电路 (10)复位电路 (10)蜂鸣器体相电路 (11)总图: (12)心得体会 (13)参考文献 (13)附录 (13)闹钟的设计学生:黄书林指导教师:张水锋电气信息工程学院自动化摘要通过学习《基于Proteus的51系列单片机设计与仿真》让我知道我们不仅需要有过硬的理论知识,还应该有动手实践的能力。
并且是将理论结合实际, 提升到应用层面。
以后走上社会,还是会有很多新的知识是需要我们学习的,届时需要我们有比较强的自学能力。
此次《基于Proteus的51系列单片机设计与仿真》课程设计。
对理论结合实际的动手能力和自学能力有很强的体现。
本次设计是基于 AT89C51 单片机的数字闹钟的设计。
关键词:数字闹钟 AT89C51 Proteus。
课程任务与要求本次课程的任务就是要以51系列单片机为核心设计一个闹钟,它能通过单片机实现秒、分、小时的进位24 小时制,将当前时分秒在七段 LED 显示器上显示。
可设置闹钟的时间当前值对准一时间,设置闹铃时间,闹铃功能的关闭和开放。
要求:通过Proteus软件来实现设计的仿真,提高自己的编程水平,增加设计兴趣。
通过做自己喜欢的设计,提高自学能力。
为以后毕业走上工作岗位打下坚实的基础。
二方案论证经分析,计算器电路包括三个部分:显示部分八位数码管、闹钟时钟按键、单片机电路。
具体分析如下:1 显示部分1.1 LCD显示LCD1602作为一个成熟的产品,使用简单,模式固定,便于移植到各种类型的程序,微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,价格大概15块钱左右。
基于proteus的数字电子钟
基于proteus的数字电⼦钟零、设计要求1.时钟可以显⽰⼩时、分钟以及秒2.,四个按键可以实现时间的⼿动调节3.加⼊AT24C02,存储关机之前的时间,并且下次开机后可以通过某⼀按键将存储的时间读取出来⼀、硬件仿真⼆、程序设计⼆、程序部分1.IIC#include <I2C.h>/*开始信号*/void I2C_Star(){SDA = 1;SCL = 1;delay();SDA = 0;delay();SCL = 0;}/*停⽌信号*/void I2C_Stop(){SCL = 0;SDA = 0;delay();SCL = 1;delay();SDA = 1;delay();}/*写操作*/bit I2C_Write(uchar date){bit ack;//应答位uchar mask;for(mask=0x80;mask!=0;mask>>=1){if((date&mask)==0)SDA = 0;elseSDA = 1;delay();SCL = 1;//拉⾼让从机读信号delay();SCL = 0;//拉低准备写下⼀位}SDA = 1;//释放数据线,以检测从机应答delay();SCL = 1;ack = SDA;delay();SCL = 0;return (~ack);//返回1--应答返回0--⾮应答}/*读操作 + 应答*/uchar I2C_Read_Ack(){uchar date;//读到的⼀个字节uchar mask;SDA = 1;//确保数据线释放for(mask=0x80;mask!=0;mask>>=1){delay();SCL = 1;//拉⾼时钟线准备读date &= ~mask;delay();SCL = 0;}//读完给从机发送应答SDA = 0;delay();SCL = 1;//从机读⾛应答位delay();SCL = 0;return date;//返回读到的⼀字节}/*读操作 + ⾮应答*/uchar I2C_Read_NAck(){uchar date;//读到的⼀个字节uchar mask;SDA = 1;//确保数据线释放for(mask=0x80;mask!=0;mask>>=1) {delay();SCL = 1;//拉⾼时钟线准备读if(SDA==1)date |= mask;elsedate &= ~mask;delay();SCL = 0;}//读完给从机发送⾮应答SDA = 1;delay();SCL = 1;//从机读⾛⾮应答位delay();SCL = 0;return date;//返回读到的⼀字节}2. 按键#include "key.h"/*毫秒级延时*/void delay_ms(uint z){uint x,y;for(x=z;x>0;x--)for(y=125;y>0;y--);}/*按键扫描*/uint key_scan(){if(sec_up==0){delay_ms(10);while(!sec_up);return 1;}if(sec_down==0){delay_ms(10);while(!sec_down);return 2;}if(min_up==0){delay_ms(10);while(!min_up);return 3;}if(min_down==0){}if(read_e2==0){delay_ms(10);while(!read_e2);return 5;}return 0;}3.液晶显⽰#include "LCD1602.h"/*微秒级延时*/void delay_us(uint x){for(;x>0;x--)_nop_();}/*写命令*/void write_com(uchar com){P0 = com;rs = 0;lcd_en = 0;delay_us(100);lcd_en = 1;delay_us(100);lcd_en = 0;}/*写数据*/void write_date(uchar date){P0 = date;rs = 1;lcd_en = 0;delay_us(100);lcd_en = 1;delay_us(100);lcd_en = 0;}/*初始化*/void Init_lcd(){uchar i=0;rw = 0;//写⼊数据或指令write_com(0x38);//显⽰模式16X2delay_us(100);write_com(0x0c);//开显⽰,不显⽰光标 delay_us(100);write_com(0x06); //写⼊新数据光标右移 delay_us(100);write_com(0x01);//清屏delay_us(100);}/*显⽰位置设置*/void lcd_location(uchar location){write_com(0x80 | location);}4.主函数#include<reg52.h>#include "LCD1602.h"#include "key.h"#include "I2C.h"/**接⼝定义**/sbit START = P3^5;uchar sec,min,hour;uchar count = 0;uchar KeyCount = 0;/**数组定义**/uchar code lcd_date_1[]={" Design-By-WHH "};uchar code lcd_date_2[]={" 00:00:00 "};uchar display[6];uchar buf[3];//24C02缓存/**函数声明**/void display_lcd();void Display_Init();void Timer0_Config();void key_action();void E2PROM_Write(uchar *buf,uchar address,uchar len); void E2PROM_Read(uchar *buf,uchar address,uchar len); void Init_E2Data_Write();void Init_E2Data_Read();/*****//*主函数*/void main(){Timer0_Config();Init_lcd();Display_Init();while(1){if(START==0){if(!START){KeyCount++;switch(KeyCount%2){case 1:EA = 1;break;case 0:EA = 0;break;}}}key_action();display_lcd();}}/*掉电写数据包*/void Init_E2Data_Write(){buf[0] = hour;buf[1] = min;buf[2] = sec;}/*上电读数据包*/void Init_E2Data_Read(){hour = buf[0];min = buf[1];sec = buf[2];}/*显⽰函数*/void display_lcd(){display[0] = hour/10+0x30;display[1] = hour%10+0x30;display[2] = min/10+0x30;display[3] = min%10+0x30;display[4] = sec/10+0x30;display[5] = sec%10+0x30;lcd_location(0x44);//第⼆⾏第五个位置write_date(display[0]);write_date(display[1]);write_date(0x3a);//显⽰':'write_date(display[2]);write_date(display[3]);write_date(0x3a);//显⽰':'write_date(display[4]);write_date(display[5]);}/*显⽰初始化*/void Display_Init(){uchar i;lcd_location(0x00);for(i=0;i<16;i++){write_date(lcd_date_1[i]);}lcd_location(0x40);//第⼆⾏初始位置for(i=0;i<16;i++){write_date(lcd_date_2[i]);}}/*定时器配置*/void Timer0_Config(){TMOD &= 0xF0;TMOD |= 0x01;TH0 = 0x4c;//定时50msTL0 = 0X00;ET0 = 1;TR0 = 1;}/*按键动作操作*/void key_action(){uint key_value = 0;key_value = key_scan();if(key_value==1){min++;}if(key_value==2){min--;}if(key_value==3){sec++;}if(key_value==4){sec--;}if(key_value==5){Init_E2Data_Read();E2PROM_Read(buf,0x3a,sizeof(buf));}}/*E2PROM写多个字节*/void E2PROM_Write(uchar *buf,uchar address,uchar len) {while(len--){do{I2C_Star();if(I2C_Write(0xa0))break;//如果允许写⼊则退出检测循环I2C_Stop();}while(1);I2C_Write(address++);I2C_Write(*buf++);I2C_Stop();}}/*E2PROM读多个字节*/void E2PROM_Read(uchar *buf,uchar address,uchar len){do{I2C_Star();if(I2C_Write(0xa0))break;//如果允许写⼊则退出检测循环I2C_Stop();}while(1);I2C_Write(address);//写⼊要读取的地址I2C_Star();I2C_Write(0xa1);//选择读while(len>1)//读取字节数-1{*buf++ = I2C_Read_Ack();//给应答以继续读len--;}*buf = I2C_Read_NAck();//给⾮应答不继续读了I2C_Stop();}/*定时器0中断服务函数*/void Time0() interrupt 1{TH0 = 0x4c;//定时50msTL0 = 0X00;count++;if(count==20)//1s{Init_E2Data_Write();E2PROM_Write(buf,0x3a,sizeof(buf));//1s时间写⼀次数据到E2 count=0;sec++;}if(sec==60)//1min{sec = 0;min++;}if(min==60)//1h{min=0;hour++;}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目:闹钟的设计学生姓名:黄书林学生学号: 1114010110 系别:电气信息工程学院专业:自动化年级: 11 级任课教师:张水锋电气信息工程学院制2013年10月目录摘要 (2)课程任务与要求 (2)方案论证 (2)闹钟流程图 (3)单元电路: (6)单片机芯片 (6)八位数码管显示电路 (7)闹钟调节按键电路 (9)晶振电路 (10)复位电路 (10)蜂鸣器体相电路 (11)总图: (12)心得体会 (13)参考文献 (13)附录 (13)闹钟的设计学生:黄书林指导教师:张水锋电气信息工程学院自动化摘要通过学习《基于Proteus的51系列单片机设计与仿真》让我知道我们不仅需要有过硬的理论知识,还应该有动手实践的能力。
并且是将理论结合实际, 提升到应用层面。
以后走上社会,还是会有很多新的知识是需要我们学习的,届时需要我们有比较强的自学能力。
此次《基于Proteus的51系列单片机设计与仿真》课程设计。
对理论结合实际的动手能力和自学能力有很强的体现。
本次设计是基于 AT89C51 单片机的数字闹钟的设计。
关键词:数字闹钟 AT89C51 Proteus。
课程任务与要求本次课程的任务就是要以51系列单片机为核心设计一个闹钟,它能通过单片机实现秒、分、小时的进位24 小时制,将当前时分秒在七段 LED 显示器上显示。
可设置闹钟的时间当前值对准一时间,设置闹铃时间,闹铃功能的关闭和开放。
要求:通过Proteus软件来实现设计的仿真,提高自己的编程水平,增加设计兴趣。
通过做自己喜欢的设计,提高自学能力。
为以后毕业走上工作岗位打下坚实的基础。
二方案论证经分析,计算器电路包括三个部分:显示部分八位数码管、闹钟时钟按键、单片机电路。
具体分析如下:1 显示部分1.1 LCD显示LCD1602作为一个成熟的产品,使用简单,模式固定,便于移植到各种类型的程序,微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,价格大概15块钱左右。
1.2数码管显示数码管是一种半导体发光器件,其基本单元是发光二极管。
数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。
功耗小,显示单一。
适合时钟的显示。
一毛钱一个价格低,对于本次闹钟的设计来说性价比高。
所以采用八位数码管不用LCD1602.2 微控制电路2.1 AVR单片机2.1.1 AVR单片机的I/O口是真正的I/O口,能正确反映I/O口输入/输出的真实情况。
工业级产品,具有大电流(灌电流)10~40 mA,可直接驱动可控硅SSR或继电器,节省了外围驱动器件。
2.1.2.AVR单片机内带模拟比较器,I/O口可用作A/D转换,可组成廉价的A/D转换器。
ATmega48/8/16等器件具有8路10位A/D。
2.1.3 部分AVR单片机可组成零外设元件单片机系统,使该类单片机无外加元器件即可工作,简单方便,成本又低。
2.1.4 AVR单片机可重设启动复位,以提高单片机工作的可靠性。
有看门狗定时器实行安全保护,可防止程序走乱(飞),提高了产品的抗干扰能力。
实现功能非常强大,比51单片机实现功能多。
价格5.2元一块。
2.2 AT89C51单片机AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器D的单片机,单片机可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51单片机是很多嵌入式控制系统中灵活性高且价廉的芯片。
4.5元一块。
综上所述AT89C51操作简单,价格低采用AT89C51单片机。
三闹钟设计流3.1 主程序流程图图3.13.2时钟中断程序流程图图3.2四单元电路:4.1单片机控制芯片图4.1AT89C516RD+:该电路的核心控制元件是AT89C516RD+。
工作电压在3.3-5.5v之间。
最高时钟频率0-80hz,存储器字节64k。
P0口(32-39引脚)。
既可作为输入输出端口,又可作为地址数据复用总线使用。
当P0口作为输入输出口时,他是一个八位准双向口。
上电复位后处于开漏模式,P0口内部无上拉电阻所以P0口必须接10-4.7k上拉电阻,当作为地址/数据复用总线时。
无需上拉电阻。
EA(31脚)正五伏电源外接晶振或外部振荡器引脚:XTAL1 (19脚)当采用芯片内部时钟信号时,接外部时接外部12M晶振的一个引脚。
当采用外部时钟信号时,此脚应接地。
XTAL2 (18脚)当采用芯片内部时钟信号时,接外部时接外部12M晶振的一个引脚。
当采用外部时钟信号时,此脚应接地。
控制选通或电源复用引脚:RST(9脚):复位信号输入,vcc掉电时此脚可接上备用电源,在低功耗条件下保持内部RAM中数据ALE(30脚):ALE即允许地址锁存信号输出,当单片机访问外部存储器时该引脚的输出信号用于锁存P0口的低8位地址。
其输出的频率为时钟振荡频率的1/6,。
PSEN(29脚):访问外部程序存储器选通信号,低电平有效,用于外部存储器的读操作。
4.2 八位数码管显示电路图4.2LED数码管(LED Segment Displays)是由8个发光二极管构成。
按照一定的图形及排列封转在一起的显示器件。
其中7个LED构成7笔字形,1个LED构成小数点(固有时成为八段数码管)LED数码管有两大类,一类是共阴极接法,另一类是共阳极接法,共阴极就是7段的显示字码共用一个电源的负极,是高电平点亮,共阳极就是7段的显示字码共用一个电源的正极,是低电平点亮。
只要控制其中各段LED 的亮灭即可显示相应的数字、字母或符号。
数码管位数有半位,1,2,3,4,5,6,8,10位等等(及数码管的位数),了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。
图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。
颜色有红,绿,蓝,黄等几种。
LED数码管广泛用于仪表,时钟,车站,家电等场合。
选用时要注意产品尺寸颜色,功耗,亮度,波长等。
这是一个7段1位带小数点8引脚的LED数码管图2 引脚定义每一笔划都是对应一个字母表示,DP是小数点。
要是数码管显示数字,有两个条件:1、是要在VT端(3/8脚)加正电源;2、要使(a,b,c,d,e,f,g,dp)端接低电平或“0”电平。
这样才能显示的。
共阳极LED数码管的内部结构原理图图4:图4 共阳极LED数码管的内部结构原理图共阴极LED数码管的内部结构原理图:图5 共阴极LED数码管的内部结构原理图表1.1 显示数字对应的二进制电平信号LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位。
静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O口进行驱动,或者使用如BCD码二-十进位转换器进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O口多,如驱动5个数码管静态显示则需要5×8=40根I/O口来驱动,要知道一个89S51单片机可用的I/O口才32个呢。
故实际应用时必须增加驱动器进行驱动,增加了硬体电路的复杂性。
八位数码管是将上述以为八个并联封装而成,显示时、分、秒都分两位。
个位满十后就向前进一位。
分秒的十位满六十后也向前进一位。
显示小时两位在满二十四后重新计数。
4.3 闹钟调节按键电路图4.3程序中设置 5 个开关控制,从上到下 5 个开关KEY1——KEY5 的功能分别为KEY1,调节时间,每调一次分加1。
KEY2, 调节时间,每调一次时加1。
KEY3从其它状态切换至时钟状态。
KEY4切换至闹钟设置状态。
KEY5闹钟关闭和开放.4.4 晶振电路图4.4每个单片机系统里都有晶振,全程是叫晶体震荡器,在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。
选择合适的晶振很重要。
4.5 复位电路图4.5这个子模块是单片机的最小系统中的一部分,当程序出现乱码等情况时,按下复位程序重新开始运行,使计算继续进行。
4.6 蜂鸣器提醒电路图中RP1是一个九脚排阻为P0口增加驱动能力。
当达到定时时蜂鸣器会发声提醒。
D1为闹钟功能开关显示,当打开时二极管会法官提示。
五总图:此图为时钟电路界面此图为闹钟定时界面七实验改进与心得体会通过对数字闹钟的编程对硬件特别是单片机的原理都有了很深的了解。
更加深了对 C 语言的兴趣可以说整个文件中最麻烦的就是进位条件的判断。
编程中经常犯想当然的错误。
另外对于中断服务子程序的类型设置问题,由于以前对这个概念的理解留于表面,编程中出现了不少奇怪的错误。
再调试中尝试使用了分割法,对错误模块进行定位,再进行排查。
这次的课程设计使我认识到要将《基于Proteus的51系列单片机设计与仿真》的课学好不仅仅是要把书上的基本知识学好而且还要不断进行实践。
将所学的跟实践操作结合起来才能更好地巩固所学,才能提高自己实践能力.通过这次的设计使我认识到只停留在表面理解问题是很难使问题得到很好的解决的。
实践能力与理论知识同样重要。
所以在以后的学习中一方面我要不断的巩固自己所学的理论知识,一方面还要多参加实际操作工作以便提高自己的实际操作能力。
其实这次课程设计的最大收获应该是找到了解决问题的几个很好的途径。
1.讨论 2.通过网络,在网络上也收获了很多。
共享让我们共同进步。
此外,我学会了看硬件结构图,并学会了自己去独立的完善一个程序,对程序的效用等做思考。
并体会到问别人只能帮你开拓思路,真正解决问题还是要靠自己去摸索。
当然讨论是很好的学习途径,它会让你事半功倍.由于时间不是很充裕,程序中有很多值得改善的地方。
我尝试在其中加入更多的功能,但调试的结果没有。
参考文献【1】谭浩强著《C语言程序设计》第三版【2】康光华陈大钦张琳主编《电子技术基础模拟部分》第五版【3】康光华陈大钦张琳主编《电子技术基础数字部分》第五版【4】周荣富曾技主编《电子线路CAD》【5】《单片机原理与接口技术》清华版【6】《零基础学单片机C语言》【7】《物联网技术与应用》刘盼芝【9】《基于Protues的51系列单片机设计与仿真》陈忠平附录:#include<reg51.h>#define uchar unsigned char#define uint unsigned intuint tcount,u;data2[]={0,0,0,0,0,0,0,0};//uchar dat1[]={0,0,0,0,0,0,0,0};//时钟定时缓冲区uchar alarms[]={0,0,0,0,0,0,0,0};//闹钟定时缓冲区uchar dis_bit[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};// unsigned char code SEG7[11]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x BF,};sbit tminute=P1^0;sbit thour=P1^1;sbit shizhong=P1^2;sbit alarm=P1^3;sbit alarmswitch=P1^4;sbit P0_4=P0^4;sbit P0_0=P0^0;uint sw=0;uchar k;uchar ms=0;uchar flag=0;//闹钟切换标志位uchar sec=0;//闹钟计时秒uchar minit=0;//闹钟计时分struct time{uchar second;uchar minute;uchar hour;}time1;//定义名为time 的结构体..变量名time1uchar n,i;void delay(n)//1ms 延时函数{while(n--){for(i=120;i>0;i--);}}void modify(void)//时间调整{EA=0;if(thour==0){if(flag==0)//时钟调整每次加1{dat1[6]++;delay(200);if(dat1[6]>3&&dat1[7]==2){dat1[6]=0;dat1[7]=0;}if(dat1[6]>9){if(alarm==0)//闹钟键按下..显示00-00-00 {flag=1;alarms[0]=0;void init(void)//初始化{TMOD = 0x11;TH0 = 0xDB;TL0 =0xFF;//工作方式3..两个8 位定时/计时器..只有T0 有......定时24ET0 = 1;TR0=1;tcount=0;u=0;P0=0x00;EA = 1;//开放中断}void test(void){for(k=0;k<8;k++){if(flag==0){ P3=dis_bit[k];P2=SEG7[dat1[k]]; delay(1);P3=0X00;}if(flag==1){ P3=dis_bit[k];P2=SEG7[alarms[k]]; delay(1);P3=0X00;}}}void main(){init();delay(10);while(1) //括号的“1”表示while()判断条件为真..只要不是“0”..这个循环就一直循环{modify();test();}}void diplay() interrupt 1 //定时/计数器T0 中断{ time1.second=dat1[0]+dat1[1]*10;time1.minute=dat1[3]+dat1[4]*10;time1.hour=dat1[6]+dat1[7]*10;ET0=0;TR0=0;TH0 = 0xDB;TL0 = 0xff;TR0=1;tcount++;if(tcount==100){time1.second++;tcount=0;dat1[0]=(time1.second)%10; dat1[1]=(time1.second)/10; }if(time1.second>59){time1.second=0;time1.minute++;dat1[0]=(time1.second)%10; dat1[1]=(time1.second)/10; dat1[3]=(time1.minute)%10; dat1[4]=(time1.minute)/10; }if(time1.minute==60){time1.minute=0;time1.hour++;dat1[3]=(time1.minute)%10;dat1[4]=(time1.minute)/10;dat1[6]=time1.hour%10;dat1[7]=time1.hour/10;}if(time1.hour>23){time1.hour=0;}dat1[5]=10;dat1[2]=10;if((alarms[7]==dat1[7])&&(alarms[6]==dat1[6])&&(alarms[4]==dat 1[4])&&(alarms[3]==dat1[3])&&(sw==1)){P0=0x11;}ET0=1;}。