第一篇:电子钟课程设计心得
电子钟课程设计心得
这次电子技术课程设计,我很用心的去完成,当总原理图绘好的那一刻,心里有说不出的满足感。从这次课程设计中,我真正学到了很多有用的知识。
拿到课题后,我首先将《数字电子技术》中有关本次设计的内容复习了一遍,比如七段译码显示器、计数器、振荡器等等。然后根据设计要求,我去图书馆查阅了相关的资料,对整体框架做了一个初步的了解。做完准备工作后就正式开始设计与绘图。先要将没每一功能模块设计出来,再整体排版、连接。
这次设计让我熟练掌握了课本上的一些理论知识,时计数器我选用的是74ls290,我觉得用它来做时计数器比较合适,教材上关于74ls290的内容比较详细,因而设计起来也很顺手。我使用振荡器是由555定时器与rc组成,因为学过555定时器的应用,所以理解起来会容易一些。这次课程设计加强了我收集资料和充分利用资料的能力,原本想用74ls290或是74161做分秒计数器,结果发现画出来太复杂,连线太多。通过在图书馆查到的资料,在了解了中规模计数器74ls90的功能后,我认为选用它做分、秒计数器设计出来比较简单。还有校时电路的设计,我查到了关于这方面内容的详细资料,通过对资料的理解和分析,弄动其工作原理后,我设计出所须的电路。在这次课程设计中,另我最有成就感的是整点报时电路的设计。刚开始还真不知道怎么下手,找了一些资料但看不大懂,而且不知道怎样将报时电路与总原理图连接。我和我们组的同学一起讨论分析,仔细研究资料,终于把整点报时电路高清楚了。回过头来一想,其实设计这些电路也并不是很困难,而且还十分有意思。唯一遗憾的是没有将总原理图用protel话出来,因为时间关系只画了几个局部图。
课程设计是一个学习新知识、巩固加深所学课本理论知识的过程,它培养了我们综合运用知识的能力,独立思考和解决问题的能力。它不仅加深了我对电子技术课程的理解,还让我感受到了设计电路的乐趣。在这次设计中,我一点也不怕麻烦,反复设计、绘图与修改,就是希望能把这次课程设计做好。因此对我来说,这次课程设计是非常有意义的。电子钟课程设计心得(2):
数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。因此,我们此次设计与制做数字钟就是为了了解数字钟的原理,从而学会制作数字钟.而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法.且由于数字钟包括组合逻辑电路和时叙电路.通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法.二、设计要求(1)设计指标 ①时间以12小时为一个周期; ②显示时、分、秒; ③具有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间; ④计时过程具有报时功能,当时间到达整点前10秒进行蜂鸣报时; ⑤为了保证计时的稳定及准确须由晶体振荡器提供表针时间基准信号。(2)设计要求 ①画出电路原理图(或仿真电路图); ②元器件及参数选择; ③电路仿真与调试; ④pcb文件生成与打印输出。(3)制作要求自行装配和调试,并能发现问题和解决问题。(4)编写设计报告写出设计与制作的全过程,附上有关资料和图纸,有心得体会。
三、原理框图 1.数字钟的构成 数字钟实际上是一个对标准频率(1hz)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1hz时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字钟。(a)数字钟组成框图 2.晶体振荡器电路 晶体振荡器电路给数字钟提供一个频率稳定准确的32768hz的方波信号,可保证数字钟的走时准确及稳定。不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路。一般输出为方波的数字式晶体振荡器电路通常有两类,一类是用ttl门电路构成;另一类是通过cmos非门构成的电路,本次设计采用了后一种。如图(b)所示,由cmos非门u1与晶体、电容和电阻构成晶体振荡器电路,u2实现整形功能,将振荡器输出的近似于正弦波的波形转换为较理想的方波。输出反馈电阻r1为非门提供偏置,使电路工作于放大区域,即非门的功能近似于一个高增益的反相放大器。电容c1、c2与晶体构成一个谐振型网络,完成对振荡频率的控制功能,同时提供了一个180度相移,从而和非门构成一个正反馈网络,实现了振荡器的功能。由于晶体具有较高的频率稳定性及准确性,从而保证了输出频率的稳定和准确。
一、设计目的 数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。因此,我们此次设计与制做数字钟就是为了了解数字钟的原理,从而学会制作数字钟.而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法.且由于数字钟包括组合逻辑电路和时叙电路.通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法.二、设计要求(1)设计指标 ①时间以12小时为一个周期; ②显示时、分、秒; ③具有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间; ④计时过程具有报时功能,当时间到达整点前10秒进行蜂鸣报时; ⑤为了保证计时的稳定及准确须由晶体振荡器提供表针时间基准信号。(2)设计要求 ①画出电路原理图(或仿真电路图); ②元器件及参数选择; ③电路仿真与调试; ④pcb文件生成与打印输出。(3)制作要求自行装配和调试,并能发现问题和解决问题。(4)编写设计报告写出设计与制作的全过程,附上有关资料和图纸,有心得体会。
三、原理框图 1.数字钟的构成 数字钟实际上是一个对标准频率(1hz)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1hz时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字钟。(a)数字钟组成框图 2.晶体振荡器电路 晶体振荡器电路给数字钟提供一个频率稳定准确的32768hz的方波信号,可保证数字钟的走时准确及稳定。不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路。一般输出为方波的数字式晶体振荡器电路通常有两类,一类是用ttl门电路构成;另一类是通过cmos非门构成的电路,本次设计采用了后一种。如图(b)所示,由cmos非门u1与晶体、电容和电阻构成晶体振荡器电路,u2实现整形功能,将振荡器输出的近似于正弦波的波形转换为较理想的方波。输出反馈电阻r1为非门提供偏置,使电路工作于放大区域,即非门的功能近似于一个高增益的反相放大器。电容c1、c2与晶体构成一个谐振型网络,完成对振荡频率的控制功能,同时提供了一个180度相移,从而和非门构成一个正反馈网络,实现了振荡器的功能。由于晶体具有较高的频率稳定性及准确性,从而保证了输出频率的稳定和准确。(f)带有消抖电路的校正电路 6.整点报时电路 电路应在整点前10秒钟内开始整点报时,即当时间在59分50秒到59分59秒期间时,报时电路报时控制信号。当时间在59分50秒到59分59秒期间时,分十位、分个位和秒十位均保持不变,分别为5、9和5,因此可将分计数器十位的qc和qa、个位的qd和qa及秒计数器十位的qc和qa相与,从而产生报时控制信号。报时电路可选74hc30来构成。74hc30为8输入与非门。
四、元器件 1.四连面包板1块(编号a45)2.镊子1把 3.剪刀1把 4.共阴八段数码管6个 5.网络线2米/人 6.cd4511集成块6块 7.cd4060集成块1块 8.74hc390集成块3块 9.74hc51集成块1块 10.74hc00集成块4块 11.74hc30集成块1块 12.10mω电阻5个 13.500ω电阻14个 14.30p电容2个 15.32.768k时钟晶体1个 16.蜂鸣器10个(每班)1)芯片连接图 1)74hc00d2)cd4511 3)74hc390d4)74hc51d 2.面包板的介绍 面包板一块总共由五部分组成,一竖四横,面包板本身就是一种免焊电板。面包板的样式是: 面包板的注意事项: 1.面包板旁一般附有香蕉插座,用来输入电压、信号及接地。2.上图中连着的黑线表示插孔是相通的。3.拉线时,尽量将线紧贴面包板,把线成直角,避免交叉,也不要跨越元件。4.面包板使用久后,有时插孔间连接铜线会发生脱落现象,此时要将此排插孔做记号。并不再使用。
五、各功能块电路图 数字钟从原理上讲是一种典型的数字电路,可以由许多中小规模集成电路组成,所以可以分成许多独立的电路。
(一)六进制电路 由74hc390、7400、数码管与4511组成,电路如图一。
(二)十进制电路 由74hc390、7400、数码管与4511组成,电路如图二。
(三)六十进制电路 由两个数码管、两4511、一个74hc390与一个7400芯片组成,电路如图三。
(四)双六十进制电路 由2个六十进制连接而成,把分个位的输入信号与秒十位的qc相连,使其产生进位,电路图如图四。
(五)时间计数电路 由1个十二进制电路、2个六十进制电路组成,因上面已有一个双六十电路,只要把它与十二进制电路相连即可,详细电路见图五。
(六)校正电路 由74ch51d、74hc00d与电阻组成,校正电路有分校正和时校正两部分,电路如图六。
(七)晶体振荡电路 由晶体与2个30pf电容、1个4060、一个10兆的电阻组成,芯片3脚输出2hz的方波信号,电路如图七。
(八)整点报时电路 由74hc30d和蜂鸣器组成,当时间在59:50到59:59时,蜂鸣报时,电路如图八。
六、总接线元件布局简图 整个数字钟由时间计数电路、晶体振荡电路、校正电路、整点报时电路组成。其中以校正电路代替时间计数电路中的时、分、秒之间的进位,当校时电路处于正常输入信号时,时间计数电路正常计时,但当分校正时,其不会产生向时进位,而分与时的校位是分开的,而校正电路也是一个独立的电路。电路的信号输入由晶振电路产生,并输入各电路。简图如图九。
七、芯片连接总图 因仿真与实际元件上的差异,所以在原有的简图的基础上,又按实际布局画了这张按实际芯片布局的接线图,如图十。
八、总结 1.实验过程中遇到的问题及解决方法 ①面包板测试 测试面包板各触点是否接通。②七段显示器与七段译码器的测量 把显示器与cd4511相连,第一次接时,数码管完全没有显示数字,检查后发现是数码管未接地而造成的,接地后发现还是无法正确显示数字,用万用表检测后,发现是因芯片引脚有些接触不良而造成的,所以确认芯片是否接触良好是非常重要的一件事。③时间计数电路的连接与测试 六进制、十进制都没有什么大的问题,只是芯片引脚的老问题,只要重新插过芯片就可以解决了。但在六十进制时,按图接线后发现,显示器上的数字总是100进制的,而不是六十进制,检测后发现无论是线路的连通还是芯片的接触都没有问题。最后,在重对连线时发现是线路接错引脚造成的,改过之后,显示就正常了。④校正电路 因上面程因引脚接错而造成错误,所以校正电路是完全按照仿真图所连的,在测试时,开始进行时校时时,没有出现问题,但当进行到分校时时,发现计数电路的秒电路开始乱跳出错。因此,电路一定是有地方出错了,在反复对照后,发现是因为在接入校正电路时忘了把秒十位和分个位之间的连线拿掉而造成的,因此,在接线时一定要注意把不要的多余的线拿掉。2.设计体会 通过这次对数字钟的设计与制作,让我了解了设计电路的程序,也让我了解了关于数字钟的原理与设计理念,要设计一个电路总要先用仿真仿真成功之后才实际接线的。但是最后的成品却不一定与仿真时完全一样,因为,再实际接线中有着各种各样的条件制约着。而且,在仿真中无法成功的电路接法,在实际中因为芯片本身的特性而能够成功。所以,在设计时应考虑两者的差异,从中找出最适合的设计方法。通过这次学习,让我对各种电路都有了大概的了解,所以说,坐而言不如立而行,对于这些电路还是应该自己动手实际操作才会有深刻理解。3.对设计的建议 我希望老师在我们动手制作之前应先告诉我们一些关于所做电路的资料、原理,以及如何检测电路的方法,还有关于检测芯片的方法。这样会有助于我们进一步的进入状况,完成设计.机械课程设计.
第二篇:电子钟课程设计心得
这次电子技术课程设计,我很用心的去完成,当总原理图绘好的那一刻,心里有说不出的满足感。从这次课程设计中,我真正学到了很多有用的知识。
拿到课题后,我首先将《数字电子技术》中有关本次设计的内容复习了一遍,比如七段译码显示器、计数器、振荡器等等。然后根据设计要求,我去图书馆查阅了相关的资料,对整体框架做了一个初步的了解。做完准备工作后就正式开始设计与绘图。先要将没每一功能模块设计出来,再整体排版、连接。
这次设计让我熟练掌握了课本上的一些理论知识,时计数器我选用的是74ls290,我觉得用它来做时计数器比较合适,教材上关于74ls290的内容比较详细,因而设计起来也很顺手。我使用振荡器是由555定时器与rc组成,因为学过555定时器的应用,所以理解起来会容易一些。这次课程设计加强了我收集资料和充分利用资料的能力,原本想用74ls290或是74161做分秒计数器,结果发现画出来太复杂,连线太多。通过在图书馆查到的资料,在了解了中规模计数器74ls90的功能后,我认为选用它做分、秒计数器设计出来比较简单。还有校时电路的设计,我查到了关于这方面内容的详细资料,通过对资料的理解和分析,弄动其工作原理后,我设计出所须的电路。
在这次课程设计中,另我最有成就感的是整点报时电路的设计。刚开始还真不知道怎么下手,找了一些资料但看不大懂,而且不知道怎样将报时电路与总原理图连接。我和我们组的同学一起讨论分析,仔细研究资料,终于把整点报时电路高清楚了。回过头来一想,其实设计这些电路也并不是很困难,而且还十分有意思。唯一遗憾的是没有将总原理图用protel话出来,因为时间关系只画了几个局部图。
课程设计是一个学习新知识、巩固加深所学课本理论知识的过程,它培养了我们综合运用知识的能力,独立思考和解决问题的能力。它不仅加深了我对电子技术课程的理解,还让我感受到了设计电路的乐趣。在这次设计中,我一点也不怕麻烦,反复设计、绘图与修改,就是希望能把这次课程设计做好。因此对我来说,这次课程设计是非常有意义的。
电子钟课程设计心得(2):
数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
因此,我们此次设计与制做数字钟就是为了了解数字钟的原理,从而学会制作数字钟.而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法.且由于数字钟包括组合逻辑电路和时叙电路.通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法.二、设计要求
(1)设计指标
①时间以12小时为一个周期;
②显示时、分、秒;
③具有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间;
④计时过程具有报时功能,当时间到达整点前10秒进行蜂鸣报时;
⑤为了保证计时的稳定及准确须由晶体振荡器提供表针时间基准信号。
(2)设计要求
①画出电路原理图(或仿真电路图);
②元器件及参数选择;
③电路仿真与调试;
④pcb文件生成与打印输出。
(3)制作要求自行装配和调试,并能发现问题和解决问题。
(4)编写设计报告写出设计与制作的全过程,附上有关资料和图纸,有心得体会。
三、原理框图
1.数字钟的构成
数字钟实际上是一个对标准频率(1hz)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1hz时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字钟。
(a)数字钟组成框图
2.晶体振荡器电路
晶体振荡器电路给数字钟提供一个频率稳定准确的32768hz的方波信号,可保证数字钟的走时准确及稳定。不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路。一般输出为方波的数字式晶体振荡器电路通常有两类,一类是用ttl门电路构成;另一类是通过cmos非门构成的电路,本次设计采用了后一种。如图(b)所示,由cmos非门u1与晶体、电容和电阻构成晶体振荡器电路,u2实现整形功能,将振荡器输出的近似于正弦波的波形转换为较理想的方波。输出反馈电阻r1为非门提供偏置,使电路工作于放大区域,即非门的功能近似于一个高增益的反相放大器。电容c1、c2与晶体构成一个谐振型网络,完成对振荡频率的控制功能,同时提供了一个180度相移,从而和非门构成一个正反馈网络,实现了振荡器的功能。由于晶体具有较高的频率稳定性及准确性,从而保证了输出频率的稳定和准确。
一、设计目的
数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
因此,我们此次设计与制做数字钟就是为了了解数字钟的原理,从而学会制作数字钟.而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法.且由于数字钟包括组合逻辑电路和时叙电路.通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法.二、设计要求
(1)设计指标
①时间以12小时为一个周期;
②显示时、分、秒;
③具有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间;
④计时过程具有报时功能,当时间到达整点前10秒进行蜂鸣报时;
⑤为了保证计时的稳定及准确须由晶体振荡器提供表针时间基准信号。
(2)设计要求
①画出电路原理图(或仿真电路图);
②元器件及参数选择;
③电路仿真与调试;
④pcb文件生成与打印输出。
(3)制作要求自行装配和调试,并能发现问题和解决问题。
(4)编写设计报告写出设计与制作的全过程,附上有关资料和图纸,有心得体会。
三、原理框图
1.数字钟的构成
数字钟实际上是一个对标准频率(1hz)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1hz时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字钟。
(a)数字钟组成框图
2.晶体振荡器电路
晶体振荡器电路给数字钟提供一个频率稳定准确的32768hz的方波信号,可保证数字钟的走时准确及稳定。不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路。一般输出为方波的数字式晶体振荡器电路通常有两类,一类是用ttl门电路构成;另一类是通过cmos非门构成的电路,本次设计采用了后一种。如图(b)所示,由cmos非门u1与晶体、电容和电阻构成晶体振荡器电路,u2实现整形功能,将振荡器输出的近似于正弦波的波形转换为较理想的方波。输出反馈电阻r1为非门提供偏置,使电路工作于放大区域,即非门的功能近似于一个高增益的反相放大器。电容c1、c2与晶体构成一个谐振型网络,完成对振荡频率的控制功能,同时提供了一个180度相移,从而和非门构成一个正反馈网络,实现了振荡器的功能。由于晶体具有较高的频率稳定性及准确性,从而保证了输出频率的稳定和准确。
(f)带有消抖电路的校正电路
6.整点报时电路
电路应在整点前10秒钟内开始整点报时,即当时间在59分50秒到59分59秒期间时,报时电路报时控制信号。
当时间在59分50秒到59分59秒期间时,分十位、分个位和秒十位均保持不变,分别为5、9和5,因此可将分计数器十位的qc和qa、个位的qd和qa及秒计数器十位的qc和qa相与,从而产生报时控制信号。
报时电路可选74hc30来构成。74hc30为8输入与非门。
四、元器件
1.四连面包板1块(编号a45)
2.镊子1把
3.剪刀1把
4.共阴八段数码管6个
5.网络线2米/人
6.cd4511集成块6块
7.cd4060集成块1块
8.74hc390集成块3块
9.74hc51集成块1块
10.74hc00集成块4块
11.74hc30集成块1块
12.10mω电阻5个
13.500ω电阻14个
14.30p电容2个
15.32.768k时钟晶体1个
16.蜂鸣器10个(每班)
1)芯片连接图
1)74hc00d2)cd4511
3)74hc390d4)74hc51d
2.面包板的介绍
面包板一块总共由五部分组成,一竖四横,面包板本身就是一种免焊电板。
面包板的样式是:
面包板的注意事项:
1.面包板旁一般附有香蕉插座,用来输入电压、信号及接地。
2.上图中连着的黑线表示插孔是相通的。
3.拉线时,尽量将线紧贴面包板,把线成直角,避免交叉,也不要跨越元件。
4.面包板使用久后,有时插孔间连接铜线会发生脱落现象,此时要将此排插孔做记号。并不再使用。
五、各功能块电路图
数字钟从原理上讲是一种典型的数字电路,可以由许多中小规模集成电路组成,所以可以分成许多独立的电路。
(一)六进制电路
由74hc390、7400、数码管与4511组成,电路如图一。
(二)十进制电路
由74hc390、7400、数码管与4511组成,电路如图二。
(三)六十进制电路
由两个数码管、两4511、一个74hc390与一个7400芯片组成,电路如图三。
(四)双六十进制电路
由2个六十进制连接而成,把分个位的输入信号与秒十位的qc相连,使其产生进位,电路图如图四。
(五)时间计数电路
由1个十二进制电路、2个六十进制电路组成,因上面已有一个双六十电路,只要把它与十二进制电路相连即可,详细电路见图五。
(六)校正电路
由74ch51d、74hc00d与电阻组成,校正电路有分校正和时校正两部分,电路如图六。
(七)晶体振荡电路
由晶体与2个30pf电容、1个4060、一个10兆的电阻组成,芯片3脚输出2hz的方波信号,电路如图七。
(八)整点报时电路
由74hc30d和蜂鸣器组成,当时间在59:50到59:59时,蜂鸣报时,电路如图八。
六、总接线元件布局简图
整个数字钟由时间计数电路、晶体振荡电路、校正电路、整点报时电路组成。
其中以校正电路代替时间计数电路中的时、分、秒之间的进位,当校时电路处于正常输入信号时,时间计数电路正常计时,但当分校正时,其不会产生向时进位,而分与时的校位是分开的,而校正电路也是一个独立的电路。
电路的信号输入由晶振电路产生,并输入各电路。
简图如图九。
七、芯片连接总图
因仿真与实际元件上的差异,所以在原有的简图的基础上,又按实际布局画了这张按实际芯片布局的接线图,如图十。
八、总结
1.实验过程中遇到的问题及解决方法
①面包板测试
测试面包板各触点是否接通。
第三篇:电子钟课程设计
paequ 8002h
pbequ 8004h
pccequ 8001h
ORG0000HLJMP STARTORG 001BHLJMP INT
START:MOV R0,#71HMOV R1,#06H
CLEAR:MOV @R0,#00HINC R0
DEC R1
DJNZ R1,CLEARMOV 6DH,#00MOV 6CH,#00MOV 7DH,#00ACALL MIAOMOV 7EH,#00ACALL FENMOV 7FH,#00ACALL XIAOSHIINI8255:MOV DPTR ,#8003HMOV A,#81H
MOVX @DPTR,AINIT1:MOV TMOD ,#20HMOV TL1, #06HMOV TH1,#06HSETB TR1SETB ET1SETB EA
LOOP1: LCALL DISPLAYLCALL YMYJZLOOP1MOV R1,#70H
LCALL DDCJNE A ,#0FH,LOOP1CLRTR1
LOOP2:LCALL DIR
LCALL YMYJZLOOP2;清零;8255初始化;T1初始化;判断有无键按下;判断到底哪个键按下;判断有无键按下
LCALL DD;判断到底哪个键按下,并写进存储单元CJNE R1,#77H,LOOP;最后一位有没有输入完
SETBTR1
LCALL ZH
LJMPLOOP1
LOOP:LJMPLOOP2
INT:PUSH ACC;中断子程序
PUSH PSW
INC 6DH
MOV A,6DH
JNZ BJ
INC 6CH
BJ:MOV A,#0A0H
CJNE A,6DH,RETURN
MOV A,#0FH
CJNE A,6CH,RETURN
MOV 6DH,#00H
MOV 6CH,#00H
MOV A,#01H
ADD A,7DH
MOV 7DH,A
ACALL MIAO
MOV A,7DH
CJNE A,#60,RETURN
MOV 7DH,#0
ACALLMIAO
INC7EH
ACALL FEN
MOV A,7EH
CJNE A,#60,RETURN
MOV7EH,#00H
ACALL FEN
INC 7FH
ACALL XIAOSHI
MOV A,7FH
CJNE A,#24,RETURN
MOV 7FH,#00H
ACALL XIAOSHI
RETURN: POP PSW
POP ACC
RETI
MIAO: MOV A,7DH
DIV AB
MOV 75H, A
MOV 76H,B
RET
FEN:MOV A,7EH
MOV B,#10
DIV AB
MOV 73H,A
MOV 74H,B
RET
XIAOSHI: MOV A,7FH
MOV B,#10
DIV AB
MOV 71H,A
MOV 72H,B
RET
ZH:;输入值转换并送入相应存储单元
MOVA, 75H
MOVB,#10
MULAB
ADD A,76H
MOV7DH,A
MOVA, 73H
MOVB,#10
MULAB
ADD A,74H
MOV 7EH,A
MOVA, 71H
MOVB,#10
MULAB
ADD A,72H
MOV 7FH,A
RET
DISPLAY: MOVA,7DH;显示子程序
MOVB,#10
DIVAB
MOV75H,A
MOV76H,B
MOVA,7EH
DIVAB
MOV73H,A
MOV74H,B
MOVA,7FH
MOVB,#10
DIVAB
MOV71H,A
MOV72H,B
DIR:MOV R0,#76H
MOV R2,#01H
CLR C
DIR1:MOV A,R2
MOV DPTR,#pa
MOVX @DPTR,A
MOV A,@R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV DPTR, #pb
MOVX @DPTR,A
ACALL DELAY
DEC R0
MOV A,R2
RL A
MOV R2,A
CJNE R0,#70H,DIR1
RET
TAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H
YMY:MOV DPTR,#pa;判断有无键按下子程序
MOV A,#00H
MOVX @DPTR ,A
INC DPTR
mov DPTR,#pcc
MOVX A,@DPTR
CPL A
ANL A,#0FH
RET
DD:MOV R2,#0DFH;判断到底哪个键按下并送入相应单元子程序MOV R5,#4
MOV R4,#00H
LK4:MOV DPTR,#pa
MOV A,R2
MOVX @DPTR,A
INC DPTR
mov DPTR,#pcc
MOVX A,@DPTR
JB ACC.0,LINE1
MOV A,#00H
AJMP LKP
LINE1:JB ACC.1,LINE2
MOV A,#04H
AJMP LKP
LINE2:JB ACC.2,LINE3
MOV A,#08H
AJMP LKP
LINE3:JB ACC.3,NEXT
MOV A,#0CH
LKP:ADD A,R4
ACALL KEYIN
PUSH ACC
LK3:ACALL YMY
JNZ LK3
POP ACC
RET
NEXT:INC R4
MOV A,R2
RR A
MOV R2,A
DJNZ R5,LK4
KEND:RET
KEYIN:
MOVDPTR,#KEYTAB
MOVCA,@A+DPTR
MOV@R1,A
INCR1
RET
DELAY: MOV R7,#02H
DE:MOV R6,#0FFH
DJNZ R6, $
DJNZ R7,DE
RET
KEYTAB: DB 00H,0FH,0EH,0DH
DB 01H,02H,03H,0CH
DB 04H,05H,06H,0BH
DB 07H,08H,09H,0AH
END
;本程序用到的8255是这样接的:PA口接位选信号,也是列信号,;PB口接七段数码管,PC口只用到其低四位,接行信号。
;通过改变8255的初始化,接法不固定。
;运行时,F键可设置时间值(先停后设置)
第四篇:单片机课程设计电子钟
课程设计任务书
(指导教师填写)
课程设计名称电子技术课程设计学生姓名专业班级设计题目数字钟
一、课程设计的任务和目的任务:设计一台能显示“时”、“分”、“秒”的数字钟,周期为24小时;具有校时、正点报时功能。
目的:培养学生综合运用所学知识的能力,综合设计能力,培养动手能力及分析问题、解决问题的能力。
二、设计内容、技术条件和要求
1.数字钟可显示“时”、“分”、“秒”,且“时”、“分”、“秒”分别用两个数码管显示,计满23小时60分钟60秒,则全部清零。
2.具有校时功能,时、分校时用1HZ的信号进行,而秒较时用2HZ时钟信号进行。
3.整点能自动报时。要求报时声响为四低一高,最后一响为整点,前四声用500HZ信号让喇叭发声,最后一声用1000HZ信号。
4.根据上述要求,画出电路总框图,简述各部分工作原理。
5.进行各部分电路的设计,要求有分析过程、原理图表示。
6.对原理图进行仿真。
7.在实验箱上组装、调试。
8.撰写设计总结报告。
三、时间进度安排
第一周:理论设计。
周一上午布置设计任务,讲解设计要求,安排答疑、实验时间;
周三、周四下午课程设计答疑,其他时间学生查资料,做初步理论设计;
周五交设计初稿,由指导教师审查;
第二周:仿真和安装调试、撰写设计总结报告
周一、二学生进实验室做仿真实验,并根据实验情况修正设计图;
周三至周五做插接线实验,最后根据实验情况总结、撰写设计说明书。
四、主要参考文献
1.各种版本的数字电子技术基础教材
2.各种版本的电子技术课程设计指导书
3.集成电路手册
指导教师签字:年月日
第五篇:单片机课程设计-电子钟-完整
单片机课程设计
题目
专业 通信工程 班级 11级1班 学号 姓名
电 子 钟 设 计
单片机原理与应用课程设计
电子钟设计
功能要求:
1、设计一个电子时钟,要求可以显示时、分、秒,用户可以设置时间。
2、实现秒表功能。
功能描述
(1)
时钟。初始界面是时钟显示,按键S1是调时选位,按键S2是加数。根据不同的闪烁位置进行调节。
(2)
年与日,星期。在初始状态下,按下S2,则跳转,显示年月日,5S后跳回初始界面。若在年月日界面再次按下S2,则再次跳转,显示星期,几秒后跳转回初始界面。
(3)
秒表。在初始界面下,按下S3,则跳转,进入秒表。秒表功能键如下:S1 退出秒表;S2 停止开始计时;S3 秒表清零。
(4)
闹钟。在设置中设置好时间,最高位设为“1”则打开闹钟。最高位设为“0”则关闭闹钟。在闹钟响是,按S3进行关闹钟。
工作原理 硬件
采用80C51系列单片机作为CPU,P0口作为数据线,通过锁存器进行段选和位选,是数码管不断地显示数字。数码管的显示是扫描式。(1)
本电子钟用的单片机型号是STC89C516RD+。P0口作为段选和位选的数据线。P10口为段选寄存器的使能端。P11口为位选寄存器的使能端。晶振采用的12MHz晶振。要求频率稳定。
(2)
本电子钟用的是共阴极数码管。从左到右,第1,2位是秒位;第4,5位是分位;第7,8位是时位。第3,6位是“--”。
(3)
通过单片机的P0口,先对数码管进行位选,即在位锁存器使能是将P0口数据进行锁存。再通过段锁存器将P0口送来的段数据进行锁存。此时数码管的第一位显示数字。同样的步骤进行第二位显示。以非常快的速度进行,由于人眼的余辉效应,会看到8位数码管一起亮。即可以显示时间。通过单片机的内部TO,T1的计数。即可以实现时钟,秒表等功能。(4)电路图如下:
软件
程序代码包括三部分:1.bujian(部件库)2.main(主函数)3.H(头文件库)。一 .bujian(部件库)(1)xianshi.c #include
//数码管秒个位
P0=t[s%10];p11=0;P0=0xff;delay(m);p10=1;p10=0;p11=1;P0=0xbf;p11=0;
//消隐
P0=t[s/10];
//消隐 //数码管秒十位
P0=0xff;delay(m);} void led_f(unsigned int s){ p10=1;// P0=t[s%10];p10=0;p11=1;P0=0xef;
p11=0;
P0=0xff;delay(m);p10=1;
P0=t[s/10];p10=0;p11=1;P0=0xf7;p11=0;
P0=0xff;delay(m);} void led_h(unsigned int s){
// p10=1;P0=t[s%10];p10=0;p11=1;P0=0xfd;
p11=0;// P0=0xff;delay(m);p10=1;
P0=t[s/10];p10=0;p11=1;P0=0xfe;p11=0;
数码管分个位 //消隐
//数码管分十位
//消隐
数码管时个位
消隐
//数码管时十位
//消隐
P0=0xff;delay(m);}
void line(void){ p10=1;P0=0x40;p10=0;p11=1;P0=0xfb;delay(m);p11=0;
p10=1;P0=0x40;p10=0;p11=1;P0=0xdf;p11=0;delay(m);}
//消隐
P0=0xff;
//数码管“---”
//消隐
P0=0xff;
//数码管“---”
(2)miaobiao.c #include
#include
{ while(!s3){led_s(mms);led_f(ms);line();led_h(mf);} TR1=0;mms=0;ms=0;mf=0;} } }
(3)Delay.c #include
void delay(unsigned int a)
{ unsigned char l;
while(a--)
{for(l=0;l<100;l++);} }
(4)gongneng.c #include
#include
if(s2==0){ delay(3);if(s2==0)while(!s2){ led_s(s);delay(1);line();led_f(f);delay(1);led_h(h);delay(1);}
// while(1){ led_s(r);delay(2);led_f(y);delay(2);line();led_h(nian);delay(2);aa++;if(s2==0)
{ while(!s2)
{
led_s(r);delay(1);line();led_f(y);delay(1);led_h(nian);delay(1);}
//星期显示
while(1)
{led_f(xing);delay(2);
bb++;
if(bb==100){bb=0;break;}
日期显示 }
}
if(aa==100)
line();led_f(y);delay(1);led_h(nian);delay(1);
} } if(s1==0){ delay(3);if(s1==0){
switch(x){ case 1 : if(shanshuo==1){led_s(s);} line();led_f(f);delay(2);led_h(h);delay(2);break;case 2 :led_s(s);if(shanshuo==1){led_f(f);} delay(2);line();led_h(h);delay(2);break;case 3 : led_s(s);led_f(f);delay(2);line();if(shanshuo==1){led_h(h);} delay(2);break;case 4 : if(shanshuo==1){led_s(r);} led_f(y);delay(2);line();led_h(nian);delay(2);break;case 5 : led_s(r);if(shanshuo==1){led_f(y);} delay(2);line();led_h(nian);delay(2);break;case 6 :led_s(r);led_f(y);delay(2);line();if(shanshuo==1){led_h(nian);} delay(2);break;case 7 :if(shanshuo==1){led_f(xing);delay(5);} break;case 8 :if(shanshuo==1){led_s(nf);} line();led_f(nh);delay(2);led_h(ns);delay(2);break;case 9 :led_s(nf);if(shanshuo==1){led_f(nh);} delay(2);line();led_h(ns);delay(2);break;case 10:led_s(nf);led_f(nh);delay(2);line();if(shanshuo==1){led_h(ns);} delay(2);break;default : break;}
aa++;if(s2==0){ while(!s2){if(x==1||x==2||x==3){ led_s(s);delay(1);line();led_f(f);delay(1);led_h(h);delay(1);} if(x==4||x==5||x==6){ led_s(r);delay(1);line();led_f(y);delay(1);led_h(nian);delay(1);} if(x==7){ led_f(xing);} if(x==8||x==9||x==10){led_s(nf);led_f(nh);delay(2);line();led_h(ns);delay(2);} }
switch(x)
{ case 1 : s++;if(s>59)s=0;break;
while(!s1);while(1)
{ if(x==1||x==2||x==3)TR0=0;else TR0=1;if(aa==20){shanshuo=!shanshuo;aa=0;}
{ break;} { led_s(r);delay(1);
} if(s1==0)
case 2 :
}
f++;if(f>59)f=0;break;
case 3 : h++;if(h>23)h=0;break;case 4 : r++;if(r>31)r=1;break;case 5 : y++;if(y>12)y=1;break;case 6 : case 7 :
nian++;if(nian>20)nian=10;break;xing++;if(xing>7)xing=1;break;
case 8 : nf++;if(nf>59)nf=0;break;case 9 : nh++;if(nh>23)nh=0;break;case 10: ns=!ns;break;
default: break;{while(!s1){if(x==1||x==2||x==3){ led_s(s);delay(1);line();led_f(f);delay(1);led_h(h);delay(1);} if(x==4||x==5||x==6){ led_s(r);delay(1);line();led_f(y);delay(1);led_h(nian);delay(1);} if(x==7){ led_f(xing);} if(x==8||x==9||x==10){led_s(nf);led_f(nh);delay(2);line();led_h(ns);delay(2);} }
x++;if(x>10){ x=0;TR0=1;break;} } } } } } } 二.H(头文件库)(1)Delay.h #ifndef _DELAY_H__
void led_s(unsigned int s);void led_h(unsigned int s);#define _DELAY_H__ void delay(unsigned int a);#endif(2)xianshi.h #ifndef _XIANSHI_H__ #define _XIANSHI_H__
void led_f(unsigned int s);void line(void);#endif(3)gongneng.h
#ifndef _DONGNENG_H__ #define _GONGNENG_H__ void gongneng(void);#endif(4)miaobiao.h
#ifndef _MIAOBIAO_H__ #define _MIAOBIAO_H__ void miaobiao(void);#endif(5)dingyi.h #ifndef _DINGYI_H__ #define _DINGYI_H__ sbit s1=P2^4;
sbit s2=P2^5;
sbit s3=P2^6;sbit p10=P1^0;sbit p11=P1^1;sbit p12=P1^2;#endif
//流水灯使能端 //按键1 //按键2 //按键3 sbit p37=P3^7;//蜂鸣器时能
三.Main(主函数)(1)main.c #include
ET0=1;TH0=6;TR0=1;
//关闭流水灯
ET1=1;TH1=(65535-5000)/256;TL1=(65535-5000)%256;TR1=0;while(1){ if((s3==0)&&(ns==0)){while(!s3);miaobiao();} if(s1==0||s2==0)gongneng();else { led_s(s);line();led_f(f);line();led_h(h);} if((f==nf)&&(h==nh)&&(ns==1))ll=1;else ll=0;} } void zhongduan(void)interrupt 1 {
if((ll==1)&&(ns==1))
{ p37=!p37;if((s3==0)&&(ns==1)){ while(!s3)ns=0;p37=1;} } n++;if(n==5000){n=0;s++;if(s==60){ s=0;f++;} if(f==60){ f=0;h++;}
if(h==24){ h=0;r++;xing++;} switch(r){ case 29 : if(nian/4==0){if(y==2)r=0;} y++;case 31 : if(y==4||y==6||y==9||y==11){ } if(xing>7)xing=1;if(y==13){ y=1;nian++;} } } default : break;
break;case 30 : if((nian/4)!=0){if(y==2){ r=0;y++;}} break;
r=0;y++;} break;case 32 : if(y==1||y==3||y==5||y==7||y==8||y==10||y==12){r=0;y++;} break;void zhongduan1(void)interrupt 3
{
TH1=(65535-5000)/256;
m++;TL1=(65535-5000)%256;if(m==2){mms++;m=0;if(mms>=100){ mms=0;ms++;} if(ms==60){ ms=0;mf++;} if(mf==60){ mf=0;} } }
参考文献:
单片机中级教程(第2版)、单片机语言C51程序设计(赵文博)感想: 这次课程设计整体来说是成功的,但我也发现了自己许多错漏和不足之处。譬如,最简单的程序没写好就想着写更复杂的程序,做事还是缺乏耐性和细心,当有时遇到问题时,总觉得无从下手,对于课本上的知识不能很好的组织起来。在编写各功能程序时,特别是后来增添的比较复杂的程序