基于AT89S51D单片机的多功能电子万年历设计.doc_第1页
基于AT89S51D单片机的多功能电子万年历设计.doc_第2页
基于AT89S51D单片机的多功能电子万年历设计.doc_第3页
基于AT89S51D单片机的多功能电子万年历设计.doc_第4页
基于AT89S51D单片机的多功能电子万年历设计.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

单片机应用系统设计课 题: 基于AT89S51D单片机的多功能电子万年历设计 姓 名: 班 级: 学 号: 指导老师: 日 期: 基于AT89S51单片机的多功能电子万年历的设计目录:第一章 绪论 设计背景及意义第二章 系统总体方案设计 1、系统设计硬件框图 2、系统实现的基本原理第三章 硬件系统设计 1、选择元器件 2、硬件原理图第四章 软件系统设计 1、软件流程图 1.1主函数流程图 1.2LCD显示流程图 1.3DS1302流程图(徐辰) 2、系统的仿真调试2.1运行步骤2.2调试过程第五章 设计总结第六章 参考文献第七章 附录 1、源程序代码 1.1主函数源程序代码 1.2LCD显示源程序代码 1.3DS1302源程序代码(徐辰) 第一章 绪论设计背景及意义单片机原理及应用是一门技术性、应用性很强的学科,实践教学是它的一个极为重要的环节。不论是硬件扩展、接口应用还是编程方法、程序调试,都离不开实验教学。如果不在切实认真的抓好实践技能的锻炼上下功夫,单凭课堂理论课的学习,势必出现理论与实践脱节的局面。任凭书本上把单片机技术介绍的多么重要、多么使用,我们仍会感到那只是空中楼阁,离自己十分遥远。本次课程设计的目的就是让我们大家在理论学习的基础上,通过完成基于AT89S51单片机的多功能电子万年历的设计,熟悉单片机仿真软件PROTEUS的使用方法,了解AT89C51单片机的硬件系统,掌握LCD显示器LCD1602的工作原理和软硬件设计方法,为今后开发设计工作打下一定的基础。液晶显示器简称LCD显示器,它是利用液晶经过处理后能改变光线的传输方向的特性实现显示信息的。液晶显示器具有体积小、重量轻、功耗极低、显示内容丰富等特点,在单片机应用系统中得到了日益广泛的应用。液晶显示器按其功能可分为三类:笔段式液晶显示器、自负点阵式液晶显示器和图形点阵式液晶显示器。前两种可显示数字、字符和符号等,而图形点阵式液晶显示器还可以显示汉字和任意图形,达到图文并茂的效果。第二章 系统总体方案设计1、系统设计硬件框图2、系统实现的基本原理(1)市场上使用的1602液晶显示器以并行操作方式居多,但也有并、串口同时具有的。LCD1602每行显示16个字符,一共可以显示两行,第一行显示年、月、日,第二行显示时、分、秒,时间显示在1602液晶上,并且按秒实时更新(2)DS1302实时时钟通过串口接口与单片机进行通信,实时时钟日历电路提供秒、分、时、日、月、年的信息,内部含有31个细节静态RAM,可提供用户访问。(3)使用5个按键,随时调节年、月、日、时、分的大小(4)在主程序中调用其他子程序(包括LCD显示模块及DS1302的控制模块),以实现电子万年历的功能 (5 ) LCD字符显示的工作原理:一个字符由6*8或8*8这样的点阵组成,要正确显示,必须要找到和屏上某几个位置对应显示RAM区的8个字节,并且要使每个字节的不同的位为“1”,其他的位为“0”,为“1”的点亮,为“0”的点暗,通过明暗的变化显示某个字符。 (6)AT89C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。(7)Proteus(海神)的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。该软件的特点:具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS一232动态仿真、1 C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等支持大量的存储器和外围芯片。总之该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大 ,可仿真51、AVR、PIC。第三章 硬件系统设计1、选择元器件:单片机AT89S51,LCD显示屏,DS1302芯片,按键若干,电阻若干,电容器2、硬件原理图2-1:2-1硬件连接图第四章 软件系统设计1、设计原理启动DS1302,初始化芯片,设置初始时间,读出时间,存放在结构体SYSTEMTIME中,然后将时间转化为字符数组,送往LCD显示器。每隔1S读出时间,重复以上步骤。这样可以实现时钟的正常显示。也可以通过按下按钮对时间进行修改校正。2、软件流程图主函数流程图LCD显示流程图3、系统的仿真调试(1)安装并打开单片机仿真软件PROTEUS,选择需要的器件并连接电路(2)在KEIL环境中编译设计中需要的原程序,并生成.HEX文件(3)双击AT89C51器件,在打开的“EDIT COMPONENT”对话框中,在“PROGRAM FILE“一栏中将.HEX文件进行装载,界面如图3-1:3-1(4)点击运行按扭,观察仿真现象,则显示器显示情况如图4-1,且进入计时工作4-1显示模块(5)下图5-1中显示的五个按钮,从左至右分别代表分、时、日、月、年的设置,即点击相应的按钮,显示器上的相应位置的数字将会递增显示;5-1调节模块(6)点击下图6-1右边的按扭后,再进行第5步的操作,显示器上相应位置的数字将会递减显示。6-1选择模块第五章 设计总结通过本次课程设计-完成基于AT89S51单片机的多功能电子万年历的设计,可以让我们在学习理论知识的基础上,更进一步的了解单片机,认识单片机,运用单片机。(一)单片机属于控制类数字芯片,目前气应用领域非常广泛:1、 工业自动化控制2、 智能仪器仪表3、 计算机外部设备和智能接口4、 家用电器(二)以往的测控仪器的显示部分大都采用LED式液晶显示屏进行参数设置和结果显示,其显示信息量少、形式单一、人机交互性差、操作人员要求高,而本设计中运用的液晶显示器 (LCD)具有功耗低、体积小、可编程驱动等其他显示方式无法比拟的优点,不仅可以显示数字、字符还可以显示各种图形、曲线、汉字,并且课实现屏幕上下左右滚动、动画等功能,人机界面更加友好,操作也更加灵活方便,使其成为智能仪器仪表和测试设备的首选显示器件。(三)显示功能最完整的点阵图形液晶模块的液晶显示可以分为三种 1、线段的显示 2、字符的显示3、汉字的显示在设计过程中,我认识到自己对单片机方面的知识了解的太少太少了,对于书本上的很多知识还不能灵活运用,有很多需要掌握的知识等着我们去学习去研究;从理论到实践的转化就是实际操作的过程,只有动手动脑,主动请教,查询资料,团结合作,不断的发现问题,不断的解决问题,才能有所收获,才能有更多的体会和快乐;学习是个长久的过程,并不是一下子就能融会贯通的,要有坚持不懈的毅力,要有不怕困难的精神,在前期刚开始做的时候,面对着课本,面对着课程题目,我有点懵,不知道从哪里下手,在老师的指导帮助下,在小组成员的共同努力下,我由基础到深化,由简单到复杂,循序渐进的完成了基于AT89S51单片机的多功能电子万年历有关模块的设计!第六章 参考文献1 林志琦.基于Proteus的单片机可视化软硬件仿真M.北京:北京航空航天大学出版社,2006.92 周润景,张丽娜.基于PROTEUS的电路及单片机系统设计与仿真M.北京:北京航空航天大学出版社,2006.53谢维成 单片机原理与应用及C51程序设计M.北京:清华大学出版社4谭浩强 C语言程序设计M清华大学出版社第七章 附录源程序代码(1)主函数程序#include #include LCD1602.h#include DS1302.hsbit Y=P10;sbit M=P11;sbit D=P12;sbit H=P13;sbit F=P14;sbit J=P23;sbit S=P24;unsigned char qn=20;char s=1;void Delay1ms(unsigned int count) unsigned int i,j;for(i=0;icount;i+)for(j=0;j4)*10 + (x&0x0F); if(s=1)x=x+1; else x=x-1; x=(x/10)12)x=0; Write1302(DS1302_MONTH,x); if (D=0) x=Read1302(DS1302_DAY); x=(x&0x70)4)*10 + (x&0x0F); if(s=1)x=x+1; else x=x-1; y=Read1302(DS1302_MONTH); if(y=1|y=3|y=5|y=7|y=8|y=10|y=12)&x31)x=0; else if(y=4|y=6|y=9|y=11)&x30)x=0; else if(y=2&x29)x=0; x=(x/10)4)*10 + (x&0x0F); if(s=1)x=x+1; else x=x-1; if(x23)x=0; x=(x/10)4)*10 + (x&0x0F); if(s=1)x=x+1; else x=x-1; if(x59)x=0; x=(x/10)99)qn=20; main() SYSTEMTIME CurrentTime;LCD_Initial();Initial_DS1302();GotoXY(0,0);Print(Date: );GotoXY(0,1);Print(Time: );DS1302_SetTime(DS1302_SECOND,00); DS1302_SetTime(DS1302_MINUTE,00);DS1302_SetTime(DS1302_HOUR,00);DS1302_SetTime(DS1302_WEEK,00);DS1302_SetTime(DS1302_DAY,01);DS1302_SetTime(DS1302_MONTH,01); DS1302_SetTime(DS1302_YEAR,01);while(1) keyscan();DS1302_GetTime(&CurrentTime);YearToStr(&CurrentTime,qn);DateToStr(&CurrentTime);TimeToStr(&CurrentTime);GotoXY(6,0); Print(CurrentTime.YearString);Print(CurrentTime.DateString);GotoXY(7,1);Print(CurrentTime.TimeString);Delay1ms(300);(2)LCD显示程序:#ifndef LCD_CHAR_1602_2005_4_9#define LCD_CHAR_1602_2005_4_9#include sbit LcdRs= P20;sbit LcdRw= P21;sbit LcdEn = P22;sfr DBPort = 0x80;/P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口unsigned char LCD_Wait(void)LcdRs=0;LcdRw=1;_nop_();LcdEn=1;_nop_();while(DBPort&0x80); LcdEn=0;return DBPort;#define LCD_COMMAND0 / Command#define LCD_DATA1 / Data#define LCD_CLEAR_SCREEN0x01 / 清屏#define LCD_HOMING 0x02 / 光标返回原点void LCD_Write(bit style, unsigned char input)LcdEn=0;LcdRs=style;LcdRw=0;_nop_();DBPort=input;_nop_();/注意顺序LcdEn=1;_nop_();/注意顺序LcdEn=0;_nop_();LCD_Wait();#define LCD_SHOW0x04 /显示开#define LCD_HIDE0x00 /显示关 #define LCD_CURSOR0x02 /显示光标#define LCD_NO_CURSOR0x00 /无光标 #define LCD_FLASH0x01 /光标闪动#define LCD_NO_FLASH0x00 /光标不闪动void LCD_SetDisplay(unsigned char DisplayMode)LCD_Write(LCD_COMMAND, 0x08|DisplayMode);#define LCD_AC_UP0x02#define LCD_AC_DOWN0x00 /#define LCD_MOVE0x01 #define LCD_NO_MOVE0x00 void LCD_SetInput(unsigned char InputMode)LCD_Write(LCD_COMMAND, 0x04|InputMode);#define LCD_CURSOR0x02 #define LCD_SCREEN0x08#define LCD_LEFT0x00#define LCD_RIGHT0x04void LCD_Move(unsigned char object, unsigned char direction)if(object=LCD_CURSOR)LCD_Write(LCD_COMMAND,0x10|direction);if(object=LCD_SCRE

温馨提示

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

评论

0/150

提交评论