第一篇:数字钟(打印格式)
课程设计任务书
(指导教师填写)
课程设计名称电子技术课程设计学生姓名专业班级设计题目数字钟
一、课程设计的任务和目的任务:设计一台数字电子钟,要求准确地显示“时”、“分”、“秒”的变化,变化周期为24小时,并且具有整点报时和校时功能。目的:
掌握数字电子钟的设计、组装、调试方法。掌握有关集成电路的工作原理。
二、设计内容、技术条件和要求
1.设计数字电子钟:
⑴.设计一个数字电子钟,用于显示时间的变化。⑵.“时”、“分”、“秒”显示功能:“时”、“分”、“秒”分别由两个数码管显示,要求在00点00分00秒到23点59分59秒之间循环显示。⑶.整点报时功能:要求在每一个整点进行报时,在每小时59分51秒、53秒、55秒、57秒分别发出一声低音,在每小时59分59秒报时出一声高音,低音用500Hz信号让扬声器发声,高音用1000Hz信号。⑷.校时功能:要求可以对“时”、“分”显示进行校正,校对时要求“时”、“分”以1Hz的频率变化,并且互不影响。
2.根据上述要求,画出电路框图、原理总图。
3.对原理图进行仿真。在实验箱上组装、调试。
5.撰写设计总结报告。
三、时间进度安排。本课程设计共两周时间。
第一周:理论设计。周一布置设计任务;提出课程设计的目的和要求;讲解电子电路的一般设计方法和电子电路的安装、调试技术;明确对撰写总结报告和绘制原理总图的要求;安排答疑、实验时间。周二至周五学生查资料,进行理论设计,其中安排三次答疑,指导学生设计。周五下午交设计草图供老师审阅。
第二周:仿真和安装调试、撰写设计总结报告。周一至周二在EDA实验室对其设计的电路进行仿真,并可根据仿真情况修正设计以确定设计正确,能完成设计要求。周二至周五 在实验箱上进行安装、调试,并通过老师验收。
最后,撰写设计总结报告、绘制原理总图。
四、主要参考文献
各种版本的数字电子技术基础教材;各种版本的电子技术课程设计指导书;集成电路手册。
指导教师签字:年月日
第二篇:数字钟
数字钟电子技术课程设计报告
数字电子技术课程设计报告 题 目: 数字钟的设计与制作
学 年 学 期:
专 业 班 级: 学 号:
姓 名:
指导教师及职称:讲师 时 间: 地点: 设计目的
熟悉集成电路的引脚安排.掌握各芯片的逻辑功能及使用方法.了解面包板结构及其接线方法.了解数字钟的组成及工作原理.熟悉数字钟的设计与制作.设计要求 1.设计指标
时间以12小时为一个周期;显示时,分,秒;有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间;为了保证计时的稳定及准确须由晶体振荡器提供表针时间基准信号.2.设计要求
画出电路原理图(或仿真电路图);元器件及参数选择;电路仿真与调试;.3.制作要求 自行装配和调试,并能发现问题和解决问题.4.编写设计报告 写出设计与制作的全过程,附上有关资料和图纸,有心得体会.设计原件
设计原理
数字电子钟由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路等组成。秒信号产生器是由石英晶体振荡器分频后得到的。秒计数器到60后,对分计数器送入一个脉冲,进行分计数,分计数器到60后,对时计数器送入一个脉冲,进行时计数,时计数器是12进制计数器,实现对一天12小时计数。数字电子钟的显示由计数器、译码器经数码管实现。首先构成一个CB555定时器产生震荡周期为一秒的标准秒脉冲,由74LS161采用同步预置数法分别组成六十进制的秒记数器、六十进制分记数器、十2进制时记数器,使用74LS48为驱动器。(1)秒信号发生器
秒信号由555定时器组成的多谐振荡电路来产生,振荡频率可通过调解R或C的值来改变。当R=47K,C=10uF。由公式得当Rw=47K时输出端输出震荡频率为1Hz。周期是1秒,即可作为秒的脉冲输入标准秒脉冲。555定时器组成的多谐振荡电路如下:
图2 555定时器组成的多谐振荡电路
(2)计数电路
60进制计数器有2片74LS161和74LS00连接而成。可以用于置数法和清零法的反馈。
利用74LS161和74LS00即可以组成60进制计数器作为分和秒计数器,(3)译码显示电路
译码显示器电路由译码器74LS48和数码管组成 三. 制作调试
在制作电路过程中,连接两点的电线布线要整齐,这样容易查找错误。】.在第一次调试秒部分时,我们发现数码管没显示,经过检查发现是芯片的电源没有接。芯片接上电源和接地后,数码管正常工作。开始没有注意到555芯片与其他芯片引脚的不同,使得一直没有脉冲出现。四.总结
通过这次对数字钟的设计与制作,我了解了设计电路的程序,也了解了关于数字钟的原理与设计理念。在设计过程中,我更进一步地熟悉了数电课上学过各种芯片的结构、工作原理和其具体的使用方法。在连接六十进制的进位及二十四进制中,我对74LS161置数法和清零法有了更深的了解。在连接二十四进制、六十进制的进位要求熟悉逻辑电路及其芯片各引脚的功能,这样在电路出错时便能准确地找出错误所在并及时纠正。在调试电路的过程中出错的主要原因都是接线和芯片的接触不良以及接线的错误,所以接线的时候一定要细心,不要接错。
在设计电路中,往往是先仿真后连接实物图,但有时候仿真和电路连接并不是完全一致的
此次的数字钟设计重在于仿真和接线,虽然能把电路图接出来,并能正常显示,但对于电路本身的原理并不是十分熟悉.总的来说,通过这次的设计实验更进一步地增强了实验的动手能力.
第三篇:数字钟
电子技术课程设计
__24_小时__数字钟
学院:电子信息工程学院
任课老师:张学成
课程设计:数字钟
学号:25号
班级:095
姓名:黄伟
目 录
一、课程设计的设计任务和基本要求„„„„„„1
二、总体框图 „„„„„„„„„„„„„„„1
三、选用器件及部分器件使用说明 „„„„„„6
四、功能模块 „„„„„„„„„„„„„„„14
五、总体设计电路图„„„„„„„„„„„„„17
六、课程设计的心得体会„„„„„„„„„„„19
七、参考文献„„„„„„„„„„„„„„„„20
数字钟
数字钟是用数字集成电路构成的、用数码显示的一种现代计时器,与传统机械表相比,它具有走时准确、显示直观、无机械传动装置等特点。因而广泛应用于车站、码头、机场、商店等公共场所。在控制系统中,也常用来作定时控制的时钟源。
一、课程设计的设计任务与基本要求
用中小规模集成电路设计并制作一台能显示时、分、秒的数字钟。(1)由信号发生器器产生时钟信号。(2)小时计数器用24进制计数器。
(3)可以用手动校正时间,能分别进行时、分的校正。(4)采用LED显示时、分、秒。(5)要求电路主要采用中规模集成电路。(6)要求电源电压+5伏— +10伏。
二、总体框图
(一)各个模块及功能
数字式计时器一般都由振荡器、分频器、计数器、译码器、显示器等几部分组成。其中振荡器和分频器组成标准秒信号发生器,由不同进制的计数器、译码器组成计时系统。秒信号送入计数器进行计数,把累计的结果以“时”、“分”、“秒”的数字显示出来。“时”显示由二十四进制计数器、译码器、显示器构成,“分”、“秒”显示分别由六十进制计数器、译码器、显示器构成。其原理图如图6.1.1所示。
1.振荡器 振荡器是数字钟的核心。振荡器的稳定度及频率的准确度决定了数字钟计时的准确程度,通常选用晶振构成振荡器电路。一般来说,振荡器的频率越高,计时精度越高,如果精度要求不高也可以采用集成逻辑门与RC组成的时钟源振荡器或由集成定时器555与RC组成的多谐振荡器。这里选用多谐振荡器,设振荡频率f=1kKz。
图6.1.1 数字钟原理框图
2.分频器 分频器的功能是产生标准脉冲信号,因为74LS90是二—五—十进制计数器,所以选用1片就可以完成上述功能,即3片级连则可获得所需要的频率信号:第1片的Q0端输出频率为1Hz标准秒脉冲信号。如果振荡频率为100kHz时,就需要5片74LS90进行级联。
3.时间计数器 由总系统框图可知,数字时钟需要两个六十进制计数器分别用作“分”和“秒”的计数,还需要一个二十四进制计数器作“小时”的计数。计数器可以采用前面的中规模集成计数器74LS160。
4.校时电路 在计数开始或计时出现误差时,必须和标准时间校准,这一功能同校时电路完成。校时的方法是给被校的计时电路引入一个超出常规计时许多倍的快速脉冲信号,从而使计时电路快速到达到标准时间。将“秒”信号分别引到“分”和“时”的脉冲输入端以便快速校准“分”
5.译码器、驱动及显示电路 从数字钟计数器输出的信号为8421BCD代码,需要经译码变成七段字形代码,用七段数码管显示出来。七段数码管分共阴,共阳两种,这里选用共阴数码管BS201,相应的译码器采用CT74248。由于采用静态方式显示,每个数码管必须有一个相应的译码器将8421BCD代码译成七段字形代码。
(二)方案设计及选择
方案一:由集成逻辑门与RC组成的时钟源振荡器或由集成电路定时器555与RC组成的多谐振荡器作为时间标准信号源。如图(1)所示。
图(1)
方案二:振荡器是数字钟的核心。振荡器的稳定度及频率的精确度决定了数字钟计时的准确程度,通常选用石英晶体构成的振荡器电路。石英晶体振荡器的作用是产生时间标准信号。因此,一般采用石英晶体振荡器经过分频得到这一时间脉冲信号。
图(2)
如图(2)所示为电子手表集成电路中的晶体振荡器电路,常取晶振频率为32768Hz,因其内部有15级2分频集成电路,所以输出端正好可得到1Hz的标准脉冲。
信号发生器是数字钟的核心。它的稳定度及频率的精确度决定了数字钟计时的准确程度,在本实验中我选用555振荡器产生脉冲经过整形、分步获得1Hz的脉冲。一般来说,振荡器的频率越高,计时精度就越高。
三、选用器件及部分器件的使用说明
74LS90 1片,74LS160 6片,74LS00 19片,74LS08 2片。74LS04 4片
74LS90逻辑框图
74LS90逻辑符号
74LS90逻辑功能:74LS90是异步二-五-十进制加法计数器,它即可以做二进制加法计数器,有可以做五进制和十进制加法计数器。
通过不同的连接方式,可以实现四种不同的逻辑功能;还可以借助R0(1)、R0(2)对计数器清零,借助S9(1)、S9(2)将计数器置9,其功能如下;
(1)计数脉冲从CP1输入,QA作为输出端,为二进制计数器。
(2)计数脉冲从CP2输入,QD、QC、QB输出端,为异步五进制加法计数器。(3)若将CP2和QA相连,计数脉冲由CP1输入,QD、QC、QB、QA作为输出端。则构成异步8421码十进制加法计数器。(4)若将CP1和QD相连,计数脉冲由CP2输入,QD、QC、QB、QA作为输出端,则构成异步5421码十进制加法计数器。
(5)清零、置9功能
a)异步清零
当R0(1)、R0(2)均为“1”;S9(1)、S9(2)中有“0”时,实现异步清零功能,即QDQCQBQA=0000。b)置9功能
当S9(1)、S9(2)均为“1”;R0(1)、R0(2)中有“0”时,实现置9功能,即QDQCQBQA=1001
74LS90逻辑功能表
74LS90内部原理图
74LS02逻辑框图(异或逻辑框图)
74LS02逻辑符号
74LS02内部原理图
74LS02逻辑功能表
异或逻辑功能如下:当A、B不同时,输出Y为1;而A、B相同时,输出Y为0。2输入端四或非门
74LS00逻辑框图(与非逻辑框图)
74LS00逻辑符号
74LS00内部原理图
74LS00逻辑功能表(与非逻辑功能表)
与非门逻辑功能:将A、B先进行与运算,然后将结果求反,最后得到的A、B的与非运算结果.因此,可以把与非运算看作是与运算和非运算的组合.2输入端四与非门
74LS08逻辑框图(与门逻辑框图)
74LS08逻辑符号
74LS08内部原理图
74LS08逻辑功能表(与门逻辑功能表)
与门逻辑功能:只有决定事物结果的全部条件同时具备时,结果才发生。2输入端四与门
74LS04逻辑框图(非门逻辑框图)
74LS04逻辑符号
74LS04内部原理图
74LS04逻辑功能表(非门逻辑功能表)
非门逻辑功能:只要条件具备了,结果便不会发生;而条件不具备时,结果一定发生。
四、功能模块
1.每个模功能块要分别打印出电路图,并详细说明每一模块的逻辑功能,每一器件的逻辑功能,器件之间的连接关系
(一)振荡器 振荡器是数字钟的核心。振荡器的稳定度及频率的准确度决定了数字钟计时的准确程度,通常选用晶振构成振荡器电路。一般来说,振荡器的频率越高,计时精度越高,如果精度要求不高也可以采用集成逻辑门与RC组成的时钟源振荡器或由集成定时器555与RC组成的多谐振荡器。这里选用石英晶体振荡器,设振荡频率f=1kKz。电路图如下
(二)分频器 分频器的功能是产生标准脉冲信号,因为74LS90是二—五—十进制计数器,第1片的Q3端输出为1Hz。如果振荡频率为100kHz时,就需要5片74LS90进行级联。电路图如下图所示
(三)时间计数器 由总系统框图可知,数字时钟需要两个六十进制计数器分别用作“分”和“秒”的计数,还需要一个二十四进制计数器作“小时”的计数。计数器可以采用前面的中规模集成计数器74LS160。电路图如下所示
(四)校时电路 在计数开始或计时出现误差时,必须和标准时间校准,这一功能同校时电路完成。校时的方法是给被校的计时电路引入一个超出常规计时许2倍的快速脉冲信号,从而使计时电路快速到达到标准时间。将震荡信号分别引到“分”和“时”的脉冲输入端以便快速校准“分”。电路图如下所示
三. 总体设计电路图
1.数字式计时器一般都由振荡器、分频器、计数器、译码器、显示器等几部分组成。其中振荡器和分频器组成标准秒信号发生器,由不同进制的计数器、译码器组成计时系统。秒信号送入计数器进行计数,把累计的结果以“时”、“分”、“秒”的数字显示出来。“时”显示由二十四进制计数器、译码器、显示器构成,“分”、“秒”显示分别由六十进制计数器、译码器、显示器构成。
555振荡器发生脉冲信号,经过分频器最后输出1Hz信号,把分频器的Q3接到计数器的INA处,使分频器与计数器相连。然后计数器与显示器相连,秒、分、时分别对应着。另外还有校正部分,图见校时电路的电路图。左边的开关是时校正,中间的开关是分校正,可以手动校正。
实验结果:实验箱上的数字钟正常运行,已经成功达到了设计的要求和目的。第一次连线没有显示出结果,原因是接线处有一处导线接触不良,经过检查,成功的排除了故障。当再一次打开数字实验箱开关后,还是跟第一次一样,只显示50秒,然后秒的数字就再运行。经过又一次检查,发现是秒显示器的74LS90器件接触不良,用手按住后,数字钟正常运行,秒到六十向分进一,分到六十向时进一,时到二十四时,自动回到零。自此,实验全部完成。
六.课程设计的心得体会
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新月异,电子技术在生活中可以说是无处不在。因此做为二十一世纪的大学生来说掌握电子技术是非常之重要。回顾此次课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两周的日子里,可以说是苦多于甜,但是可以学到很多很多东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上无法学到的知识。通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的。只有理论与实际相结合才能提高自己的实际动手能力和独立思考的能力。在设计中遇到的问题有很多,这毕竟是第一次,难免会遇到各种各样的问题。在这次设计中我发现我所学的知识这远远不够,在今后的学习中我要更加努力奋斗!
这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在百度的帮助下都一一解决。在此我十分感谢百度对我的帮助和支持。
第四篇:数字钟课程设计
南 昌 大 学
数字电路与逻辑设计实验报告
姓
名:
付
容 学
号:
6100212236 学
院:
信息工程学院 班
级:
电气信息I类126班 实验名称:
数字钟设计
一、实验目的
1、熟悉数字系统的分析和设计方法;
2、熟悉根据任务的要求合理选择集成器件的方法;
3、学习和掌握数字钟的工作原理及设计方法,并且通过对数字钟的制作
进一步了解各种中、小规模集成电路的功能及使用方法;
4、学习使用protel软件进行电子电路的原理图设计、印制电路板设计;
5、初步掌握PCB板的制作流程及其工艺;
6、掌握数字系统的调试方法;
7、提高检查故障和排除故障的能力。
二、实验任务
利用中、小规模集成电路设计并制作一个数字显示时、分、秒的时钟,应具备如下功能:
1、能进行正常的时、分、秒计时功能,以数字形式显示时、分、秒的时间;
2、时应以24小时计时周期,计数序列为00—23;
3、计时出现误差时能校正,可以分别对时和分进行校正。
三、实验器材
计算机、protel软件、555定时器一个、6个74LS161、3个74LS90、个74LS48、6个数码管、若干个74LS00和74LS04、电源、开关。
四、实验原理
1、电路的总体原理框图
数字钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。它
2、数字钟的构成的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能。因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路、振荡电路组成。数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。通常使振荡电路构成数字钟。
⑴555振荡电路
555定时器振荡电路给数字钟提供一个频率稳定准确的1KHz的方波信号,可保证数字钟的走时准确及稳定。不管是指针式的电子钟还是数字显示的电子钟都使用了555振荡电路。
⑵分频器电路
分频器电路用74LS90芯片将1kHz的高频方波信号经3次分频后得到1Hz的方波信号供秒计数器进行计数。分频器实际上也就是计数器。
⑶时间计数器电路
时间计数电路由秒个位和秒十位计数器、分个位和分十位计数器及时个位和时十位计数器电路构成,其中秒个位和秒十位计数器、分个位和分十位计数器为60进制计数器,而根据设计要求,时个位和时十位计数器为12进制计数器。⑷译码驱动电路
译码驱动电路将计数器输出的8421BCD码转换为数码管需要的逻辑状态,并且为保证数码管正常工作提供足够的工作电流。
⑸数码管
数码管通常有发光二极管(LED)数码管和液晶(LCD)数码管,本设计提供的为LED数码管。
3、数字钟工作原理
数字电子钟的原理方框图如上图,该电路系统由秒信号发生器、“时、分、秒”计数器、译码器及数码显示管、校时电路、整点报时电路等组成。秒信号发生器是整个系统的时基信号,它直接决定计时系统的精度,本实验用555定时器来实现。将标准秒信号送入“秒计数器”,“秒计数器”采用六十进制计数器,每累计60秒发出一个“分脉冲”信号,该信号作为“分计数器”的时钟脉冲。“分计数器”采用六十进制计数器,每累计60分钟发出一个“时脉冲”信号,该信号作为“时计数器”的时钟脉冲。译码显示电路将“时”、“分”、“秒”计数器的输出状态经七段显示译码器译码,通过LED七段共阴极数码显示管显示出来。整点报时电路是根据计时系统的输出状态产生脉冲信号,然后去触发一音频发生器实现报时。校时电路是用来对“时”、“分”、“秒”显示数字进行校对调整的。
五、实验设计方案
1、六十进制计数器电路
由两片74160构成的六十进制计数器如下图所示。首先将两片74160构成一百进制计数器,然后采用整体置数法接成六十进制计数器。电路的59状态译码产生LD'=0信号,同时加到两片74LS161上,在下一个计数脉冲(第60个计数脉冲)到达时将0000同时输入两片74LS161中,从而得到六十进制计数器。进位输出可有门电路G的输出直接得到。
2、二十四进制计数器电路
由两片74LS161构成的二十四进制计数器如下图所示。首先将两片74160构成一百进制计数器,然后采用整体置数法接成二十四进制计数器。电路的23状态译码产生LD'=0信号,同时加到两片74LS161上,在下一个计数脉冲(第24个计数脉冲)到达时将0000同时输入两片74LS161中,从而得到二十四进制计数器。
3、秒信号发生器电路
秒信号发生器是整个系统的时基信号,它直接决定计时系统的精度,本实验用555定时器来实现。先将555定时器的2、6管脚连在一起构成施密特触发器,然后再通过RC积分电路构成多谐振荡器。接入电路的二极管D1、D2使电容C1的充电电流和放电电流流经不同的路径,充电电流只流经R1,放电电流只流经R2,因此电容C1的充电时间为
T1=R1C1Ln2 电容C1的放电时间为
T2=R2C1Ln2 输出脉冲的占空比为
q=R1/(R1+R2)若取R1=R2=71千欧然后与一个2千欧的电位器串联,则电路的振荡周期为
T=T1+T2=1s
4、校时电路
校准电路实质上是由一个555定时器接成的频率为1KHz的多谐振荡器,如下图示。从图中可知,秒脉冲进入计数器,数字钟正常工作。校时时先按下按钮J2,若按下J2则10Hz脉冲信号进入分计数器的个位,而分脉冲被阻止进入,因而较快的校准分计数器的计数值;若按下J1则100Hz脉冲信号进入时计数器个位,而时脉冲被阻止进入,因而较快的校准时计数器的计数值。
5、译码显示电路
译码电路的功能是将“秒”、“分”、“时”计数器的输出代码进行翻译变成相应的数字。用于驱动LED七段数码管的译码器为74LS48。由74LS48和LED七段数码管组成的数码显示电路如下图所示。将“秒”、“分”、“时”计数器的每位输出分别接到相应七段译码器的输入端,便可进行不同数字的显示。在译码器输出与数码管之间串联的为限流电阻。
六、实验总电路图
Multisim仿真原理图
七、实验仿真结果 1、1kHz脉冲信号:
2、秒时钟:
3、分时钟:
4、时时钟:
5、实验总仿真图:
八、实验总结
1、仿真过程中遇到的问题及解决方法 刚接到数字钟这个实验设计的时候,感觉脑子中一片混乱,理不出来一个清晰的思路。但是我先看了一遍课本,充分理解、熟悉课本中所讲的每个集成芯片的功能和它们的接法,然后又查阅了相关的资料。经过这个过程之后,我构思出来了数字钟大致的电路图和所要用到的集成芯片。但是在真正设计、画电路图的时候却不断出现了一些细节问题。比如用74LS161芯片构成60进制计数器后,在Multisim里找不到实验室用到的CD4511BE型号的译码器,那我该如何选合适的译码器进行译码?用555定时器产生1Hz的秒脉冲信号后,在保证原理图一定正确的情况下,为什么数码管一直显示0,不会走数字呢?24进制的地方为什么仿真结果总是会有些不对,从09变成10的时候中间会有一个类似于“8”一样的数出现,使得24进制与60进制不能同步进行,总是慢一秒?。于是我又去查资料,并请教了一些同学、老师才逐渐掌握了解决这些问题的方法,最后将问题一个个的击破了。经上网百度后,我知道用74LS48译码比较合适;问同学、老师后,我知道1Hz数码管能走数字,但是周期太长,所以将555定时器改成1KHz的才能很直观的看到实验仿真结果;在24进制的个位上加一个非门后就能实现正常功能。经过几次修改完善之后,我的设计仿真终于做出来了。
2、画protel原理图遇到的问题
①用单刀双掷开关实现校时电路时发现所选开关没有封装,后来经老师点拨在“元件库”中查找到了带封装的单刀双掷开关;
②不知道花PCB板的时候需要在板子的某个角落放总电源,否则整块板子无法供电使用,就连555定时器也需要电源驱动才能正常产生脉冲信号,加个电源开关更能使整个电路设计的合理、规范;
3、心得体会
此次的数字钟设计重点在于理论设计、对各种集成芯片的应用和电路本身的原理的熟悉,与电路的仿真和实际的连线有很大的差距。在此次的数字钟设计过程中,让我更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。在连接六十进制及其进位输出和用555定时器构成多谐振荡器的接法中,熟悉了逻辑电路及其芯片各引脚的功能,在电路出错时能准确地找出错误所在并及时纠正。
这次电子课程设计让我收获很大,通过这次的设计实验进一步地增强了实验的动脑、动手能力。让我体会到了学习知识时理论联系实际的重要性,并发现自己的知识面是很窄的,对很多简单的理论问题都比较难于解决,更别说实际的的问题了。所以,以后遇到这种动手操作的能力我一定要格外重视,并且努力完成它,争取做到最好的效果。
第五篇:数字钟课程设计
ORG 0000H SJMP ONE ORG 0003H LJMP ELEVEN ORG 000BH LJMP NINE ORG 001BH LJMP TEN ONE:LED12 EQU 30H;数码管12显示缓存 LED34 EQU 31H;数码管34显示缓存 LED56 EQU 32H;数码管56显示缓存
COUNT EQU 33H;定时器T0(用来走时)计数值存储器(计数中断20次到1秒)COUNTS EQU 34H;定时器T1(用来预置)计数值存储器(计数中断15次到预置值加一)HOUR EQU 40H;以下为时间,日期,闹铃时间,生日的存储地址 MIN EQU 41H SECOND EQU 22H YEAR EQU 50H MONTH EQU 23H DAY EQU 52H RH EQU 60H;闹铃小时 RM EQU 61H;闹铃分 RE EQU 62H;闹铃使能 BM EQU 71H;生日-月份 BD EQU 72H;生日-天 MOV LED12,#0 MOV LED34,#0 MOV LED56,#0 MOV COUNT,#0 MOV COUNTS,#0 MOV HOUR,#0 MOV MIN,#0 MOV SECOND,#0 MOV YEAR,#0 MOV MONTH,#1 MOV DAY,#1 MOV RH,#0 MOV RM,#0 MOV RE,#0 MOV BM,#6 MOV BD,#1 BS BIT 00H;birthday symbol生日标志(到生日那天就为1)
SS BIT 01H;set symbol预置信号(按下中断预置为1,便开始闪烁和预置)GS BIT 02H;glisten symbol闪烁标志 FC BIT 03H;frequency control频率控制 NB BIT 04H;neglect bitrhday symbol 忽略生日标志 CLR BS CLR SS CLR GS CLR FC CLR NB SETB 05H;生日显示有效标志位 MOV IP,#02H;中断优先级:T0>INT0>T1 MOV TMOD,#11H MOV IE,#8BH SETB IT0 MOV TH0,#3CH;50ms MOV TL0,#0B0H SETB TR0 MOV R1,#50;显示延时用 MOV R0,#0;显示延时用
;************************************************************** TWO检测开关号 TWO:MOV P0,#0FFH JB P0.5,TWO1 MOV RE,#0A0H;0A0表示闹铃无效,送0A0是为了方便将使能查表显示,表中第A项为“-” SJMP TWO2 TWO1:MOV RE,#0A1H TWO2:JB P0.0,TWO4 JB P0.1,TWO3 MOV LED12,HOUR MOV LED34,MIN MOV LED56,SECOND SJMP THREE TWO3:MOV LED12,YEAR MOV LED34,MONTH MOV LED56,DAY SJMP THREE TWO4:JB P0.1,TWO5 MOV LED12,RH MOV LED34,RM MOV LED56,RE SJMP THREE TWO5:MOV LED12,BM MOV LED34,BD MOV LED56,#0BCH SJMP THREE;************************************** THREE显示主程序(同时包含了闹铃,预置闪烁,闹铃功能)THREE:MOV P1,#0 MOV P0,#0FFH MOV DPTR,#TAB3 JNB SS,THREEB;判断预置信号是否有效,预置有效则转入判断闪烁显示模块,否则转入正常显示模块
SJMP THREEA THREEB:LJMP THREE11;THREE11是正常显示并判断整点报时及闹铃模块
THREEA:JNB P0.3,THREE1;开始是判断闪烁显示,这句判断是否预置分/月/生日的日/闹铃分
JNB GS,THREE1;是否闪烁?
LCALL TWELVE;闪烁则调用延时不显示LED34 SJMP THREE4 THREE1:MOV A,LED34 ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE2:SETB P1.3 NOP DJNZ R0,THREE2 CLR P1.3 MOV A,LED34 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE3:SETB P1.2 NOP DJNZ R0,THREE3 CLR P1.2 JNB P0.2,THREE4;判断是否预置小时/年/生日月/闹铃的小时 JNB GS,THREE4;是否显示小时/年/生日月/闹铃的小时 LCALL TWELVE SJMP THREE7 THREE4:MOV A,LED12 ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE5:SETB P1.1 NOP DJNZ R0,THREE5 CLR P1.1 MOV A,LED12 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE6:SETB P1.0 NOP DJNZ R0,THREE6 CLR P1.0 JB P0.0,THREE7;数码管56只有在显示日期的天时才有预置闪烁功能,其余三项都不需要判断闪烁 JNB P0.1,THREE7 JB P0.3,THREE7 JNB P0.4,THREE7 JNB GS,THREE7 LCALL TWELVE SJMP THREE10 THREE7:MOV A,LED56 ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE8:SETB P1.5 NOP DJNZ R0,THREE8 CLR P1.5 MOV A,LED56 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE9:SETB P1.4 NOP DJNZ R0,THREE9 CLR P1.4 THREE10:DJNZ R1,TWOA SJMP TWOB TWOA:LJMP TWO TWOB:MOV R1,#50;判断闪烁一次是否完成 CPL GS;取反闪烁标志,用于控制闪烁的亮和灭 LJMP TWO;一轮显示完后再判断开关号;**************************正常显示
THREE11:LCALL EIGHT;判断是否取反P1.6即输出闹铃或整点报时,以下每次显示都要调用一次
JB NB,THREE12;如果是在整点报时状态就不显示生日提醒,报时过后显示提醒 JNB BS,THREE12 SJMP SEVEN;跳到生日提醒程序
THREE12:CLR NB;开始正常显示时间及判断闹铃输出 MOV A,LED34 ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE13:SETB P1.3 NOP DJNZ R0,THREE13 CLR P1.3 MOV A,LED34 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE14:SETB P1.2 NOP DJNZ R0,THREE14 CLR P1.2 LCALL EIGHT MOV A,LED12 ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE15:SETB P1.1 NOP DJNZ R0,THREE15 CLR P1.1 MOV A,LED12 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE16:SETB P1.0 NOP DJNZ R0,THREE16 CLR P1.0 LCALL EIGHT MOV A,LED56 ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE17:SETB P1.5 NOP DJNZ R0,THREE17 CLR P1.5 MOV A,LED56 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE18:SETB P1.4 NOP DJNZ R0,THREE18 CLR P1.4 LJMP TWO;一轮显示完后判开关
TAB3:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H 7FH,6FH,40H,7CH,5EH;0.1.2.3.4.5.6.7.8.9.-.b.d,的字形表“bd”在显示生日时间时显示在LED56;**************************************************SEVEN生日时显示生日祝福语“HAPPY” SEVEN:MOV P1,#01H MOV P2,#76H DJNZ R0,SEVEN SEVEN1:MOV P1,#02H MOV P2,#77H DJNZ R0,SEVEN1 SEVEN2:MOV P1,#04H MOV P2,#73H DJNZ R0,SEVEN2 SEVEN3:MOV P1,#08H MOV P2,#73H DJNZ R0,SEVEN3 SEVEN4:MOV P1,#10H MOV P2,#6EH DJNZ R0,SEVEN4 LJMP TWO;一轮显示完后判开关
;******************************************************************EIGHT判断是否闹铃子程序 EIGHT:MOV A,RE CJNE A,#0A1H,EIGHT1 MOV A,MIN CJNE A,RM,EIGHT1 MOV A,HOUR CJNE A,RH,EIGHT1 SJMP EIGHT4;闹铃时间到则CPLP1.6一次并忽略生日标志(即NB有效)EIGHT1:MOV A,MIN CJNE A,#59H,EIGHT7 MOV A,SECOND CJNE A,#59H,EIGHT5;是否等于59分59秒 EIGHT2:MOV A,COUNT;是否到达后半秒 CJNE A,#10,EIGHT3 EIGHT3:JC EIGHT7 EIGHT4:CPL P1.6 SETB NB SJMP EIGHT7 EIGHT5:MOV A,SECOND CJNE A,#51H,EIGHT6;是否大于51秒 EIGHT6:JC EIGHT7 JNB 10H,EIGHT7;判断是否报低音
JB FC,EIGHT7;只有FC有效时才输出
SJMP EIGHT2 EIGHT7:CPL FC;用来控制报低音和高音,满足报低音条件时,调用两次本程序对P1.6取反一次,高音时调用一次取反一次
RET;******** NINE中断(T0)计时程序(包含了秒-分-时-日-月-年间的进位及判断大小月,平闰年)
NINE:MOV TH0,#3CH;开定时器 MOV TL0,#0B0H SETB TR0 INC COUNT MOV A,COUNT CJNE A,#20,INEAA SJMP AAA INEAA:LJMP NINE1 AAA:MOV COUNT,#0;计时 MOV A,SECOND ADD A,#01 DA A;换成bcd码以方便显示 MOV SECOND,A CJNE A,#60H,INEAA MOV SECOND,#0 MOV A,MIN ADD A,#01 DA A MOV MIN,A CJNE A,#60H,INEAA MOV MIN,#0 MOV A,HOUR ADD A,#01 DA A MOV HOUR,A CJNE A,#24H,INEAA MOV HOUR,#0 MOV A,DAY ADD A,#01 DA A MOV DAY,A;************************判断平闰年及大小月 MOV A,MONTH CJNE A,#02H,TEN6A MOV A,YEAR;把年由BCD码换成二进制码 ANL A,#0F0H SWAP A MOV B,#10 MUL AB MOV 24H,A MOV A,YEAR ANL A,#0FH ADD A,24H JB ACC.0,TEN5A;二进制码后两位为00表示为闰年 JB ACC.1,TEN5A MOV 24H,#01 MOV A,DAY CJNE A,#30H,NINE1 MOV DAY,#1 SJMP NINE0 TEN5A:MOV A,DAY CJNE A,#29H,NINE1 MOV DAY,#1 SJMP NINE0;**************判断大小月;大于等于8月时双月为大月,小于8月时单月为大月 TEN6A:MOV A,MONTH CJNE A,#08H,TEN7A TEN7A:JC TEN9A JB 18H,TEN8A MOV A,DAY CJNE A,#32H,NINE1 MOV DAY,#1 SJMP NINE0 TEN8A:MOV A,DAY CJNE A,#31H,NINE1 MOV DAY,#1 SJMP NINE0 TEN9A:JNB 18H,TEN10A MOV A,DAY CJNE A,#32H,NINE1 MOV DAY,#1 SJMP NINE0 TEN10A:MOV A,DAY CJNE A,#31H,NINE1 MOV DAY,#1;******************* NINE0:MOV A,MONTH ADD A,#01 DA A MOV MONTH,A SETB 05H CJNE A,#13H,NINE1 MOV MONTH,#1 MOV A,YEAR ADD A,#01 DA A MOV YEAR,A NINE1:MOV A,MONTH CJNE A,BM,NINE2 MOV A,DAY CJNE A,BD,NINE2 JNB 05H,NINE2 SETB BS NINE2:RETI;*****************************************TEN中断(T1)预置加一程序由INT0控制其的开启与关闭
;*******************判断预置项目 TEN:MOV TH1,#3CH MOV TL1,#0B0H SETB TR1 INC COUNTS MOV A,COUNTS CJNE A,#15,TENE MOV COUNTS,#0 JB P0.0,RBRB JB P0.1,DAT SJMP TIME DAT: LJMP DATE RBRB:JB P0.1,BDAT LJMP RTIME BDAT:LJMP BDATE TENE:RETI;**********************预置时间 TIME: JNB P0.3,TEN1 MOV A,MIN ADD A,#01 DA A MOV MIN,A CJNE A,#60H,TENA MOV MIN,#0 SJMP TENA TEN1:JNB P0.2,TENA MOV A,HOUR ADD A,#01 DA A MOV HOUR,A CJNE A,#24H,TENA MOV HOUR,#0 TENA:RETI;******************预置日期 DATE:JNB P0.3,TEN3 MOV A,MONTH ADD A,#01 DA A MOV MONTH,A CJNE A,#13H,TENB MOV MONTH,#1 SJMP TENB TEN3:JNB P0.2,TEN4 MOV A,YEAR ADD A,#01 DA A MOV YEAR,A SJMP TENB TEN4:JNB P0.4,TENB MOV A,DAY ADD A,#01 DA A MOV DAY,A;***************判断平闰年 MOV A,MONTH CJNE A,#02H,TEN6 MOV A,YEAR ANL A,#0F0H SWAP A MOV B,#10 MUL AB MOV 24H,A MOV A,YEAR ANL A,#0FH ADD A,24H JB ACC.0,TEN5 JB ACC.1,TEN5 MOV A,DAY CJNE A,#30H,TENB MOV DAY,#1 SJMP TENB TEN5:MOV A,DAY CJNE A,#29H,TENB MOV DAY,#1 SJMP TENB;**************判断大小月 TEN6:CJNE A,#08H,TEN7 TEN7:JC TEN9 JB 18H,TEN8 MOV A,DAY CJNE A,#32H,TENB MOV DAY,#1 SJMP TENB TEN8:MOV A,DAY CJNE A,#31H,TENB MOV DAY,#1 SJMP TENB TEN9:JNB 18H,TEN10 MOV A,DAY CJNE A,#32H,TENB MOV DAY,#1 SJMP TENB TEN10:MOV A,DAY CJNE A,#31H,TENB MOV DAY,#1 TENB: RETI;**************************预置闹铃时间 RTIME:JNB P0.3,TEN12 MOV A,RM ADD A,#01 DA A MOV RM,A CJNE A,#60H,TENC MOV RM,#0 SJMP TENC TEN12:JNB P0.2,TENC MOV A,RH ADD A,#01 DA A MOV RH,A CJNE A,#24H,TENC MOV RH,#0 TENC:RETI;************************预置生日日期 BDATE:JNB P0.3,TEN14 MOV A,BD ADD A,#01 DA A MOV BD,A MOV A,BM CJNE A,#02H,TEN15 MOV A,BD CJNE A,#30H,TEND MOV BD,#1 SJMP TEND TEN15:CJNE A,#08H,TEN16 TEN16:JC TEN18 JB 18H,TEN17 MOV A,BD CJNE A,#32H,TEND MOV BD,#1 SJMP TEND TEN17:MOV A,BD CJNE A,#31H,TEND MOV BD,#1 SJMP TEND TEN18:JNB 18H,TEN19 MOV A,BD CJNE A,#32H,TEND MOV BD,#1 SJMP TEND TEN19:MOV A,BD CJNE A,#31H,TEND MOV BD,#1 SJMP TEND TEN14:JNB P0.2,TEND MOV A,BM ADD A,#01 DA A MOV BM,A CJNE A,#13H,TEND MOV BM,#1 TEND:SETB 05H RETI;*******************************ELEVEN中断(INT0)控制了预置的开关以及生日信号的清除
ELEVEN:JNB SS,ELEVEN1;预置有效时按一次INT0关预置 CLR SS CLR TR1 SJMP ELEVEN3 ELEVEN1:JNB BS,ELEVEN2;预置无效判断生日信号有效则清除生日信号 CLR 05H CLR BS SJMP ELEVEN3 ELEVEN2:SETB SS;都无效则令预置有效 MOV TH1,#3CH MOV TL1,#0B0H SETB TR1 ELEVEN3:RETI;***************************************************************TWELVE 延时小程序
TWELVE:MOV P1,#0 MOV P2,#0 DJNZ R0,TWELVE TWELVE1:MOV P1,#0 MOV P2,#0 DJNZ R0,TWELVE1 RET