嵌入式系统课程设计-电子万年历_第1页
嵌入式系统课程设计-电子万年历_第2页
嵌入式系统课程设计-电子万年历_第3页
嵌入式系统课程设计-电子万年历_第4页
嵌入式系统课程设计-电子万年历_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、嵌入式系统课程设计报告题目:电子万年历 院 系:工学院电气与电子工程系专 业:电子信息工程 班 级:电子工程1301 姓 名: 学 号: 指导教师: 烟台南山学院教务处二一五年五月题目电子万年历摘 要随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分和秒等信息,还具有时间校准等功能。该电路采用AT89C1单片机作为核心,功耗小,能在3V的低压工作,电压可选用35V电压供电。 综上所述此万年历具有读取方便、显示直

2、观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。本设计是基于51系列的单片机进行的电子万年历设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。在硬件与软件设计时,没有良好的基础知识和实践经验会受到很大限制,每项功能实现时需要那种硬件,程序该如何编写,算法如何实现等,没有一定的基础就不可能很好的实现。关键词: LCD1602液晶显示器、AT89C51单片机、时钟万年历英文摘要ABSTRACTWith the rapid development of science and te

3、chnology, the passage of time, from the view of the sun, the pendulum to the present electronic clock, humans continue to research, innovation record. It can be the year, month, day, Sunday, when, minutes and seconds for time, but also has a leap year compensation and other functions. For the digita

4、l electronic calendar using visual digital display, can display year, month, day, Sunday, hours, minutes, and seconds information, also has the time calibration and other functions. The circuit uses AT89C1 microcontroller as the core, power consumption is small, can be in the 3V of the low voltage,

5、voltage can choose 35V voltage power supply.To sum up the calendar is easy to read, intuitive display, multiple functions, simple circuit, low cost, etc. many other advantages, in line with the development trend of electronic instruments, and has broad market prospects.The design is based on 51 seri

6、es single-chip design of electronic calendar, you can display the date when the minutes and seconds and weeks, with adjustable date and time functions. At the same time, the design of SCM theory and peripheral expansion of knowledge of the overall preparation. In the design of hardware and software,

7、 there is no good basic knowledge and practical experience will be greatly limited, each function to achieve the kind of hardware, how to write the program, how to achieve the algorithm, etc., without a certain foundation can not be very good.Key words: LCD1602 liquid crystal display, microcontrolle

8、r, AT89C51 clock calendar目录TOC o 1-3 h u HYPERLINK l _Toc437263129 第1章 绪论 PAGEREF _Toc437263129 h 1 HYPERLINK l _Toc437263130 1.1 项目的设计背景以及意义 PAGEREF _Toc437263130 h 1 HYPERLINK l _Toc437263131 1.2 设计的研究目的 PAGEREF _Toc437263131 h 1 HYPERLINK l _Toc437263132 1.3 设计的内容以及要求 PAGEREF _Toc437263132 h 2 HY

9、PERLINK l _Toc437263133 1.3.1 设计内容 PAGEREF _Toc437263133 h 2 HYPERLINK l _Toc437263134 要求 PAGEREF _Toc437263134 h 2 HYPERLINK l _Toc437263135 第2章 设计方案的比较 PAGEREF _Toc437263135 h 3 HYPERLINK l _Toc437263136 2.1 显示部分的方案比较 PAGEREF _Toc437263136 h 3 HYPERLINK l _Toc437263137 2.2 闹钟的方案比较 PAGEREF _Toc4372

10、63137 h 3 HYPERLINK l _Toc437263138 2.3 控制器部分方案比较 PAGEREF _Toc437263138 h 3 HYPERLINK l _Toc437263139 2.4 按键部分方案比较 PAGEREF _Toc437263139 h 4 HYPERLINK l _Toc437263140 第3章 硬件电路的设计 PAGEREF _Toc437263140 h 6 HYPERLINK l _Toc437263141 3.1 电路设计框图 PAGEREF _Toc437263141 h 6 HYPERLINK l _Toc437263142 3.2 系统

11、硬件概述 PAGEREF _Toc437263142 h 6 HYPERLINK l _Toc437263143 3.2.1 AT89C51单片机 PAGEREF _Toc437263143 h 6 HYPERLINK l _Toc437263144 3.2.2 LCD1602简介 PAGEREF _Toc437263144 h 7 HYPERLINK l _Toc437263145 第四章 软件的设计 PAGEREF _Toc437263145 h 9 HYPERLINK l _Toc437263146 4.1 程序方框图 PAGEREF _Toc437263146 h 9 HYPERLIN

12、K l _Toc437263147 4.2 程序设计 PAGEREF _Toc437263147 h 10 HYPERLINK l _Toc437263148 4.2.1 操作指引 PAGEREF _Toc437263148 h 10 HYPERLINK l _Toc437263149 4.2.2 程序测试 PAGEREF _Toc437263149 h 10 HYPERLINK l _Toc437263150 第五章 系统调试 PAGEREF _Toc437263150 h 11 HYPERLINK l _Toc437263151 5.1 Proteus ISIS简介 PAGEREF _To

13、c437263151 h 11 HYPERLINK l _Toc437263152 5.2 Proteus ISIS调试 PAGEREF _Toc437263152 h 11 HYPERLINK l _Toc437263153 结论 PAGEREF _Toc437263153 h 14 HYPERLINK l _Toc437263154 致谢 PAGEREF _Toc437263154 h 14 HYPERLINK l _Toc437263155 参考文献 PAGEREF _Toc437263155 h 15 HYPERLINK l _Toc437263156 参考文献 PAGEREF _To

14、c437263156 h 15 HYPERLINK l _Toc437263157 附录A PAGEREF _Toc437263157 h 16 HYPERLINK l _Toc437263158 附录B PAGEREF _Toc437263158 h 17第1章 绪论1.1 项目的设计背景以及意义电子万年历是实现对年,月,日,时,分,秒数字显示的计时装置,广泛用于个人家庭,车站, 码头,办公室,银行大厅等场所,成为人们日常生活中的必需品。数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度远远超过老式钟表。钟表的数字化给人们生产生活带来了极大的方便,在此基础上完成的万年历精度高,功

15、能易于扩展。可扩展成为诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等电路。所有这些,都是以钟表数字化为基础的。因此,研究数字时钟及扩大其应用有着非常现实的意义。本设计就是数字时钟简单的扩展应用。1.2 设计的研究目的二十一世纪是数字化技术高速发展的时代,而单片机在数字化高速发展的时代扮演着极为重要的角色。电子万年历的开发与研究在信息化时代的今天亦是当务之急,因为它应用在学校、机关、企业、部队等单位礼堂、训练场地、教学室、公共场地等场合,可以说遍及人们生活的每一个角落。由于社会对信息交换不断提高的要求及高新技术的

16、逐步发展,促使电子万年历发展并且投入市场得到广泛应用。1.3 设计的内容以及要求1.3.1 设计内容(1)在Proteus仿真软件上画出万年历电子钟的仿真原理图; (2)用C51编写代码,实现一个数字钟的基本功能;(3)采用Keil和Proteus联合调试代码,查看仿真结果 要求(1)画出仿真原理图。(2)准确计数,以数字形式在LCD上显示年、月、日、星期、时、分、秒的时间。小时计时要求为“24翻1”,分和秒的计时要求为60进位;(3)具备校时功能,可利用时、分、秒可以独立校对,校时时计数停止;(4)2月份具有润年功能。(5)具有闹钟功能。(6)程序可以在Proteus仿真硬件上和自己焊接的电

17、路上正常运行;第2章 设计方案的比较2.1 显示部分的方案比较方案一:采用8段数码管虽经济实惠,但操作比液晶显示来说略显繁琐。方案二:液晶显示方式。液晶显示效果出众,可以运用菜单项来方便操作,比较简单,所以,最后选择液晶显示方案。2.2 闹钟的方案比较方案一:采用蜂鸣器在实验面板上是很好的选择。方案二:采用LED的亮灭来代替闹钟的响与不响,很直观,简洁,所以在Protuse仿真软件中仿真采用这种方式比较好。2.3 控制器部分方案比较方案一:可采用ALTERA公司的FLEX10K系列PLD器件。设计起来结构清晰,各个模块,从硬件上设计起来相对简单,控制与显示的模块间的连接也会比较方便。但是考虑到

18、本设计的特点,EDA在功能扩展上比较受局限,而且EDA占用的资源也相对多一些。从成本上来讲,用可编程逻辑器件来设计也没有什么优势。方案二:硬件控制电路主要用了AT89C51芯片处理器、LCD显示器等。根据各自芯片的功能互相连接成电子万年历的控制电路。软件控制程序主要有主控程序、电子万年历的时间控制程序、时间显示及星期显示程序等组成。主控程序中对整个程序进行控制,进行了初始化程序及计数器、还有键盘功能程序、以及显示程序等工作,时间控制程序是电子万年历中比较重要的部分。时间控制程序体现了年、月、日、时、分、秒及星期的计算方法。时间控制程序主要是定时器0计时中断程序每隔50ms中断一次当作一个计数,

19、每中断一次则计数加1,当计数20次时,则表示1秒到了,秒变量加1,同理再判断是否1分钟到了,再判断是否1小时到了,再判断是否1天到了,再判断是否1月到了,再判断是否1年到了,若计数到了则相关变量清除0。2.4 按键部分方案比较方案一:采用4位独立按键即可。本设计总的用了四个按扭开关作为键盘,其中第四个是闹钟键,二三个分别是对操作时间的加和减,第一是切换年、月、日及时、分、秒的显示状态并在所切换的显示状态下配合加减两个键调整时间。第3章 硬件电路的设计3.1 电路设计框图LCD液晶显示屏显示模块AT89C51主控制模 块键盘模块 LED闹钟模块图1系统原理图 系统硬件概述3.2.1 AT89C5

20、1单片机通过AT89C51单片机中的定时器对电子时钟的年月日时分秒以及闹钟进行操作。MCS-51系列单片机主要是指Intel公司生产的以51位内核的单片机芯片,具有8位CPU、4K字节ROM、128字节RAM、可扩展外部64K字节RAM和ROM、2个16位的定时器/计数器、4个8位并行I/O口、1个全双工串行I/O口、21字节的专用寄存器、5个中断源、片内自带振荡器、片内单总线等功能部件。时间控制程序体现了年、月、日、时、分、秒及星期的计算方法。时间控制程序主要是定时器0计时中断程序每隔10ms中断一次当作一个计数,每中断一次则计数加1,当计数100次时,则表示1秒到了,秒变量加1,同理再判断

21、是否1分钟到了,再判断是否1小时到了,再判断是否1天到了,再判断是否1月到了,再判断是否1年到了,若计数到了则相关变量清除0。先给出一般年份的每月天数。如果是闰年,第二个月天数不为28天,而是29天。再用公式sv1 +(y1/4(y1/100+(y1/400+ d计算当前显示日期是星期几,当调节日期时,星期自动的调整过来。闰年的判断规则为,如果该年份是4或100的整数倍或者是400的整数倍,则为闰年;否则为非闰年。在我们的这个设计中由于只涉及100年范围内,所以判断是否闰年就只需要用该年份除4来判断就行了。3.2.2 LCD1602简介图11 LCM1602 LCM1602采用标准的16脚接口

22、,其中: 第1脚:VSS为地电源 第2脚:VDD接5V正电源 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度 第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RSRW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可读忙信号,当RS为高电平RW为低电平时可以写入数据.第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第714脚:D0D7为8位双向数据线。

23、第1516脚:空脚 第四章 软件的设计4.1 程序方框图开始定时器、LCD1602初始化设定初始时间、上电显示初始日时分秒星期判断那个按键按下是是否有按键按下否正常显示时间调整时间程序方框图4.2 程序设计4.2.1 操作指引Key1按下可以对年月日时分秒及星期分别选中,在LCD1602第一行第十六个字符上显示当前显示时间的位置;Key2可以对选中时间进行加运算;Key3可以对当前选中时间进行减运算;Key4是对闹钟操作按键。当调整闹钟时按下,可以对闹钟的时间进行调整,当闹钟响起,按下改键时则关闭闹钟,且第二行第十六个字符为可以对当前操作进行位指示。4.2.2 程序测试电子成年历是多功能的数字

24、型,可以看当前日期,时间。电子成年历功能很多,所以对于它的程序也较为复杂,所以在编写程序和调试时出现了相对较多的问题。最后经过多次的模块子程序的修改,一步一步的完成,最终解决了软件。各部分必须吻合得非常严密,有很强的逻辑性。主要问题主要分布在以下几部分:时间更新函数部分:最初在更新时间函数上主要是放在秒后面,但发现如果这样的话,在按键对其时间调整的时候,部分调整时间不能正常更新,主要是更新的时间不协调,所以又在按键部分加上了对该按键调整时间的更新函数。这部分得到了很好的解决。再一个队星期的更新函数,个人觉得这部分还是有相当的难度的,需要对时间进行运算,不止是在时间正常显示还是在按键按下调整时间

25、后,星期都需要正常准确跟着改变的年月日进行更新。解决办法就是具体把每一年的各月份准确计算为天数,利用对年月日的调整全转化为对天的调整,并且把瑞年也考虑进去。ALARM CLOCK部分:这部分主要是要在正常时间的基础上重新显示闹钟时间,需要重新定义变量和时间更新函数即可很好解决。按键部分:主要是新加了按键调整时的时间位指示更新函数,增加这部分的主要考虑是为了更好的指引此时选中调整的时间是年月日还是时分秒。第五章 系统调试5.1 Proteus ISIS简介Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE

26、)各种模拟器件和集成电路。该软件的特点是:(1)全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。(2)具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2 C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。(3)目前支持的单片机类型有:ARM7系列、68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。(4)支持大量的存储器和外围芯片。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能

27、极其强大 ,可仿真ARM、51、AVR、PIC。5.2 Proteus ISIS调试Proteus ISIS启动画面正常显示年:减加闹钟初值时:减加Proteus ISIS仿真调试成功画面结论最初在更新时间函数上主要是放在秒后面,但发现如果这样的话,在按键对其时间调整的时候,部分调整时间不能正常更新,主要是更新的时间不协调,所以又在按键部分加上了对该按键调整时间的更新函数。这部分得到了很好的解决。再一个队星期的更新函数,个人觉得这部分还是有相当的难度的,需要对时间进行运算,不止是在时间正常显示还是在按键按下调整时间后,星期都需要正常准确跟着改变的年月日进行更新。解决办法就是具体把每一年的各月份

28、准确计算为天数,利用对年月日的调整全转化为对天的调整,并且把瑞年也考虑进去。闹钟部分主要是要在正常时间的基础上重新显示闹钟时间,需要重新定义变量和时间更新函数即可很好解决。按键部分主要是新加了按键调整时的时间位指示更新函数,增加这部分的主要考虑是为了更好的指引此时选中调整的时间是年月日还是时分秒。制作这次课程设计一切都是从零开始,从最简单的画流程图起步,这次课程设计可以圆满完成,跟单片机课程里面的课外作业是离不开的。这次课程设计从开始到制作成功前后超过了一个星期。当电子万年历可以成功实现时,那种激动和喜悦只有自己可以体会。在整个设计过程中,充分发挥人的主观能动性,自主学习,学到了许多没学到的知

29、识。较好的完成了设计,达到了预期的目的,完了最初的设想。对电路的设计、布局要先有一个好的构思,才显得电路板美观、大方。程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考,和同学讨论,理清了思路,反而得心应手。在此次设计中,知道了做凡事要有一颗平常的心,不要想着走捷径,一步一脚印。也练就了我的耐心,做什么事都在有耐心。此次课程设计中学到了很多很多东西,这是最重要的。总之,此次课设使我的能力得到了全方位的提高,使得我的操作能力和专业技能都有了很大的提高。致谢参考文献参考文献1刘勇 编 数字电路 电子工业出版社 20042陈正振 编 电子电路设计与制作 广西交通职业技术学院信息工程

30、系 20073杨子文 编 单片机原理及应用 西安电子科技大学出版社 20064王法能 编 单片机原理及应用 科学出版社 20045 余锡存,曹国华.单片机原理及接口技术M.西安电子科技大学出版社,2004年6 张志良, 主编 :单片机原理及控制技术(第2版)北京:机械工业出版社,20057 余永权, MCS-51系列单片机实用接口技术M.北京:北京航空航天大学出版,1993附录A电路原理图:附录B程序:#include #define uint unsigned int /预定义一下 #define uchar unsigned char sbit rs=P20; /1602的数据/指令选择控

31、制线 sbit rw=P21; /1602的读写控制线 sbit en=P22; /1602的使能控制线sbit key1=P10; /选择年月日时分秒sbit key2=P13; /对年月日时分秒加sbit key3=P16; /对年月日时分秒减sbit key4=P17; /设定闹钟sbit ALARM=P26;bit flagk4; char Ahour=0,Amin=0,Asec=3,Ak=0,xq;/闹钟时间初值设定long int d,x,s,add;char b;uchar code buf116=2015-12-28/XQ1/ ; uchar code buf216= welc

32、ome - ;uchar code wk7=1234567;unsigned int year,c;unsigned char year1=20,year2=15,month=12,day=28; /year1为年高两位year2为年后两位 char hour=23,min=59,sec=58;unsigned char cnt; /cnt1是为了使选中调整时间项闪烁unsigned char pinnian=31,28,31,30,31,30,31,30,30,31,30,31;unsigned char runnian=31,29,31,30,31,30,31,30,30,31,30,31

33、;uchar flagk1,flagk2,flagk3,k1;/*1602液晶显示部分*/void delay(uint z) /延时函数 uint x,y; for(x=z;x0;x-) for(y=122;y0;y-); void lcd_wcom(uchar com) /1602写命令函数 rs=0; /选择指令寄存器 rw=0; /选择写 P0=com; /把命令字送入P2 delay(5); /延时一小会儿,让1602准备接收数据 en=1; /使能线电平变化,命令送入1602的8位数据口 en=0; void lcd_wdat(uchar dat) /1602写数据函数 rs=1;

34、 /选择数据寄存器 rw=0;en=0; /选择写 P0=dat; /把要显示的数据送入P2 delay(5); /延时一小会儿,让1602准备接收数据 en=1; /使能线电平变化,数据送入1602的8位数据口 en=0; void lcd_init() /1602初始化函数 lcd_wcom(0 x38); /8位数据,双列,5*7字形 lcd_wcom(0 x0c); /开启显示屏,关光标,光标不闪烁 lcd_wcom(0 x06); /显示地址递增,即写一个数据后,显示位置右移一位 lcd_wcom(0 x01); /清屏 void lcd_play() uchar n,m=0; /液

35、晶初始化 lcd_wcom(0 x80); /显示地址设为80H(即00H,)上排第一位 for(m=0;m16;m+) /将buf1中的数据依次写入1602显示 lcd_wdat(buf1m); delay(1); /延时 lcd_wcom(0 x80+0 x40); /重新设定显示地址为,即下排第1位 for(n=0;n2)if (year%100=0) if (year%400=0) c=c+1;else if (year%4=0) c=c+1;add=(year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400+c;b=add%7;lcd_wcom

36、(0 x80+13);lcd_wdat(wkb);/加0 x30是为了把数字转化为对应字符/*定时器计时显示部分*/void T0_init() /定时器定时50msTMOD=0 x01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;/*按键部分*/void delayms(uchar x)uchar i;while(x-)for(i=0;i=runnianmonth-1)day=1;else if(day=pinnianmonth-1)day=1;break;case 4:hour+;if(hour=24)hour=

37、0;break;case 5:min+;if(min=60)min=0;break;case 6:sec+;if(sec=60)sec=0;break;t_date(6,sec);t_date(3,min);t_date(0,hour);wk_date(8,day);wk_date(5,month);wk_date(2,year2);wk_date(0,year1);xq_date(); if(key3=0)delayms(40);if(key3=0)if(flagk4!=0) switch(Ak)case 1:Ahour-;if(Ahour=-1)Ahour=23;break;t_date(

38、16,S);case 2:Amin-;if(Amin=-1)Amin=59;break;case 3:Asec-;if(Asec=-1)Asec=59;break;t_date(6,Asec);t_date(3,Amin);t_date(0,Ahour);while(key3=0);elseswitch(k1)case 1:year2-;if(year2=0)year2=99;year1-;if(year1=0)year1=99;break; case 2:month-;if(month=0)month=12;break;case 3:day-;if(year%400=0|(year%4=0)&(year%100=0) if(day=0)day=runnianmonth-1; else if(day=0)day=pinn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论