万历课程设计.doc
《万历课程设计.doc》由会员分享,可在线阅读,更多相关《万历课程设计.doc(56页珍藏版)》请在三一办公上搜索。
1、1 设计任务和方案1.1设计任务(一)设计题目:万年历(二)设计目的与任务:学生通过理论设计和实物制作解决相应的实际问题,巩固和运用在单片机技术中所学的理论知识和实验技能,掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。本次设计要能够显示年、月、日、时、分、秒、星期;其次,能对年、月、日、时、分、秒、星期进行修改。1.2功能要求说明这次项目共设定了十五个功能键,其中S1GN键至S8GN键分别进入相应的功能模块;S10GN键可以显示此日是否有节日,是什么节日;S11GN键对选中的时间变量进行减一;S12GN键对选中的时间变量进行加
2、一;S13GN键为退出键;S14GN键对所要修改的时间变量进行移位选择;S15GN键按下,即可对要修改的时间变量进行修改,同时在要修改的地方用游标显示;S16GN键为确认键。只有当修改键按下时才能对时间进行修改,当时间修改完成后,按下节日键即可显示此日是什么节日,再按下确认键即可以显示时间。1.3设计总体方案及工作原理说明1.3.1主控制器的选择与比较方案(1):采用CPLD作为主控制器, 由于CPLD具有强大的资源,使用方便灵活,易于进行功能扩展,特别是结合了EDA,可以达到很高的效率。此方案逻辑电路复杂,且灵活性不高,不利于各种功能的扩展。方案(2):基于AT89S52单片机来实现系统的控
3、制, 控制外围电路进行时钟显示,键盘控制和液晶显示,此系统控制灵活,能很好地满足本题的基本要求。由于本学期我们开设了单片机这门课程,并且我在暑假期间参加单片机培训时使用的也是AT89S52单片机这块芯片,因此对这块芯片还是比较了解,故在此采用这块芯片作为主控制器。1.3.2时钟方案的选择与比较方案(1):AT89S52单片机内部带有定时/计数功能,此定时功能是通过对外部晶振的脉冲进行计数,从而达到计时功能,只要使用11.0592的晶振就能实现零误差的计时,因此可以利用此功能实现计时,但因为只有单一的计时功能要实现“万年历”的功能需要较复杂的程序,而且如果单片机掉电无法继续进行计时,所以使用不便
4、。方案(2):DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。利用单片机强大的控制功能就可实现实时计时的功能,而且消耗的系统资源少,程序简单。综合上述两种方案,宜采用方案(2)实现实时计时功能。1.3.3按键模块方案的选择与比较方案(
5、1): 矩阵式键盘,行线的一端通过上拉电阻与单片机的P1口线的高四位相连,列线的一端也通过上拉电阻与单片机的P1口线低四位相连。矩阵式键盘结构性好,使用于按键较多时的情况。方案(2):独立式键盘, 每个按键的电路是独立的,都有单独一根数据线输出键的通断状态。单片机一条I / O口线对应一个按键。独立式键盘结构简单,易于编程,适用本实验按键较少的情况。由于这次设计中,使用的功能键比较多,若采用独立式键盘占有的I/O口比较多,所以在这里采用行列式键盘。1.3.4显示模块方案的选择与比较方案(1):采用液晶显示,液晶显示是一种被动式的显示器,即液晶本身并不发光,而是利用液晶经过处理后能改变光线通过的
6、特性,而达到白底黑字的目的。液晶显示功耗低,抗干扰能力强,显示信息丰富等特点。方案(2):数码管是利用发光二极管的特性组合而成数字显示器件,通过控制相应的二极管的状态显示相应的数字。要使数码管正常显示就得有驱动电路驱动相应的段码,数码管的现实方式可分为静态显示和动态显示,静态显示方式只适合显示单个的数字,因此本设计应采用动态显示方式。由于动态显示方式利用的是人眼视觉暂留的特性,扫描的时间应不大于20毫秒,占用系统资源大,而且显示的个数和字型有限,在本设计中不易采用。 由于此次要显示的内容比较多,故采用液晶作为显示界面。总体的设计原理图如图1.1所示图1.1 原理框图2 万年历的硬件系统的设计2
7、.1 硬件系统各模块功能简要介绍 该万年历主要由单片机最小系统、行列式键盘模块、液晶显示电路模块、DS1302时钟电路模块和LED指示灯电路模块组成。各模块的功能如下:(1)单片机最小系统由AT89S52单片机、时钟电路和复位电路构成。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。时钟电路由一个12MHz的石英晶体振荡器和两个33pF的的电容组成振荡电路和分频电路。复位电路采用上电复位和按键复位结合的方式对电路进行复位,主要是通过RST引脚送入单片机。单片机最小系统为整个电路的核心。(2)矩阵式键盘模块在键盘中按键数量较多时,为了减少I/O口的占
8、用,通常将按键排列成矩阵形式,如图1所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。 矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按
9、下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。(3)液晶显示电路模块这次使用的是12864液晶芯片,接在单片机P0口。通常所说的12864LCD显示块是所说的点阵液晶显示模块,就是由128*64个液晶显示点组成的一个128列*64行的阵列,所以也就叫成了12864。每个显示点都对应着有一位二进制数,0表示灭,1表示亮。存储这些点阵信息的RAM被称为显示数据存储器。如果要显示某个图形或汉字就是将相应的点阵信息写入到对应的存储单元中。图形或汉字的点阵信息是由自己设计,这时候问题的关键是显示点在液晶屏上的位置与其在存储器中的地址之间的关系。
10、显示点在64*64液晶屏上的位置由列号(line,063)与行号(line,063)确定。512*8 bits RAM中某个存储单元的地址由页地址(Xpage,07)和列地址(Yaddress,063)确定。每个存储单元存储8个液晶点的显示信息。(4)DS1302电路模块DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电
11、(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。各引脚的功能为:Vcc1:备用电池端;Vcc2:5V电源。当Vcc2Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2 Vcc1时,由Vcc1向DS1302供电。SCLK:串行时钟,输入; I/O:数据输入输出口;CE/RST:复位脚、X1、X2 是外接晶振脚 (32.768KHz的晶振)地(GND)图2.1DS1302引脚图(5)LED指示灯电路模块单片机P3.2口线上经过一个470的电阻与LED灯的阴极相连接,LED灯的阳极接正五伏电压。470的电阻起限流的作用。LED指示灯电路模块主要用来指
12、示用违规操作发生。2.2 电路原理图、PCB图和元器件布局图Protel原理图、PCB图以及元器件布局图分别见附录1附录2与附录3。 2.3 元器件清单 元器件清单见附录4。3 万年历软件系统的设计3.1 使用的单片机资源的情况万年历用到了单片机的定时器的功能,定时器1采用工作方式1并以中断方式工作;在数据的显示时采用的是查表的方法,因此需要将表格、数据存到单片机的程序存储器中去;用到了波特率发生器与DS1302相连本设计采用矩阵式键盘,键盘直接接在P1口上且按键的结果存贮在单片机的内部数据存储器里面。用到的液晶显示器接到了单片机的P0口线上和P3口线上。DS1302接在单片机P3口线上。 3
13、.2 各模块功能简要介绍 该抢答器所用的软件模块有定时器模块、按键模块、液晶显示模块、时钟芯片模块。(1)定时器模块选择定时器1,设置定时器定时方式为方式1以中断方式工作,设置定时时间为50mS。(2)按键模块采用矩阵式键盘,共用15个按键对电路进行控制和操作,分别为S1GN至S8GN来控制选择相应功能模块。S10GN显示相应的节日;S11GN、S12GN、分别对时间变量进行减与加法处理;S13GN退出键、S14GN为移动修改变量键、S15GN为修改键S16GN为退出键。(3)液晶显示模块液晶初始时显示1.万年历2.点阵屏3.频率计4.密码锁5.信号源6.电压表7.温度计8.计算器;进入万年历
14、界面后显示初始时间2008年2月19日12时20分10秒星期四。(3)时钟模块DS1302有自带的时间且比较精确。因此只要学会如何去读取,以及如何向其写入数据,即可利用其内部时钟。3.3 程序的流程框图(1)主程序流程框图如图3.1所示。图3.1 主程序流程框图(2)万年历功能流程框图 万年历流程框图如图3.2所示。图3.2 万年历功能流程框图(3)万年历修改函数程序流程框图万年历修改程序流程框图如图3.3所示。图3.3 修改函数程序流程框图(4)修改天数程序流程框图修改天数程序流程框图如图3.4所示。图3.4 修改天数程序流程框图(5)显示节日程序流程框图显示节日程序流程框图如图3.5所示。
15、图3.5 显示节日程序流程框图3.4程序清单见附录5。4 万年历设计结论、仿真结果和教学建议4.1 设计结论和使用说明(1)设计结论通过对单片机进行外接键盘和液晶显示器及DS1302时钟芯片的操作以及加上硬件电路和软件设计相结合,实现了对万年历的年、月、日、时、分、秒、星期的显示,并能人为的对年、月、日、时、分、秒、星期进行修改,同时还可以显示出相应的节日。但其上电时显示 湖南 工学院 , 自本0801 ,Made in China , 文 亮 ,闪烁三次后显示1.万年历2.点阵屏3.频率计4.密码锁5.信号源6.电压表7.温度计8.计算器;进入万年历界面后显示初始时间2008年2月19日12
16、时20分10秒星期四。4.2 仿真结果在仿真时用要两个软件,第一个是Keil,第二个是Proteus,本次仿真是将两个软件结合起来进行的。运用Keil软件用来编译和调试程序,运用Ptoteus软件来仿真。这次设计已在Keil中调试成功并运行无误,但在Ptoteus仿真软件中没有找到合适的仿真模型,因此没有仿真运行结果。但是在实物上运行结果完全正常无误,特此用手机将运行结果拍摄下来,如下图所示图4.1 万年历界面图图4.2 万年历初始时间图图4.3 节日显示结果图图4.4 节日显示结果图4.3设计体会本次我设计的万年历已经能够完成任务,达到了设计要求。这次设计的巧妙之处就在于我编写了许多函数,把
17、每一个功能分块做成一个一个的子函数,再去调用这些子函数,因此使读者很容易读懂,且为今后在做类似方面课程设计提供了方便之处。其次我编写的显示节日的功能也比较新颖,这个想法是我在网上查找如何将阳历转换为阴历时无意中发现的,这是在一份C语言的课程设计中看到这个想法的,我在结合自己对硬件的了解成功的实现了这一功能,觉得无比的欣慰。我所用的实物板子的电路虽然不是自己设计的,是在暑假培训时按照老师给我的原理图自己制作的PCB板,在暑期的两个月培训过程中我已经基本掌握了其硬件设计原理,并懂得了如何去使用这些功能模块,我的硬件设计与软件设计能力也得到了一定程度的提高。在这次课程设计中我本来还想加上闹铃功能,但
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 万历 课程设计
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-4146976.html