单片机原理与应用技术课程设计报告题目:基于单片机控制的时钟控制器专业班级:电气工程及其自动化064班时间:2009.2.16~2009.3.6指导教师:__孔晓红邵锋_ 陈艳锋 _2009年3月6日时钟控制器课程设计任务书1.设计目的与要求设计出一个时钟控制器。
准确地理解有关要求,独立完成系统设计,要求所设计的电路具有以下功能:(1)显示:可以显示时、分和秒;(2)调时功能:时(0-24)、分和秒(0-60)可以连续可调;(3)扩展功能:增加整点报时功能,增加闹钟任意设定功能;2.设计内容(1)画出电路原理图,正确使用逻辑关系;(2)确定元器件及元件参数;(3)进行电路模拟仿真;(4)SCH文件生成与打印输出;3.编写设计报告写出设计的全过程,附上有关资料和图纸,有心得体会。
4.答辩在规定时间内,完成叙述并回答问题。
目录1.引言 (1)2.总体设计方案 (1)2.1 设计思路 (1)2.2 总体设计框图及电路组成 (1)3.设计原理分析 (2)3.1蜂鸣报警电路 (2)3.2显示电路 (2)3.3时间调整电路 (3)3.4系统软件 (3)4.结束语 (5)参考文献 (5)附录1 (6)附录 2 (7)基于单片机控制的时钟控制器电气064 梁成才摘要:本设计多功能数字钟是以A T89S51单片机为核心控制器构成的电子时钟,数字电子钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。
由于数字集成电路的发展和石英振荡的广泛应用,使得数字钟的精度、稳定度远远超过了老式机械钟表。
在数字显示方面目前已有集成的计数、译码电路,它可以直接驱动数码显示器件还可以直接采用CMOS-LED光点组合器件,构成模块式石英晶体数字钟。
这些电路装置十分小巧,安装使用也方便。
关键词:A T89S51 数码管时钟74LS1641引言数字钟是采用数字电路实现对时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
2总体设计方案2.1 设计思路本电路采用89S51为核心的时钟控制电路,由于单片机简单可靠,便于用户使用,所以采用单片机控制时钟,其控制电路共有六部分组成,单片机是其核心部件,要完成整点报时需要报警电路。
对当前的时间修改需要对按键的操作,所以还需要按键电路,单片机将其信号输出应该反映在显示电路中,应采用六位数码管构成的显示电路。
电路中还应该具有复位电路。
其设计思路有多种,其输出可以采用动态显示和静态显示两种方式,采用动态方式的电路比较复杂,采用静态方式输出可采用单片机串行口输出,电路相对较简单。
该电路应该具有任意时间可调的功能,所以外围采用开关按键来实现。
在软件设计方面,应完成时钟控制电路的各项要求整个系统工作时,秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。
“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。
“时计数器”采用24进制计数器,可实现对一天24小时的累计。
显示电路将“时”、“分”、“秒”计数器的输出,通过六个七段LED显示器显示出来。
校时电路是直接加一个脉冲信号到时计数器或者分计数器或者秒计数器来对“时”、“分”、“秒”显示数字进行校对调整。
2.2总体设计框图及电路组成时钟控制电路应该由六部分组成,单片机是其核心部件,要完成整点报时需要报警电路。
对当前的时间修改需要对按键的操作,所以还需要按键电路,单片机将其信号输出应该反映在显示电路中,应采用六位数码管构成的显示电路。
电路中还应该具有复位电路。
整体设计框图如图1所示。
图1整体设计方框图3 设计原理分析3.1蜂鸣报警电路设计该电路可以根据在整点时刻发出警报,当单片机P0.0口置0时,在图2中,P0.0通过330欧的电阻接晶体管PNP 的基极输入端,从而使蜂鸣器发出报警的声音,以达到用户的目的。
VCCP0.0图2 蜂鸣报警电路图3.2 显示电路的设计本电路采用静态显示,利用74LS164来驱动数码管显示, 74LS164是串行输入并行输出的移位寄存器,并带有清除端,其中Q0-Q7为并行输出端,CLR 为清除端,当它为零电平时使74 LS 164输出清零,A 、B 为串行输入端,CLK 为时钟脉冲输入端,在脉冲的上升沿实现移位。
当CLK=0、CLR=1时,74 LS 164保持原来的数据状态。
图中外接6片74LS164作为6位LED 显示器的静态连接口,74 LS 164的低电平输出电流为8MA ,可直接驱动共阳极LED 。
采用软件译码向74 LS 164输出字型码,由于显示器是静态的主程序可不必扫描显示器。
直接由单片机的串行口输出数据和时钟控制信号达到静态显示的目的。
如图3所示。
图3 显示电路3.3时间调整电路该电路采用了四个按键开关,其中S1是时钟控制器开始按键,当S1按下时时钟开始工作,初始值设定在12点整,当需要改变时间时,应按下S2,该键是分和时的切换,当S2按下时,显示电路中分的位置处于闪烁状态,处于当前可调;当再次按下该键时,显示电路的时应闪烁,处于当前可调,当时或分被S2激活可调时,按下S3可对其进行加1调整,按下S4可对其进行减1调整。
其四个端口对应输入到单片机的P2.3—P2.6处。
如图4所示。
P2.P2.4P2.P2.6图4 时间调整电路3.4系统软件设计主程序首先是初始化部分,主要是计时单元清零,中断初始化,启动定时器工作,然后是调用显示子程序,接着是判断有无按键。
无按键则回到调用显示子程序处;有按键,则执行按键处理子程序,执行完后回到调用显示子程序处,重复循环。
主程序流程图如图5所示。
为了保证系统的可靠运行,在主程序之外还增加了定时中断程序。
本电子钟的计时是用单片机内部的定时计数器T0,定时10ms ,即0.01s ,100次中断即为1s ,60s 为1min ,60min 为1h ,24h 为1天,如此循环,从而实现计时功能。
程序流程图如图6所示。
图5 主程序流程图 图6 中断程序流程图4结束语本系统以89S51为核心部件,利用软件编程,通过按键控制和数码管显示实现了对时钟的显示和调整功能,能实现本设计的基本要求部分。
如在本设计中能很好的显示时间。
通过按键的设置来调节当前时间。
在本设计中尽量做到了硬件电路简单稳定,减小电磁干扰和其他环境干扰,充分发挥软件编程的优点,减小因元器件精度不够引起的误差。
由于时间有限和本身知识水平的发挥,我认为本系统还有需要改进和提高的地方,例如选用更高精度的元器件,硬件电路更加精确稳定,软件测量算法进一步的改进与完善等。
通过此次三周的实习,不仅我的电脑基本知识有所提高,而且我对单片机的应用有了更进一步的了解,为以后工作打下了坚实的基础。
参考文献[1] 张桂红.单片机原理与应用[M].福州:福建科学技术出版社,2007.2[2] 汪道辉.单片机系统设计与实践[M].北京:电子工业出版社,2006.6[3] 孙涵芳.MCS-51系列单片机原理及应用[M].北京:北京航空航天大学出版社,1994[4] 黄正谨.综合电子设计与实践[M].东南大学出版社,2002.3[5] 杨欣等.电子设计从零开始[M].北京:清华大学出版社,2005.10[6] 谢嘉奎.电子线路[M].高等教育出版社,2003.2[7] 李朝青.单片机原理及接口技术(第三版)[M].北京:北京航空航天大学出版社,2005.9[8] 夏路易,石宗义.电路原理图与电路设计教程Protel 99SE[M].北京:北京希望电子出版社,2002附录1总体电路图附录2附电路程序ORG 0000HAJMP MAIN ; 转到主程序ORG 000BHAJMP SERVE ; 转到中断程序;*********************主程序************************* ORG 30HMAIN: MOV TMOD ,#01HMOV R0 ,#31HMOV 30H ,#00MOV R6 ,#00MOV R7 ,#00m_sec EQU 20H ;毫秒单元sec EQU 21H ;秒单元min EQU 22H ;分单元hour EQU 23H ;时单元SPEAK BIT P0.0 ;蜂鸣器LED BIT P3.6 ;按键指示灯SK1 BIT P2.6 ;数字钟开始键SK2 BIT P2.5 ;数字钟调整时间部分切换键SK3 BIT P2.4 ;数字钟调整时间加1键SK4 BIT P2.3 ;数字钟调整时间减1键SETB ET0 ;允许T0中断SETB EA ;允许CPU中断MOV TH0 ,#0D8HMOV TL0 ,#0F0H ;赋计数器初值MOV m_sec ,#00 ;毫秒单元清零MOV sec ,#00 ;秒单元清零MOV min ,#00 ;分单元清零MOV hour ,#00 ;时单元清零SETB TR0LCALL RETURN ;调用显示程序;*****************数字钟按键程序*****************;*****************开始键************************S1: JB SK1 ,S2 ;数字钟开始键LCALL DL10msJB SK1 ,S2CLR SPEAKCLR LEDJNB SK1 ,$SETB SPEAKSETB LEDSETB TR0MOV 30H ,#00MOV R7 ,#00;****************调整时间部分切换键********************S2: MOV A ,30HCJNE A ,#00 ,NET6JB SK2 ,S3 ;数字钟调整时间部分切换键LCALL DL10msJB SK2 ,S3CLR SPEAKCLR LEDINC 30HJNB SK2 ,$SETB SPEAKSETB LEDINC R7CLR TR0SJMP NET7NET6: JB SK2 ,NET7LCALL DL10msJB SK2 ,NET7CLR SPEAKCLR LEDINC 30HJNB SK2 ,$SETB SPEAKSETB LEDINC R7NET7: CJNE R7 ,#1 ,NET1LCALL MSH ;分闪烁SJMP S3NET1: MOV R7 ,#0LCALL HSH ;时闪烁SJMP S3NET9: LCALL RETURN;******************调整时间加1键*****************S3: JB SK3 ,S4 ;数字钟调整时间键LCALL DL10msJB SK3 ,S4CLR SPEAKCLR LEDCJNE R7 ,#1 ,NET2SETB SPEAKSETB LEDINC min ;分单元加1MOV A ,minCJNE A ,#60 ,NET9 ;不等60时跳转显示,等60时将分单元清零MOV min ,#00LCALL NET3JB SK3 ,NET4LJMP S3NET2: SETB SPEAKSETB LEDLCALL DL200msINC hour ;时单元加1MOV A ,hourCJNE A ,#24 ,NET9 ;不等24时跳转显示,等24时将时单元清零MOV hour ,#00LCALL NET3JNB SK3 ,NET4LJMP S3NET4: SJMP S4NET3: LCALL RETURN;****************调整时间减1键**********************S4: JB SK4 ,NET11 ;数字钟调整时间键LCALL DL10msJB SK4 ,NET11CLR SPEAKCLR LEDCJNE R7 ,#1 ,NET8SETB SPEAKSETB LEDLCALL DL200msDEC min ;分单元减1MOV A ,minCJNE A ,#0FFH ,NET3 ;不等60时跳转显示,等60时将分单元清零MOV min ,#59LCALL NET3JB SK4 ,NET11SJMP S4NET8: SETB SPEAKSETB LEDLCALL DL200msDEC hour ;时单元减1MOV A ,hourCJNE A ,#0FFH ,NET3 ;不等24时跳转显示,等24时将时单元清零MOV hour ,#23JB SK4 ,NET11LJMP S4NET11: LJMP S1;***********************中断程序****************** SERVE: PUSH PSWPUSH ACC ;保护现场MOV TH0 ,#0D8HMOV TL0 ,#0F0H ;重新赋计数初值INC m_sec ;毫秒单元加1MOV A ,m_secCJNE A ,#100 ,NEXT1MOV m_sec ,#00INC sec ;秒单元加1MOV A ,secCJNE A ,#60 ,NEXT1MOV sec ,#00INC min ;MOV A ,minCJNE A ,#60 ,NEXT1MOV min ,#00INC hour ;MOV A ,hourCJNE A ,#24 ,NEXT1MOV hour ,#00NEXT1: LCALL RETURNPOP ACCPOP PSW ;恢复现场RETI ;中断返回;********************数字钟显示程序****************** RETURN: MOV A ,sec ;将秒送AMOV B ,#10DIV ABMOV 24H ,B ;秒的个位MOV 25H ,A ;秒的十位MOV A ,min ;将分送AMOV B ,#10DIV ABMOV 26H ,B ;分的个位MOV 27H ,A ;分的十位MOV A ,hour ;将时送AMOV B ,#10DIV ABMOV 28H ,B ;时的个位MOV 29H ,A ;时的十位LCP: MOV R1 ,#24HMOV R4 ,#6MOV DPTR ,#TABBK: MOV A ,@R1MOVC A ,@A+DPTRMOV SBUF ,AJNB TI ,$CLR TIINC R1DJNZ R4 ,BKRET;******************字型码*********************TAB: DB 11H,0D7H,32H,92H,0D4H,98H,18H,0D3H,10H,90H ;0~9 ;*******************延时10ms子程序******************DL10ms: MOV R2 ,#10HTS1: MOV R3 ,#0FFHTS2: DJNZ R3 ,TS2DJNZ R2 ,TS1RET;*******************延时200ms子程序*******************DL200ms:MOV R3,#20DL3: MOV R4,#10HDL2: MOV R5,#0FFHDL1: DJNZ R5,DL1DJNZ R4,DL2DJNZ R3,DL3RET;****************分显示闪烁子程序********************MSH: LCALL RETURNLCALL DL200msMOV A ,#0FFHMOV B ,#0FFHMOV 26H ,BMOV 27H ,ALCALL LCPLCALL DL200msRET;****************时显示闪烁子程序********************HSH: LCALL RETURNLCALL DL200msMOV A ,#0FFHMOV B ,#0FFHMOV 28H ,BMOV 29H ,ALCALL LCPLCALL DL200msRETEND单片机原理与应用技术课程设计报告题目:基于单片机控制的时钟控制器专业班级:电气工程及其自动化064班时间:2009.2.16~2009.3.6 指导教师:__孔晓红邵锋_ 陈艳锋 _2009年3月6日时钟控制器课程设计任务书1.设计目的与要求设计出一个时钟控制器。