《大学毕设论文--电子时钟设计课程设计.doc》由会员分享,可在线阅读,更多相关《大学毕设论文--电子时钟设计课程设计.doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、湖南工程学院课 程 设 计课程名称 单片机原理与应用 课题名称 电子时钟设计 专 业 电气工程及其自动化 目录1.课题的设计要求、目的、意义2.系统总体方案选择与说明3.系统结构框图与工作原理4.各单元硬件设计说明及计算方法5.软件设计与说明(包括流程图)6.调试结果与必要的调试说明7.使用说明8.程序清单9.总结10.参考文献一、 课题设计要求、目的、意义要求实现功能:1)开机时,显示00:00:00的时间开始计时;2)要求有秒,分,时的调节。3)具有复位功能。目的:熟悉单片机编程的基本操作流程,熟悉单片机芯片,强化单片机语言编写,能够使用单片机与硬件相结合并进行仿真和实操模拟。意义:通过编
2、写一个简单的电子闹钟,使同学对单片机有更深入的了解。熟悉单片机的操作流程,清楚单片机的作用。二、 系统总体方案选择与说明用定时计数器T0,工作于定时,采用方式1,对12MHZ的系统时钟进行定时计数,初值设为XXYY(自己计算)。形成定时时间为50ms。用片内RAM的7BH单元对50ms计数,计20次产生秒计数器7BH单元加1,秒计数器加到60则分计数器79H单元加1,分计数器加到60则时计数器7AH单元加1,时计数器加到24则时计数器清0。然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。显示格式为小时十位、小时个位-分十位、分个位-秒十位、秒个位。在处理过程
3、中加上了按键判断程序,能对按键处理。三、 系统结构框图和工作原理系统结构框图:微型控制器时钟电路声光报时校时输入数据显示本次设计时钟电路,使用了AT89C51单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用开关键来调整时钟的时、分、秒,同时使用汇编语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:键盘、芯片、LED显示即可满足设计要求。四、 各单元硬件设计说明及计算方法AT89C51单片机内部主要包括累加器ACC(有时也简称为A)、程序状态字PSW、地址指示器DPTR、只读存储器ROM、随机存取存储器RAM、寄存器、并行I/O接口P0P3、定
4、时器/计数器、串行I/O接口以及定时控制逻辑电路等。这些部件通过内部总线联接起来,构成一个完整的微型计算机。其管脚图如图所示。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程 序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作 输入,P1口被外部下拉为低电平时,将输出电
5、流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻 拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存 储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器 的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口作为AT89C
6、51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE 端
7、以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器 时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储(0000H-FFFFH),
8、不管是否有内部程序存储器。注意加密方式1时, /EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。晶振电路:本设计晶振电路采用12M的晶振。晶振的作用是给单片机正常工作提供稳定的时钟信号。单片机的晶振并不是只能用12M,只要不超过20M就行,在准许的范围内,晶振越大,单片机运行越快,还有用12M的就是好算时间,因为一个机器周期为1/12时钟周期,所以这样用12M的话,一个时钟周期为12us,那么定时器计一次数就是1us了,电容范围在20-40pF之间,这里连接的是30pF的电容。机器周期=10*晶振周期=12
9、*系统时钟周期控制电路:P1.0为控制秒钟开关,P1.2为控制分钟开关,P1.3为控制时钟开关。74LS245引脚图及用法:74LS245还具有双向三态功能,既可以输出,也可以输入数据。 当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。 当片选端/CE低电平有效时,DIR=“0”,信号由 B 向 A 传输;(接收) *DIR=“1”,信号由 A 向 B 传输;(发送)当/CE为高电平时,A、B均为高阻态。五、 软件设计与说明(包括流程图)根据上述电子时钟的工作流程,软件设计可分为以下几个功能模块:(1) 主程序模块。主程序主要用于系统初始化:设
10、置计时缓冲区的位置及初值,设置定时器的工作方式和计数初值等参数。主程序流程如下图所示。开始定义堆栈区 T0、数据缓冲区、标志位初始化调用键盘扫描程序 否是C/R键? 是 地址指针指向计时缓冲区 调用时间设置程序 主程序流程图(2)计时模块。即定时器0中断子程序,完成刷新计时缓冲区的功能。系统使用6MHz的晶振,假设定时器0工作在方式1,则定时器的最大定时时间为65.536ms,这个值远远小于1s。因此本系统采用定时器与软件循环相结合的定时方法。设定时器0工作在方式1,每隔50ms溢出中断一次,则循环中断20次延时时间是1s,上述过程重复60次为1分,分计时60次为1小时,小时计时24次则时间重
11、新回到00:00:00。因定时器0工作在方式1,则50ms定时对应的定时器初值为:6553650ms/2us=40536=9E58H,即TH0=9EH,TH0=58H。但应当指出:CPU从响应T0中断到完成定时器初值重装这段时间,定时器T0并不停止工作,而是继续计数。因此,为了确保T0能准确定时50ms,重装的定时器初值必须加以修正,修正的定时器初值必须考虑到从原定时器初值中扣除计数器多计的脉冲个数。由于定时器计数脉冲的周期恰好和机器周期吻合,因此修正量等于CPU从响应中断到重装完TL0为止所用的机器周期数。CPU响应中断通常要38个机器周期。经过测试,定时器0重装的计数初值设为9E5FH9E
12、67H,可以满足精度要求。另外,MCS-51单片机只有二进制加法指令,而时间是按十进制递增,因此用加法指令后必须进行二-十进制转换。计时模块流程图如下图所示。保护现场重装定时器初值循环次数减1否满20次?是秒单元加1否60s到?是秒单元清0,分单元加1否60分到?是分单元清0,时单元加1否24小时到?是时单元清0恢复现场返回计时模块流程图六、 调试结果与必要的调试说明调试的最后结果,按下3个开关键分别控制时分秒的逐次增加。在调试的过程中,一般会遇到很多不同的错误。我觉得好的方法是在编程的时候将不同的功能的程序区分开来,这样可以在发现那个功能发生错误或故障的时候能够快速的找到功能所对应的程序所处
13、的地方。七、 使用说明本项设计的电子时钟,具备普通时钟的基本功能即能够显示时,分,秒。秒钟每60分钟进1,分钟每60时钟进1。并具备调时功能,其中K1调节秒钟,K2调节分钟(从0开始调),K3调节时钟。八、 程序清单S_SETBITP1.0;数字钟秒控制位M_SETBITP1.1;分钟控制位H_SETBITP1.2;小时控制位SECONDEQU30HMINUTEEQU31HHOUREQU32HTCNTEQU34HORG00HSJMPSTARTORG0BHLJMPINT_T0START:MOVDPTR,#TABLEMOVHOUR,#0;初始化MOVMINUTE,#0MOVSECOND,#0MOV
14、TCNT,#0MOVTMOD,#01HMOVTH0,#(65536-50000)/256;定时50毫秒MOVTL0,#(65536-50000)MOD 256MOVIE,#82HSETBTR0;*;判断是否有控制键按下,是哪一个键按下A1:LCALLDISPLAYJNBS_SET,S1JNBM_SET,S2JNBH_SET,S3LJMPA1S1:LCALLDELAY ;去抖动JBS_SET,A1INCSECOND ;秒值加1MOVA,SECONDCJNEA,#60,J0; 判断是否加到60秒MOVSECOND,#0LJMPK1S2:LCALLDELAYJBM_SET,A1 K1:INCMINU
15、TE ;分钟值加1MOVA,MINUTECJNEA,#60,J1 ;判断是否加到60分MOVMINUTE,#0LJMPK2S3:LCALLDELAYJBH_SET,A1K2:INCHOUR ;小时值加1MOVA,HOURCJNEA,#24,J2 ;判断是否加到24小时MOVHOUR,#0MOVMINUTE,#0MOVSECOND,#0LJMPA1;*;等待按键抬起J0:JBS_SET,A1LCALLDISPLAYSJMPJ0J1:JBM_SET,A1LCALLDISPLAYSJMPJ1J2:JBH_SET,A1LCALLDISPLAYSJMPJ2;*;定时器中断服务程序,对秒,分钟和小时的计数
16、INT_T0:MOVTH0,#(65536-50000)/256MOVTL0,#(65536-50000)MOD 256INCTCNTMOVA,TCNTCJNEA,#20,RETUNE;计时1秒INCSECONDMOVTCNT,#0MOVA,SECONDCJNEA,#60,RETUNEINCMINUTEMOVSECOND,#0MOVA,MINUTECJNEA,#60,RETUNEINCHOURMOVMINUTE,#0MOVA,HOURCJNEA,#24,RETUNEMOVHOUR,#0MOVMINUTE,#0MOVSECOND,#0MOVTCNT,#0RETUNE:RETI;*;显示控制子程序
17、DISPLAY:MOVA,SECOND ;显示秒MOVB,#10DIVABCLRP3.6MOVCA,A+DPTRMOVP0,ALCALLDELAYSETBP3.6MOVA,BCLRP3.7MOVCA,A+DPTRMOVP0,ALCALLDELAYSETBP3.7CLRP3.5MOVP0,#40H ;显示分隔符LCALLDELAYSETBP3.5MOVA,MINUTE ;显示分钟MOVB,#10DIVABCLRP3.3MOVCA,A+DPTRMOVP0,ALCALLDELAYSETBP3.3MOVA,BCLRP3.4MOVCA,A+DPTRMOVP0,ALCALLDELAYSETBP3.4CLR
18、P3.2MOVP0,#40H ;显示分隔符LCALLDELAYSETBP3.2 MOVA,HOUR ;显示小时MOVB,#10DIVABCLRP3.0MOVCA,A+DPTRMOVP0,ALCALLDELAYSETBP3.0MOVA,BCLRP3.1MOVCA,A+DPTRMOVP0,ALCALLDELAYSETBP3.1RETTABLE: DB 3FH,06H,5BH,4FH,66HDB6DH,7DH,07H,7FH,6FHDELAY:MOVR6,#10D1:MOVR7,#250DJNZR7,$DJNZR6,D1RET END九、 总结 这一次为期两个星期的单片机课程设计让我收益匪浅。它锻炼
19、了我独立思考,自我学习的能力。同时它还磨练了我的耐心,让我不狂妄自大,能够静下心来安安静静学东西,这样使我将课堂上学到的东西得以运用。 这一次我分配到的课程设计任务是电子时钟。最开始一看,我觉得这个题目应该会很简单,因为它的功能比较少。有一句话真的没错,叫说来容易做来难,开始做了之后,我发现虽然功能简单,但是碰到了各种困难,加上基础不牢,常常碰壁。最开始我就困在了计时功能。后来在查阅了多本教材才得以实现。然后一直纠结于复位,一直未能实现。 这次的课程设计告诉我,只有将理论和实践相结合才是真正的学到了知识。碰到不懂的问题要学会多自行查阅相关资料,提高自学能力。同时做事需要耐心,不能碰到一点困难就
20、退缩。十、 参考文献1付家才单片机控制工程实践技术.北京:化学工业出版社,20042孙育才,王荣兴,孙化芳.新型AT89S52系列单片机及其应用.北京:清华大学出版社,203王迎旭 单片机原理与应用 机械工业出版社设计内容与设计要求设计内容:本课题以单片机为核心,利用其定时器和6位数码管,设计一个电子时钟。要求有以下功能:1、 开机时,显示00:00:00的时间开始计时;2、 要求有秒,分,时的调节。3、 具有复位功能。设计要求:1)确定系统设计方案; 2)进行系统的硬件设计;3)完成必要的参数计算与元器件选择;4)完成应用程序设计;5)进行单元电路及应用程序的调试;6)写出使用说明书参 考
21、文 献1付家才单片机控制工程实践技术.北京:化学工业出版社,20042孙育才,王荣兴,孙化芳.新型AT89S52系列单片机及其应用.北京:清华大学出版社,20 电气信息学院课程设计评分表项 目评 价优良中及格差设计方案合理性与创造性(10%)开发板焊接及其调试完成情况*(10%)硬件设计或软件编程完成情况(20%)硬件测试或软件调试结果*(10%)设计说明书质量(20%)答辩情况(10%)完成任务情况(10%)独立工作能力(10%)出勤情况(10%)综 合 评 分 指导教师签名:_ 日 期:_ 注:表中标*号项目是硬件制作或软件编程类课题必填内容; 此表装订在课程设计说明书的最后一页。课程设计说明书装订顺序:封面、任务书、目录、正文、评分表、附件(非16K大小的图纸及程序清单)。 24