《数字定时器设计.docx》由会员分享,可在线阅读,更多相关《数字定时器设计.docx(8页珍藏版)》请在三一办公上搜索。
1、数字定时器设计设计任务 设计一个数字定时器 设计要求 1,定时1-99分钟,开机上电并且默认10分钟。 2,显示时间自选,不一定使用数码管。 3,定时时间可调,调试方式为两种,一是步进,二是直接输入。 4,有负载,220V/A,要求开机上电的时候,负载关闭。 5,有相关的提示信息,一旦时间设定之后,会给出时间设定的提示信息。 6,定时时间到,关闭电晕啊,切断负载电源,关闭电源。 7,系统工作电源Vin=+12V 设计基本理论 本设计将采用89C51单片机,89C51单片机是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。单片机自带5个中断,两个16位定
2、时器32个I/O口,可擦除只读存储器可以反复擦除多次,功能相当强大。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器。89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 主体模块设计 数字定时器系统的基本组成如下图所示 数字定时系统电路的原理框图 根据设计任务与要求,可初步将系统分为五大功能模块:主电路、按键电路、显示电路、继电器电路。进一步细说,主电路选用AT89C51作为中央处理器,系统采用12MHZ的晶振;按键控制电路由两个个按键组
3、成,采用三个独立开关,按键按下产生一个脉冲信号;显示电路由二位8段共阴极数码管和一个9位100欧姆上拉排阻组成,位选,个位和十位由P0输出,段选由P1输出;继电器电路由一个继电器和一个用电器组成,通过电路与P3.0相连。当P3.0输出高电平时,继电器不吸合,灯亮。 各部件具体设计 1单片机最小系统的设计模块 硬件连接说明:本系统以AT89C51单片机为核心。单片机采用内部振荡的方式。通过200欧姆电阻与一个6位8段LED数码显示管相连。从P0口输出LED数码管的字形码,从P2口输出LED数码管的位选码,高电平有效。4个功能按键和P1口相连,中间通过10K的电阻与+5V电源相连,按键另一端接地,
4、P1口低电平时表示按键被按下。报警电路则与P3.0口相连,当P3.0口输出高电平时,蜂鸣器响。 2晶振电路设计 由于单片机内部振荡方式电路简单,时钟信号比较稳定,是独立的单片机应用系统的首选,故本设计采用内部振荡方式,采用12MHZ的晶振。数字定时系统电路的晶振电路图如下图所示。 3定时中断 本设计电路采用定时器T0产生定时中断,由于本设计需要0.1s的基本时间,故选择其工作在定时方式1下。这时定时器T0是一个16位的计时器,由它产生50ms的基本定时中断,两次中断后将得到0.1s的时间。 4键盘电路 键盘电路有独立式键盘和矩阵式两种。独立式键盘占用I/O口线较多,适用于按键较少的情况。矩阵式
5、键盘占用的I/O口相对较少,适用于按键很多的情况。共设置4个按键,每个按键分别完成复位、开始/暂停、设置、调整的功能。其电路连接图如下图所示。 5 报警电路 报警电路将采用p3.0口驱动,当数码管显示00.00.0时p3.0口输出高电平,驱动蜂鸣器达到报警的目的,只有当复位键按下后,蜂鸣器才会停止报警。其电路连接图如下图所示 6显示电路 对于显示电路,本设计采用6位8段共阴极LED数码管显示。上电显示最大倒计时时间99.00.00-。其中“-”位为系统状态标志位,当显示“-”时,表示系统处于等待状态,按下开始键后将开始计数,开始计数后此数码管将关闭显示,以达到省电的目的 ,当显示“E”时,表示
6、系统正处于调时状态,此时只用两个调时键有用,按下开始键或复位键将没有用。其显示电路图如下图所示。 系统的调试与结果测试 电后LED数码管显示最大倒计时值99.00.0-,程序处于等待状态 此时,主程序不断调用显示子程序以及扫描键盘按键情况,当检测到有键按下后,转到相应的程序执行。 1.开始/暂停键按下后程序开始减1计数直到0,同时状态显示管熄灭,计数值到0后报警器响。若中途遇到开始/暂停键按下则,暂停倒计时。 2.若中途遇到复位键按下则将倒计时器的倒计时值设置为最大值,并处于等待状态。 3.复位键按下后,程序复位,系统处于等待状态,状态显示管显示“-”。 4.当设置键被按下后,程序进入调时设置
7、状态,同时状态显示管显示“E”。设置状态的初始值位00.00.0E,按下+1调整键,可以将当前的计数单位值加1,再次按下设置键后,即进入了下个计数单位的调时状态,当按下5次设置键后将退出调时状态,若分钟十位被设置为6并再次按下设置键后程序直接退出调时状态。设置状态时开始/暂停键和复位键无效,等退出调时状态后,设置状态时开始/暂停键和复位键恢复功能 结果分析 本设计是一个采用了由内部振荡的时钟方式、程控扫描方式的独立式键盘、动态显示LED数码管和蜂鸣器式报警器组成的系统。因此该系统使用的电子器件少、外围电路简单,定时精准,使用的I/O少,系统消耗的功耗小,剩余的I/O口多便于扩展其他功能。但是另
8、一方面,本系统由于使用了程控式的键盘和动态显示的LED数码管,所以对CPU的使用率相对较高。 开始在主程序的循环中没有添加调用显示子程序的语句,导致在没有按键按下的情况下LED数码管没有显示。当在主程序循环检测按键的过程中添加了调用显示子程序的语句后就解决了这一问题。由于键盘需要消抖延时和等待按键释放,所以相似的情况又出现了按下按键后有一段时间LED数码管断续显示或者按下按键后不释放按键时LED数码管没有显示。仔细分析后发现,问题出现的原因还是一样的,由于本设计的LED数码管采用了动态显示,故需要不断调用显示子程序,否则会导致LED数码管没有显示。所以最终做了以下改进:1.按键的消抖延时选择调
9、用两次显示子程序来取代原来的10ms软件延时。2.在等待按键释放时,使用循环调用显示子程序来替代原来的循环等待。经过上述两点的改进后,LED数码管无显示或者断续显示的问题就得到了彻底的解决。 心得体会 初次看到本次的课程设计的题目时,感觉设计的难度不大,但是由于是第一次运用 单片机设计,在设计过程中又遇到了种种困难,又感觉到要完成此次设计还需要花费很大的时间和精力。但是经过不断的努力,运用科学的分析方法,最终完成了本次计算机课程设计。 经过三个星期的课设,过程曲折可谓一语难尽。在此期间我也失落过,也曾一度热情高涨。从开始时满富盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。 生活也是
10、这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。通过这次课设,我才真正领略到“艰苦奋斗”这一词的真正含义,只有亲自动手才能体会其中的内涵。我想说,设计确实有些辛苦,但苦中也有乐。每当遇到困难的时候,老师和同学给了我很大的帮助,让我学到了很多东西。在此,我对帮助过我的同学及老师深表感谢。我感觉通过课设我和同学们之间的距离更加近了;我想说,设计确实很累,但当我们的设计出现成果时,心中也不免产生喜悦,正所谓“三百六十行,行行出状元”我认为无论干什么,只要人生活的有意义就可以。 另外,课堂上也有部分知识不太清楚,于是我又不得不边学边用,时刻巩固所学知识,通过课设把以前不了解的东西能
11、够学习一下,更深的体会其中的含义,使我收获颇多。整个设计我基本上还满意,由于水平有限,难免会有错误,所以还请老师批评指正。 附录:所使用的VB程序 ORG 0000H AJMP MAIN ORG 000BH ;T0中断程序入口地址 AJMP T0ZD ORG 00100H MAIN:CLR TR0 ;主程序开JC12:MOV P1,#0FFH ;判断设置键是否按下 JB P1.2,JC11 LCALL XDYS JB P1.2,JC11 PP12:JNB P1.2,DP12 ;调整设置键按下后转到调时子程(TSCX) 始 CLR P3.0 SETB 20H.1 CLR 20H.0 序处于等待开
12、始 MOV 40H,#00H MOV 41H,#00H MOV 42H,#00H 码 MOV 43H,#00H 码 MOV 44H,#06H 码 MOV 45H,#00H 码 MOV 46H,#02H 数 SETB EA SETB ET0 MOV TMOD,#01H 0 MOV TL0,#0B0H 时 MOV TH0,#3CH JPJC:LCALL XSCX 进入键盘检测程 MOV P1,#0FFH 下 JB P1.0,JC12 LCALL XDYS MOV R0,#44H JCTZ:ACALL XSCX ;先调用显示程序,扫描时间调整键 MOV P1,#0FFH JB P1.3,NEXT ;
13、+1键盘没有按下 ACALL XDYS ;键盘按下,消抖延时 JB P1.3,NEXT DEN0:JNB P1.3,DEN1 ;等待按键释放 AJMP JYCX ;+1键按下后,跳转到+1程序 NEXT:MOV P1,#0FFH JB P1.2,JCTZ ACALL XDYS ;键盘按下,消抖延时 JB P1.2,JCTZ DEN2:JNB P1.2,DEN3 ;等待按键释放 MOV A,44H CJNE A,#06H,DEC4 ;设置键再次按下,将调整指针指向下一位 AJMP TCTS DEC4:DEC R0 CJNE R0,#3FH,JCTZ ;若R0为3FH则退出调时程序 AJMP TC
14、TS ;若R0不为#06H,但R0为#3FH,则跳出调时程序 JYCX:CJNE R0,#44H,XIA1 ;加1调时部分 CJNE R0,#06H,INCR ;调整分钟十位 AJMP SET0 XIA1:CJNE R0,#43H,XIA2 AJMP TZ09 ;调整分钟个位 XIA2:CJNE R0,#42H,XIA3 CJNE R0,#05H,INCR ;调整秒钟十位 AJMP SET0 XIA3:CJNE R0,#41H,XIA4 AJMP TZ09 ;调整秒钟个位 XIA4:CJNE R0,#40H,TCTS TZ09:CJNE R0,#09H,INCR ;调整0.1秒位 SET0:M
15、OV R0,#00H AJMP JCTZ INCR:INC R0 AJMP JCTZ DEN1:ACALL XSCX AJMP DEN0 DEN3:ACALL XSCX AJMP DEN2 TCTS:MOV TH0,#3CH ;退出调时程序 MOV TL0,#0B0H MOV 45H,#00H ;将状态显示码更改为D RET ; T0中断子程序 T0ZD:CLR EA ;T0中断子程序,关中断 ACALL XSCX ;采用调用显示子程序延时以改善LED显示效果 RET XSYS:MOV 55H,#20 ;显示延时程序,延时1ms DEL2:MOV 56H,#25 DEL1:DJNZ 56H,DEL1 DJNZ 55H,DEL2 RET TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH TAB1:DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH TAB2:DB 040H,79H ;D等待状态,E调时状态 END
链接地址:https://www.31ppt.com/p-3558864.html