基于LCD1602液晶显示屏的电子万年历设计两个C程序Word下载.docx
- 文档编号:18811721
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:39
- 大小:439.92KB
基于LCD1602液晶显示屏的电子万年历设计两个C程序Word下载.docx
《基于LCD1602液晶显示屏的电子万年历设计两个C程序Word下载.docx》由会员分享,可在线阅读,更多相关《基于LCD1602液晶显示屏的电子万年历设计两个C程序Word下载.docx(39页珍藏版)》请在冰豆网上搜索。
在单芯上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
采用AT89C55,它是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含20kbytes的可反复擦写的Flash只读程序存储器(ROM)和256*8bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C55单片机适合于许多较为复杂控制应用场合。
虽然AT89S52的ISP下载功能非常优秀,但它只有8KROM,由于本设计的程序代码比较多,所以选用AT89C55(具有20KROM)。
1.3时钟电路的选择
采用时钟芯片DS1302,DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。
实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。
DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三根口线:
⑴RES(复位),⑵I/O(数据线),⑶SCLK(串行时钟)。
时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。
DS1302工作时功耗很低,保持数据和时钟信息时功率小于1mW[1]。
DS1302是由DS1202改进而来的,增加了以下的特性:
双电源管脚用于主电源和备份电源供应,Vcc1为可编程涓流充电电源,附加七个字节存储器。
它广泛应用于电话、传真、便携式仪器以及电池供电的仪器仪表等产品领域。
●实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年自动调整和补偿的能力;
●31×
8位RAM;
●串行I/O口方式使得管脚数量最少;
●宽范围工作电压:
2.0-5.5V;
●工作电流:
2.0V时,小于300nA;
●读/写时钟或RAM数据时,有两种传送方式:
单字节传送和多字节传送(字符组方式);
●8脚DIP封装或可选8脚SOIC;
●简单3线接口;
●与TTL兼容(Vcc=5V);
●可选工业级温度范围:
-40℃-+85℃;
●与DS1202兼容。
1.4语音报音电路的选择
直接使用语音芯片,语音芯片具有使用方便,外围元件少,只需少量元件就可以组成一个功能齐全的固体录放机,重放时音质好,没有常见的背景噪音,提供零功率信息存储,无需备用电源,掉电后录音内容可永久保留等优点。
ISD1420P语音芯片采用CMOS技术,单片录放时间20秒,音质好,内含震荡器、话筒前置放大、自动增益控制、防混淆滤波器、平滑滤波器、扬声器驱动及EEPROM阵列。
最小的录放系统仅需麦克风、喇叭、两个按钮、电源及少数电阻电容。
在录放操作结束后,芯片自动进入低功耗节电模式、功耗仅0.5uA,芯片采用多电平直接模拟量存储专利技术,每个采样直接存储在片内单个EEPROM单元中,因此能够非常真实、自然地再现语音、音乐、音调等各种效果,避免了一般固体录音因电路量化和压缩造成的量化噪声和“金属声”。
采样频率从5.3,6.4到8.0KHz,对音质仅有轻微影响。
片内信息可保存100年(无需电源),EEPROM单片可反复录音十万次,能直接驱动16Ω以上的喇叭[2]。
1.5显示电路和键盘的选择
显示采用1602液晶屏,它能显示2行,每行显示16个数字或字母(5*7字型),也可显示一行,每行16个字(5*10字型),可显示的内容比较多(包括数字,字母和很多符号),采用并行数据传送,这样1602LCD共占用单片机11个口线,相对于数码管,占用口线少,电路简单,无需外围驱动电路,占用PCB面积也较少;
但对于编程来说,液晶显示的编程比较复杂,而且亮度也比较差,只能在近距离看到时间和日期,能见度不如数码管好。
键盘部分比较简单,只用到4个按键,采用独立式非编码键盘。
第二章
系统硬件电路设计2.1系统整体硬件电路设计
本设计采用时钟芯片作为时钟的基准,并且该芯片具有断电保护时间功能(断电后采用3.5v电子供电),显示部分采用LCD显示,可以显示年月日时分秒星期等等,该万年历具有随时可调整时分秒年月日的功能,最明显的功能是具有语音报时的功能,比已有的单调的闹钟声音更具有亲和力,具体的调整,录音和功能设置采用4个按键和LCD显示屏共同来实现。
总体硬件设计框图如图2-1所示:
图2-1语音万年历系统原理框图
2.2硬件单元电路设计
单元电路主要由单片机最小系统、时钟芯片电路、LCD显示电路、功能键电路、语音电路等组成。
2.2.1单片机最小系统设计
AT89C55单片机有40脚PDIP、42脚PDIP等,本系统采用40脚PDIP的封装,其引脚如图2-2所示,AT89C55是AT89C5×
系列单片机中性能居中、很有代表性的产品,其主要特性如下:
(1)兼容MCS–51产品;
(2)20K字节可擦写1000次以上FlashROM;
(3)工作电压为+4V~+5.5V;
(4)有256*8字节RAM;
(5)32个可编程I/O口;
(6)3个16位定时/计数器;
(7)8个中断源;
(8)一个全双工UART串行通信口;
(9)静态工作频率在0~33Mhz;
(10)休眠和节电保持两种省电模式;
(11)中断唤醒省电模式功能;
(12)看门狗定时器;
(13)双数据指针(DPTR);
(14)电源关闭标志。
它相对AT89C51、89C52增加了ROM空间,内部看门狗定时器、双数据指针,全新的加密算法等功能,但价格基本不变,甚至更低。
对51系列单片机来说,最小系统一般应该包括:
单片机、晶振电路、复位电路。
电路如图2-3所示。
图2-2
AT89C55单片机引脚图
图2-3
AT89C55单片机最小系统图
2.2.2时钟电路设计
一、DS1302的管脚排列及描述
管脚描述:
(管脚排列如图2-4所示)
图2-4
DS1302管脚配置图
Vcc1:
主电源;
Vcc2:
备份电源。
当Vcc2>
Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2<
Vcc1时,由Vcc1向DS1302供电;
SCLK:
串行时钟输入;
I/O:
双向数据线;
RST:
复位信号,在读、写数据期间,必须为高;
X1,X2:
晶振输入端
二、DS1302的内部原理图
DS1302的内部原理图如图2-5所示,主要由电源控制、晶体振荡、输入移位寄存器、通讯与控制逻辑和RAM组成,晶体振荡负责产生最小时钟单位,输入移位寄存器负责数据的输入与输出,RAM用来存储数据。
图2-5
DS1302的内部原理图
2.2.3语音电路设计
一、ISD1420P的内部结构及管脚排列
ISD1420P内部结构图如图2-7所示,主要由时钟发生器(InternalClock)、定时器(Timing)、取样信号发生器(SarnplingClock)、话筒前置放大、自动增益控制(AGC)、防混淆滤波器、平滑滤波器、电源调节器(PowerConbltlonlng)、地址缓冲器(AddressBuffers)、扬声器驱动(Amp)及EEPROM阵列几部分组成.
图2-7
ISD1420P内部结框图
管脚排列如图2-8所示;
A0~A7:
地址输入端;
VCCA,VSSA:
分别为模拟电路正,负电源端;
VCCD,VSSD:
分别为数字电路正,负电源端;
SP+,SP-:
分别为喇叭正,负端,能驱动16Ω以上的喇叭;
XCLK:
外部时钟;
ANAIN,ANAOUT:
分别为模拟输入,模拟输出;
MIC:
驻极体话筒输入;
MICREF:
驻极体话筒参考输入;
AGC:
自动增益控制;
/REC:
录音触发(低电平有效);
/PLAYE:
边沿触发放音,此端出现下降沿时,芯片开始放音;
图2-8
ISD1420P引脚图[11]
/PLAYL:
电平触发放音,此端出现下降沿时,芯片开始放音;
/RECLED:
录音指示,处于录音状态时,此端为低,可驱动LED[4]。
ISD1420P引脚图
二,ISD1420P与单片机的连接
ISD1420P的电路图如图2-9所示,图中LED用做录音和放音的指示灯;
R8、R10和C6起到上拉的作用;
通过R14和C11的时间常数来决定自动增益控制的释放时间,470KΩ和4.7uF的标称值在绝对大多数场合下可获得满意的效果;
C7为电源和地之间的去耦电容;
C9和C10为话筒的耦合电容.
图2-9
ISD1420P电路图
2.2.4显示电路设计
一、LCD1602内部结构及管脚排列
LCD1602内部结构如图2-10所示
图2-10
LCD1602内部结构
●
忙碌标志:
本标志(BF)用以表示当时LCD的状态,若BF=1,则表示处于忙碌状态,无法接受外部指令或数据;
若BF=0,则可接受外部指令或数据。
显示数据存储器:
本存储器(DDRAM)存储所要显示的数据。
实际上本存储器里存放的是要显示数据的ASCII码,再以ASCII码为地址,到CGRAM里找到该字型的显示编码。
此外还包括字型产生器,光标闪烁控制电路,偏压电路,时序电路等等[6]。
LCD1602管脚排列及功能说明如表2-1所示。
表2-1
LCD1602管脚排列及功能说明
二、LCD1602电路图
LCD1602电路图如图2-11所示,其中J2为8*10k欧姆的排阻作为P0口的上拉电阻,J14为1602液晶显示器件,左边的SIP16封装接口与液晶对应,电位器R7是用来调节液晶背光的对比度的,液晶的4、5、6脚与单片机相连作为控制信号,7-14脚与单片机P0口相连作为数据信号传送。
图2-11
LCD1602电路图
第三章系统软件设计3.1软件整体设计
系统软件主要包括以下几个模块:
LCD显示模块,DS1302时钟芯片模块,ISD1420P语音芯片模块,按键处理模块等,通过这几个模块的有机结合和互相调用来完系统任务,软件总体框架结构如图3-1所示,主程序流程图如图3-2所示。
图3-1软件总体框架结构图
图3-2主程序流程图及中断服务程序流程
3.2软件子模块设计3.2.1时钟芯片DS1302软件设计
一、DS1302编程原理
1.DS1302内部寄存器组织
DS1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81h~8Dh,写时80h~8Ch),存放的数据格式为BCD码形式,如表3-1所示。
表3-1
DS1302有关日历、时间的寄存器。
小时寄存器(85h、84h)的位7用于定义DS1302是运行于12小时模式还是24小时模式。
当为高时,选择12小时模式。
在12小时模式时,位5是,当为1时,表示PM。
在24小时模式时,位5是第二个10小时位。
秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。
当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;
当该位置为0时,时钟开始运行。
控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。
在任何的对时钟和RAM的写操作之前,WP位必须为0。
当WP位为1时,写保护位防止对任一寄存器的写操作。
DS1302中附加31字节静态RAM的地址如表4-2所示。
表3-2DS1302数据RAM地址
DS1302的工作模式寄存器
所谓突发模式是指一次传送多个字节的时钟信号和RAM数据。
突发模式寄存器如表3-3所示。
表3-3突发模式寄存器
此外,DS1302还有充电寄存器等。
2.读写时序说明
DS1302是SPI总线驱动方式。
它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。
要想与DS1302通信,首先要了解DS1302的控制字。
DS1302的控制字如图3-3所示。
图3-3
控制字(即地址及命令字节)
控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中;
位6:
如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;
位5至位1(A4~A0):
指示操作单元的地址;
位0(最低有效位):
如为0,表示要进行写操作,为1表示进行读操作。
控制字总是从最低位开始输出。
在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。
同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。
数据读写时序如图3-4所示,数据可分为单字节传送和多字节传送。
图3-4
数据读写时序
二、DS1302软件设计模块图
DS1302软件设计模块图如图3-5所示,具体可以包括三个模块:
写入数据模块、读出数据模块、初始化时间模块,每个模块又可以包含几个子函数.
图3-5
DS1302程序流程图
3.2.2LCD1602显示软件设计及显示说明
LCD1602液晶显示屏是以若干个5*8或5*11点阵块组成的显示字符群。
每个点阵块为一个字符位,字符间距和行距都为一个点的宽度,主控制驱动电路为HD44780(HITACHI),具有字符发生器ROM可显示192种字符160个5*7点阵字符和32个5*10点阵字符,具有64个字节的自定义字符RAM,可自定义8个5*8点阵字符或4个5*11点阵字符,具有80个字节的RAM,标准的接口特性适配M6800系列MPU的操作时序,低功耗长寿命高可靠性。
一、LCD1602编程原理
1.控制器接口信号说明
控制器接口信号说明如表3-4所示
2.LCD指令说明
LCD指令说明如表3-5所示。
表3-5
LCD指令表
指令
指令码
功能
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
清除
显示
1
将DDRAM填满"
20H"
并且设定DDRAM的地址计数器(AC)到"
00H"
地址
归位
X
设定DDRAM的地址计数器(AC)到"
并且将游标移到开头原点位置;
这个指令不改变DDRAM的内容
显示状态开/关
D
C
B
D=1:
整体显示ON,C=1:
游标ON
B=1:
游标位置反白允许
进入点设定
I/D
S
指定在数据的读取与写入时,设定游标的移动方向及指定显示的移位
游标或显示移位控制
S/C
R/L
设定游标的移动与显示的移位控制位;
设定
DL
RE
DL=0/1:
4/8位数据
RE=1:
扩充指令操作,
RE=0:
基本指令操作
;
设定CGRAM
AC5
AC4
AC3
AC2
AC1
AC0
设定CGRAM地址
设定DDRAM
设定DDRAM地址(显示位址)
第一行:
80H-87H第二行:
90H-97H
读取忙标志和地址
BF
AC6
读取忙标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值
写数据到RAM
数据
将数据D7—D0写入到内部的RAM(DDRAM/CGRAM/IRAM/GRAM)
读出RAM的值
从内部RAM读取数据D7—D0
(DDRAM/CGRAM/IRAM/GRAM)
3.LCD字型编码表
LCD字型编码表如图3-8所示。
图3-8LCD字型编码表
二、LCD1602显示软件设计流程图
LCD1602显示程序流程图如图3-9所示,除了该流程图还有显示一个字符到指定位置函数,显示字符串到指定位置函数,写指令函数,写数据函数,判忙函数(内部等待函数),初试化函数等等。
图3-9
LCD1602显示程序流
三LCD1602显示说明
根据功能的不同,显示界面也不同,主要有以下几种显示界面:
开机欢迎界面,正常显示和调整设置界面,闹钟设置界面,分段录音界面。
1.开机欢迎界面
开机欢迎界面如图3-10所示。
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
A
W
E
L
O
M
图3-10开机欢迎界面
该界面是起了美化效果,使显示更具有亲和力,更具有人性化的设计。
2.正常显示和调整设置界面
正常显示和调整设置界面如图3-11所示。
T
i
m
e
:
w
?
a
t
-
图3-11正常显示和调整设置
界面显示说明:
⑴A6,A7显示小时,A9,A10显示分钟,A12,A13显示秒;
⑵A15的W是week的首字母表示星期的意思,A16的?
是显示当天的星期,如该天为星期一则显示为1,以此类推;
⑶B6,B7显示小时,B9,B10显示分钟,B12,B13显示秒;
⑷B15为T(TRUE)则代表闹钟报音开,为F(false)则为关,
B16为T(TRUE)则代表整点报音开,为F(false)则为关;
⑸在该界面中以上提到的几位都可以通过按键来调整和设置。
3.闹钟设置界面
闹钟设置界面如图3-12所示。
K
图3-12闹钟设置界面
⑴B6,B7为闹钟小时设置位,B9,B10为闹钟分钟设置位,B12,B13为闹钟秒设置位;
⑵B15为周期性闹钟设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 LCD1602 液晶显示屏 电子 万年历 设计 两个 程序
![提示](https://static.bdocx.com/images/bang_tan.gif)