版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-. z基于单片机的简易电子时钟设计摘 要单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、开展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习、应用,以AT89S51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5V直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、
2、设计、开发软、硬件的能力。关键词:单片机 AT89S-. z前言时钟,自从它创造的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断开展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民效劳,怎样让我们的老朋友焕发青春呢.这就要求人们不断设计出新型时钟。现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进展时和分
3、的校对,片选的灵活性好。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的根底。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,*1203等都可以满足高精度的要求。本文主要介绍用单片机部的定时/计
4、数器来实现电子时钟的方法,本设计由单片机AT89S51芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机电子时钟。-. z关于电子时钟2.1电子时钟简介 1957年,Ventura创造了世界上第一个电子表,从而奠定了电子时钟的根底,电子时钟开场迅速开展起来。现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进展满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。从而到达计时的功能,是人民日常生活补课缺少的工具。2.2 电子时钟的根本特点现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,
5、因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进展时和分的校对,片选的灵活性好。2.3 电子时钟的原理该电子时钟由89C51,BUTTON,六段数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,到达时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。而电路中唯一的一个控制键却拥有多种不同的功能,按下又松开,可以实现屏蔽数码管显示的功能,到达省电的目的;直接按下不松开,则可以通过按键实现分钟的累加,每按
6、一次分钟加一;而连续两次按下按键不放松,则可实现小时的调节,同样每按一次小时加一。关于单片机 3.1 单片机简介单片机全称为单片机微型计算机Single Chip Microsoftputer)。从应用领域来看,单片机主要用来控制,所以又称为微控制器Microcontroller Unit或嵌入式控制器。单片机是将计算机的根本部件微型化并集成在一块芯片上的微型计算机。3.2 单片机的开展史1 . 4位单片机 1975年,美国德克萨斯仪器公司首次推出4位单片机TMS-1000;此后,各个计算机公司竞相推出四位单片机。日本松下公司的MN1400系列,美国洛克威尔公司的PPS/1系列等。四位单片机的
7、主要应用领域有:PC机的输入装置,电池充电器,运动器材,带液晶显示的音/视频产品控制器,一般家用电器的控制及遥控器,电子玩具,钟表,计算器,多功能等。 2 . 8位单片机 1972年,美国Intel公司首先推出8位微处理器8008,并于1976年9月率先推出MCS-48系列单片机。在这以后,8位单片机纷纷面市。例如,莫斯特克和仙童公司合作生产的3870系列,摩托罗拉公司生产的6801系列等。随着集成电路工艺水平的提高,一些高性能的8位单片机相继问世。例如,1978年摩托罗拉公司的MC6801系列及齐洛格公司的Z8系列,1979年NEC公司的UPD78*系列。这类单片机的寻址能力达64KB,片R
8、OM容量达4-8KB,片除带有并行IO口外,还有串行IO口,甚至还有AD转化器功能。8位单片机由于功能强,被广泛用于自动化装置、智能仪器仪表、智能接口、过程控制、通信、家用电器等各个领域。3 . 16位单片机 1983年以后,集成电路的集成度可达几十万只管/片,各系列16位单片机纷纷面市。这一阶段的代表产品有1983年Intel公司推出的MCS-96系列,1987年Intel推出了80C96,美国国家半导体公司推出的HPC16040,NEC公司推出的783*系列等。16位单片机主要用于工业控制,智能仪器仪表,便携式设备等场合。4 . 32位单片机 随着高新技术只智能机器人,光盘驱动器,激光打印
9、机,图像与数据实时处理,复杂实时控制,网络效劳器等领域的应用与开展,20世纪80年代末推出了32位单片机,如Motorlora公司的MC683*系列,Intel的80960系列,以及近年来流行的ARM系列单片机。32位单片机是单片机的开展趋势,随着技术的开展及开发本钱和产品价格的下降,将会与8位单片机并驾齐驱。5 . 64位单片机 近年来,64位单片机在引擎控制,智能机器人,磁盘控制,语音图像通信,算法密集的实时控制场合已有应用,如英国Inmos公司的Transputer T800是高性能的64位单片机。3.3单片机的特点 1 . 单片机的存储器ROM和RAM时严格区分的。ROM称为程序存储器
10、,只存放程序,固定常数,及数据表格。RAM则为数据存储器,用作工作区及存放用户数据。 2 . 采用面向控制的指令系统。为满足控制需要,单片机有更强的逻辑控制能力,特别是单片机具有很强的位处理能力。 3 . 单片机的I/O口通常时多功能的。由于单片机芯片上引脚数目有限,为了解决实际引脚数和需要的信号线的矛盾,采用了引脚功能复用的方法,引脚处于何种功能,可由指令来设置或由机器状态来区分。 4 . 单片机的外部扩展能力很强。在部的各种功能部件不能满足应用的需求时,均可在外部进展扩展,与许多通用的微机接口芯片兼容,给应用系统设计带来了很大的方便。 方案论证与比拟2.1数字时钟方案数字时钟是本设计的最主
11、要的局部。根据需要,可利用两种方案实现。方案一:本方案采用Dallas公司的专用时钟芯片DS12887A。该芯片部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。为保证时钟在电网电压缺乏或突然掉电等突发情况下仍能正常工作,芯片部包含锂电池。当电网电压缺乏或突然掉电时,系统自动转换到部锂电池供电系统。而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。方案二:本方案完全用软件实现数字时钟。原理为:在单片机部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1
12、秒定时中断,每产生一次中断,存储器相应的秒值加1;假设秒值到达60,则将其清零,并将相应的分字节值加1;假设分值到达60,则清零分字节,并将时字节值加1;假设时值到达24,则将十字节清零。该方案具有硬件电路简单的特点。但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。基于硬件电路的考虑,本设计采用方案二完成数字时钟的功能。2.2 数码管显示方案方案一:静态显示。所谓静态显示,就是当显示器显示*一字符时,相应的发光二极管恒定的导通或截止。该方式每一位都需要一个8 位输出口控制。静态显示时较小的电流能获得较高的亮度,且
13、字符不闪烁。但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。方案二:动态显示。所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。调整参数可以实现较高稳定度的显示。动态显示节省了I/O口,降低了能耗。从节省I/O口和降低能耗出发,本设计采用方案二。系统设计5.1 总体设计计时方案利用AT89S51单片机部的定时/计数器进展中断时,配合软件延时实现时、分、秒的计时。该方案节省硬件本钱,且能使读者在定
14、时/计数器的使用、中断及程序设计方面得到锻炼与提高,对单片机的指令系统能有更深入的了解,从而对学好单片机技术这门课程起到一定的作用。控制方案AT89S51的P0口和P2口外接由八个LED数码管(LED8LED1)构成的显示器,用P0口作LED的段码输出口,P2口作八个LED数码管的位控输出线,P1口外接四个按键A、B、C构成键盘电路。AT89S51 是一种低功耗,高性能的CMOS 8位微型计算机。它带有8K Flash 可编程和擦除的只读存储器EPROM,该器件采用ATMEL的高密度非易失性存储器技术制造,与工业上标准的80C51和80C52的指令系统及引脚兼容,片Flash 集成在一个芯片上
15、,可用与解决复杂的问题,且本钱较低。简易电子钟的功能不复杂,采用其现有的I/O便可完成,所以本设计中采用此的设计方案。5.具体设计分析利用单片机AT89S51制作简易电子时钟,由六个LED数码管分别显示小时十位、小时个位、分钟十位、分钟个位、秒钟十位、秒钟个位。结合本设计实验来说,要求显示的时间为时,分,秒,并且都用两位数码管来实现显示。因此,具体设计程序时,应尽可能多用一些子程序与数据暂存放器单元。本程序设计中,在主程序之外,可以设置时间值处理子程序,时间值显示前的处理子程序,按键情况扫描子程序,1S定时中断子程序以及5ms延时消除按键抖动子程序等多个小型的子程序。另外,可以设置一些数据单元
16、作为数据存放器。用28H,2AH,2BH和2CH地址单元分别作为显示位数的扫描指针值存放器,时存放器,分存放器和秒存放器,再用20H地址单元作为显示存放器 系统框图5.2 模块设计5.2.1芯片分析 AT89S51芯片选用的AT89S51与同系列的AT89C51在功能上有明显的提高,最突出是的可以实现在线的编程。用于实现系统的总的控制。其主要功能列举如下:1、为一般控制应用的 8 位单片机2、晶片部具有时钟振荡器传统最高工作频率可至 33MHz3、部程式存储器ROM为 4KB4、部数据存储器RAM为 128B5、外部程序存储器可扩大至 64KB6、外部数据存储器可扩大至 64KB7、32 条双
17、向输入输出线,且每条均可以单 独做 I/O 的控制8、5 个中断向量源9、2 组独立的 16 位定时器10、1 个全双工串行通信端口11、8751 及 8752 单芯片具有数据的功能12、单芯片提供位逻辑运算指令AT89S51各引脚功能介绍:VCC:ATAT89S51 电源正端输入,接+5V。VSS:电源地端。*TAL1:单芯片系统时钟的反向放大器输入端。*TAL2:系统时钟的反向放大器输出端,一般在设计上只要在 *TAL1 和 *TAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两个引脚与地之间参加一个 20PF 的小电容,可以使系统更稳定,防止噪声干扰而死机。RESET:AT89
18、S51的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得部特殊功能存放器之容均被设成状态,并且至地址0000H处开场读入程序代码而执行程序。EA/Vpp:EA为英文E*ternal Access的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码存于外部EPROM中来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其部无程序存储器空间。如果是使用 8751 部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751部EPROM时,
19、可以利用此引脚来输入21V的烧录高压Vpp。ALE/PROG:ALE是英文Address Latch Enable的缩写,表示地址锁存器启用信号。ATAT89S51可以利用这支引脚来触发外部的8位锁存器如74LS373,将端口0的地址总线A0A7锁进锁存器中,因为ATAT89S51是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。PSEN:此为Program Store Enable的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码
20、工作模式时EA=0,会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。ATAT89S51可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址围。PORT0P0.0P0.7:端口0是一个8位宽的开路电极Open Drain双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口P1、P2、P3则不具有此电路组态,而是部有一提升电路,P0在当作I/O用时可以推动8个LS的TTL负载。如果当EA引脚为低电平时即取用外部程序代码或数据存储器,P0就以多工方式提供地址总线A0A7及数
21、据总线D0D7。设计者必须外加一个锁存器将端口0送出的地址锁住成为A0A7,再配合端口2所送出的A8A15合成一组完整的16位地址总线,而定位地址到64K的外部存储器空间。PORT2P2.0P2.7:端口2是具有部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,假设将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当作一般I/O端口使用外,假设是在ATAT89S51扩大外接程序存储器或数据存储器时,也提供地址总线的高字节A8A15,这个时候P2便不能当作I/O来使用了。PORT1P1.0P1.7:端口1也是具有部提升电路的双向I/O端口,其输出缓冲器可以推动4
22、个LS TTL负载,同样地,假设将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P1.0又当作定时器2的外部脉冲输入脚,而P1.1可以有T2E*功能,可以做外部中断输入的触发引脚。PORT3P3.0P3.7:端口3也具有部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器容的读取或写入控制等功能。其引脚分配如下:P3.0:R*D,串行通信输入。P3.1:T*D,串行通信输出。P3.2:INT0,外部中断0输入。P3.3:INT1,外部中断1输入。P3.4:
23、T0,计时计数器0输入。P3.5:T1,计时计数器1输入。P3.6:WR:外部数据存储器的写入信号。P3.7:RD,外部数据存储器的读取信号。 74LS47芯片说明74LS47是BCD-7段数码管译码器/驱动器, 74LS47的功能用于将BCD码转化成数码块中的数字,通过它解码, 可以直接把数字转换为数码管的显示数字, 从而简化了程序。74LS47译码器原理:译码为编码的逆过程。它将编码时赋予代码的含义翻译过来。实现译码的逻辑电路成为译码器。译码器输出与输入代码有唯一的对应关系。74LS47是输出低电平有效的七段字形译码器,它在这里与数码管配合使用,下表列出了74LS47的真值表,表示出了它与
24、数码管之间的关系。输 入 输 出 显示数字符号 LTRBIA3 A2 A1 A0 BIRBO a bc d e f g11 0 0 0 0 1 0 0 0 0 0 0 1 0 1 * 0 0 0 1 1 1 0 0 1 1 1 1 1 1 * 0 0 1 0 1 0 0 1 0 0 1 0 2 1 * 0 0 1 1 1 0 0 0 0 1 1 0 3 1 * 0 1 0 0 1 1 0 0 1 1 0 0 4 1 * 0 1 0 1 1 0 1 0 0 1 0 0 5 1 * 0 1 1 0 1 1 1 0 0 0 0 0 6 1 * 0 1 1 1 1 0 0 0 1 1 1 1 7 1
25、* 1 0 0 0 1 0 0 0 0 0 0 0 8 1 * 1 0 0 1 1 0 0 0 1 1 0 0 9 * * * * * * 0 1 1 1 1 1 1 1 熄灭 1 0 0 0 0 0 0 1 1 1 1 1 1 1 熄灭0 * * * * * 1 0 0 0 0 0 0 0 8 74LS138芯片说明74HC138:74LS138 为3 线8 线译码器,共有 54/74S138和 54/74LS138 两种线路构造型式,其74LS138工作原理如下: 当一个选通端G1为高电平,另两个选通端/(G2A)和/(G2B)为低电平时,可将地址端A、B、C的二进制编码在一个对应的输出端
26、以低电平译出。74LS138的作用:利用 G1、/(G2A)和/(G2B)可级联扩展成 24 线译码器;假设外接一个反相器还可级联扩展成 32 线译码器。 假设将选通端中的一个作为数据输入端时,74LS138还可作数据分配器74LS138与74HC的引脚图用与非门组成的3线-8线译码器74LS138无论从逻辑图还是功能表我们都可以看到74LS138的八个输出引脚,任何时刻要么全为高电平1芯片处于不工作状态,要么只有一个为低电平0,其余7个输出引脚全为高电平1。如果出现两个输出引脚同时为0的情况,说明该芯片已经损坏。71LS138有三个附加的控制端、和。当、时,输出为高电平S1,译码器处于工作状
27、态。否则,译码器被制止,所有的输出端被封锁在高电平,如表3.3.5所示。这三个控制端也叫做片选输入端,利用片选的作用可以将多篇连接起来以扩展译码器的功能。3线-8线译码器74LS138的功能表带控制输入端的译码器又是一个完整的数据分配器。在图3.3.8电路中如果把作为数据输入端同时,而将作为地址输入端,则从送来的数据只能通过所指定的一根输出线送出去。这就不难理解为什么把叫做地址输入了。例如当101时,门的输入端除了接至输出端的一个以外全是高电平,因此的数据以反码的形式从输出,而不会被送到其他任何一个输出端上。5.2.2 晶振电路右图所示为时钟电路原理图,在AT89S51芯片部有一个高增益反相放
28、大器,其输入端为芯片引脚*TAL1,输出端为引脚*TAL2。而在芯片部,*TAL1和*TAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。时钟电路产生的振荡脉冲经过触发器进展二分频之后,才成为单片机的时钟脉冲信号。图3晶振电路复位电路单片机复位的条件是:必须使RST/VPD 或RST引9加上持续两个机器周期即24个振荡周期的高电平。例如,假设时钟频率为12 MHz,每机器周期为1s,则只需2s以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。单片机常见的复位如下图。电路为上电复位电路,它是利用电容充电来实现的。在接电瞬间,RESET端的电位与VCC一样,随着充
29、电电流的减少,RESET的电位逐渐下降。只要保证RESET为高电平的时间大于两个机器周期,便能正常复位。该电路除具有上电复位功能外,假设要复位,只需按图中的RESET键,此时电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。图4单片机复位电路数码显示模块设计数码管的引脚图共阴数码管数码管是一种把多个LED显示段集成在一起的显示设备。有两种类型,一种是共阳型,一种是共阴型。共阳型就是把多个LED显示段的阳极接在一起,又称为公共端。共阴型就是把多个LED显示段的阴极接在一起,即为公共商。阳极即为二极管的正极,又称为正极,阴极即为二极管的负极,又称为负极。通常的数码管又分为8段,即8
30、个LED显示段,这是为工程应用方便如设计的,分别为A、B、C、D、E、F、G、DP,其中DP 是小数点位段。而多位数码管,除*一位的公共端会连接在一起,不同位的数码管的一样端也会连接在一起。即,所有的A段都会连在一起,其它的段也是如此,这是实际最常用的用法。数码管显示方法可分为静态显示和动态显示两种。静态显示就是数码管的8段输入及其公共端电平一直有效。动态显示的原理是,各个数码管的一样段连接在一起,共同占用8 位段引管线;每位数码管的阳极连在一起组成公共端。利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示就会
31、清晰显示出来。系统采用动态显示方式,用P0口来控制LED数码管的段控线,而用P2口来控制其位控线。动态显示通常都是采用动态扫描的方法进展显示,即循环点亮每一个数码管,这样虽然在任何时刻都只有一位数码管被点亮,但由于人眼存在视觉残留效应,只要每位数码管间隔时间足够短,就可以给人以同时显示的感觉。5.2.5按键模块时间计数电路由秒个位和秒十位计数器、分个位和分十位计数器、时个位和时十位计数器及星期计数器电路构成,其中秒个位和秒十位计数器、分个位和分十位计数器为60进制计数器,时个位和时十位计数器为24进制计数器。下列图为按键模块电路原理图。整个电路原理图 第六章 控制系统的软件设计根本的程序流程应
32、该是:在主程序中检测各个时间按钮是否有动作假设有,就储存并修改相关的的时间存放器的值,假设没有,就继续检测。在计时子程序中将各时间存放器的值逐个加1,每加一次就要检查是否已超过显示的上限值,这样在后面就便于处理,在扫描显示子程序中,将扫描位数指针与20H相加,从而得到相应的显示数据;然后按照显示的位数加显示数就的格式,将数据从P1口输出到数码管上去显示,当然还有定时中断子程序,在这里,它实现计时1S的时间延时。开 始定时器T0初始化设置显示初值为12:00:00设置定时4ms初值设中断250次设置中断允许秒存放器值加1秒按键了.秒存放器值加1使秒存放器清0秒按键松 开了.N分按键了.分存放器值
33、加1秒存放器60.秒按松开了.分按键松开.时存放器值20使分存放器清0时存放器值加1使存放器清0启动T0中断NY时按键了.NNNNY源程序代码ORG 00H;主程序起始地址JMP START;主程序STARTORG 0BH;定时器T0中断起始地址JMP TIM0;定时器T0中断子程序TIM0START: MOV SP;*70H;设置堆栈指针MOV 28H,*00;设置显示位数扫描指针初值为0MOV 2AH,*12H;设置时钟显示存放器初值为12HMOV 2BH,*00;设置分钟显示存放器初值为00HMOV 2CH,*00;设置秒钟显示存放器初值为00HMOV TMOD,*01H;设置定时器T0
34、工作在方式1MOV TH0,*0F0H;定时4ms的初值,即0F060HMOV TL0,*60H;初值的低位MOV IE,*82H;定时器T0中断允许MOV R4,*250;保证后面实现中断250次,即1s的延时SETB TR0;启动定时器T0LOOP: P0.0,N2;假设秒没有按键,就转去下一步检查分CALL DELAY;延时5ms消除抖动MOV A,2CH;将秒存放器的值载入累加器A ADD A,*01H;A的容加1DA A;十进制调整MOV 2CH,A;A 的值存入秒存放器CJNE A,*60H,N1;看是否已经是60秒,假设不是就继续检查MOV 2CH,*00;已经是60秒,就清空秒
35、存放器的值N1: JNB P0.0,$;秒按键还没有放开就循环等待CALL DELAY;延时5ms,消除抖动N2: P0.1,N4;假设分没有按键,就转去下一步检查时钟CALL DELAY;延时5ms,消除抖动MOV A,2BH;将分存放器的值载入累加器AADD A,*01H;A的容加1DA A;十进制调整MOV 2BH,A;A的值存入分存放器CJNE A,*60H,N3;看是否已经是60分MOV 2BH,*00;已经是60分,就清空秒存放器的值N3: JNB P0.1,$;分按键还没有放开就循环等待CALL DELAY;延时5ms,消除抖动N4: P0.2,LOOP;假设时没有按键,就转回去
36、继续检查看是否秒有按键CALL DELAY;延时5ms,消除抖动MOV A,2AH;将时存放器的值载入累加器AADD A,*01H;A的容加1DA A;十进制调整MOV 2AH,A;A的值存入时存放器CJNE A,*24H,N5;看是否已经是24时,假设不是就继续检查MOV 2AH,*00;已经是24时,就清空存放器的值N5: JNB P0.2,$;时钟按键还没有放开就循环等待CALL DELAY;延时5ms,消除抖动JMP LOOP;返回重新检查看是否有按键;*定时器T0中断子程序*TIM0: MOV TH0,*0F0H;定时初值重设MOV TL0,*60HPUSH ACC;将累加器A的值暂
37、存于堆栈PUSH PSW;将PSW的值暂存于堆栈DJNZ R4,*2;计时中断不满1s就退出继续中断MOV R4,*250;计时1sCALL CLOCK;调用计时子程序CLOCKCALL DISP;调用显示子程序DISP*2: CALL SCAN;调用扫描子程序SCADPOP PSW;到堆栈取回PSW的值POP ACC;到堆栈取回累加器ACC的值RETI;返回主程序;*扫描子程序*SCAN:MOV R0,*28HINC R0;显示位数扫描值加1CJNE R0,*6,*3;扫描位数不为6就准备控制输出MOV R0,*0;扫描位数为6,就另其值为0*3:MOV A,R0;扫描位数载入AADD A,
38、*20H;A加上20H显示存放器地址=各时间显示区地址MOV R1,A;各时间显示区地址存入AMOV A,R0;扫描位数存入ASWAP A;将A的上下4位交换其高4位为扫描 ;的位数,低4位为显示数据值ORL A,R1;将扫描值与显示数据组合MOV P1,A;显示输出RET;*计时子程序*CLOCK: MOV A,2CH;秒存放器值载入AADD A,*1;加1秒DA A;十进制调整MOV 2CH,A;A的值存入秒存放器CJNE A,*60H,*4;A不等于60秒,就跳出程序去显示MOV 2CH,*00;已经是60秒,就清0MOV A,2BH;分存放器值载入AADD A,*1;加1分DA A;十
39、进制调整MOV 2BH,A;A的值存入分存放器 CJNE A,*60H,*4;A不等于60分,就跳出程序去显示MOV 2BH,*00;已经是60分就清0MOV A,2AH;时存放器值载入AADD A,*1;加1小时DA A;十进制调整MOV 2AH,A;A的值存入是存放器CJNE A,*24H,*4;A不等于24时,就跳出程序去显示MOV 24H,*00;已经是24时,就清0*4:RET;*显示子程序*DISP: MOV R1,20H;20H为显示存放器单元MOV A,2CH;将秒存放器的容存入AMOV B,*10H;设B累加器的值为10HDIV AB;A/B,商存入A十位数,余数存入个位数M
40、OV R1,B;将显示的个位数存入20H显示存放器单元INC R1MOV R1,;A将显示的十位数存入21H显示存放器单元INC R1MOV A,2BH;将分存放器的容存入AMOV B,*10H;设B累加器的值为10HDIV AB;A/B,商存入A十位数,余数存入个位数MOV R1,B;将显示的个位数存入22H显示存放器单元INC R1MOV R1,A;将显示的十位数存入23H显示存放器单元INC R1MOV A,2AH;将时存放器的容存入AMOV B,*10H;设B累加器的值为10HDIV AB;A/B,商存入A十位数,余数存入个位数MOV R1,B;将显示的个位数存入24H显示存放器单元I
41、NC R1MOV R1,A;将显示的十位数存入25H显示存放器单元RET;*延时5ms消除抖动*DELAY:MOV R6,*60D1:MOV R7,*248DJNZ R7,$DJNZ R6,D1RETEND系统仿真与实验测试7.1 系统仿真运用proteus软件进展仿真现在proteus软件中建立一个新的文件,再根据自己的要求选择所需的器件,把器件进展适当的排位后进展连接,连接后运行软件进展仿真。Proteus软件应用1原理图编辑窗口The Editing Window:顾名思义,它是用来绘制原理图的。蓝色方框为可编辑区,元件要放到它里面。注意,这个窗口是没有滚动条的,你可用预览窗口来改变原理
42、图的可视围。2预览窗口The Overview Window:它可显示两个容,一个是:当你在元件列表中选择一个元件时,它会显示该元件的预览图;另一个是,当你的鼠标焦点落在原理图编辑窗口时即放置元件到原理图编辑窗口后或在原理图编辑窗口中点击鼠标后,它会显示整原理图的缩略图,并会显示一个绿色的方框,绿色的方框里面的容就是当前原理图窗口中显示的容,因此,你可用鼠标在它上面点击来改变绿色的方框的位置,从而改变原理图的可视围。3模型选择工具栏Mode Selector Toolbar:主要模型Main Modes:1* 选择元件ponents默认选择的2* 放置连接3* 放置标签用总线时会用到4* 放置
43、文本5* 用于绘制总线6* 用于放置子电路7* 用于即时编辑元件参数先单击该图标再单击要修改的元件配件Gadgets:1* 终端接口terminals:有VCC、地、输出、输入等接口2* 器件引脚:用于绘制各种引脚3* 仿真图表graph:用于各种分析,如Noise Analysis 4* 录音机5* 信号发生器generators6* 电压探针:使用仿真图表时要用到7* 电流探针:使用仿真图表时要用到8* 虚拟仪表:有示波器等2D图形2D Graphics:1* 画各种直线2* 画各种方框3* 画各种圆4* 画各种圆弧5* 画各种多边形6* 画各种文本7* 画符号8* 画原点等4元件列表Th
44、e Object Selector:用于挑选元件ponents、端接口terminals、信号发生器generators、仿真图表graph等。举例,当你选择元件ponents,单击P按钮会翻开挑选元件对话框,选择了一个元件后单击了OK后,该元件会在元件列表中显示,以后要用到该元件时,只需在元件列表中选择即可。5方向工具栏Orientation Toolbar:旋转:旋转角度只能是90的整数倍。翻转:完成水平翻转和垂直翻转。使用方法:先右键单击元件,再点击左击相应的旋转图。6仿真工具栏仿真控制按钮1* 运行2* 单步运行3* 暂停4* 停顿按照自己设计的电路图就可以画出想要的电路图!2.在软件
45、中模拟和实际的效果为什么有如此大的差异.答:软件中模拟受到电脑CPU工作频率的影响,所以效果不是很明显,但是一些根本的现象还是可以看出来的。只要我们知道原理和图是正确的,则就没有必要考虑太多的未知因素。在实际面包板中一定会看到正确的现象。3.面包板连线考前须知!答:面包板连线时一定要弄清楚它的原理,不然就会一点头绪都找不到。连接芯片是要弄清楚各个引脚对应的端口号,该接地的地方一定要接地,该接高电平的地方一定要接高电平。实验测试电子时钟主要的设计要能够实现时钟的一般功能,以及包括时间的调整功能,这个基于单片机的电子时钟根本上实现了上述功能,能够通过时间调整电路对时间进展调整以及复位。下述为18:30:30的仿真图: 图8 12:00:00时刻的仿真效果图-. z心得体会单片机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年洛阳科技职业学院高职单招语文历年参考题库含答案解析
- 2024年朔州师范高等专科学校高职单招语文历年参考题库含答案解析
- 2024年宁波职业技术学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- 2024年宁夏警官职业学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- 2024年四川电力职业技术学院高职单招语文历年参考题库含答案解析
- 2024年四川护理职业学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- 2025员工个人2022-2024-2025年度述职报告工作总结范文(28篇)
- 2024年北京交通运输职业学院高职单招语文历年参考题库含答案解析
- 二零二五年房产交易测绘与产权纠纷调解合同3篇
- 夫妻简单买卖协议书(2篇)(2篇)
- 2023-2024学年浙江省杭州市城区数学四年级第一学期期末学业水平测试试题含答案
- 五星级酒店市场调研报告
- 车辆剐蹭私下解决协议书(3篇)
- 网球技术与战术-华东师范大学中国大学mooc课后章节答案期末考试题库2023年
- 2022-2023学年衡水市深州市小升初数学高频考点检测卷含答案
- 现代科学技术概论知到章节答案智慧树2023年成都师范学院
- 2020年上海市高考英语二模试卷(a卷)
- HLB值的实验测定方法
- 2023年《病历书写基本规范》年度版
- 代理记账机构代理记账业务规范
- 创业计划书(成人用品店)
评论
0/150
提交评论