您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于stc51单片机的LCD1602显示时间的电子万年历(显示
武汉理工大学《单片机原理与应用》课程设计说明书11课设所需软件简介1.1KeiluVision4的简要介绍2009年2月发布KeilμVision4,KeilμVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。2011年3月ARM公司发布最新集成开发环境RealViewMDK开发工具中集成了最新版本的KeiluVision4,其编译器、调试工具实现与ARM器件的最完美匹配。KeilC51开发系统基本知识KeilC51开发系统基本知识1.系统概述KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍KeilC51开发系统各部分功能和使用。2.KeilC51单片机软件开发系统的整体结构C51工具包的整体结构,uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。武汉理工大学《单片机原理与应用》课程设计说明书2使用独立的Keil仿真器时,注意事项:*仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。*仿真器上的复位按钮只复位仿真芯片,不复位目标系统。*仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。优点:1.KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。2.与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。图1.1KEIL操作界面武汉理工大学《单片机原理与应用》课程设计说明书31.2STC-ISP的简要介绍STC-ISP是一款单片机下载编程烧录软件,是针对STC系列单片机而设计的,可下载STC89系列、12C2052系列和12C5410等系列的STC单片机,使用简便,现已被广泛使用。操作说明如下:(1)打开STC-ISP,如下图界面,在MCUType栏目下选中单片机,如STC89C52RC。图1.2ISP操作界面(2)根据您的9针数据线连接情况选中COM端口,波特率一般保持默认,如果遇到下载问题,可以适当下调一些。武汉理工大学《单片机原理与应用》课程设计说明书4(3)先确认硬件连接正确,点击“打开文件”并在对话框内找到您要下载的HEX文件。图1.3选择HEX文件(4)选择所要下载的文件,这样可以使您在每次编译KEIL时HEX代码能自动加载到STC-ISP,点击“Download/下载”。(5)手动按下电源开关便即可把可执行文件HEX写入到单片机内,如图是正在写入程序截图。(6)程序写入完毕,目标板开始运行程序结果。武汉理工大学《单片机原理与应用》课程设计说明书52方案分析与确定2.1方案思路分析由题目要求,根据设置的年份日的显示全年的年月公历、星期等信息。由于需要显示去年的日期以及星期等信息,普通的LED数码管显然已经不能胜任,为此,我们可以选择LCD1602液晶显示器完成课设要求。目前所具备的设备只有一块以STC89C52为内核的单片机,PC机。课设要求显示日期等信息,我们可以充分利用单片机上面集成的DS1302时钟芯片。该芯片可以产生年份,月份,日期,星期,时,分,秒的数据,因此,完全可以完成实验的各项要求。基于以上分析,我们可以利用DS1302产生的各种时钟数据,由CPU完成对数据的读取,然后通过CPU将数据写至LCD1602,以显示数据,达到可视化的效果。对于课程设计的拓展部分,我们可以利用单片机开发板上面集成的DS18B20温度传感器来测试周围环境的温度,同样通过LCD1602来显示。此外可以通过测试按键是否闭合来改变各种时间数据,已达到校准的目的。图2.1整体设计框架图CPULCD1602DS1302DS18B20武汉理工大学《单片机原理与应用》课程设计说明书62.2方案流程图根据以上分析,以及使用各种芯片的操作流程,我们可以大致确定课程设计的软件设计方案方案,其大致流程如下:图2.2设计流程图开始相关数字及字母数组设置相关引脚的特殊位定义完成与DS18B20,LCD1602,DS1302相关的子函数的编程完成与DS18B20,LCD1602,DS1302相关的初始化设置CPU读取DS18B20,DS1302的温度和时间数据CPU将数据送至LCD1602显示检测是否有时间校准按键按下重新设置时间,并写至进DS1302的寄存器武汉理工大学《单片机原理与应用》课程设计说明书73单元芯片电路的设置及总体设计3.1DS1302芯片引脚功能DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK为时钟输入端。下图为DS1302的引脚功能图:武汉理工大学《单片机原理与应用》课程设计说明书8图3.1DS1302引脚图管脚描述:X1X232.768KHz晶振管脚GND地RST复位脚I/O数据输入/输出引脚SCLK串行时钟Vcc1,Vcc2电源供电管脚此外,拓展中用到了DS18B20温度传感器,其使用与DS1302比较类似,因此这里不再赘述。武汉理工大学《单片机原理与应用》课程设计说明书93.2DS1302的使用方法使用DS1302时,要对其引脚和寄存器进行特殊设置,以实现所需功能。引脚设置后面会提及,这里不做说明,主要讲一下程序的编写。DS1302的的工作过程中包过读写一个字节数据等过程,下面做相应的解释。/********************************功能:往DS1302写入数据*********************************/voidW1302(ucharucAddr,ucharucDa){T_RST=0;T_CLK=0;T_RST=1;RTInputByte(ucAddr);/*地址,命令*/RTInputByte(ucDa);/*写1Byte数据*/T_CLK=1;T_RST=0;}/********************************功能:读取DS1302某地址的数据*********************************/ucharR1302(ucharucAddr){ucharucData;T_RST=0;T_CLK=0;T_RST=1;RTInputByte(ucAddr);/*地址,命令*/ucData=RTOutputByte();/*读1Byte数据*/T_CLK=1;武汉理工大学《单片机原理与应用》课程设计说明书10T_RST=0;return(ucData);}/***********************************功能:设置初始时间************************************/voidSet1302(uchar*pClock){uchari;ucharucAddr=0x80;EA=0;W1302(0x8e,0x00);/*控制命令,WP=0,写操作?*/for(i=7;i0;i--){W1302(ucAddr,*pClock);/*秒分时日月星期年*/pClock++;ucAddr+=2;}W1302(0x8e,0x80);/*控制命令,WP=1,写保护?*/EA=1;}/******************************功能:读取DS1302当前时间*******************************/voidGet1302(ucharucCurtime[]){uchari;ucharucAddr=0x81;EA=0;武汉理工大学《单片机原理与应用》课程设计说明书11for(i=0;i7;i++){ucCurtime[i]=R1302(ucAddr);/*格式为:秒分时日月星期年*/ucAddr+=2;}EA=1;}3.3LCD1602引脚功能1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形n1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。图3.2LCD1602引脚图1602采用标准的16脚接口,其中:第1脚:VSS为电源地第2脚:VDD接5V电源正极武汉理工大学《单片机原理与应用》课程设计说明书12第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端。第7~14脚:D0~D7为8位双向数据端。第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。3.4LCD1602的使用LCD1602的使用与前面的DS1302的使用有类似的地方,包括引脚的设置和对应的编程,引脚的
本文标题:基于stc51单片机的LCD1602显示时间的电子万年历(显示
链接地址:https://www.777doc.com/doc-69407 .html