《C5单片机电子台历的设计与制作课件.ppt》由会员分享,可在线阅读,更多相关《C5单片机电子台历的设计与制作课件.ppt(65页珍藏版)》请在三一办公上搜索。
1、电子台历的设计与制作,第一部分 实际应用,电子台历广泛用于单位、会议、电子精品(礼品)屋、赠送朋友、赠送亲人的物品。摆放于办公桌、书桌、或者车上,给人们的生活带来极大的便捷。,第二部分 项目成果展示,电子台历的设计与制作,1任务设计并制作一个电子台历。2要求(1)使用LCD1602显示。(2)使用DS1302实现获取时间。(3)支持定时闹铃。,第三部分 基本功能设计,系统具体功能如下。时间、日期显示:系统时间采用24小时制。正常情况下,系统显示当前的时间、日期、星期,显示格式为:第一行显示“年-月-日 星期”,第二行是“时:分:秒”。闹铃功能:当系统时间与用户设定闹铃时间一致时,闹铃报警。报警
2、时有声、光提示,时间为1分钟。报警过程中,可按任意键取消报警。设置功能:用户可对系统的时间、日期及闹铃时间进行设置。设计时为使用方便,可考虑单独设计设置时间、日期、星期、闹钟设置、数据增、减、信息设置确认、退出等键。,第三部分 基本功能设计,根据以上功能分析,电子台历结构如图所示,由单片机最小系统、按键模块、显示模块、闹铃模块、时钟模块等组成。,知识要点:,(1)单片机最小系统;(已学)(2)按键扩展与使用;(已学)(3)蜂鸣器扩展;(已学)(4)DS1302的使用介绍;(5)液晶显示器使用介绍;,第四部分 知识补充,一、DS1302的使用介绍 DS1302 是 DALLAS(达拉斯)公司推出
3、的涓流充电时钟芯片,内含有一个实时时钟/日历和 31字节静态 RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,还包括每月的天数和闰年自动校正功能。时钟运行可以采用 24小时制 或带AM/PM 12制。DS1302 采用三线接口与单片机进行同步串行的方式通信。,1.DS1302的性能特性,实时时钟(RTC)计秒、分、时、日期、月、星期和年,并且带闰年,有效补偿到2100年。31字节、电池备份的、非易失性(NV)RAM来存储数据。串行I/O使得引脚数量最少。宽范围工作电压,2.05.5V。在2.0V时,功耗小于300nA。在时钟/RAM中读/写
4、连续地址的方式为脉冲串式。8引脚DIP或可选的8引脚SOIC用于表面安装。简单的3线接口。TTL兼容(Vcc5V)。图7-3 DS1302的引脚图可选工业级温度范围:40+85。,2.DS1302的引脚介绍,X1、X2是32.768KHz晶振的引脚;VCC2是电源供电引脚,VCC1是3V纽扣电池的供电引脚;SCLK为与单片机串行通信的时钟引脚;I/O 为与单片机传送数据的引脚;RST是DS1302的复位引脚,低电平有效。,3.典型用法,uP为单片机,晶振为32.768KHz,4.DS1302的内部日历/时钟寄存器,DS1302内部日历/时钟寄存器,如图所示。图中左侧为命令寄存器,依次为秒、分、
5、时、日、月、星期、年、控制、涓流充电控制、时钟多字节十个读写命令,右侧为相应的日历/时钟数据寄存器,以BCD码形式存储。,4.DS1302的内部日历/时钟寄存器,4.DS1302的内部日历/时钟寄存器,秒命令寄存器:当对秒寄存器进行写操作时,其值为80h;当对秒寄存器进行读操作时,其值为81h。右上角的秒寄存器的秒值是用BCD码表示的,其中“CH”表示时钟停止位,为0振荡器工作允许,为1振荡器停止;“10秒”表示秒十位的BCD码;“秒”代表个位的BCD码。时钟/日历多字节读写命令:在读取或修改时钟/日历信息时,只需一次选通,就可以连续操作,读命令为BFh,写命令为BEh。其余命令均为单字节操作
6、,每个时间或日历信息修改时需要单独选通。,4.DS1302的内部日历/时钟寄存器,小时数据寄存器的第7位为12/24小时标志,值为1 时是12小时模式,值为0时是24小时模式,第5位表示AM/PM定义,A/P=1下午模式,A/P=0上午模式。控制寄存器中WP为写保护位,为0时,寄存器数据写入使能;为l时,寄存器数据写入禁止。涓流寄存器中TCS表示涓流充电选择,DS表示二极管选择位,RS表示电阻选择位。TCS=1010能使涓流充电,TCS等于其他禁止涓流充电;DS=01选择一个二极管,DS=10选择两个二极管,DS=00或11,充电功能也被禁止;RS=00,未接电阻,RS=01,接2k电阻,RS
7、=10,接4k电阻,RS=11,接8k电阻。,5.DS1302的操作时序,对DS1302进行读/写操作时,必须遵循先写命令再读(写)数据的基本原则。要对DS1302进行读/写命令/数据操作,必须遵循其操作时序。,5.DS1302的操作时序,图中I/O的阴影部分信号不稳定。无阴影部分信号稳定,数据有效。写操作时,在SCLK的上升沿必须保证数据有效。在写命令时序中(WRITE COMMAND BYTE),tCC表示从完成复位到写第一位数据建立的时间,要求大于1S;tDC表示建立有效数据位的时间,要求大于50nS(其实由于时间非常短,可以不考虑,只需在编写程序时先送数据再拉高SCLK即可);tCDH
8、表示有效数据保持的时间;tCL表示低电平保持的时间,必须在这段时间建立好下一位要发送的数据,要求大于250nS;WRITE DATA为写数据,与写命令方法一致,但要注意:RST为低电平时,所有传送数据被终止,I/O引脚为高阻;上电后,RST变为高电平时,SCLK必须保持逻辑低电平。,5.DS1302的操作时序,函 数 名:RTInputByte()功 能:实时时钟写入一字节 说 明:往DS1302写入1Byte数据(内部函数)入口参数:d 写入的数据 返 回 值:无 void RTInputByte(unsigned char d)unsigned char i;for(i=8;i0;i-)T
9、_IO=d,5.DS1302的操作时序,5.DS1302的操作时序,DS1302的数据读取是先写后读,即先写命令,后读数据。当第8位读命令的SCLK下降沿后延时tCDD(最多200nS)后,第一位数据被DS1302输出,单片机可在此时读取,随后SCLK变为高电平,保持时间为tCCZ,必须大于70nS,以保证DS1302将下一位数据准备好。由于是单字节命令,所以每一字节数据读完后,应拉低 70nS(tCDZ)以上时间。,5.DS1302的操作时序,函 数 名:RTOutputByte()功 能:实时时钟读取一字节 说 明:从DS1302读取1Byte数据(内部函数)入口参数:无 返 回 值:AC
10、Cunsigned char RTOutputByte(void)unsigned char i,data;for(i=8;i0;i-)data=data 1;if(T_IO)data=|0 x80;T_CLK=1;T_CLK=0;return(data);,5.DS1302的操作时序,为了使用更加灵活,通常调用以上的写程序和读时程序,组合成一个带写地址和读/写数据的程序,具体如下。void Write1302(unsigned char ucAddr,unsigned char ucDa)T_RST=0;T_CLK=0;T_RST=1;RTInputByte(ucAddr);/地址,命令 c
11、lk 1-0 RTInputByte(ucDa);/写1Byte数据 T_CLK=1;T_RST=0;,5.DS1302的操作时序,unsigned char Read1302(unsigned char ucAddr)unsigned char ucData;T_RST=0;T_CLK=0;T_RST=1;RTInputByte(ucAddr);/地址,命令 ucData=RTOutputByte();/读1Byte数据 T_CLK=1;T_RST=0;return(ucData);,5.DS1302的操作时序,DS1302时钟/日历芯片在使用的过程中,往往需要初始化时钟/日历信息,结合上两
12、段程序,具体程序编写如下。/*函 数 名:Set1302()功 能:设置初始时间 说 明:先写地址,后读命令/数据(寄存器多字节方式)调 用:Write1302()入口参数:pClock:设置时钟数据地址 格式为:秒 分 时 日 月 星期 年 7Byte(BCD码)1B 1B 1B 1B 1B 1B 1B 返 回 值:无*/,5.DS1302的操作时序,void Set1302(unsigned char*pClock)unsigned char i;unsigned char ucAddr=0 x80;/初始化首地址 Write1302(0 x8e,0 x00);/控制命令,WP=0,写操作
13、 for(i=7;i0;i-)Write1302(ucAddr,*pClock);/秒 分 时 日 月 星期 年 pClock+;ucAddr+=2;Write1302(0 x8e,0 x80);/控制命令,WP=1,写保护,二、液晶显示器的使用,液晶显示器的显像原理,是将液晶置于两片导电玻璃之间,靠两个电极间电场的驱动,引起液晶分子扭曲向列的电场效应,以控制光源透射或遮蔽功能,在电源关开之间产生明暗而将影像显示出来。液晶显示器件中的每个显示像素都可以被电场控制,不同的显示像素按照驱动信号的“指挥”在显示屏上合成出各种字符、数字及图形。液晶显示驱动器的功能就是建立这样的电场。,1.液晶显示器的
14、说明,液晶显示器件是一种高新技术的基础元器件,虽然其应用已经很广泛了,但对很多人来说,使用、装配时仍感到困难。特别是点阵型液晶显示器件,使用者感到更是无从下手,特殊的连接方式和所需的专用设备也非人人了解和具备,所以一般液晶显示器件是将液晶显示器件与控制、驱动集成电路装在一起,形成一个功能部件。市场上供应的液晶显示模块主要有以下几种。,2.液晶显示器分类,(1)数显液晶模块数显液晶是一种由段型液晶显示器件与专用的集成电路组装成一体的功能部件,只能显示数字和一些标识符号。(2)液晶点阵字符模块液晶点阵字符是由点阵字符液晶显示器件和专用的行、列驱动器、控制器,以及必要的连接件、结构件装配而成的,可以
15、显示数字和西文字符。(3)液晶点阵图形模块液晶点阵图形模块也是点阵模块的一种,其特点是点阵像素连续排列,行和列在排布中均没有空格。因此可以显示连续、完整的图形。由于它也是有X-Y矩阵像素构成的,所以除显示图形外,也可以显示字符。下面以字符型液晶显示模块为例介绍其原理与应用。,3.字符型液晶显示模块,字符型液晶显示模块是一类专用于显示字母、数字和符号等的点阵型液晶显示模块,接口格式统一、比较通用,无论显示屏的尺寸如何,它的操作指令及其形成的模块接口信号定义都是兼容的。这类液晶显示器的型号通常为XXX1602、XXX1604、XXX2002和XXX2004等。对于XXX1602,其中XXX为商标名
16、称;16代表液晶每行可显示16个字符;02表示共有两行,即这种显示器可同时显示32个字符。,RT-1602C采用标准的16脚接口,各引脚情况如下:,第1脚:VSS,电源地第2脚:VDD,+5V电源第3脚:V0,液晶显示偏压信号,一般加电位器调整第4脚:RS,数据/命令选择端,高电平时选择数据寄存器、低电平时选择指令寄存器。,3.1.1字符型液晶显示模块RT-1602C的外观与引脚,3.1 1602液晶模块,第5脚:R/W,读/写选择端,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为
17、低电平时可以写入数据。第6脚:E,端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7,为8位双向数据线。第15脚:BLA,背光源正极第16脚:BLK,背光源负极,控制器采用HD44780,驱动器采用HD44100。HD44780是集控制器,驱动器于一体,专用于字符显示控制驱动集成电路。HD44100是作扩展显示字符位的。HD44780是字符型液晶显示控制器的代表电路。HD44780集成电路的特点:1)可选择57或510点字符。2)HD44780不仅作为控制器而且还具有驱动4016点阵液晶像素的能力,并且HD44780的驱动能力可通过外接驱动器扩展360列驱动。,3
18、.1.2内部部件1)显示缓冲器DDRAM,与显示位置一一对应,2)用户自定义CGRAM,可写入用户定义的8(4)个汉字3)内部CGRAM 存储160个字符,采用ASCII编码,供用户使用,3.1.3 指令格式与指令功能,LCD控制器HD44780内有多个寄存器,通过RS和R/W引脚共同决定选择哪一个寄存器(操作方式),选择情况如表,1)清屏指令格式:01,功能:清除屏幕,将显示缓冲区DDRAM的内容全部写入空格(ASCII20H)显示空白。光标复位,回到显示器的左上角。地址计数器AC清零。,2)光标复位命令(归位),格式:02功能:光标回到原点,功能:设定当写入一个字节后,光标的移动方向以及后
19、面的内容是否移动。I/D=l:数据读写操作后,AC自动增1;(光标移动)I/D=0:数据读写操作后,AC自动减l;S=1:当数据写入DDRAM,显示将全部左移(I/D=1)或全部右移(I/D=0),此时光标未动,仅仅是显示内容移动,但从DDRAM中读取数据时,显示不移动;S0:显示不移动,光标移右(I/D=1)或左移(I/D=0)。,3)输入方式设置格式:,4)显示开关控制命令,功能:D 控制显示的开关:当D=1时显示,D=0时不显示。C 控制光标开关:当C=1时光标显示,C=0时光标不显示。B 控制字符是否闪烁:当B=1时字符闪烁,B=0时字符不闪烁。,5)光标画面移位置命令格式:,功能:移
20、动光标或整个显示字幕移位。S/C=0、R/L0,光标左移一个字符位,AC自动减1;S/C=0、R/L=1,光标右移一个字符位,AC自动加1;S/C=1、R/L=0,光标和画面一起左移一个字符位;S/C=1、R/L1,光标和画面一起右移一个字符位。,6)功能设置命令,功能:设置数据位数,当DL=1时数据位为8位,DL=0时数据位为4位。设置显示行数,当N=1时双行显示,N=0时单行显示。设置字形大小,当F=1时510点阵,F=0时为57点阵。,7)设置字库CGRAM地址命令,功能:设置用户自定义CGRAM的地址,对用户自定义CGRAM访问时,要先设定CGRAM的地址,地址范畴063。,8)显示缓
21、冲区DDRAM地址设置命令,功能:设置当前显示缓冲区DDRAM的地址,对DDRAM访问时,要先设定DDRAM的地址,地址范畴0127。,9)读忙标志及地址计数器AC命令,功能:读忙标志及地址计数器AC,当BF=1时则表示忙,这时不能接收命令和数据;BF=0时表示不忙。低7位为读出的AC的地址,值为0-127。,10)写DDRAM或CGRAM命令,功能:向DDRAM或CGRAM当前位置中写入数据。对DDRAM或CGRAM写入数据之前须设定DDRAM或CGRAM的地址。,11)读DDRAM或CGRAM命令格式:,功能:从DDRAM或CGRAM当前位置中读邮数据。当DDRAM或CGRAM读出数据时,
22、先须设定DDRAM或CGRAM的地址。,3.1.4 LCD显示器的初始化,LCD使用之前须对它进行初始化,初始化可通过复位完成,也可在复位后完成,初始化过程如下:1)清屏。2)功能设置。3)开/关显示设置。4)输入方式设置。,3.1.4 LCD显示器的初始化,具体初始化过程如下:延时15ms写指令38H(不检测忙信号)延时5ms写指令38H(不检测忙信号)延时5ms写指令38H(不检测忙信号)以后每次写指令、读/写数据操作之前均需检测忙信号写指令38H:显示模式设置写指令08H:显示关闭写指令01H:显示清屏写指令08H:显示光标移动设置写指令0CH:显示开及光标设置,3.1.5 单片机与16
23、02液晶显示模块接口电路设计,1)直接访问方式直接访问方式是单片机把字符型液晶显示模块当做存储器或I/O设备直接挂接在单片机的总线上。该模式下,控制信号由单片机的读操作信号、写操作信号和地址信号组成。直接访问的接口电路,如图所示。字符型液晶显示模块的总线与8031的数据总线相连;E信号由和信号逻辑与非后产生,由高位地址组成的片选信号做选通控制,非选通状态下E为逻辑0;RS由低位地址线A0产生;R/W由地址线A1提供。由此可确定液晶显示模块的读/写操作地址。,3.1.6 单片机与1602液晶显示模块接口电路设计,2)间接控制方式 间接控制方式是单片机把字符型液晶显示模块作为终端与单片机的并行口连
24、接,单片机通过对该并行接口的操作间接地实现对显示模块的控制。如图所示间接控制方式下的接口电路。图中使用了P1和P3口,P1口直接和液晶显示模块总线相连,P3则分别与液晶显示模块的RS、R/W和E控制线相连,用软件实现液晶显示模块的时序控制。,3.1.6 1602液晶显示模块的时序,1602液晶读/写操作是由使能信号E完成的,不操作时E为低电平,操作时产生一个正脉冲。读操作时,E信号为高电平,控制器将所需数据送入数据总线上,供单片机读取;在写操作时,E信号的下降沿处将数据总线上的数据写入控制器接口部的寄存器内。读/写操作的识别由R/W信号决定,R/W=1为读操作,R/W=0为写操作。RS是数据/
25、命令代码选择信号,RS=1选择数据寄存器,RS=0选择命令寄存器或标志位。,1)1602读,unsigned char ReadDataLCM(void)LCM_RS=1;LCM_RW=1;LCM_E=0;LCM_E=0;LCM_E=1;return(LCM_Data);,2)1602写数据,void WriteDataLCM(unsigned char WDLCM)ReadStatusLCM();/检测忙LCM_Data=WDLCM;LCM_RS=1;LCM_RW=0;LCM_E=0;/若晶振速度太高可以在这后加小的延时LCM_E=0;/延时LCM_E=1;,3)1602写命令,void W
26、riteCommandLCM(unsigned char WCLCM,BuysC)/BuysC为0忽略忙检测if(BuysC)ReadStatusLCM();/根据需要检测忙LCM_Data=WCLCM;LCM_RS=0;LCM_RW=0;LCM_E=0;LCM_E=0;LCM_E=1;,根据项目要求和相关器件的典型用法,系统设计电路,如图所示,电路中:P3.4扩展蜂鸣器和发光二极管实现声光报警功能。P3.0、P3.1和P2.7扩展日历芯片DS1302,获取时间和日期信息。P1口和P3.2、P3.3、P3.6扩展液晶LCD1602,实现时间和日期显示及闹铃设置显示。P2.0P2.6扩展按键实现
27、闹铃设定和时间、日期设定。,3.6 硬件电路设计,3.6 硬件电路设计,系统板上硬件连线和硬件调试,在实验板上按如图所示电路原理图搭建实物电路。做通电前检测:用万用表检测是否有短路和断路情况、线路连接是否正确。确认无误后,接入5V工作电源,带上防静电腕套触摸系统中的电子器件,检查是否有过热的现象,若有,断电查找原因,排除故障。随后检测电源工作参数,查看液晶背光是否点亮,然后调整电位器,观察字符段对比度。上述测试完毕之后,就可按如图所示流程图编写程序,进行系统测试。,项目实施,软件的设计主要是读取时钟芯片值并显示;扫描键盘,实现时间、日期和闹铃的设置操作。因此,整个软件分为按键子程序、显示子程序、时钟子程序和主程序等,相关课程设计课题,1任务设计并制作一个电子日历。2要求(1)电子日历能显示时间、日期、星期、农历等功能。(2)电子日历具有整点提示功能。(3)能对电子日历进行时间、日期和闹铃等信息进行调整。(4)电子日历能显示温度信息。(5)电子日历信息显示需要用LCD1602来实现。按照电子台历的设计思路,设计制作上述要求的电子日历,并完成相应设计说明文档。提示:温度采样可使用前面介绍的DS18B20,农历可由公历信息换算而来。,
链接地址:https://www.31ppt.com/p-3859003.html