1、 目 录第一章 电子时钟功能及设计方案11.1电子时钟功能11.1.1时钟简介11.1.2时钟的基本特点及原理11.2设计方案21.2.1计时方案21.2.2显示方案2第二章 硬件介绍32.1单片机简介32.1.1单片机的特点32.1.2 89C51单片机介绍32.2 LED数码管62.3晶振电路7第三章 软件仿真83.1 protues软件83.1.1protues软件简介83.1.2电路功能仿真83.2电路原理图93.3流程图9第四章 调试结果104.1使用说明104.1.1 时间显示104.1.2时间调整11第五章 心得体会12附录:13电子钟总体程序清单:13第一章 电子时钟功能及设计
2、方案1.1电子时钟功能1.1.1时钟简介现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。从而达到计时的功能,是人民日常生活补课缺少的工具。1.1.2时钟的基本特点及原理现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选
3、的灵活性好。该电子时钟由89C51,BUTTON,六段数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。而电路中唯一的一个控制键却拥有多种不同的功能,按下又松开,可以实现屏蔽数码管显示的功能,达到省电的目的;直接按下不松开,则可以通过按键实现分钟的累加,每按一次分钟加一;而连续两次按下按键不放松,则可实现小时的调节,同样每按一次小时加一。1.2设计方案1.2.1计时方案利用AT89S51单片机内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时。该方案节省硬件成本,且能使读者在定时/计
4、数器的使用、中断及程序设计方面得到锻炼与提高,对单片机的指令系统能有更深入的了解,从而对学好单片机技术这门课程起到一定的作用。1.2.2显示方案AT89S51的P0口和P2口外接由8个LED数码管(LED7LED0)构成的显示器,用P0口作LED的段码输出口,P2口作LED数码管的位控输出线,P1口外接四个按键A、B、C、D构成键盘电路。简易电子钟的功能不复杂,采用其现有的I/O便可完成。第二章 硬件介绍2.1单片机简介2.1.1单片机的特点 1 . 单片机的存储器ROM和RAM时严格区分的。ROM称为程序存储器,只存放程序,固定常数,及数据表格。RAM则为数据存储器,用作工作区及存放用户数据
5、。 2 . 采用面向控制的指令系统。为满足控制需要,单片机有更强的逻辑控制能力,特别是单片机具有很强的位处理能力。 3 . 单片机的I/O口通常时多功能的。由于单片机芯片上引脚数目有限,为了解决实际引脚数和需要的信号线的矛盾,采用了引脚功能复用的方法,引脚处于何种功能,可由指令来设置或由机器状态来区分。 4 . 单片机的外部扩展能力很强。在内部的各种功能部件不能满足应用的需求时,均可在外部进行扩展,与许多通用的微机接口芯片兼容,给应用系统设计带来了很大的方便。2.1.2 89C51单片机介绍 VCC:电源。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流
6、。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程 序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作 输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时
7、,其管脚被内部上拉电阻 拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存 储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器 的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 89C51单片机 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL
8、)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期
9、间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器 时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在
10、此期间外部程序存储(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时, /EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。2.2 LED数码管数码管是一种把多个LED显示段集成在一起的显示设备。有两种类型,一种是共阳型,一种是共阴型。共阳型就是把多个LED显示段的阳极接在一起,又称为公共端。共阴型就是把多个LED显示段的阴极接在一起,即为公共商。阳极即为二极管的正极,又称为正极,阴极即为二极管的负极,又称为负极。通常的数码管又分为8段,即8个LED显示段,这是为工程应用方便如设计的,分别
11、为A、B、C、D、E、F、G、DP,其中DP 是小数点位段。而多位数码管,除某一位的公共端会连接在一起,不同位的数码管的相同端也会连接在一起。即,所有的A段都会连在一起,其它的段也是如此,这是实际最常用的用法。数码管显示方法可分为静态显示和动态显示两种。静态显示就是数码管的8段输入及其公共端电平一直有效。动态显示的原理是,各个数码管的相同段连接在一起,共同占用8 位段引管线;每位数码管的阳极连在一起组成公共端。利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示就会清晰显示出来。 图 共阴数码管2.3晶振电路每个
12、单片机系统里都有晶振,全程是叫晶体震荡器,在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。高级的精度更高。有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。 晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振,而通过电子调整
13、频率的方法保持同步。 晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。第三章 软件仿真3.1 protues软件3.1.1protues软件简介Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功
14、能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。本章介绍Proteus I
15、SIS软件的工作环境和一些基本操作。3.1.2电路功能仿真在PROTUES绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTUES的原理图中看到模拟的实物运行状态和过程。 PROTUES 是单片机课堂教学的先进助手。 PROTUES不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。 它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。 课程设计、毕业设计是学生
16、走向就业的重要实践环节。由于PROTUES提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台 随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中PROTUES也能茯得愈来愈广泛的应用。3.2电路原理图3.3流程图第四章 调试结果4.1使用说明4.1.1 时间显示电子钟上电后,8个数码管显示初始状态即最左边的一个数码管显示P.。按下A键后电子钟
17、进入自动计时状态,电子钟显示00时00分00秒并开始运行。 4.1.2时间调整若要进行时间调整,则需再次按下A键,进入时间调整状态,然后分别按下B键调时,按下C键调分,按下D键调秒,按下B、C、D键并松开可使电子钟的时,分,秒分别加一。调整好时间后,按下A键就可以回到调整好的时间为基础的自动计时状态。4.2 仿真结果第五章 心得体会此实验利用protues仿真软件实现,基本实现了要求的功能。为了校准时钟增加了按键,便于调节。在本次实验中对单片机内部结构有一定了解,熟悉了各个引脚的功能,同时熟知了LED数码管的使用及各种电路的功能。程序不要光看不写,一定要自己写一次。最开始的时候,啥都不懂,可以
18、抄人家的程序过来,看看每一句是干什么用的,达到什么目的,运行后有什么后果,看明白了之后,就要自己写一次,你会发现,原来看明白别人的程序很容易,但到自己写的时候却一句也写不出来,这就是差距。 单片机提高重在实践,想要学好单片机,软件编程必不可少。但是熟悉硬件对于学好单片机的也是非常重要的。如何学习好硬件,动手实践是必不可少的。我们可以通过自己动手做一个自己的电子制作,通过完成它,以提高我的对一些芯片的了解和熟练运用它。这样我们就可以多一些了解芯片的结构附录:电子钟总体程序清单:ORG 0000HAJMP MAINORG 000BHLJMP INTT0ORG 0030HMAIN: MOV SP,
19、#60H MOV PSW,#00H MOVR0,#20H MOV R7,#5FH QL: MOV R0,#00H INC R0 DJNZ R7,QL MOV IP, #02H MOV IE, #82H MOV TMOD,#01H LCALL PPNEXT: LCALL KEY JBACC.0, RUNF LCALL DISP SJMP NEXTRUNF: LCALL OUTT LCALL TIMEJK: LCALL DISP LCALLKEY JZ JK LCALL ANKEY LCALL DISP SJMP JKPP: MOV 37H, #12 MOVR0, #30H MOV R7, #07
20、HPPP: MOV R0, #10 INC R0 DJNZ R7, PPP RETKEY: LCALL KEYS JZ EXIT LCALL DISP LCALL DISP LCALL KEYS JZ EXITMOV B, 20H KEYSF: LCALLKEYS JZ KEYY LCALLDISP AJMPKEYSF KEYY: MOV A, B EXIT: RET KEYS:MOV P1, #0FFH MOV A, P1 CPL A ANLA, #0FH MOV 20H, A RETANKEY: CLR EACHECK: JBTR0, YXZK0: CJNE A, #01H,K1 AJMP
21、 RUN K1: CJNEA,#02H, K2 AJMPKEY1 K2: CJNEA,#04H, K3 AJMPKEY2 K3: CJNEA, #08H,OUT AJMPKEY3 YXZ: JB ACC.0,STOP AJMP OUTKEY1: MOV R0, #45H LCALL ADD1 CLR C CJNE A, #24H, OUTT ACALL CLR0 AJMP OUTTKEY2: MOV R0, #43H LCALL ADD1 CLR C CJNE A, #60H, OUTT ACALL CLR0 AJMP OUTTKEY3: MOV R0,#41H ACALL ADD1 CLR
22、C CJNE A,#60H, OUTT ACALL CLR0OUTT: MOV 30H,40H MOV 31H,41H MOV 32H,#11 MOV 33H,42H MOV 34H,43H MOV 35H,#11 MOV 36H, 44H MOV 37H, 45H RETSTOP: CLRTR0 RETRUN: LCALL TIMEOUT: SETB EA RETTIME: SETB EA MOV TL0, #0B0H MOV TH0, #3CH MOV R4, #20 SETB TR0 RETINTT0: PUSH ACCPUSH PSWCLRET0CLR TR0 MOV TL0, #0B
23、0H MOV TH0, #3CHSETB TR0 DJNZ R4,OUTT0 ADDSS:MOV R4,#14H MOV R0,#41H ACALL ADD1 CLR C CJNE A,#60H,ADDMM ADDMM: JC OUTT0 ACALL CLR0 MOV R0,#43H ACALL ADD1 CLR C CJNE A,#60H,ADDHH ADDHH: JC OUTT0 ACALL CLR0 MOV R0,#45H ACALL ADD1 CLR C CJNEA,#24H,HOUR HOUR: JCOUTT0 ACALL CLR0OUTT0:MOV 30H,40H MOV 31H,
24、41H MOV 32H,#11 MOV 33H,42H MOV 34H,43H MOV 35H,#11 MOV 36H,44H MOV 37H, 45H POP PSW POP ACC SETB ET0 RETICLR0: CLR A MOV R0,A DEC R0 MOV R0,A RETADD1: MOV A,R0 DEC R0 SWAP A ORL A,R0 ADD A,#01H DAA MOV R3,A ANL A,#0FH MOV R0,A MOV A,R3 INC R0 SWAP A ANL A,#0FH MOV R0,A MOV A,R3DISP:MOV R1,#30H MOV R2, #80H DISP1:MOV P2, R2 MOVA,R1 MOVDPTR,#TAB MOVCA, A+DPTR MOV P0, A ACALLDL MOVA, R2 JB ACC.0, DISP2 RRA INCR1 MOVR2,A AJMPDISP1DISP2: RETTAB:DB 0C0H, 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH,0CH DL:MOV R6,#14HDL1: MOV R7,#19H ;DL2: DJNZ R7,DL2 DJNZ R6,DL1 RETEND19