数字电子钟电子制作实训报告
数字电子钟电子制作实训报告 本文关键词:实训,数字,报告,制作,电子钟
数字电子钟电子制作实训报告 本文简介:电子制作实训报告题目:数字电子钟班级:09电信姓名:苏欣欣指导教师:赵欣湖北轻工职业技术学院完成日期:2011年4月16日目录第一章概述3第二章数字电子钟的电路原理4第三章电路调试与制作12第四章总结与体会12第五章附录13第1章概述数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用
数字电子钟电子制作实训报告 本文内容:
电子制作实训报告
题
目:
数字电子钟
班
级:
09电信
姓
名:
苏欣欣
指导教师:
赵欣
湖北轻工职业技术学院
完成日期:2011年
4月
16日
目录
第一章
概述
3
第二章
数字电子钟的电路原理
4
第三章
电路调试与制作
12
第四章
总结与体会
12
第五章
附录
13
第1章
概述
数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,运运超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。
虽然市场上已有现成的数字集成电路芯片出售,价格便宜,使用方便,这里所制作的数字电子可以随意设置时,分的输出,是数字电子中具有体积小、耗电省、计时准确、性能稳定、维护方便等优点。
设计目的
(1)
加强对电子制作的认识,充分掌握和理解设计个部分的工作原理、设计过程、选择芯片器件、电路的焊接与调试等多项知识。
(2)
把理论知识与实践相结合,充分发挥个人与团队协作能力,并在实践中锻炼。
(3)
提高利用已学知识分析和解决问题的能力。
(4)
提高实践动手能力。
第2章
数字电子钟的电路原理
数字电子钟的设计与制作主要包括:数码显示电路、计数器与校时电路、时基电路和闹铃报时电路四个部分。
1.数码显示电路
译码和数码显示电路是将数字钟的计时状态直观清晰地反映出来。显示器件选用FTTL-655SB双阴极显示屏组。在计数电路输出信号的驱动下,显示出清晰的数字符号。
2.计数器电路
LM8560是一种大规模时钟集成电路它与双阴极显示屏组可以制成数字钟钟控电路。
3.校时电路
数字钟电路由于秒信号的精确性和稳定性不可能做到完全准确无误,时基电路的误差会累积;又因外部环境对电路的影响,设计产品会产生走时误差的现象。所以,电路中就应该有校准时间功能的电路。通过手动调节按键,达到校准的目的。
4.定时报警电路
当调好定时间后并按下开关K1(白色键),显示屏右下方有红点指示,到定时时间有驱动信号经R3使VT1工作,即可定时报警输出。
芯片资料
LM8560是一种大规模时钟集成电路它与双阴极显示屏组可以制成数字钟钟控电路。作为时钟,它准确醒目;作为控制开关,它动作无误;在1小时59分钟或59分钟内,能任意暂停,使用十分方便。
仔细观察从0-9的每个数字并比较图1所示的笔段。内部电路参看图2,LM8560各脚功能,参看图3。
内部电路参看图2:
图2-6
第1-14脚全部是笔段输出。第15脚是Vss引出端,接正电压。第20脚是VDD引出端,接负电压。第28脚为12小时制显示和24小时制显示选择端。采用24小时制显示,该脚应接于Vss,采用12小时制显示可悬空。本电路设计为看出每个数字实际是7段字划组成的图形中不同笔段的组合,每段笔划用一只发光二极管代替,分别用a,b,c,d,e,f,g表示。如果每段笔划中的发光二极管按一定规律发光时,就组成了一定的数字如b,c两段发光,则组成“1,a,b,c,d,g发光,则组成“3”,7划全发光,则组成数字“8“,把各段笔划上的发光二极管的阴极连于一点的光屏,叫单阴极显示屏;把各段笔划上的发光二极管的阴极按一定规律连在两点,这样的显示屏叫双阴极显示屏工LM8560采用双动态驱动电路,配用的显示屏是双阴极3专位LED数字显示屏。交流电经全波整流,加到双阴极显示屏上,每组字段就会交替导通发光,由于人们的视觉惯性,看到笔段上的划线是连续发光的,这样设计数字电路中的笔画就可以减少一半,简化了电路,降低了成本,双阴极显示屏笔段上的笔划是连续发光的。
这样设计,数字电路中的笔段
12小时制显示,故第28脚悬空。第26脚为50HZ和60HZ选择,它通过第27脚为时钟电路提供了基准频率。若采用50Hz基准颇率,第26脚应接VSS,50Hz信号由市电降压滤波整形后由第25脚引入。第27脚是RC输入端,当停电后,备用电源自动启用,由内部震荡提供基准频率,振荡频率为1/2πRC。第27脚外接RC,决定了内部振荡频率的准确性。停电后,除显示屏不显示之外,其它各功能均能保留。
第21脚为分位调整引出脚,第22脚为时位调整引出脚,分别用按钮联于Vss,这两个脚接通Vss分位、时位分别以每秒递增1的速度递进。这两个脚可以用来校时和预置报警时间及睡眠时间。
第19脚为报警显示输入端,第23脚为睡眠显示输入端。分别把这两脚接到Vss,可分别显示报警时间和睡眠时间,配合第21脚和第22脚的时间调整功能,可任意设定报警时间和睡眠时间,当实际时间和预置时间一致时,可从第16脚输出一个5mA的报警信号,驱动压电片发出报替声音,或整流滤波后驱动继电器控制其它电器工作。当睡眠时间逐分递减到零时,第17脚输出的睡眠输出电压跳到零,也可控制其它电器工作。这是数字钟最重要的用途。在1小时59分钟的报警时间内,如果第24脚接到Vss,可以有9分钟的报警暂停时间在1小时59分钟内,可任意启用报警暂停功能。
由于时钟电路为长时间运行电路,要求变压器功率不小于3W,质量较好的不易发热。所有整流二极管要求反向漏电要求,可用1N4001或其它同类二极管。
CD4060资料
CD4060由一振荡器和14级二进制串行计数器位组成,振荡器的结构可以是RC或晶振电路,CR为高电平时,计数器清零且振荡器使用无效。所有的计数器位均为主从触发器。在CP1(和CP0)的下降沿计数器以二进制进行计数。在时钟脉冲线上使用斯密特触发器对时钟上升和下降时间无限制。
CD4060管脚图
图2-1
内部方框图CD4060
图2-2
4060BD典型振荡器连接:上图-RC振荡器
下图-晶体振荡器
原理分析
1
数字显示电子钟基本原理
数字显示电子钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,而为了能在睡眠时对人们进行提醒,还应加入一个定时报警电路。因此,一个基本的数字电子钟电路主要由“时、分、秒”计数器、译码器及显示器、校时电路、定式报警电路等组成。
电路原理图见下图:
IC1LM8560是50/60HZ的时基24小时专用数字钟集成电路,有28只管脚,1-14脚是显示笔画输出,15脚为正电源端,20脚为负电源端,27脚是内部振荡器RC输入端,16脚为报警输出。
T1为降压变压器,经桥式整流(VD6-VD9)及其滤波(C3、C4)后得到直流电,供主电路和显示屏工作。当交流电源停电时,备用电池通过VD5向电路供电。
IC2(CD4060)、JT、R2、C2构成50HZ的时基电路,CD4060内部包含14为二分频器和一个振荡器,电路简洁,30720HZ的信号经分频后,得到50HZ信号送到LM8560的25脚,并作出秒信号经YT2、VT3驱动显示屏的冒号闪动。
当调好定时间后并按下开关K1(白色键),显示屏右下方有红点指示,到定时时间有驱动信号经R3使VT1工作,即可定时报警输出。
在面板上从左到右,存在五个微动开关,分别是S4、S3、S2、S1调小时,S2调分钟,S3调时钟,S4调定时,K1定时报警开关(及闹铃开关)。
调时钟时,需按下S3的同时按下S1,即可调小时数;按下S3的同时按下S2可调分钟数。
调定时报警时,需下S4的时按下S1即可调闹钟的小时数,按下S4的同时按下S2可调事实上的闹铃数。
2
时基模块电路
其中网络标号CLOCK连接至LM8560的25管脚。整个电路的时钟信号由此电路输出,时间的运行也依靠此电路。由图看到CLOCK引脚是由Q9得到,则将30720HZ进行2分频,此时的13引脚输出=30720/521HZ=60HZ。而LM8560的26管脚接地,说明50/60赫兹选择端选择的是60HZ,得到60HZ的信号。
图3-1秒信号产生电路
3
数字钟集成电路(中心控制部分)与校时电路
本部分的功能是产生计数值由1-14管脚输出,并显示。S1、S2、S3、S4分别为调时、调分、调时间、调定时按键。15管脚通过二极管接到正电压上面,而16管脚则通过限流电阻接至报警电路,16管脚输出的是报警驱动信号。在双刀双掷开关K1按下时,显示屏27管脚接入高电平的同时蜂鸣器导通,通过三极管放大便可带动蜂鸣器,并且同步输出显示屏上面的alarm标志。调定时按键按下18、19管脚接入高电平,显示屏显示定时时间,高电平通过D1给S1和S2调定时,D1能阻止调时间按键S3按下时对18、19管脚的影响。这样就能分别调整时间和定时时间,精密无错。电路如下图:
图3-2校时电路
4
交流电源部分
电路需要直流供电,所以需要经过整流滤波电路得到稳定的直流电。整流桥为全波整流得到脉动的直流电,电容充放电滤波之后电压趋于稳定。变压器得到的为6V电压,提供给整个电路。当交流电断电时,由4节1.5V电池组成的6V电源继续供电,但显示屏只有交流电供给,所以此时的功耗较低,电池组只是保障走时的准确,再次上电时,时钟又会从准确的时刻走时。
图3-3电源电路
第3章
电路调试与制作
1.
当接通电源时发现不能定时报警,我们的按键是轻触按键,发现加装外壳后,按键容易被外壳压下去。我们将按键引出口增大,排除故障。
2.
焊接好元器件时,就通电源发现显示屏什么都没显示,经检查发现电路板上的4跟跳线没有连接,连接好后能够工作;
3.
显示的时候,发现秒针即冒号没有闪动,检查电路是由于其中一根导线断了,排线很细,所以我们在焊接的时候要很小心,避免弄坏焊接。
第4章
总结与体会
心得体会
“电子电路的制作与调试”这个课程主要是将我们所学到的理论知识加以与用到实际中,切实的掌握理论知识,锻炼我们的动手能力和提高我们的创新意识,这次的课程设计让我收获了很多,是我认识到了所学的专业知识的实用性和重要性。
这次的课程设计为数字电子钟,让我更好的理解了时基电路,LM8560大规模集成电路的工作原理,及电路板的焊接,在焊接过程中要先焊矮器件和耐热器件,最后焊高器件和对热敏感的器件,焊接点要杜绝虚焊和短路,在调试过程中正确的利用万用表来调试电路的正确性。
通过这次的课程设计让我认识到了我所学的理论知识还是远远不够的,在实际操作过程中还有些问题不能独立的去解决,所以我会在今后的学习过程中更加努力,学习自己的专业知识来更好的适应现在高速
发展的社会。
第5章
附录
电路原理图
实物图外观
元器件清单
序号
名称
型号
功能
数量
单位
1
集成电路
LM8560(3450)
24小时数字钟集成电路
1
块
2
集成电路
CD4060
秒脉冲发生器
1
块
3
二极管
IN4001
整流、防回流
9
只
4
三极管
9012、9013
驱动数码管
3
只
5
三极管
8050
驱动蜂鸣器
1
只
6
电阻
1k、10k、120k、1M
各一只
只
7
电阻
6.8k
3
只
8
LED显示器
FTTL-655G
1
块
9
蜂鸣器
?12×9
1
个
10
晶振
30.720k
1
个
11
电源变压器
220V/9V/2W
1
个
12
瓷片电容
20P、103P
各一只
只
13
电解电容
220UF、1000UF
各一只
只
14
轻触开关
6×6×17
4
个
15
自锁开关
7×7
1
个
14
篇2:数电综合实验报告——数字电子钟
数电综合实验报告——数字电子钟 本文关键词:实验,数字,报告,综合,电子钟
数电综合实验报告——数字电子钟 本文简介:数电综合实验报告通信与信息工程学院电子信息工程1202刘维1207050208实验名称:数字电子钟设计指标:数字电子钟以一昼夜24小时为一个计数周期;设计具有“时”、“分”、“秒”数字显示;设计具有较时功能,分别进行时、分、秒的校正。实验目的:了解数字电子钟的工作原理;了解数字电子钟的设计及其电路的
数电综合实验报告——数字电子钟 本文内容:
数
电
综
合
实
验
报
告
通信与信息工程学院
电子信息工程1202
刘维
1207050208
实验名称:数字电子钟
设计指标:
数字电子钟以一昼夜24小时为一个计数周期;
设计具有“时”、“分”、“秒”数字显示;
设计具有较时功能,分别进行时、分、秒的校正。
实验目的:
了解数字电子钟的工作原理;
了解数字电子钟的设计及其电路的连接;
会使用555多谐振荡器、CD4518芯片、74LS00芯片、74LS47芯片。
实验仪器:
实验所需元器件:
555定时器一个、CD4518芯片五个、译码器74LS47六个、数码管六个、74LS00二个、电阻680Ω六个、电容0.1μf一个、电容0.01μf一个、电阻2.4K二个
CD4518功能表:
Cr
Cp
En
Q4
Q3
Q2
Q1
1
×
×
0
0
0
0
0
↑
1
加法计数器
0
0
↓
0
↓
×
保
持
0
×
↑
0
↑
0
0
1
↓
实验原理:
芯片原理图:
实验原里电路图:
实验分析过程及结果:
(1)555定时器组成的多谐振荡器电路:
且f=2kHz
q=
C=0.1μf
所以
(2)分频器电路:
分析:由555定时器组成的多谐振荡器的输出为2kHz的方波,现在设计数字电子钟所需1Hz的脉冲,则需要使用2个CD4518芯片进行分频,电路图如下:
六十进制计数器电路连接图:
二十四进制计数器:
译码驱动电路:
实验心得体会:
通过本次综合设计实验,我体会颇深。站在个人的角度,我从两方面叙述和总结一下这次的实验。
我在本次实验中所做的工作:
分析电路的要求,根据实验设计要求选取实验材料;
与组员协作、讨论,共同完成实验电路的设计;
连接电路,与组员平均分配参与各个部分电路的研究;
检查电路的能否工作,是否达到设计的要求,排错,最终完成电路。
个人体会:
这是一次综合性很强的实验,在实验中,学会了如何和组员共同协作完成任务,实践时间不成,和组员的协作是否默契在这次实验中体现出及其重要的一面,协作的好与坏直接影响到本次实验进程的快慢与结果的是否成功;这又是一次需要动手的实验,学会了如何理论联系实践,实验中的认芯片,根据芯片图与实际芯片连接电路很能体现实践联系理论的重要性,很能锻炼动手能力;这又是一次急需细心的实验,不仅要快,而且要准,不能有丝毫的马虎,实验中出现的漏连了本该接地的管脚的问题很能说明这个问题。
总体上说,我们小组在本次实验是成功,较好的完成任务。电路板的连接比较美观,实验结果也是成功的。在这次实验中不仅锻炼了我的动手能力,也让我对理论知识有了更深刻的认识。同时,我也更加理解了“理论是实践的基础”、“理论联系实践的重要”,只有在平时努力学好理论知识,多动脑,多动手,才能在是问题面前游刃有余!
篇3:对时功能电子钟设计报告
对时功能电子钟设计报告 本文关键词:功能,报告,电子钟,设计
对时功能电子钟设计报告 本文简介:设计报告题目完成人:张欣,杜枫一、系统概述使用AT89C51单片机结合段码LED显示器,键盘设计一个具有对时功能的电子钟。1、设计要求:l采用8个LED数码管,显示格式为“时时-分分-秒秒”,采用24小时制。l“时/分/秒”相应LED闪动,表示相应的部分处于对时状态。l用5个功能键操作来设置当前时间
对时功能电子钟设计报告 本文内容:
设计报告
题
目
完成人:张欣,杜枫
一、
系统概述
使用AT89C51单片机结合段码LED显示器,键盘设计一个具有对时功能的电子钟。
1、设计要求:
l
采用8个LED数码管,显示格式为“时时-分分-秒秒”,采用24小时制。
l
“时/分/秒”相应LED闪动,表示相应的部分处于对时状态。
l
用5个功能键操作来设置当前时间:
功能键K1~K5功能如下。
l
K1—进入时间设置状态,且“时时-分分-秒秒”LED闪动。
l
K2—设置小时。
l
K3—设置分钟。
l
K4—设置秒钟。
l
K5—确认完成设置,“时时-分分-秒秒”LED停止闪动,继续计时。
l
未进入计时状态时,K2-K5键的操作被忽略。
程序执行后LED显示“00:00:00”,然后开始计时。
2、用汇编语言编写相应软件;
3、系统软、硬件联调。
二、
方案设计
本次设计是基于AT89C51单片机电子钟的设计,对时、分、秒的显示的控制,时、分、秒用六位数码管显示LED数码管时钟电路采用24小时计时方式。该电路采用AT89C51单片机,使用5V电池供电,只使用一个按键进行复位状态的控制以及正常显示等状态。LED显示采用静态扫描方式实现,采用6M晶振。
该电子钟使用单片机模块控制,用单片机原理实现时、分、秒计时的装置。本次设计通过用单片机为主控制,通过电路仿真而实现。首先使用Proteus
Professional软件进行绘制硬件电路图,用keil软件进行编程与调试,最终生成hex文件,传入单片机内部,从而实现仿真效果。
三、
硬件设计
根据AT89C51单片机灌电流能力强,拉电流能力弱的特点,我们选用共阳数码管。将AT89C51的P3.0~P3.1分别与74LS164的数据输入口和时钟信号输入口相连,74LS164是8位串入并出移位寄存器,负责将P3.0输出的串行数据转换成并行信号。显然,这种方式显示同样的位数使用单片机的口线大大减少,即可以让LED当前时间数值,数码管显示器有二种工作方式,即静态显示方式和动态扫描显示方式。为节省端口,本系统采用静态扫描显示方式。系统的时分显示部件由6只7段共阳LED数码管构成,前两只用于时的显示,中间两只用于分的显示,最后两只用于秒的显示。每个LED数码管由相对应的74LS164驱动,数码管的a,b,c,d,e,f,g,h,分别分别74LS164的QA,QB,QC,QD,QE,QF,QH相连。
3.1
AT89C51引脚及其功能
引脚功能:
Vcc(40):电源电压
GND(20):接地
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
RST(9):复位信号输入端。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1(18):振荡器反相放大器的及内部时钟发生器的输入端。
XTAL2(19):振荡器反相放大器的输出端。通过XTAL1、XTAL2外接晶振后,即可构成自激振荡器,驱动内部时钟发生器向主机提供时钟信号。
3.2
时钟电路
单片机必须在时钟的驱动下才能进行工作。MCS-51系列单片机内部有一时钟振荡电路,只需外接振荡电源,就能产生一定频率的时钟信号到单片机内部的各个单元,决定单片机的工作速度。电路如下图:
3.3驱动部件
74LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。图3(a)为74LS245的管脚图。
图3(a)74LS245管脚图
3.4显示部分
由8个共阴极的数码管组成时、分、秒和分隔符的显示P0口的8条数据线P0.0至P0.7分别与74LS245的A口对应相接,增大AT89C51的带负载能力;P3口对应接八个数码管的公共端,通过程序控制数码管的亮与灭,这样通过P0口送出一个存储单元的高位、低位BCD显示代码,通过P3口送出
扫描选通代码轮流点亮LED1至LED8,就会将要显示的数据在数码管中显示出来,从P0口输出的代码是BCD码,从P3口输出的就是位选码。这是扫描显示原理。
LED显示段码
字型
共阳极段码
共阴极段码
字型
共阳极段码
共阴极段码
0
C0H
3FH
9
90H
6FH
1
F9H
06H
A
88H
77H
2
A4H
5BH
B
83H
7CH
3
BOH
4FH
C
C6H
39H
4
99H
66H
D
A1H
5EH
5
92H
6DH
E
86H
79H
6
82H
7DH
F
84H
71H
7
F8H
07H
空白
FFH
00H
8
80H
7FH
P
8CH
73H
注:(1)本表所列各字符的显示段码均为小数点不亮的情况。
(2)“空白”字符即没有任何显示。
四、
软件设计
本次设计的软件部分由主程序,静态显示子程序,中断服务程序,时、分、秒加1子程序,时、分、秒单元清零子程序组成。
4.1
电子钟的主程序
本设计中,计时采用定时器T0中断完成,其余状态循环调用显示子程序,当端口开关按下时,转入相应功能程序。其主程序执行流程见下图。
开始
设堆栈指针
秒分时计数单元清零
设定时器工作方式
设定时器初值
设中断方式
中断初始化
调显示子程序
TMOD=01为工作方式1
4.2定时器中断服务程序
定时器TO用于时间计时,定时溢出中断周期设为100ms,中断进入后,判断是否到1秒钟,到了,则调用加法子程序对秒进行加1处理,处理完后返回断点地址,同时判断秒是否到了60秒,到了则对秒单元清零,同时对分进行加1操作,同样对分进行判断,到60分则对分单元清零,同时对时加1,同样也对时进行判断,到24小时,则对时单元清零,最后中断返回。
T0中断服务程序执行流程见下图:
保护现场
赋初值
10数是否到?
N
Y
秒值加1
是否到60秒?
N
Y
秒清0
分加1
是否到60分?
N
Y
分清0
小时加1
是否到24小时?
N
Y
小时清0
恢复现场
返回中断
4.3电子钟的显示子程序
4.4延时子程序
※附:程序片段如下:
S_SETBITP1.0
M_SETBITP1.1
H_SETBITP1.2
SECONDEQU30H
MINUTEEQU31H;定义MINUTE为31H单元标号,分计数单元
HOUREQU32H;定义HOUR为32H单元标号,时计数单元
TCNTEQU34H;定义TCNT为34H单元标号定时器TO计数
ORG00H;程序开始地址
SJMPSTART
;跳转到START执行
ORG0BH;定时器TO中断入口地址
LJMP
INT_T0;跳转到INT-TO执行
START:MOV
DPTR,#TABLE;指针指向TABLE首地址
MOVHOUR,#0;初始化秒计数单元
MOVMINUTE,#0;初始化分计数单元
MOVSECOND,#0;初始化时计数单元
MOVTCNT,#0;初始化T0计数单元
MOVTMOD,#01H;工作方式1
MOVTH0,#(65536-50000)/256;定时
50
毫秒
MOVTL0,#(65536-50000)MOD
256
MOVIE,#82H;允许定时器TO中断
SETBTR0;启动定时器T0
;判断是否有控制键按下,是哪一个键按下
A1:LCALLDISPLAY;跳转到DISPLAY执行
JNBS_SET,S1;检查
P1.0
口
电平
JNBM_SET,S2;检查
Pl.l
口电平
JNBH_SET,S3;检查
P1.2
口
电平
LJMPA1;返回
S1:LCALLDELAY;去抖动
JBS_SET,A1;确认
P1.0
口电平
INCSECOND;秒值加1
MOVA,SECOND;秒数值送入A比较
CJNE
A,#60,J0;判断是否加到60秒
MOVSECOND,#0;SECOND
单元清零
LJMPK1;转到K1执行
S2:LCALLDELAY;长调用DELAY指令
JBM_SET,A1;确认Pl.l
口电平
K1:INCMINUTE;分钟值加1
MOVA,MINUTE;分数值送入A比较
CJNEA,#60,J1;判断是否加到60分
MOVMINUTE,#0;秒单元清零
LJMPK2;调用K2指令
S3:LCALLDELAY;调用延时子程序
JBH_SET,A1;确认?1.2
口电平
K2:INCHOUR;小时值加1
MOVA,HOUR;时数值送入A比较
CJNEA,#24,J2;判断是否加到24小时
MOVHOUR,#0;时单元清零
MOVMINUTE,#0;分单元清零
MOVSECOND,#0;秒单元清零
LJMPA1;跳转到程序A1
;等待按键抬起
J0:
JBS_SET,A1;调用A1指令
LCALLDISPLAY;调用显示子程序
SJMPJ0;返回J0指令
J1:
JBM_SET,A1;数值比较
LCALLDISPLAY;调用显示子程序
SJMPJ1;返回J1指令
J2:
JBH_SET,A1;数值比较
LCALLDISPLAY;调用显示子程序
SJMPJ2;返回J2指令
;定时器TO中断服务子程序,对秒,分钟和小时的计数
INT_T0:MOVTH0,#
(65536-50000)/256;定时
50ms
MOVTL0,#
(65536-50000)
MOD
256
INCTCNT;定时器TO计数单元中的数值加1
MOVA,TCNT;定时器T0计数单元中的数值送入A比较
CJNEA,#20,RETUNE
;计时
1
秒,
INCSECOND;秒计数单元中的数值加1
MOVTCNT,#0;定时器TO计数单元归零
MOVA,SECOND;秒计数单元中的数值送入A比较
CJNEA,#60,RETUNE;记时
1
分,
INCMINUTE;分计数单元中的数值加1
MOVSECOND,#0;秒计数单元归零
MOVA,MINUTE;分计数单元中的数值送入A比较
CJNEA,#60,RETUNE;记时
1
时,
INCHOUR;时计数单元中的数值加1
MOVMINUTE,#0;分计数单元归零
MOVA,HOUR;时计数单元中的数值送入A比较
CJNEA,#24,RETUNE;记时
1
天,
MOVHOUR,#0;时计数单元归零
MOVMINUTE,#0;分计数单元归零
MOVSECOND,#0;秒计数单元归零
MOVTCNT,#0;定时器T0计数单元清零
RETUNE:
RETI;中断返回
;显示控制子程序
DISPLAY:
MOVA,SECOND;显示秒
MOVB,#10;B寄存器赋值为10
DIVAB;(A)/(B),商存入A,余数存入B,分别处理A与B中数
CLRP3.6;数码管7开始工作
MOVCA,@A+DPTR;数据指针指向数值地址并送入A输出显示
MOVP0,A;在数码管7输出显示秒单元的十位数值
LCALLDELAY;调用延时子程序
SETBP3.6;数码管7停止工作
MOVA,B;将B寄存器中的数送入A处理显示
CLRP3.7;数码管8开始工作
MOVCA,@A+DPTR;数据指针指向数值地址并送入A输出显示
MOVP0,A;在数码管8输出显示秒单元的个位数值
LCALLDELAY;调用延时子程序
SETBP3.7;数码管8停止工作
CLRP3.5;数码管6开始工作
MOVP0,#40H;显示分隔符
LCALLDELAY;调用延时子程序
SETBP3.5;数码管6停止工作
MOVA,MINUTE;显示分钟
MOVB,#10;B寄存器赋值为10
DIVAB
CLRP3.3;数码管4开始工作
MOVCA,@A+DPTR;数据指针指向数值地址并送入A输出显示
MOVP0,A;在数码管4输出显示分单元的十位数值
LCALLDELAY;调用延时子程序
SETBP3.3;数码管4停止工作
MOVA,B;将B寄存器中的数送入A处理显示
CLRP3.4;数码管5开始工作
MOVCA,@A+DPTR;数据指针指向数值地址并送入A输出显示
MOVP0,A;在数码管5输出显示分单元的个位数值
LCALLDELAY;调用延时子程序
SETBP3.4;数码管5停止工作
CLRP3.2;数码管3开始工作
MOVP0,#40H;显示分隔符
LCALLDELAY;调用延时子程序
SETBP3.2;数码管3停止工作
MOVA,HOUR;显示小时
MOVB,#10;B寄存器赋值为10
DIVAB;商存入A,余数存入B,分别处理A与B中数
CLRP3.0;数码管1开始工作
MOVCA,@A+DPTR;数据指针指向数值地址并送入A输出显示
MOVP0,A;在数码管1输出显示时单元的十位数值
LCALL
DELAY;调用延时子程序
SETBP3.0;数码管1停止工作
SETB
P3.0;数码管1停止工作
MOVA,B;将B寄存器中的数送入A处理显示
CLRP3.1;数码管2开始工作
MOVCA,@A+DPTR;数据指针指向数值地址并送入A输出显示
MOVP0,A;在数码管2输出显示时单元的个位数值
LCALLDELAY;调用延时子程序
SETBP3.1;数码管2停止工作
RET;子程序返回
TABLE:DB
3FH,06H,5BH,4FH,66H;*W
极
LED
显示器段选码
0,1,2,3,4
DB6DH,7DH,07H,7FH,6FH;共阴极
LED
显示器段选码
5,6,7,
;延时子程序
DELAY:
MOVR6,#10;R6
赋值为
10
Dl:
MOVR7,#250;R7
赋值为
250
DJNZR7,$;原地踏步
DJNZR6,Dl;返回D1循环
RET;子程序返回
END;结束程序
五、仿真实验结果
5.1软件调试
打开程序调试软件keil
uVision4,在里面新建一个工程,命名为:数字时
钟“2345”。接着新建文件,编写相应程序。编写好的各个程序进行编译与连接。在调试过程中,程序有错误,我们根据相应的提示进行了多次修改,直到该程序能够正确编译。之后,我们在点击相关栏目,让它生成我们在硬件仿真时所需要的“.HEX”文件。到此,我们的软件调试就完成了。下面是我们软件调试的部分贴图。
程序运行成功,并生成HEX文件,如图1。
图
1
将生成的HEX文件,加载到单片机中。如图2。
图2
生成HEX文件
5.2硬件调试
打开Proteus
7
Professional软件,按照方案所选的电路元件来设计整体电路,先把个芯片按一定的位置放好,然后对相应的接口进行连接。做好之后把编程所生成的HEX文件加载到AT89C51中,运行仿真软件,查看运行效果。仿真结果未达到设计要求,目前我们仍在查找原因。
下图5(a)--图5(e)是未连驱动电路时的硬件仿真结果部分贴图;
图5(f)--图5(g)是连了驱动电路后的硬件调试部分贴图。
图
5(a)
图
5(b)
图
5(c)
图
5(d)
图
5(e)
图
5(f)
图
5(g)
六、参考文献
①《单片机程序设计实例》
清华大学出版社
②《单片机原理及接口技术》
高等教育出版社
③《单片机课程设计实例指导》
北京航空航天大学出版社