《单片机最小应用系统设计报告单片机多点定时数字钟的设计.doc》由会员分享,可在线阅读,更多相关《单片机最小应用系统设计报告单片机多点定时数字钟的设计.doc(17页珍藏版)》请在三一办公上搜索。
1、 电 子 科 技 大 学单片机最小应用系统 设 计 报 告 指导老师: 学 生: 学 号: 机电工程学院2009年5月单片机最小应用系统设计报告一、设计题目1二、设计内容与要求1三、设计的目的与意义1四、系统硬件图14.1系统的硬件电路原理图24.2 各主要芯片及相应组成电路3五、程序流程图4六、系统程序5七、系统说明与分析127.1设计步骤127.2设计内容13八、总结13九、参考文献14一、 设计题目多点定是数字钟的设计二、设计内容与要求以AT89S51单片机为核心器件,组成一个定时数字钟系统,系统显示器由四位数字型数码管组成,分别显示小时和分钟,能够随时对当前时间进行调整,并能构随时输入
2、定时时间,在定时时间到时会有提示音提示时间已到。三、设计的目的意义1. 通过本课程设计的学习,掌握数码管显示电路的动态显示原理;2. 了解到CD4511是一个用于驱动共阴极 LED (数码管)显示器的 BCD 码七段码译码器,如下特点:具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流,可直接驱动LED显示器;3. 掌握单片机定时器、中断的工作原理以及动态显示的编程方法,可以设计可以调整的数字闹钟。4. 完成系统所需的硬件设计制作,在提高实际动手能力的基础上进一步巩固所学知识。5. 进行题目要求功能基础上的软件程序编程,会用相应软件进行程序调试和测试工作。6.
3、用AT89C51,CD4511设计出题目所要求的波形实现循环显示,并针对实际设计过程中软、硬件设计方面出现的问题提出相应解决办法。四、系统的硬件电路图4.1系统的硬件电路原理图系统的硬件电路图如图1所示,从图中可以看到该电路主要有时钟电路、复位电路等组成。电源电路有设备提供,在原理图上不在说明,本文简单介绍电源电路的组成原理。该图为多点定时数字钟的硬件电路图4.2 各主要芯片及相应组成电路1)8051单片机:2) 时钟电路 该电路主要有电容C1、C2和晶振Y1组成。其组成原理图如图2所示,图中XTAL1为芯片内部振荡电路的输入端,XTAL2为芯片内部振荡电路的输出端。图为时钟电路3)复位电路
4、单片机通常采用的复位方式有上电复位和按钮复位两种。本次设计用的复位方式是按钮电平复位。其原理图如图3所示。当按下按钮SW时,电容对R6迅速放电,RESET端变为高电平,RESET松开后,电容通过电阻R6进行充电,RESET端恢复为低电平。图为复位电路五、程序流程图定时器T0初始化并开中断该图为主程序框图 该图为中断数码管动态显示框图六、系统的程序SW1 EQU P3.0 ;定义校分按钮SW2 EQU P3.1 ;定义校时按钮SW3 EQU P3.2 ;定义设定按钮SW4 EQU P3.3 ;定义设定结束按钮BUZZER EQU P3.4 ;定义蜂鸣器输出按钮DIS EQU P2 ;定义显示器控
5、制口MS EQU 10H ;定义50ms计数器SECS EQU 11H ;定义秒计数器MINUTE EQU 12H ;定义分钟计数器HOUR EQU 13H ;定义时计数器DM EQU 14H ;定义显存地址TMINUTE EQU 18H ;定义定时分单元THOUR EQU 19H ;定义定时时单元TTAB EQU 1AH ;时间表指针ORG 0000HAJMP Main ;转主程序ORG 000BHAJMP T0INT ;转T0定时程序Main:MOV SP ,#60H MOV P3,#0FFH ;将p3.0p3.3设置为输入口 LCALL CLEAR SETB EA ;允许中断 SETB
6、ET0 CLR F0MOV TMOD ,#01H ;清数码管闪亮控制标志MOV TL0,#0B0H ;预装50ms初值MOV TH0,#3CHMOV B ,#50 MOV MS,#0 MOV SECS ,#0 ;预装秒初值MOV MINUTE ,#01h ;预装分初值MOV HOUR ,#0CH ;预装时初值MOV TMINUTE ,#0 ;预置定时分MOV THOUR,#6H ;预装定时时SETB TR0 ;启动T0LOOP1:SETB BUZZER MOV R0,#MINUTE LCALL SPLIT ;调用子程序LCALL DISP ;调用显示程序MOV A,SECS LCALL COM
7、P MOV R0,#MINUTELCALL SPLITLCALL DISPSCAN:JB SW3,LOOP1LCALL tSet ;调用设定时间设置程序SJMP LOOP1 tSET:LCALL CLEAR ;调用时间表清除程序LCALL BBSET0:MOV R0,#MINUTE LCALL SPLITLCALL DISP ;调用显示子程序JNB SW3,SET0setb F0MOV TTAB,#20HSET1:MOV R0,#TMINUTELCALL SPLITLCALL DISPJNB SW1,SETM ;判断设置分按钮是否有效JNB SW2,SETH ;判断设置时按钮是否有效JNB S
8、W3,SAVEJNB SW4,SET1SJMP SEXITSETM:MOV R0,#TMINUTELCALL SPLITLCALL DISPJNB SW1,SETMMOV A,TMINUTE ;取定时分ADD A,#1 ;定时分加1DA A ; 十进制调整MOV TMINUTE ,A ;保存定时分CJNE A ,#60H ,SET1MOV TMINUTE ,#0SJMP SET1SETH:MOV R0,#TMINUTE LCALL SPLITLCALL DISPJNB SW2,SETH ;等待SW2释放MOV A,THOUR ;取定时时ADD A,#1 ;定时时加1DA AMOV THOUR
9、,ACJNE A ,#24 ,SET1MOV THOUR ,#0SJMP SET1SAVE:MOV R0,#TMINUTELCALL SPLITLCALL DISP ;调用显示子程序JNB SW3,SAVELCALL BBMOV R0,TTAB ;取时间表指针MOV R0,THOURINC R0MOV R0,TMINUTEINC R0MOV TTAB,R0CJNE R0,#60H,SET1 ;判断时间表是否存满SEXIT:LCALL BBCLR F0RETBB:MOV R5,#40HLOOP3:MOV R6,#80HDJNZ R6,$CPL BUZZERDJNZ R5,LOOP3SETB BU
10、ZZERRETSPLIT:MOV R1,#DM ;显存首地址MOV A,R0 ;取分钟ANL A,#0F0H ;取分钟的个位MOV R1,A ;送显存INC R1 ;MOV A,R0 ANL A,#0F0H ;取分钟的个位SWAP AMOV R1,A ;送显存INC R1INC R0MOV A,R0 ;取小时ANL A,#0F0H ;取小时个位MOV R1,AINC R1MOV A,R0ANL A,#0F0HSWAP AMOV R1,A ;送显存RETDISP: PUSH 00 ;保护现场PUSH 01PUSH 02 PUSH 03PUSH ACCMOV R0,#DM ;显示缓冲区首地址MOV
11、 R2,#0EFHJNB F0,DISP0DJNZ B,DISP1CPL F0MOV B,#50SJMP DISP1DISP0:CLR F0DISP1:ORL DIS ,#0F0H ;关显示器MOV R3,#100DJNZ R3,$JB F0,HIDEMOV A,R2 ;取位控码ANL A,#0F0H ;屏蔽无关位 ORL A,R0MOV DIS ,AHIDE:MOV R3,#200DJNZ R3,$INC R0 ;指向下一位显存MOV A,R2 ;取字位码RL AMOV R2,AJB ACC.0,DISP1 ;判断显示器是否扫描一遍DEEIT:POP ACCPOP 03POP 02POP 0
12、1POP 00RET COMP:MOV R1,#20H ;时间表首地址COMP1:MOV A,R1 ;取时间表的小时CJNE A,HOUR,COMP5INC R1MOV A,R1CJNE A,MINUTE,COMP6MOV R5,#40MOV R4,#10MOV R6,#30MOV R7,#40COMP2:MOV R0,#MINUTELCALL SPLITLCALL DISP ;调用显示程序DJNZ R6,COMP2MOV R6,#30CPL BUZZERDJNZ R5,COMP2MOV R5,#40 ;响铃COMP3:MOV R0,#MINUTELCALL SPLITLCALL DISPDJ
13、NZ R4,COMP3MOV R4,#20CPL BUZZERDJNZ R7,COMP3MOV R7,#40COMP4:LCALL DISPMOV A,SECSJZ COMP4COMP5:INC R1COMP6:INC R1CJNE R1,#60H,COMP1RET CLEAR:MOV R0,#20H ;定时时间表首地址MOV A,#0FFHLOOP2:MOV R0,A ;清除定时时间表INC R0CJNE R0,#60H,LOOP2RET T0INT:PUSH ACC ;保护现场MOV TL0 ,#0B0H ;50ms定时MOV TH0,#3CHJB F0,LP2JNB SW1,VERM ;
14、判断校分按钮是否有效JNB SW2,VERH ;判断校时按钮是否有效LP2:INC MSMOV A,MS CJNE A,#3,LP3CLR LEDLP3:CJNE A,#20,T0EXIT ;判断一秒是否到SETB LEDMOV MS ,#0INC SECSMOV A,SECSCJNE A,#60,T0EXIT ;判断秒是否等于60MOV SECS,#0 ;秒清零MOV A,MINUTE ;分加1ADD A,#1 ;十进制调整DA AMOV MINUTE ,ACJNE A,#60,T0EXIT ;判断分是否等于60MOV MINUTE ,#0 ;分清零MOV A,HOUR ;时加1ADD A,
15、#1 ;十进制调整DA AMOV HOUR,ACJNE A,#24H ,T0EXITMOV HOUR ,#0T0EXIT:POP ACCRETi ;中断返回VERM:MOV A,MINUTE ;取分ADD A,#1 ;分加1DA AMOV MINUTE,A ;保存分CJNE A ,#60,VERM1MOV MINUTE,#0VERM1:MOV SECS ,#0POP ACCRETi ;中断返回VERH:MOV A,HOUR ;取时ADD A,#1DA AMOV HOUR,A ;保存时CJNE A ,#24,VERH1MOV HOUR ,#0VERH1:MOV SECS ,#0POP ACCRE
16、Ti ;中断返回END七、系统的功能分析与说明7.1设计步骤1. 理解设计任务要求(通过阅读有关资料及调查研究);2. 对总体方案进行分析、论证;3. 系统硬件电路的设计;4. 系统控制软件的设计;1) 以功能明确、相互界面能清晰分割的软件程序为基础,确定主程序流程框图;2) 以主程序流程框图为基础,确定各模块程序算法及实现的功能,进一步确定各模块程序流程框图;3) 根据软件流程框图,用AT89C51汇编语言编写主程序和延时子程序;4) 系统软、硬件的调试;5) 编写课程设计说明书;6) 答辩验收7.2设计内容1.该系统控制器有四位LED数码显示器,具有基本时钟及多点报时功能,可用于作为时间指
17、示及多点时间提醒。 2.时间校对 在任何时候均可通过按压校时和校分按钮进行显示时间调整。每按动一下校时按钮,小时自动加1;当小时指示为24时,再加1将自动清零。每按动一下校分按钮,分自动加1,当分钟指示59时,再按动校分按钮,分钟将变为00.3.设定定时时间需要设定报时时间的点时,应首先按设定按钮,然后再按动校时和校分按钮,是指示的时间与要求的时间一致,再按设定按钮保存。设定完毕,最后按结束按钮退出设定状态,返回正常的计时状态。八、总结1、在设计系统过程中,学会用Protel 画原理图和PCB图。通过查阅相关的书籍,设计了电路原理图,经过仿真和反复的修改电路中元器件的参数得到了可行的电路图。2
18、、接下来是最关键的步骤电路板的调试,软硬件相结合,开始将程序烧到硬件电路中,刚开始工作比较正常,达到了题目的要求,当程序运行几个循环后,发现开始出现错误。输出的波形比较紊乱,然后进行故障的排查,检查硬件和软件都没有问题,再进行一次调试还是不行,通过查阅CDD4511译码芯片的资料,发现问题的所在,自己将片选信号接到地上可能导致一直工作状态,出现程序紊乱的现象。 3、经过学习单片机接口实验这门课,使自己对单片机有了更深入的了解,提高了自己的动手能力。很感谢在整个课程学习中老师和师兄们的指导,以及同班同学的热心帮助。九、参考文献1 肖玲妮,袁增贵.Protel99SE.北京:清华大学出版社,200
19、3.2 江太辉.MCS-51系列单片机原理与应用M.广州:华南理工大学出版社,2002.3 何立民.单片机应用系统设计系统配置与接口技术M.北京:北京航空航天大学出版社,1999.4 Protel 99SE电子工程实践基础与典型范例 谈世哲 宋一兵.电子工业出版社,20085 房小翠.单片机实用系统设计技术M.北京:国防工业出版社,19936 刘守义.单片机应用技术M.西安:西安电子科技大学出版社,2002.7蔡明文 冯先成.单片机课程设计M.华中科技大学出版社.20078胡建等 单片机原理及接口技术实践教程M.机械工业出版社.20049 李光飞等.单片机课程设计实例指导M.北京:北京航空航天大学出版社,200410 潘永雄.新编单片机原理与应用M.西安:西安电子科技大学出版社,2003.