当前位置:文档之家› 基于液晶显示的万年历-毕设论文

基于液晶显示的万年历-毕设论文

毕业设计(论文)报告题目基于液晶显示的万年历系别专业班级学生姓名学号指导教师2013年4 月基于液晶显示的万年历摘要:本设计应用AT89S52芯片作为核心,采用C语言进行编程,实现以下功能:小时、分、秒、年、月、日、星期的显示和实时温度检测。

该设计的电子时钟系统由时钟电路、LCD显示电路、按键调整电路和温度检测电路四部分组成。

使用时钟芯片DS1302完成时钟日期的功能,以LCD1602为显示器,同时利用温度传感器DS18B20测量周围环境温度,并且可以依靠按键随时对日期时间进行调整。

我们共设计四个按键,一个模式键,也就是我们用来选定被修改的数字的,两个调整键,一个“加”键和一个“减”键,当按下模式键,选定要调整的数字的时候,“加”、“减”可以帮我们调到所需的状态,还有一个复位键,显示精度为1秒。

设计还提供三位实时温度检测并显示,其显示精度为0.1℃。

关键词:AT89S52、时钟日历芯片DS1302、温度传感器DS18B20、LCD1602目录前言 (1)第一章方案选择与万年历研究情况 (2)1.1 方案选择 (2)1.1.1时钟芯片选择 (2)1.1.2键盘选择 (3)1.1.3显示模块选择 (3)1.2电子万年历的研究情况 (4)第二章主要硬件描述 (5)2.1 AT89S52 (5)2.1.1主要性能 (5)2.1.2引脚说明 (5)2.2 LCM1602 (8)2.2.1工作原理 (8)2.2.2端口引脚第二功能 (9)2.2.3管脚功能 (10)2.3 芯片DS1302 (11)2.3.1工作原理 (11)2.3.2引脚功能及结构 (12)2.4 数字温度传感器DS18B20 (12)2.4.1DS18B20工作原理 (12)2.4.2DS18B20 引脚定义 (13)第三章硬件设计与实现 (14)3.1 单片机最小系统的设计 (14)3.2 时钟电路的设计 (15)3.3 温度采集模块的设计 (15)3.4 LCDM1602显示模块设计 (16)第四章系统软件设计与实现 (17)4.1主程序设计 (17)4.2实时时钟日历子程序设计 (17)4.3环境温度采集子程序设计 (18)4.4按键子程序设计 (20)第五章测试结果分析与结果 (21)5.1 测试结果分析 (21)5.2 测试总结 (21)结束语 (22)致谢 (23)参考文献 (24)附录一:原理图 (25)附录二:源程序 (26)前言万年历,就是记录一定时间范围内(比如100年或更多)的具体阳历与阴历的日期的年历, 方便有需要的人查询使用.万年只是一种象征,表示时间跨度大.这次设计通过对万年历系统的设计, 详细介绍AT89S52单片机应用中的按键处理,数码管显示原理,动态和静态显示原理,定时中断,A/D转换等原理.该系统能够显示年,月,日,小时,分钟,秒,星期,农历,温度,通过按键可以修改时间等功能.此系统结构简单,功能齐全,具有一定的推广价值。

第一章方案选择与万年历研究情况1.1 方案选择1.1.1时钟芯片选择方案一:不使用芯片,采用单片机的定时计数器这种方法原理是利用单片机芯片的定时器来产生固定的时间,模拟时钟的时, 分,秒。

如:利用AT89S52芯片,定时器用工作方式1,每50ms产生一个中断,循环20次,即1s周期。

每一个周期加1,那么1min为60个周期,1h就是60*60=3600个周期,一天就是3600*24=86400个周期。

此方法优点是可以省去一些外围的芯片,但这种方法只能适用于一些要求不是十分精确,不做长期保留的场合。

方案二:并行接口时钟芯片DS12887特点:采用单片机应用系统并行总线(三总线)扩展的接口电路,采用这种接口电路具有操作速度快,编程方便的优点。

但是对于80C52单片机来说,低位地址线要通过锁存器输出,还要地址译码器,而且并行口芯片的体积相对较大。

方案三:串行接口时钟芯片DS1302芯片主特性:(1)实时时钟具有能计算2100 年之前的秒分时日日期星期月年的能力,还有闰年调整的能力(2)31 8 位暂存数据存储RAM(3)串行I/O 口方式使得管脚数量最少(4)宽范围工作电压2.0 5.5V(5)工作电流2.0V 时,小于300nA(6)读/写时钟或RAM 数据时有两种传送方式单字节传送和多字节传送字符组方式(7)8 脚DIP 封装或可选的8 脚SOIC 封装根据表面装配(8)简单3 线接口(9)与TTL 兼容Vcc=5V(10)可选工业级温度范围-40 +85优点:串行接口的日历时钟芯片,使用简单,接口容易,与微型计算机连线较少等特点,在单片机系统尤其是手持式信息设备中己得到了广泛的应用。

所以,最终选择串行时钟芯片DS1302。

1.1.2键盘选择方案一:矩阵式键盘行列式键盘的原理就是每一行线与每一列线的交叉地方不相通,而是接上一个按键,通过按键来接通。

特点: 以省出不少的I/O 口资源,程序编写相对复杂点,适用于键数比较多的情况。

方案二: 独立式键盘独立式键盘是指各个按键相互独立地连接到各自的单片机的I/O 口,I/O口只需要做输入口就能读到所有的按键。

特点: 电路简单,程序容易写,适用于按键数较少的情况。

所以我们选择独立式键盘。

1.1.3显示模块选择方案一:LED数码管显示数码管显示比较常用的是采用CD4511和74LS138实现数码转换,数码显示分动态显示和静态显示,静态显示具有锁存功能,可以使数据显示得很清楚,但浪费了一些资源。

目前单片机数码管普通采用动态显示。

编程简单,但只能显示数字,不能显示中文。

方案二:LCD1602能够显示英文和数字。

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号。

特点:1602是字符型液晶,显示字母和数字比较方便,控制简单,成本较低。

1.2电子万年历的研究情况经过多方面考虑与反复的实践与验证,我决定使用AT89s52单片机为核心处理器,采用串行接口时钟芯片DS302作为内部时钟,以独立式键盘控制,LCD1602为显示屏的万年历,该万年历不仅可以显示传统的年,月,日,时,分,秒还能显示星期,农历和实时温度。

它大大方便的人们了解时间以及天气变化。

第二章主要硬件描述2.1 AT89S52AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K 在系统可编程Flash 存储器。

使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。

2.1.1主要性能1、与MCS-51单片机产品兼容;2、8K字节在系统可编程Flash存储器;3、1000次擦写周期;4、全静态操作:0Hz-33MHz;5、三级加密程序存储器;6、32个可编程I/O口线;7、三个16位定时器/计数器;8、六个中断源;9、全双工UART串行通道;10、低功耗空闲和掉电模式;11、掉电后中断可唤醒;12、看门狗定时器;13、双数据指针;14、掉电标识符。

2.1.2引脚说明图2-1:AT89S52引脚图AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。

使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

P0 口:P0口是一个8位漏极开路的双向I/O口。

作为输出口,每位能驱动8个TTL逻辑电平。

对P0端口写“1”时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。

在这种模式下,P0不具有内部上拉电阻。

在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。

程序校验时,需要外部上拉电阻。

P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。

对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2 的触发输入(P1.1/T2EX)。

在flash编程和校验时,P1口接收低8位地址字节。

引脚号第二功能:P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出。

P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)。

P1.5 MOSI(在系统编程用)。

P1.6 MISO(在系统编程用)。

P1.7 SCK(在系统编程用)P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动。

P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p3 输出缓冲器能驱动4 个TTL 逻辑电平。

对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。

在flash编程和校验时,P3口也接收一些控制信号。

端口引脚第二功能:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INTO(外中断0)P3.3 INT1(外中断1)P3.4 TO(定时/计数器0)P3.5 T1(定时/计数器1)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。

RST:复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。

ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

相关主题