单片机数字时钟课程设计论文.docx

上传人:罗晋 文档编号:11728736 上传时间:2021-09-01 格式:DOCX 页数:26 大小:646.47KB
返回 下载 相关 举报
单片机数字时钟课程设计论文.docx_第1页
第1页 / 共26页
单片机数字时钟课程设计论文.docx_第2页
第2页 / 共26页
单片机数字时钟课程设计论文.docx_第3页
第3页 / 共26页
单片机数字时钟课程设计论文.docx_第4页
第4页 / 共26页
单片机数字时钟课程设计论文.docx_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《单片机数字时钟课程设计论文.docx》由会员分享,可在线阅读,更多相关《单片机数字时钟课程设计论文.docx(26页珍藏版)》请在三一文库上搜索。

1、南多之孽UNIVERSITY OF SOUTH CHINA单片机原理及应用课程设计单片机多功能电子钟设计学院名称 指导教师 班 级 学 号 学生姓名20114450310陈彪电气工程学院汪普林电力三班2014年 月日南华大学电气工程学院课程设计(论文)单片机课程设计任务书1.课程设计的内容和要求(包括原始数据、技术要求、工作要求等):(1)设计内容利用单片机实现具有计时、校时等功能的数字时钟,是以单片机AT89c51为核心元件同时采 用LED数码管显示器动态显示“时”、“分”、“秒”的计时装置。显示的数据为12: 00: 00,然 后电路会自动开始计时。电路中有时、分、秒各自单独的调整按钮,时

2、间调整按钮每按一次,相应的 显示时间加lo实现时分秒和的调时功能。(2)设计要求硬件电路设计。根据设计任务选择合适的单片机,根据控制功能要求,设计各单元模块电路, 设计的单元电路必须有设计原理分析,器件的选择与作用,参数计算过程。编写程序。根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试 并打印程序清单。利用仿真器进行系统整体仿真调试、运行程序,并分析仿真结果。完成硬件电路的制作与调试。使用PROTEL绘制系统电路原理图。编写设计论文说明书。要求条理清楚,重点突出,结构合理。对电路有详细分析,所用芯片详细介绍, 并附有完整电路图(A3)及带有注释说明的完整的软件源程序清单,

3、格式符合设计 论文规范。第#页共25页南华大学电气工程学院课程设计(论文)2 .对课程设计成果的要求(包括图表(或实物)等硬件要求):设计电路与程序,安装调试或仿真,分析实验结果,并写出设计说明书, 语言流畅简洁,文字不得少于3500字。要求图纸布局合理,符合工程要求, 使用Altium Designer (Protel)软件绘出原理图(SCH),使用Proteus软 件平台仿真,器件的选择要有计算依据。3 .主要参考文献:1张洪润,易涛.单片机应用技术教程M.清华大学出版社.20062康华光.电子技术基础高等教育出版社.20003阎石.模拟电子技术基础M.华中科技大学出版社.20054刘乐善

4、.微型计算机接口技术及应用M.华中科技大学出版社.20055张毅刚.MCS-51单片机应用设计M.哈尔滨工业大学出版社.20054 .课程设计工作进度计划:序号起迄日期工作内容12014.8.25-2014.8.30分析设计任务,查阅相关资料,确定设计方案22014.8.31-2014.9.4完成硬件电路设计及调试32014.9.5-2014.9.10编写程序、录入程序、软件编译调试、仿真。42014.9.11-2014.9.16硬件电路制作与调试,编写设计论文说明书52014.9.17完成设计论文说明书,准备答辩62014.9.19提交设计成果,答辩主指导教师汪普林日期:2014年9月25日

5、摘要:本文为基于单片机的数字电子时钟的设计。单片机是集CPU、RAM、ROM、定 时器/计数器和多种接口于一体的微控制器。它体积小、成本低、功能强,广泛应 用于智能产品和工业自动化上。而51系列的单片机是各单片机中最为典型和最有 代表性的一种。,本次设计提出了系统总体设计方案,并设计了各部分硬件模块和 软件流程,在用C语言设计了具体软件程序后,将各个模块完全编译通过过后,结 果证明了该设计系统的可行性。通过运用所学的知识及查阅参考大量资料,按照课 程设计的基本要求完成了设计。随着科学技术的不断发展,人们对时间计量的精度 要求越来越高。数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显

6、示 器代替指针显示进而显示时间,减小了计时误差.这种表具有时、分、秒、显示时间 的功能,还可以进行时、分的校对。片选的灵活性好。传统的数字电子时钟采用 了较多的分立元器件,不仅占用了很大的空间而且利用率也比很低,随着系统设计 复杂度的不断提高,用传统时钟系统设计方法很难满足设计需求。该设计利用单片机的运算和控制功能,并采用系统化LED显示模块实时显示数 字的设计方案,适当地解决了实际生产和日常生活中对计时高精确度的要求,因此 该设计在现代社会中具有广泛的应用性。关键字:51单片机;电子时钟;数码管显示;C程序第9页共25页目录引言81 概述91 .1设计目的92 . 2设计要求92 设计流程图

7、103 电子原件介绍113. 1 AT89C51 介绍113. 1. 1AT89C51标准功能114. 1. 2AT89C51主要特性124电路设计134. 1数字时钟构成134. 2数字钟的工作原理134. 3各部分电路分析144. 3. 1显示模块144. 3. 2运算模块144. 3. 3校时模块145. 3.4电路仿真图145 软件设计175. 1 C语言在单片机中的应用175. 2程序设计18结束语19参考文献12附录一 C语言程序21附录二原理图27引言1957年,Ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础, 电子时钟开始迅速发展起来。现代的电子时钟是基于单片

8、机的一种计时工具,采用 延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟 进一,满六十分小时进一,满二十四小时小时清零。从而达到计时的功能,是人民 日常生活补课缺少的工具。现在高精度的计时工具大多数都使用了石英晶体振荡 器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好, 使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传 动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、 分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。1概论1.1 设计目的单片机以其功能强,体积小,功耗低,易开发等很多

9、优势被广泛应用。本 次数字时钟的设计就是需要通过选择合适的单片机来进行主控,再结合电路的知 识,同时在软件的设计过程中用到液晶显示驱动、模数转换程序及汉字库的的设计, 做到对我们所学数电、模电、单片机等知识的综合应用,最终实现所设计数字电子 秤的各项功能,达到“巩固知识,培养技能,学而用之”的实践目的。通过这次课 程设计,不但要提高我们在工作中的学习能力、探究能力、应用能力和动手能力, 还要历练我们不畏艰难、不懂便学、有漏必补的认真严谨的工作态度,强化我们的 社会适应力和社会竞争力,为走向社会提前试水,完善自我。1.2 设计要求设计应包括以下基本功能:(1)应用AT89c51单片机设计实现数字

10、时钟电路。(2)显示的数据为12: 00: 00,然后电路会自动开始计时。(3)电路中有时、分、秒各自单独的调整按钮,时间调整按钮每按一次,相应的显示时间加 lo(4)实现时分秒和的调时功能。(5)采用C语言编写程序并调试。南华大学电气工程学院课程设计(论文)第11页共25页图2设计流程图3电子元件介绍3.1 AT89C51 介刍高AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Progranmiable and Erasable Read Only Memoiy)的低电压,高性能、CMOS、8 位 单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,

11、与工业标准的 MCS-51指令集和输出管脚相兼容。AT89C51的管脚图如图3.1所示:CTXD) P3.1(INTO) P3.2iJNTl) P3.3(TO) P3.4(Tl) P3.5P3.6(RD) P3.7 3CTAL232)36_| P0.3 (AI吩P0.4 (AD4)35734_|P0.5 (AD习;AT89C5L33二 PQ,6 (AD6)y32PO.? (AD?)1031Iea/jp1130二| AL画廊?1229_| PSEN1328I P2.7 (A01427_| P2.6 (A14)1526二| P2.5 (AB)1625_| P2.4 (A12)1724二| P2.3

12、 (All)1823_| P2.2 (A10)1922二| P2.1 (A9)2021_| P2.0 (AS)0 1 2 3 4 5 67 r O图3AT89c51管脚图3.1.1 AT89C51标准功能4k字节FLASH闪速存储器,128字节内部RAM, 32个I/O 口线,2个16 位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器 及时钟电路。同时,AT89c51降至0Hz的静态逻辑操作,并支持两种可选的节电 工作模式。空闲方式体制CPU的工作,但允许RAM,定时/计数器,串行通信口 及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器体制工作并禁止其 他所有不

13、见工作直到下一个硬件复位。3.1.2 AT89C51主要特性1、与MCS-51兼容2、4K字节可编程闪烁存储器3、寿命:1000写/擦循环4、数据保留时间:10年5、全静态工作:0Hz-24Hz6、三级程序存储器锁定7、128*8 位内部 RAM8、32可编程I/O线9、两个16位定时器/计数器10、5个中断源11、可编程串行通道12、片内振荡器和时钟电路南华大学电气工程学院课程设计(论文)4电路设计4.1数字钟的构成数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路.由于计数的起始 时间不可能与标准时间一致,故需要在电路上加一个校时电路,同时标准的1HZ时 间信号必须做到准确稳定.通常

14、使用石英晶体振荡器电路构成数字钟.晶体振荡器电路晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保 证数字钟的走时准确及稳定.不管是指针式的电子钟还是数字显示的电子钟都使用 了晶体振荡器电路.分频器电路分频器电路将32768Hz的高频方波信号经32768()次分频后得到1Hz的方波信 号供秒计数器进行计数.分频器实际上也就是计数器.(3)时间计数器电路时间计数电路由秒个位和秒十位计数器,分个位和分十位计数器及时个位和时 十位计数器电路构成,其中秒个位和秒十位计数器,分个位和分十位计数器为60进 制计数器,而根据设计要求,时个位和时十位计数器为24进制计数器.译码驱动电路

15、译码驱动电路将计数器输出的8421BCD码转换为数码管需要的逻辑状态,并且 为保证数码管正常工作提供足够的工作电流.数码管数码管通常有发光二极管(LED)数码管和液晶(LCD)数码管,本设计提供的为 LED数码管.4. 2数字钟的工作原理设计原理主要利用AT89c51单片机,由单片机的p2 口控制数码管的位显示, P1 口控制数码管的段显示,P3.0一一p3. 2与按键相接用于时间校正。整个系统工作时,秒信号产生器是整个系统的时基信号,他直接决定计时系统的精 度,将标准信号送入计数器的时钟脉冲。分计数器也采用60进制计数器,每累计 60分钟,发出一个“分脉冲”信号,该信号将被送到时计数器。时计

16、数器采用24 进制计数器,可以实现对一天24小时的累计。显示电路将“时”“分”“秒”计 数器的输出,通过六个八段led显示器现出来。校时电路是直接加一个脉冲信号到 第13页共25页南华大学电气工程学院课程设计(论文)时计数器或者分计数器或者秒计数器来对“时”“分”“秒”显示数字进行校对调 整。4. 3各部分电路分析此实时时钟的设计与实现,主要采用了6只LED数码管,89c51内部二进制16位 定时器/计数器,可编程中断控制器89c51等芯片,包括显示模块,运算模块和校时 模块三大功能模块。4. 3.1显示模块用89c51控制,用数码管的显示功能来设计。显示部分硬件用六只LED为显示管, 这些L

17、ED发光二极管的阴极是互相连接在一起的,所以称为共阴极数码管。通过在 这8只发光二极管的阳极加+5 V或0 V的电压使不同的二极管发光,形成不同的数字。 该模块主要是将运算模块和校时模块运算出来并存放在内存单元里的十六进制表 示的时位、分位和秒位数值转化为十进制,并通过8只数码管显示出来。CPU直接往 LED输出八段代码,省去了硬件译码器。P1 口作为8段数据输出口,经74LS04驱动后 到达各LED。只要做到每送一次段选码时也送一次位扫描码,并且每送一次位扫描 码后,位码中的0右移一位作为下一次的位扫描码,即可实现由左向右使6只LED依 次出现数字显示。4. 3. 2运算模块该模块的主要功能

18、是对时、分、秒的运算,并把运算出的最终结果存到事先已 经开辟的内存单元里,以便显示模块即时地显示出来。该模块可以细分为秒定时模 块和运算模块。秒定时模块负责提供中断信号,由于CPU运算模块中的指令消耗一 定的时间,所以中断信号最好通过硬件来实现。本实验中用89c51定时器/计数器, 但因为89c51供的信号的周期是毫秒级的,因此必须通过软件的方法在运算模块中 设置一个统计中断次数的变量,并且这一变量必须事先在内存里开辟存储单元。中 断信号是89c51工作方式为方式1,产生一个50111s的脉冲信号。运算模块负责时、分、 秒的计算,该模块主要通过89c51的IR1号中断来实现,但由于每50nls

19、一次中断请求, 所以在中断服务程序必须利用已申请内存单元35H来统计中断请求的次数,只有当 35H的值为20时,才能让秒单元内的数值加1。在中断服务程序里,必须对秒、分和 时的单元内的数值进行判断,当秒加到60时,分必须加1、秒清零;当分加到60时,时加1、分清零。当时加到24时,直接清零。然后转到调用处。4. 3. 3校时模块该模块主要功能是修改时、分、秒内存单元的数值。每按一次键,对应的显示 值便加1。分、秒加到59后变为00;小时加到23后再按键即变为00.再调校时均不向 上一单位进位(例如分加到59后变为00;但小时不发生改变)。注意:在主程序中 对时间进行调校前应关闭中断,以防在调校

20、过程中定时中断服务程序也对时间进行 修改而造成混淆。4. 3.4电路仿真在6块LED数码管上能实现数字时钟的时、分、秒显示,并能对时、分、秒进行 加1校对、减1校对和清零。本实验中陪。P3.0键、P3. 1键、P3. 2键是分别对时、分、 秒的加1校对。并且开机时时钟时从120000开始计时的,到235959时在回到000000.第19页共25页.6加k ?ILLm L帛2 OVE oxluzn, oxlnnd 0XWH4RHs二 vkwo匕S3二口xMr 二,Hz- sns 号N* SWXTZ*R-W42 sis n圣 g ss 一0 口4 s43ux叶 C.名的图4. 3.4电路仿真图5软

21、件设计在单片机应用系统的开发中,软件的设计是最复杂和困难的,大部分情况下工 作量都较大,特别是对那些控制系统比较复杂的情况。如果是机电一体化的设计人 员,往往需要同时考虑单片机的软硬件资源分配。本系统的软件设计主要分为系统 初始化、按键、显示处理及信号频率输入处理。程序设计是一件复杂的工作,为了把复杂的工作条理化,就要有相应的步骤和 方法。其步骤可概括为以下三点:(1)分析系统控制要求,确定算法:对复杂的问题进行具体的分析,找出合 理的计算方法及适当的数据结构,从而确定编写程序的步骤。这是能否编制出高质 量程序的关键。(2)根据算法画流程图:画程序框图可以把算法和解题步骤逐步具体化,以 减少出

22、错的可能性。(3)编写程序:根据程序框图所表示的算法和步骤,选用适当的指令排列起 来,构成一个有机的整体,即程序。程序数据的一种理想方法是结构化程序设计方法。结构化程序设计是对利用到 的控制结构类程序做适当的限制,特别是限制转向语句(或指令)的使用,从而控制 了程序的复杂性,力求程序的上、下文顺序与执行流程保持一致性,使程序易读易 理解,减少逻辑错误和易于修改、调试。根据系统的控制任务,本系统的软件设计 主要由主程序、初始化程序、显示子程序、数据采集子程序和延时程序等组成。5.1 C语言在单片机中的应用c语言是一种通用的计算机程序设计语言,在国际上非常流行。它既可以用来 编写计算机的系统程序,

23、也可以用来编写一般的应用程序。以前计算机的系统软件 主要用汇编语言编写,单片机应用系统更是如此。c语言是当前最流行的程序设计 语言,它像其它高级语言一样,面向用户,面向解题的过程,编程者不必熟悉具体 的计算机内部结构和指令;c语言乂像汇编语言一样,可以对机器硬件进行操作。 如进行端口 I, 0操作、位操作、地址操作,并可内嵌汇编指令,将汇编指令当作 它的语句一样。我们知道,汇编语言将涉及计算机硬件,所以C语言乂像低级语言 一样,可以对计算机硬件进行控制,因此人们把它称为介于高级语言与低级语言之 间的一种中级语言。正是因为C语言具有这样的特性,所以很适合编写要对硬件进 行操作的软件程序。本文采用

24、c语言进行编写.因为此系统软件比较,其存储量较 大,因此必须应用C语言编程。5.2 程序设计结束语第三学期的单片机课程设计到目前为止可以说是告一段落了,我也顺利的完成 了自己的课题简易电子时钟的设计,由于自己一心准备考研在这次课程设计上除了 那些必要的时间其余也么有花太多的时间,本想着是做实物的,但在程序上出了点 问题就没花时间去做了,所以这次设计还不算很完美。刚开始被拿到这个课题的,感觉挺迷茫的,当时就只知道软件编程要用到定时 器,自己也就在这方面懂一点,其余的关于硬件电路,液晶显示电路的驱动的什么 都不知道,后来回来之后就看了一下51单片机课程设计那本书,自己还学过这门 专业可,加上在网上

25、找了一些资料对硬件电路的设计有了一定的了解。在大脑里面 有了一个大致的思路了,于是就把仿真软件装好开始了我的课设。本次课设让我对单片机有了更深入的认识,现代社会中几乎处处都有单片机的影 子,电子产品离不开它。课设提高了我的单片机实际运用能力,也发现了自己以前 学习的不扎实,对问题不求其解。现在才知道“书到用时方少”啊!学习还是得扎 实。本次课设能顺利完成,甚是感谢指导老师的帮助。南华大学电气工程学院课程设计(论文)附录一 C语言程序#include#define uchar unsigned char#define umt unsigned mtsbit rs=P3z3;sbit rw=P3

26、八 4;sbit lcden=P3A5;unsigned int a,b,c;uchar count,k;uchar slii.fenaiiiao;uchar code table口=12:00:00”; void delay(umt z) umt x,y;fbr(x=0;xz;x+)for(y=0;yH0;y+);)void w_com(uchai- com)rs=O;lcden=0;Pl=com;delay(5);lcden=l;给高脉冲delay(5);lcden=0;J* 写指令*/ void w_data(uchar date)rs=l;lcden=0;Pl=date;delay(5

27、);lcden=l;delay(5);lcden=0;J* 写数据*/J* 初始化函数*/ void w_sfin(uchar add,uchai date)时 分秒uchar slii.ge;shi=date/10;ge=date%10;w_com(0x80+add);w_data(0x30+slii);w_d a ta (0x3 0+ge);) void initQuchar num;lcden=0;初始化使能为0fen=00;nnao=00;shi=OO;w_com(0x3 0);写入显示模式指令码w_com(0x0c); 写入显示开/关及光标指令码w_com(0x06);当写一个字符后

28、,地址指针加一,光标加一,不动光标不闪烁w_com(0x01); /清零作w_com(0x00);代表第一位fdr(num=0;num8;num-H-) (w_data(tablenum);delay(5);)w_sfin(0,shi);w_sfin(3,fen);w_sfin(6,niiao);TMOD=0x01;TH0=(65536-50000)/256;/50 亳秒产生一次中断TL0=(65536-50000)%256;EA=1;ET0=l;TR0=l;void key()P2=0x0f;,a=P2; 先对P2置数 行扫描 if(P2!=0x0f) 判断是否有键按下 (delay(lOO

29、); 延时,软件去干扰 if(P2!=0x0f) 确认按键按下 (a=P2;P2=0x0f0;if(P2!=0x0f0) (b=P2; c=a&b; )elsec=P2;void keyscanQ(key();if(c=0x88)闪烁位置选择要调整的项目,左移 (k+;ik=l)/k键按一下依次向左移 (TR0=0;delay(lOO);w_com(0x80+0x07);w_com(0x0f); 左移光标开始闪烁1触=2)(delay(lOO);w_com(0x80+0x04);w_com(0x0f); 左移光标开始闪烁if(k=3)(delay(lOO);w_com(0x80+0x01);w

30、_com(0x0f);光标恢复原样,不闪烁if(k=4)第23页共25页南华大学电气工程学院课程设计(论文)fen-;if(fen=-l)fen=59;w_sfin(3,fen); w_com(0x80+0x04);)if(k=3)时降调节(shi-;shi=23;w_sfin(O,slii); w_com(0x80+0x01);)void mam()(rw=0;UUt();while(l)(keyscan();if(count=20)/20*50 亳秒=1000 亳秒=1 秒 (count=0;niiao+;if(niiao=60) (iniao=0:fen+;if(fen=60) (fen=O;shi+;if(slii=24) slu=0;w_sfin(O,shi);w_sfhi(3,fbn);w_sfin(6,miao);)void timer。iiitermpt 1TH0=(65536-50000)/256/50 亳秒产生一次中断TL0=(65536-50000)%256;count+;)第27页共25页附录二原理

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1