数字电子钟课程设计汇本_第1页
数字电子钟课程设计汇本_第2页
数字电子钟课程设计汇本_第3页
数字电子钟课程设计汇本_第4页
数字电子钟课程设计汇本_第5页
免费预览已结束,剩余23页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 单片机技术课程设计说明书数字电子钟系 、 部: 电气与信息工程学院 学生: 段仁亮 指导教师: 王韧 职称 副教授 专 业: 电气自动化技术 班 级: 电气1001班 完成时间: 2012年10月10日 单片机技术课程设计任务书一、设计题目:数字电子钟、数字频率计、数字电压表、交通灯、抢答器、密码锁、波形发生器、数字温度计、计算器、数字式秒表。二、适用班级:电气10013三、指导教师:王韧四、设计目的与任务:学生通过理论设计和实物制作解决相应的实际问题,巩固和运用在单片机技术中所学的理论知识和实验技能,掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发

2、电子产品打下良好的基础。五、设计容与要求 设计容1、数字电子钟设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符“P.”, 进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。2、数字频率计设计一个能够测量周期性矩形波信号的频率、周期、脉宽、占空比的频率计。该频率计上电或按键复位后能自动显示系统提示符“P.”, 进入测量准备状态。按频率测量键则测量频率;按周期测量键则测量周期;按脉宽测量键则测量脉宽;按

3、占空比测量键则测量占空比。3、数字电压表设计一个能够测量直流电压的数字电压表。测量电压围05V,测量精度小数点后两位。该电压表上电或按键复位后能自动显示系统提示符“P.”, 进入测量准备状态,按测量开始键则开始测量,并将测量值显示在显示器上,按测量结束键则自动返回“P.”状态。4、交通灯设计一个具有特定功能的十字路口交通灯。该交通灯上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。按开始键则开始工作,按结束键则返回“P.”状态。要求甲车道和乙车道两条交叉道路上的车辆交替运行,甲车道为主车道,每次通车时间为60秒,乙车道为次车道,每次通车时间为30秒,要求黄灯亮3秒,并且1秒闪烁

4、一次。有应急车辆出现时,红灯全亮,应急车辆通车时间10秒,同时禁止其他车辆通过。5、抢答器设计一个具有特定功能的抢答器。该抢答器上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。主持人按下开始按钮后,抢答开始并限定时间30S;10S无人抢答,蜂鸣器发出音响;主持人按下开始按钮之前有人按下抢答器,抢答违规,显示器显示违规台号,违规指示灯亮,其它按钮不起作用;正常抢答,显示器显示台号,蜂鸣器发出音响,其它抢答按钮无效;正常抢答下,从按下抢答按钮开始30S,答完按钮没按下,则作超时处理,超时处理时,违规指示灯亮,显示器显示违规台号。蜂鸣器发出音响;各台数字显示的消除,蜂鸣器音响及违规

5、指示灯的关断,都要通过主持人按复位按钮。6、密码锁设计一个具有特定功能的密码锁。该密码锁上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。该密码锁具有系统原始密码888888,用户可以设定并存储用户密码,密码输入时应处于显示状态,密码输入正确时应显示密码输入正确提示信息,否则,显示密码输入错误提示信息。7、波形发生器设计一个具有特定功能的波形发生器。该波形发生器上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。该波形发生器可以分别产生幅值05V、频率100Hz100KHz围的三角波、锯齿波、方波、梯形波和正弦波。8、数字温度计设计一个具有特定功能的数字温度计。该

6、数字温度计上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。测量温度围099,测量精度小数点后两位,可以通过开始和结束键控制数字温度计的工作状态。9、计算器设计一个具有特定功能的计算器。该计算器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。能实现(1)基本的加、减、乘、除、平方、开方;(2)三角函数运算;(3)十进制、十六进制转换运算;(4)其他功能。10、数字式秒表设计一个具有特定功能的数字式秒表。该数字式秒表上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。该数字式秒表应具有开始、暂停、连续、清零和停止功能。设计要求1、以上课题可以任选其一或多

7、选,学生也可以自拟课题;2、编程语言:汇编或C51;3、计算机打印单片机技术课程设计说明书一份;4、设计时间:两周;5、实物制作;6、人员分组:一人一组一实物。六、单片机技术课程设计说明书正文主要容参照“单片机技术课程设计说明书正文主要容”文件。七、单片机技术课程设计说明书书写规格式 参照“单片机技术课程设计说明书书写规格式”文件。八、参考资料1、马忠梅,单片机的C语言Windows环境编程宝典M, :航空航天大学,2003.6; 2、光飞,单片机C程序设计指导M,:航空航天大学,2003.01 ;3、光飞,单片机课程设计实例指导M,:航空航天大学,2004.9。电气自动化教研室 2012年9

8、月10日摘 要在当今时代我们可以随意看到电子钟,电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。随着人们生活环境的不断改善和美化,在许多场合可以看到数字电子钟,所以其极具有推广价值。学习了单片机技术以后,利用扩展单片机并行I/O口技术,连接LED数码管显示,接按钮控制,利用单片机芯片编程实现电子钟和秒表功能。关键词 数字电子钟;单片机;硬件电路;软件设计ABSTRACTNowadays we are free to see electric clock,electric clock a timer whi

9、ch is a use of digital circuit to display seconds,minutes,hours.pared with the traditional mechanical clock,It has traveltime accurate, show intuitional, no mechanical transmission device etc, thus it is widely used.As people of living environment constantly improving and beautification, We can see

10、digital electric clock on many occasions so that it has the great worthy of publicity.After Learning the single microcontroller technology , taking advantage of technology of extending parallel I/O mouth , connecting LED digital to display, picking button control tube, using single chip puter chip p

11、rogramming realize function of electric clock and stopwatch .Key words Digital electric clock;Single Micr0Controller;Hardware circuit;Software design目 录1 设计方案及工作原理1 1.1 设计课题任务11.2 功能要求说明1 1.3 总体方案介绍1 1.4 工作原理介绍32 硬件系统设计42.1 硬件功能模块介绍32.2 原理图、PCB图、元器件布局图52.3 元器件部分清单53软件系统的设计63.1 单片机资源使用说明63.2 软件系统各模块功

12、能介绍63.3软件系统程序流程框图73.4 软件系统的程序114 设计总结214.1 使用说明214.2 设计结论214.3 仿真结果224.4 误差分析224.5 教学建议23结束语24致25参考文献26附录一:元件清单27附录二:电路原理图29附录三:PCB顶层图30附录四:PCB底层图311 设计方案及工作原理1.1 设计课题任务数字电子钟设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符“P.”, 进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调

13、整时间,调整结束后可按启动/调整键再次进入时钟运行状态。1.2 功能要求说明本设计设计电子钟上电显示P.进入等待状态,按下K0键选择电子钟功能,电子钟开始计时。作为电子钟使用时,首先该电子钟在功能上具有一般电子钟的固有功能,即能比较准确显示时间,当显示至59秒时分显示自动加一;当分、秒显示至59分59秒时,小时显示自动加一;当显示至23小时59分59秒时,电子钟自动变为0时0分0秒显示;还具有调整功能,可以调节时、分、秒。作为电子钟使用时,其最长定时是24h,最小定时是0.01s,具有暂停、连续,清零、停止功能。1.3 总体方案介绍电子钟的总体功能原理是以AT89S52单片机为主要的控制核心,

14、通过外接8个独立式键盘作为控制信号源,两个四位一体数码管作为显示器件,单片机实时的去执行相应的功能。在数码管上显示出来,此时通过不同的按键来观察和调节各种数据硬件设计方案本电子钟主要由单片机、4*1独立键盘、显示接口电路和复位电路构成,设计课题的总体方案如图1所示图1 硬件设计方案 软件总设计框图(如图2所示)图2 软件总设计框图1.4 工作原理介绍在本次设计里完成了电子钟功能。电子钟主要是利用单片机定时/计数器的工作和中断服务的作用完成计时功能的,首先用定时计数器采用工作方式1,定时50ms,然后在累加20次实现1秒,单片机的定时时间一到,单片机会自动中断使程序转向中断服务程序执行,中断服务

15、程序执行完就会返回原程序,等待下一次定时时间的到来再次产生中断。在此基础上,单片机按照已设定的程序执行下去,使单片机能计算时间量完成计时功能。在单片机并行I/O口扩展键盘和数码管,实现对时间的调整和显示。2 硬件系统的设计2.1 硬件功能模块介绍2.1.1 时钟功能模块时钟电路用于产生MCS-51单片机工作时所需要的时钟控制信号,MCS-51单片机的部电路在时钟信号控制下,严格地按照时序执行指令进行工作,而时序所研究的是指令执行中各个信号在时间上的关系。单片机各个功能部件的运行都是以时钟控制信号为基准,有条不紊的一拍一拍地工作。因为,时序频率直接影响单片机的速度。时钟电路通过在芯片的外部XTA

16、L1和XTAL2两个引脚跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡电路。时钟电路为单片机产生时钟脉冲序列,晶振频率为12MHz。2.1.2 键盘功能模块为了方便时钟调整与秒表的控制,在单片P1口口线上接了独立键盘,采用低电平有效地方法。在本次电子钟设计中,调整是与键盘脱不了关系的,因为键盘是机械按钮,所以在触点闭合及释放的瞬间将出现电压抖动,所以在键扫描时应该要消除抖动,而且对于一键多功能的按钮必须要判释放,以免某个程序段多次执行。2.1.3 数码管显示模块数码管显示器是单片机重要的输出设备,它不仅具有发光响应快,高频特性好,而且机械性能好,工作电压低,随着工艺发展,可

17、以发出不同颜色的光。在本次设计中,采用共阳极数码管,利用三极管驱动器段控口以便LED发出较亮的光。在本次设计中采用了两个四位一体数码管,数码管的段控接在AT89S52单片机的P0口线上,从a到dp与P0.0到P0.7对应连接,位控制线接在AT89S52单片机的P2口线上,从LED0到LED7与P2.0到P2.7对应连接2.1.4 复位电路模块复位是单片机的初始操作,除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需安装复位键以重新启动。复位操作有上电自动复位和按键手动复位两种方式。复位电路通过极性电容和1个电阻串联,电容接VCC,电阻接地完成了上电

18、复位,在电容两端并联一个电阻就可以实现按键电平复位。2.2 原理图、PCB图、元器件布局图2.2.1 电路原理图如图3(附录2所示)2.2.2 PCB图如图4(附录3所示)2.2.3 元器件布局图如图5(附录4所示)2.3 元器件部分清单(如表1所示) 表1 元器件清单序号名称数量(/个)1AT89S52加底座1212MHz晶振1333pF电容2422F极性电容15LED二极管96小按键97单排插18蜂鸣器19470电阻24104位一体共阳数码管加底座21110K排阻2121K电阻313PNP9012三极管914200电阻115下载口1166脚开关13 软件系统的设计3.1 单片机资源使用说明

19、设计课题使用单片机资源的情况如下:P0口输出数码管段选信号,P3口输出数码管位选信号;晶振12M;调整选择键SET_KEY:P1.0;通过选择键选择调整位,选中位闪烁;增加键ADD_KEY:P1.1;按一次使选中位加1;减少键DEC_KEY:P1.2;按一次使选中位减1;P2.1为蜂鸣器发声报时;50H-5FH;16个寄存器单元作为显示单元; 50H 用于控制秒基准时钟源的产生;51H 清零秒寄存器;52H 清零分寄存器;53H 清零时寄存器;5FH 用于秒个位;5EH 用于秒十位;5DH 用于分个位;5CH 用于分十位;5BH 用于时个位;5AH 用于时十位;54H 用于控制调时闪烁;堆栈栈

20、底:70H。3.2 软件系统各模块功能介绍(1)主程序模块:程序的初始化及复位后显示P.,此时进入功能选择状态,按下K0选择电子钟并同时启动电子钟。 (2)电子钟程序模块:当电子钟选择键按下时,先给缓冲区清零,在通过查表给缓冲区一次送00-00-00并实现让00-00-00从左向右显示,一旦显示完则开启定时器开始计时,如果没有键按下则不断计时一直从00-00-00到23-59-59,然后重新从00-00-00开始。这里采用定时器中断完成计时功能。如果有键按下则启动2s定时,累计2sK0按下的次数,按下1次则进入调秒状态,按下2次则进入调分状态,按下3次则进入调时,按下多次则无效,进入调整状态时

21、,调整的改两位闪动显示并且蜂鸣器鸣叫以示提醒,次数按下K0键作为确认,按下K1就加1,按下K2就减1。(3)主要子程序模块:为了方便软件程序编写,编写了许多子程序,有键扫描程序,用来判是否有键按下;有显示子程序,用于数码管的显示;有加1、减1子程序,用于对电子钟时分秒的调整;还有延时程序,用于数码管动态显示、键扫描消抖动、延时。3.3 软件系统程序流程框图系统软件采用汇编语言按模块化方式进行设计,然后通过Keil软件开发平台将程序转变成十六进制程序语言,接着使用Proteous 进行仿真,读出显示数据。主程序流程框图如图6所示;加1子程序如图7所示;中断服务程序程序如图8所示;键盘扫描子程序框

22、图如图9所示;显示子程序框图如图10所示;图6 主程序流程框图图7 加1子程序流程框图图8 中断子程序图9 键盘扫描子程序图10 显示子程序3.4 软件系统的程序本电子钟实现24小时制,8位数码管显示时分秒,可整点报时;显示格式:00-00-00(设置小时十位为0时,不显示);通过3只按键来调整时间;调整选择键SET_KEY:P1.0;通过选择键选择调整位,选中位闪烁; 增加键ADD_KEY:P1.1;按一次使选中位加1; 减少键DEC_KEY:P1.2;按一次使选中位减1;如果长按ADD_KEY或DEC_KEY,可进行调时、调分快进快减,并停止闪烁;如果选中位是秒,则按增加键或减少键可实现,

23、但无调时快进和快减功能;P0口输出数码管段选信号,P3口输出数码管位选信号;晶振11.0592M;P2.1为蜂鸣器发声报时;程序入口ORG 0000H ;程序入口地址 LJMP START ORG 000BH ;定时器0中断入口地址 LJMP TIMET0ORG 1000H;显P.程序;功能:可以在8个数码闪烁移位进行屏保START: MOV R6, #2 ;闪烁次数MOV A, #01H ;位选TT:MOV P3, AMOV P0, #0CH ;段码"P."LCALL DELAYMOV P3, #00HDJNZ R6, TTLCALL DELAYLCALL DELAY1R

24、R A P1.0, TT ;键是否按下,没按下则转移LCALL DELAY ;延时去抖JNB P1.0, KAI ;再次判断键是否按下KAI:SETB P1.0CLR A ;状态恢复MOV P0, #0FFHLCALL DELAY1SETB 48H ;用于调时闪烁标志SETB 47H ;用于产生脉冲用于调时快进的脉冲MOV R1, #0 ;键功能标志:0计时、1调时、2调分、3调秒;清16位寄存器及初始化;50H 用于控制秒基准时钟源的产生;51H 清零秒寄存器;52H 清零分寄存器;53H 清零时寄存器;5FH 用于秒个位;5EH 用于秒十位;5DH 用于分个位;5CH 用于分十位;5BH

25、用于时个位;5AH 用于时十位;54H 用于控制调时闪烁MOV R0, #50H ;初始化MOV R6, #10HCLEARJCQ:MOV R0, #00H ;清寄存器INC R0DJNZ R6, CLEARJCQMOV IP, #02HSETB EASETB ET0MOV TMOD, #01H ;设定定时器0工作方式1MOV TH0, #3CHMOV TL0, #0B0H ;赋定时初值,定时50msSETB TR0 ;启动定时器0MOV SP, #70H ;堆栈;主程序 MAIN:LCALL DISPLAYLCALL KEY_SCANJZ MAINLCALL SET_KEY 46H, MAI

26、N ;如果已进行调时快进,则不再执行下面的调整LCALL ADD_KEY ;调用增加键处理子程序,加一LCALL DEC_KEY ;调用减少键处理子程序,减一LJMP MAIN ;重新循环; 显示处理程序DISPLAY:MOV A, 51HANL A, #0FHMOV 5FH, A ;转换出秒个位,存入5FHMOV A, 51HANL A, #0F0HSWAP AMOV 5EH, A ;转换出秒十位,存入5EH 46H, MIN ;如果调时快进,则跳过闪烁处理程序CJNE R1, #3,MIN ;如果R1为3,闪烁秒位待调整 48H, MINMOV 5FH, #0AH ;使该位为10,查表得到

27、使该位不显示MOV 5EH, #0AHMIN:MOV A, 52HANL A, #0FHMOV 5DH, A ;转换出分个位,存入5DHMOV A, 52HANL A, #0F0HSWAP AMOV 5CH, A ;转换出分十位,存入5CH 46H, HOURCJNE R1, #2,HOUR ;如果R1为2,闪烁分位待调整 48H, HOURMOV 5DH, #0AHMOV 5CH, #0AHHOUR:MOV A, 53HANL A, #0FHMOV 5BH, A ;转换出时个位,存入5BHMOV A, 53HANL A, #0F0HSWAP AMOV 5AH, A ;转换出时十位,存入5AH

28、 46H, DISPCJNE R1, #1,DISP ;如果R1为1,闪烁时位待调整 48H, DISPMOV 5BH, #0AH ;使该位为10,查表得到使该位不显示MOV 5AH, #0AH;数码管动态扫描显示DISP:MOV DPTR, #TABLEMOV A, 5FHMOVC A, A+DPTRMOV P0, ASETB P3.7LCALL DELAYCLR P3.7 ;显示秒个位MOV A,5EHMOVC A, A+DPTRMOV P0, ASETB P3.6LCALL DELAYCLR P3.6 ;显示秒十位MOV A, #0BFHMOV P0, ASETB P3.5LCALL D

29、ELAYCLR P3.5 ;显示“-”MOV A, 5DHMOVC A, A+DPTRMOV P0, ASETB P3.4LCALL DELAYCLR P3.4 ;显示分个位MOV A,5CHMOVC A, A+DPTRMOV P0, ASETB P3.3LCALL DELAYCLR P3.3 ;显示分十位MOV A, #0BFHMOV P0, ASETB P3.2LCALL DELAYCLR P3.2 ;显示“-”MOV A,5BHMOVC A, A+DPTRMOV P0, ASETB P3.1LCALL DELAYCLR P3.1 ;显示时个位MOV DPTR, #TABLE1 ;该位使用

30、TABLE1以消除时的十位置0MOV A, 5AHMOVC A, A+DPTRMOV P0, ASETB P3.0LCALL DELAYCLR P3.0 ;显示时十位RET;定时器中断1s程序TIMET0:PUSH ACC ;保护现场PUSH PSWMOV TH0,#3CHMOV TL0,#0B0HCPL 47H ;产生脉冲用于调时快进INC 54HMOV A,54HCJNE A, #10,ADD_TIME;产生0.5秒,用于调时闪烁CPL 48H ;取反调时闪烁标志位MOV 54H,#00HADD_TIME:INC 50HMOV A,50HCJNE A, #10,ZDBACD;整点报时时蜂鸣

31、器响延迟时间SETB P2.1 ;关蜂鸣器ZDBACD:CJNE A, #20,RETI1 ;产生1秒时钟MOV 50H, #00H ;一秒钟时间到,清零50HMOV A,51HADD A,#01HDA A ;十进制调整MOV 51H,ACJNE A,#60H,RETI1MOV 51H,#00H ;一分钟到MOV A,52HADD A,#01HDA AMOV 52H,ACJNE A,#60H,RETI1CLR P2.1MOV 52H,#00H ;一小时到,开蜂鸣器,清分显示MOV A,53HADD A,#01HDA AMOV 53H,ACJNE A,#24H,RETI1MOV 53H,#00H

32、 ;到24点,清零小时RETI1:POP PSWPOP ACC ;恢复现场RETI ;中断返回;键盘扫描程序;R4设置为00H是为了在进入长按处理前加长延时,以区分长按与短按键KEY_SCAN:CLR 46H ;关闭调时快进标志MOV P1,#0FFH ;将P1口设置成输入状态MOV A,P1CPL AANL A, #07H ;1口低3位连接3个按键,只判断该3位JZ EXIT_KEYLCALL DELAY ;延时去抖动MOV A, P1 ;重新判断CPL AANL A,#07HJZ EXIT_KEYMOV R5,AMOV R4, #00H ;用于控制调时快进速度LOOP: LCALL DIS

33、PLAY ;进入长按处理MOV A,P1CPL AANL A,#07H 47H,LOOP1INC R4 ;调时快进间隔时间基准加1LOOP1: CJNE R1, #03H,LOOP2 ;如果调秒时长按,则不处理LJMP LOOP3LOOP2:CJNE R4,#99H,LOOP3MOV R4, #70H ;确认长按后,加快调时快进速度SETB 46HLCALL ADD_KEYLCALL DEC_KEYLOOP3: JNZ LOOP ;等待键释放MOV A, R5 ;输出键值RETEXIT_KEY:RE;延时子程序 DELAY:MOV R7,#200 DJNZ R7,$ RETDELAY1:MOV

34、 R3,#50 MOV TMOD,#00H MOV TH1,#63H MOV TL1,#18H SETB TR1 LP1:C TF1,LP2 SJMP LP1 LP2:MOV TH1,#63HMOV TL1,#18H DJNZ R3,LP1RET ;选择键处理子程序SET_KEY:CJNE R5,#01H,EXIT ;选择键键值INC R1 ;调整选择功能标志加一CJNE R1,#4,EXITMOV R1,#0 MOV 54H,#00H ;调时闪烁清零 RE;加1子程序ADD_KEY:CJNE R5,#02H,EXIT ;加1键值CJNE R1,#01H,NEXT1 ;选择键功能标志为1调时,

35、否则跳出MOV A,53HADD A,#01HDA AMOV 53H,ACJNE A,#24H,EXITMOV 53H,#00H NEXT1:CJNE R1,#02H,NEXT2 ;选择键功能标志为2调分,否则跳出MOV A,52HADD A,#01HDA AMOV 52H,ACJNE A,#60H,EXITMOV 52H,#00HNEXT2: CJNE R1,#03H,EXIT ;选择键功能标志为3调秒,否则跳出MOV A,51HADD A,#01HDAAMOV 51H,ACJNE A,#60H,EXITMOV 51H,#00H ;如加1键按下直接清零秒RET;减1子程序DEC_KEY:CJ

36、NE R5,#04H,EXIT ;减1键键值 CJNE R1,#01H,NEXT3 ;选择键功能标志为1调时,否则跳出 MOV A,53H ADD A,#99H DA A MOV 53H,A CJNEA,#99H,EXIT MOV 53H,#23H NEXT3:CJNE R1,#02H,NEXT4 ;选择键功能标志为2调分,否则跳出MOV A,52HADD A,#99HDA AMOV 52H,ACJNE A,#99H,EXITMOV 52H,#59HNEXT4:CJNE R1,#03H,EXIT ;选择键功能标志为3调秒,否则跳出 MOV A,51HADD A,#99HDA AMOV 51H,

37、ACJNE A,#99H,EXITMOV 51H,#59H RET;返回子程序 EXIT:RET;数码管字形编码表 TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH ;"0","1","2","3","4","5","6","7","8"",9","不显示" TABLE1:DB 0FFH,0F9H,0A4H,0

38、B0H,99H,92H,82H,0F8H,80H,90H,0FFH ;小时编码;"不显示","1","2","3","4","5","6","7","8","9","不显示"END 4 设计总结4.1 使用说明本设计主要单片机最小系统完成,AT89S52为整个设计的核心实现功能数字电子钟,系统上电显示P。电子钟:按下K0选择电子钟,数码管上00-00-00从左向右依次滚动显示直

39、到LED7-LED1完全显示完00-00-00,开始计时,若计时时按下K0时钟暂停,按下其余键无效,暂停2s,若2sK0键按下0次(按下其余键无效),继续开始计时;若2sK0按下1次进入秒调整状态,若2sK0按下2次进入分调整状态;若2sK0按下3次进入时调整状态,按下次数多于3次则无效。进入调整状态时,要调整的该位闪动,蜂鸣器鸣响以示提醒,此时按下K1则加1,按下K2则减1,按下K0则确认进入计时状态。4.2 设计结论在本次设计中,我觉得重点和难点在于如何对电子钟的调整,对电子钟的调整有多种方案,既要实现调整功能又要实现调整方便等,于是在设计了个加1键基础上,又设计了一个减1键,这样大大缩短

40、了对长时间调整的次数。在这次设计中,精妙之处是利用定时器中断来对时钟计时和采用的一键多功能,还有增加了个虚拟键。利用定时器中断,一旦定时器中断请求已产生立即跳往中断服务程序,只要给定时器初值初始化恰当,计时产生的误差可以忽略。在电子钟设计时K0键有多种功能,首先作为电子钟的选择键,有暂停,调秒、调分、调时选择键,还有作为确认键。当在计时时按下K0,就启动2s定时,2s到了就会跳开,相当于个确认键一样。当然在本次设计中也有不足之处,比如说电子钟调整时有一定的局限性,虽然实现了随意选择时、分、秒进行调整,但是一旦进入调整状态,就只能对该选择的位进行调整,不能切换到其他位。比如选择调时就不能在调整状

41、态切换到调分或调秒。4.3 仿真结果在Proteus ISIS的Debug菜单中选择Execute,运行程序,系统仿真结果如图11与图12所示。实现功能:可调整运行的电子钟具有三种工作状态:“P.”状态、运行状态、调整状态。 (1)、“P.”状态,依靠上电或按复位键进入,在此状态下,按S2、S3键均无效,按S1键有效,进入运行状态; (2)、运行状态,在此状态下,按S2、S3键均无效,只有按S1键有效,按下S1键后,退出运行状态,进入调整状态; (3)、调整状态,按S1键进入时、分、秒的闪烁,在此状态下,按S2(+1键)、S3(-1键)键均有效;调整结束后必须按S1键,即可退出调整状态,进入运

42、行状态。在调整状态时长按S2、S3时可以连加及连减。时间显示格式为:时-分-秒;图11 “P.”运行状态仿真图12 时钟运行状态仿真4.4 误差分析该电子钟在运行中存在一定的误差,误差产生有三种可能,首先是采用的计时方案是软件计时的,计时优势利用中断来实现。而当电子钟运行时间1秒时,又得去执行中断程序,这个过程是需要时间的,所以就产生了一定的误差,当然这个误差是避免不了的,其次还有硬件系统也有一定的影响。第三,设计用到12MHz的晶振,计算是满20次为一秒钟,但实际会慢很多。4.5 教学建议经过一个学期王韧老师教导的单片机学习,我掌握了很多单片机学习的宝贵经验,尤其在编程的思路和PCB实物的制

43、作上面。编程思路是整个程序的灵魂,没有编程思路,程序就不会编出来,就失去了编程的意义。在开始编程之前,想好编程的思路,编程能力才会提高,编程的过程才会顺畅,程序的质量才会提高。王韧老师不仅教会我们书本上的知识,更通过把自己亲身经历讲给了我们,让我们明白许多生活中的大道理。老师最有特色的一点就是对我们要求严格,我现在明白不仅名师出高徒,严师也可以出高徒。所以我给老师一点建议是不要放弃某些想学好知识的人,还有如果我们做的好,可以适当给予我们一点语言上的鼓励,这样我们会更加有信心面对一切挑战。结束语在本次课程设计中,我感觉我学到了好多,最主要是自己在设计中遇到多种困难,自己通过发现问题、分析问题、解

44、决问题,锻炼了自己的解决问题的能力,更重要是一种面对困难的态度,面对老师提出的要求,我没有退缩,而且做的很好。在软件设计中,从一开始只能显示P.到可以计时,再到可以调整,每一个功能的实现都给了自己莫大的鼓励,感受到了成功的喜悦,一份耕耘一份收获。但是通过相比较我也意识到自己的不足,考虑问题还不够完善。致 做了两周的课程设计,有很多的心得体会,有关于单片机的,也有关于模电数电等基础科目的。因为单片机已经很久没复习,刚拿到题目,不知道从哪入手,后来通过对书本的回顾,加深了对单片机的记忆。有些知识会迁移和联系模电数电。课堂教学考虑到大多数同学的需求,主要强调“基本”基本知识、基本理论、基本方法、基本技能。而这次设计正是为我们提供了一个深入学习、探索的机

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论