1、数字电子钟报告苏 州 市 职 业 大 学课程实训说明书 名称 单片机原理及应用实训 基于单片机的电子时钟设计 2015年3月2日至2015年3月6日共一周学院(部) 电子信息工程学院 班 级 13应用电子三班 姓 名 王锐 学 号 137301328 学院(部)负责人 张 欣 系 主 任 陈伟元 指导教师 金小华 目录绪论 1第1部分 单片机选型 31.1单片机型号选择 31.2 AT89C51简介 31.2.1 主要特性 31.2.2 管脚说明 3第2部分 电子时钟设计方案 52.1 电子时钟的设计背景 52.2 电子时钟的基本特点 52.3 电子时钟的原理 52.4 电子时钟方案 62.5
2、 数码管显示方案 6第3部分 电子时钟硬件设计 73.1 电子时钟设计原理图及分析 73.1.1 基于protues仿真软件的原理图 73.1.2 基本原理 73.2 电路模块 83.2.1单片机的晶振电路 83.2.2 按键模块 93.2.3单片机的复位电路 93.2.4 时间显示模块 10第4部分 电子时钟软件设计 114.1 软件设计流程图 114.2 编写程序 114.3 系统仿真与实验测试 124.3.1系统仿真 124.3.2实验测试 124.3.3测试结果 13第5部分 设计总结 15附录1 元器件明细表 16附录2 电路总图 17附录3 程序清单 18参考文献 22绪论 该课程
3、设计为数字电子钟的设计。以AT89C51为核心,配合8位数码管和按键为用户提供长期、连续、可靠、稳定的工作环境。该数字电子钟有时分秒显示以及时间调整的功能。系统软件设计包括单片机计算机两部分的编程。计算机软件编程主要实现参数设置、串行口数据接收、指令发送以及数据的显示和存储。单片机软件编程主要实现键盘、数码管等各模块的功能,采用汇编语言编程。关键词:数字电子钟、单片机、数码管1、单片机简介 单片机是单片微型计算机(Single Chip Microcomputer)的简称,是指将中央处理器(CPU)、数据存储器(RAM)、程序存储器(RAM、EPROM、EEPROM或Flash)、并行I/O、
4、串行I/O、定时/计数器、中断控制、系统时钟及系统总线等单元集成在一块半导体芯片上,构成一个完整的计算机系统。2、单片机的应用单片机的应用领域主要有以下5个方面。1.智能化仪器仪表如智能电度表、智能流量计等。2.实时工业控制如数控机床、汽车安全技术检测系统、工业机器人、过程控制等。3.网络与通信如无线遥控系统4.家用电器如全自动洗衣机、自动控温冰箱、空调机等。5.计算机智能终端如计算机键盘、打印机等。3、 Protues简介 PROTEUS ISIS公司开发的电路分析与实物仿真集成开发环境。它运行于Windows操作系统上,基于PROTEUS的单片机虚拟开发环境有效地将理论与实验联系起来,可以
5、仿真、分析(SPICE)各种模拟器件和集成电路,该软件从1989年出现到现在已经有十多年的历史,在全球应用。4、 Keil简介Keil uVision4是一个优秀的软件集成开发环境,它支持众多不一样公司的MCS-51架构的芯片。uVision4 IDE基于Windows的开发平台,包含一个高效的编译器、一个项目管理器和一个MAKE工具。利用本工具来编译C源代码,汇编源程序,连接和重定位目标文件和库文件,创建HEX文件调试目标程序。第1部分 单片机选型1.1单片机型号选择采用AT89C51芯片,其为低功耗、高性能CMOS 8位微控制器,片内含4k Bytes ISP(In-system prog
6、rammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,AT89C51在众多嵌入式控制应用系统中得到广泛应用。1.2 AT89C51简介1.2.1 主要特性与MCS-51 兼容;4K字节可编程FLASH存储器;寿命:1000写/擦循环 ;数据保留时间:10年;全静态工作:0Hz-24MHz;三级程序存储器锁定;1288位内部RAM;32可编程I/O线;两个16位定时器/计数器;5个中断源;可编程串行通道;低功耗的闲置和掉
7、电模式;片内振荡器和时钟电路。 1.2.2 管脚说明图1-1 AT89C51示意图VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于
8、内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P3.2 (外部中断0) P3.3 (外部中断1) P3.4 T0(记时器0外部输入) RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 :当保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 第2部分 电子时钟设计方案2.1 电子时钟的设计背景 19
9、57年,Ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟开始迅速发展起来。现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。从而达到计时的功能,是人民日常生活不可缺少的工具。数字式电子钟用软件实现计时时,用8位七段数码管代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。在这里我们将已学过的单片机的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。2
10、.2 电子时钟的基本特点 本设计具有时、分、秒显示的功能,通电后,数码管显示00:00:00,并开始计时。与P2.0接口连接的按键用于调节总控,按下按键后,计时停止,可进行对时、分、秒的调节,对应的P3.2、P3.3、P3.4分别调节时、分、秒,按一下对应的按键,对应的时、分、秒就加1,调节完成后再按调节总控按键开始计时。2.3 电子时钟原理 整个系统工作时,秒信号产生由定时器产生50ms定时,定时中断20次实现标准秒信号,每累计60s,分加1,每累计60min,时加1,采用24进制,可实现对一天即24小时的累计。2.4 电子时钟方案 在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。
11、利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节加1;若分值达到60则清零分字节,并将时字节值加1;若时值达到24,则将时字节清零。该方案具有硬件电路简单的特点,但由于每次执行程序时定时器都要重新赋初值,所以该时钟精度不高,而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。但由于硬件设备原因只能选用次方案。2.5 数码管显示方案 系统需要8位LED数码管,显示电路由于位数较多,若采用静态显示需要64个I/O口,但采用动态显示仅需要16个I/O口。所以本任务应采用动态显示接口电路,其接口电路是把所有LED显
12、示器的8个笔画段ah同名端连在一起,而每一个LED显示器的公共极COM则各自独立地受I/O线控制,一位一位地轮流点亮各位显示器,对每一位LED显示器而言,每隔一段时间点亮一次。显示器的亮度跟导通的电流有关,也和点亮的时间与间隔的比例有关。因此,在数码管位数较多的场合,采用动态显示可使硬件成本降低,功耗减少,适合长时间显示,因而得到广泛的应用。第3部分 电子时钟硬件设计3.1 电子时钟设计原理图及其分析3.1.1 基于protues仿真软件的原理图图3-1 电子时钟原理图3.1.2 基本原理实训使用AT89C51控制,其中使用P0口做输出,P1口做控制信号,使用外部中断0作调节秒,外部中断1作调
13、节分钟,定时器T0在定时模式作调节小时,定时器T1在计数模式用于计数,而P2.0做总控开关的入口。一般电子钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能和报时功能。因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路、报时电路和振荡器组成。主电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路组成。秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。将标准秒信号送入“秒计数器”,“秒计数器”采用60进
14、制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计时器,可实现对一天24小时的累计。译码显示电路将“时”、“分”、“秒”计数器的输出状态用七段显示译码器译码,通过七段显示器显示出来。整点报时电路时根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现报时。校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整。3.2 电路模块本设计电路,硬件部分共由四模块组成:按键模块、复位电路模块、晶振电路模块、时间显示模块。晶振电路模
15、块负责给单片机提供时钟周期。复位单路模块负责上电后自动复位,或按键后强制复位。上电后,由单片机内部定时器计时,同时通过动态显示函数自动将时分秒显示到数码管上。与此同时,按键扫描函数,一直扫描按键引脚状态,一旦扫描到按键被按下,即进入相应的功能函数。3.2.1单片机的晶振电路XTAL1和XTAL2分别为反相放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用,如采用外部时钟源驱动器件XTAL2应悬空。内部方式时,时钟信号要通过一个二分频触发器。AT89C51单片机内部有一个用于构成振荡器的高增益反相放大器,因为引脚XTAL1和XTAL2分别为反相放大器的输入和输出端。
16、这个放大器与反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器与电容C1、C2构成并联谐振电路,接在放大器的反馈回路中。晶振电路如图3-2所示。图3-2 晶振电路图3.2.2 按键模块 本设计的按键模块采用3个按键作为电子时钟的控制输入,通过按键来实现时钟的时间设置、定时、秒表功能。电路中将三个按键的一端接公共地,LED数码管,P3.4为调时位选择按键,P3.3为调分位选择按键,P3.2调秒位选择按键。按键模块如图3-3所示。图3-3 按键模块图3.2.3单片机的复位电路 在振荡器运行时,有两个机器周期以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环
17、复位。复位后P0-P3口均置1,引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个施密特触发器与复位电路相连,施密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路如图3-4所示。图3-4 单片机复位电路3.2.4 时间显示模块本实验采用8位LED软件译码动态显示程序。LED数码管分共阳极与共阴极两种,其工作特点是,当笔段电极接低电平,公共阳极接高电平时,相应笔段可以发光。共阴极LED数码管则与之相反,它是将发光二极管
18、的阴极(负极)短接后作为反映出半导体材料的特性。8位LED数码管如图3-5所示。图3-5 8位LED数码管第4部分 电子时钟软件设计4.1 软件设计流程图在主程序的开始定义了一组固定单元用来存储计数的分、秒、时的存储单元。在主程序中,对不同的按键进行扫描,实现秒表,时间调整。系统流程图如下: 图4-1 系统主程序流程图 图4-2 系统子程序流程图4.2 程序编写(见附录)4.3 系统仿真与测试4.3.1系统仿真运用proteus软件进行仿真现在proteus软件中建立一个新的文件,再根据自己的要求选择所需的器件,把器件进行适当的排位后进行连接,连接后运行软件进行仿真。4.3.2实验测试电子时钟
19、主要的设计要求是能够实现时钟的一般功能,以及包括时间的调整功能,这个基于单片机的电子时钟基本上实现了上述功能,能够通过时间调整电路对时间进行调整以及复位。图4-3为04:10:08的仿真图:图4-3 04:10:08的仿真图4.3.3测试结果 测试结果:图4-4测试结果 误差计算:表4-1误差计算测试时间00:01:0000:01:0000:01:0000:01:00测试结果00:01:0000:01:0100:00:5900:00:59误差0s1s1s1s 误差分析: 本次设计的单片机系统中,其误差主要包括晶体频率误差、定时器溢 出误差、延迟误差。晶体频率产生震荡,容易产生走时误差;定时器溢
20、出的时间误差,本应这一秒溢出,但却在下一秒溢出,造成走时误差;延迟时间过长或过短都会造成与基准时间产生偏差,造成走时误差。此外,两处计时开始的时间不同也会造成误差。 校准调试: ZJ: PUSH ACC ;把A送入堆栈 MOV TH1,#6BH ;定时 MOV TL1,#0B0H DJNZ R7,FANHUI改变定时时间即可校准时间。第5部分 设计总结本次设计由于有了上学期的基础,所以做起来并不是特别困难,只需要最小系统模块、按键模块和时钟显示模块即可构成一个完整的系统,考虑到对电路的保护,增加一些电阻进行限流,在实际制作中,电阻阻值要适中,太小起不到保护作用,太大则影响LED的亮度。在设计的
21、过程中,时间的校准是一个难点,由于各种因素的影响,时间并不是太好校准。本次设计时、分、秒可调,但只可增不可减,调时比较麻烦,因此,在以后会对此设计进行改进:增加一个开关来控制电源的通断;使时间可增减调时;将LED换成LCD,减小功耗;增加闹钟等。本次设计需要注意一些问题:(1)在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机得引脚结构及各引脚功能。(2)要有一个清晰的思路和一个完整的的软件流程图。(3)在设计程序时,需要反复修改,不断改进程序设计。(4)最后,要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流
22、提供了方便。附录1 元器件明细表Bill Of Materials=Design: E:学习(ISIS 7 Professional)数字电子钟数字电子钟.DSNDoc. no.: Revision: Author: Created: 15/02/05Modified: 15/03/05QTY PART-REFS VALUE CODE - - - - Resistors-12 R1-R9,R11-R13 10k M10K 1 R10 470R M470R Capacitors-2 C1,C2 33p Maplin WX50E 1 C3 10u Maplin DT55K Integrated C
23、ircuits-1 U1 AT89C51 Miscellaneous-1 N1 7SEG-MPX8-CA-BLUE 4 S1-S4 BUTTON 1 X1 CRYSTAL 附录2 电路总图附录3 程序清单 ORG 0000H LJMP MAIN ;转主程序 ORG 0003H LJMP MIAO ;转外部中断0中断程序 ORG 000BH LJMP SHI ;转定时器T0中断程序 ORG 0013H ;转外部中断1中断程序 LJMP FEN ORG 001BH ;转定时器T1中断程序 LJMP ZJMAIN: MOV SP,#5FH MOV TMOD,#16H ;设置T0为定时工作,采用方式1
24、; T1为计数工作,采用方式1 MOV TH0,#255 ;设置计数器初值为255 MOV TL0,#255 MOV TH1,#3CH ;定时器定时100毫秒 MOV TL1,#0B0H MOV R4,#00H ;清空r4 MOV R5,#00H ;清空r5 MOV R6,#00H ;清空r6 SETB EA CLR EX0 ;禁止外部中断0中断 CLR EX1 ;禁止外部中断1中断 SETB IT0 ;外部中断0设置为边沿触发方式 SETB IT1 ;外部中断0设置为边沿触发方式 CLR ET0 SETB TR0 ;启动定时器0工作 SETB TR1 ;启动定时器1工作 SETB ET1 M
25、OV R7,#20LOOP: MOV A,R4 ;r4单元内容送入累加器 MOV B,#10 ;10送入b寄存器中 DIV AB ;a除以b的整数商存于a,余数存于b MOV DPTR,#0300H ; 把表赋给DPTR MOVC A,A+DPTR MOV P0,A MOV P1,#01H LCALL DELAY ;转延迟子程序 MOV P0,#0FFH ;P0口复位 MOV A,B MOVC A,A+DPTR ;查表指令 MOV P1,#02H MOV P0,A LCALL DELAY ;转延迟子程序 MOV P0,#0FFH ;P0口复位 MOV P2,#0FFH ;P2口复位 JNB P
26、2.0,TIAOJIE MOV P1,#04H MOV P0,#0F6H LCALL DELAY ;转延迟子程序 MOV P0,#0FFH ;P0口复位 MOV A,R5 MOV B,#10 DIV AB MOVC A,A+DPTR ;查表指令 MOV P1,#08H MOV P0,A MOV P1,#08H LCALL DELAY ;转延迟子程序 MOV P0,#0FFH MOV P2,#0FFH ;P2口复位 JNB P2.0,TIAOJIE MOV A,B MOVC A,A+DPTR ;查表指令 MOV P1,#10H MOV P0,A LCALL DELAY ;转延迟子程序 MOV P
27、0,#0FFH ;P0口复位 MOV P1,#20H MOV P0,#0F6H LCALL DELAY ;转延迟子程序 MOV P0,#0FFH MOV P2,#0FFH ;P2口复位 JNB P2.0,TIAOJIE MOV A,R6 MOV B,#10 DIV AB MOVC A,A+DPTR ;查表指令 MOV P1,#40H MOV P0,A LCALL DELAY ;转延迟子程序 MOV P0,#0FFH MOV A,B MOVC A,A+DPTR ;查表指令 MOV P1,#80H MOV P0,A LCALL DELAY ;转延迟子程序 MOV P0,#0FFH MOV P2,#
28、0FFH ;P2口复位 JNB P2.0,TIAOJIE LJMP LOOPTIAOJIE: CPL ET0 CPL ET1 CPL EX0 CPL EX1 LJMP LOOP ORG 0100HZJ: PUSH ACC ;把A送入堆栈 MOV TH1,#6BH ;定时 MOV TL1,#0B0H DJNZ R7,FANHUI MOV R7,#20 INC R4 MOV A,R4 CJNE A,#60,FANHUI ; 若A内容不等于60,则跳到FANHUI MOV R4,#00H ; r4单元清零 INC R5 MOV A,R5 CJNE A,#60,FANHUI ;若A内容不等于60,则跳
29、到FANHUI MOV R5,#00H ;r5单元清零 INC R6 MOV A,R6 CJNE A,#12,FANHUI MOV R6,#00H ; r6单元清零FANHUI: POP ACC ;出栈 RETIDELAY: MOV R3,#10HEHAO: MOV R2,#100 DJNZ R2,$ DJNZ R3,HEHAO RET ORG 0200HMIAO: CLR EA INC R4 MOV A,R4 CJNE A,#60,MIA ; 若A内容不等于60,则跳到MIA MOV R4,#00H ; r4单元清零MIA: SETB EA RETI ; 中断返回程序FEN: CLR EA INC R5 MOV A,R5 CJNE A,#60,FE MOV R5,#00H ; r5单元清零FE: SETB EA RETI ; 中断返回程序SHI: CLR EA INC R6 MOV A,R6 CJNE A,#24,SH MOV R6,#00HSH: SETB EA RETI ; 中断返回程序 ORG 0300HTAB: DB 0C0H,0F9H,0A4H, 0B0H,99H,92H,82H,0F8H,80H,90H;查表的数据 END参考文献1 张筱云单片机原理及接口技术项目苏州大学出版社,2012.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1