160128中文显示温度与时间.docx

上传人:b****6 文档编号:7997553 上传时间:2023-05-12 格式:DOCX 页数:41 大小:425.80KB
下载 相关 举报
160128中文显示温度与时间.docx_第1页
第1页 / 共41页
160128中文显示温度与时间.docx_第2页
第2页 / 共41页
160128中文显示温度与时间.docx_第3页
第3页 / 共41页
160128中文显示温度与时间.docx_第4页
第4页 / 共41页
160128中文显示温度与时间.docx_第5页
第5页 / 共41页
160128中文显示温度与时间.docx_第6页
第6页 / 共41页
160128中文显示温度与时间.docx_第7页
第7页 / 共41页
160128中文显示温度与时间.docx_第8页
第8页 / 共41页
160128中文显示温度与时间.docx_第9页
第9页 / 共41页
160128中文显示温度与时间.docx_第10页
第10页 / 共41页
160128中文显示温度与时间.docx_第11页
第11页 / 共41页
160128中文显示温度与时间.docx_第12页
第12页 / 共41页
160128中文显示温度与时间.docx_第13页
第13页 / 共41页
160128中文显示温度与时间.docx_第14页
第14页 / 共41页
160128中文显示温度与时间.docx_第15页
第15页 / 共41页
160128中文显示温度与时间.docx_第16页
第16页 / 共41页
160128中文显示温度与时间.docx_第17页
第17页 / 共41页
160128中文显示温度与时间.docx_第18页
第18页 / 共41页
160128中文显示温度与时间.docx_第19页
第19页 / 共41页
160128中文显示温度与时间.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

160128中文显示温度与时间.docx

《160128中文显示温度与时间.docx》由会员分享,可在线阅读,更多相关《160128中文显示温度与时间.docx(41页珍藏版)》请在冰点文库上搜索。

160128中文显示温度与时间.docx

160128中文显示温度与时间

专业综合课程

设计论文

 

题目160128中文显示温度与时间

学院信息工程学院

专业电子信息工程

班级08信工

(2)班

学号200883080

姓名***

指导老师**老师

 

2011年10月

摘要

本课程设计是利用单片机AT89C51、时钟芯片DS1302、温度传感器DS18B20以及160*128的液晶组合设计的一款模拟万年历,实现简单的显示温度、时间和日期的功能。

时钟芯片利用单片机的晶振提供脉冲以控制部计时器,读取当前的日期与时间,并通过接口传输给单片机予以处理;同时温度传感器将产生的模拟温度传送给单片机。

单片机将所接受的数据传输出到显示器160128上,以实现温度、日期与时间的同时显示。

该系统主要是由时钟读取模块、当前温度读取模块、温度与时间显示模块和控制电路四部分组成。

时钟读取部分利用时钟芯片DS1302实时提供当前的时间,并传送给单片机;温度提取是利用DS18b20读取当前室温度;显示部分利用LCD160128液晶显示出万年历及温度。

整个系统利用C语言进行程序设计,经调试仿真效果均达到课程设计要求。

关键词:

AT89C51;万年历;DS1302;DS18B20;LCD160128

前言1

1设计任务与要求1

2总体框图1

2.1设计方案1

2.2电路原理图2

3实验元器件选择及其功能2

3.1实验器件2

3.2主要器件极其相关功能2

4系统软硬件设计8

4.1硬件电路设计8

4.2软件设计10

5总体设计电路图27

6安装与调试28

6.1调试过程28

6.2电路仿真31

7性能测试与分析33

8设计总结33

9实验心得与体会34

参考文献35

前言

单片机是随着超大规模集成电路技术的发展而诞生的,由于它具有体积小、功能强、性价比高等特点,所以广泛应用于电子仪表、家用电器、节能装置、军事装置、机器人、工业控制等诸多领域,使产品小型化、智能化,既提高了产品的功能和质量,又降低了成本,简化了设计。

本设计主要介绍单片机在带实时日历时钟的温度检测系统中的应用。

它具有电路简单、功能齐全、制作成本低、性价比高,只需要提供家用电源供电即可。

该仪器采用美国Intel公司八位单片机作为控制核心,配以其他进口集成电路,加上对软件的精心设计,实现了仪表智能化。

系统软件部分采用MCS—51单片机C语言精心编写,其数据流程清晰地反映在程序中,增强了软件的可读性,便于改进和扩充,从而为其实用提供更好的软件支持。

1设计任务与要求

(1)利用单片机AT89C51控制整个设计电路。

(2)用实时时钟芯片DS1302对当前时间进行计时。

(3)用温度传感器DS18B20检测当前温度。

(4)在160128LCD上显示当前时间和温度。

2总体框图

2.1设计方案

(1)本课题所设计的显示温度与时间的液晶屏是将由单片机转送的时间、温度及日期显示出来。

(2)时钟芯片DS1302可以实时检测当前时间。

(3)温度传感器DS18b20可以模拟外界温度的变化。

当温度变化时,160128显示的数据也会实时改变。

2.2电路原理图

LCD160128中文显示温度及时间

温度传感器

时钟芯片

控制器件

图2.1

3实验元器件选择及其功能

3.1实验器件

AT89C511片

DS13021片

DS18B201片

LCD1601281块

3.2主要器件极其相关功能

(1)AT89C51

MCS51系列单片机是美国Intel公司于1980年推出的一种8位单片机系列。

该系列的基本型产品是8051、8031和8751。

这3种产品之间的区别只是在片程序存储器方面。

8051的片程序存储器(ROM)是掩膜型的,即在制造芯片时已将应用程序固化进去;8031片没有程序存储器;8751部包含有用作程序存储器的4KB的EPROM。

由于8051的编程需要制造商的支持,8751的价格昂贵,因此8031获得了更为广泛的使用。

MCS51系列单片机优异的性能/价格比使得它从面世以来就获得用户的认可。

Intel公司把这种单片机的核,即8051核,以出售或互换专利的方式授权给一些公司,如Atmel、Philips、ADI等。

这些公司的这类产品也被称为8051兼容芯片,这些8051兼容芯片在原来的基础上增加了许多特性。

本书应用电路中采用了Atmel公司的AT89S51芯片,它与MCS51单片机指令集兼容,同时它的部包含用作程序存储器的4KB的基于FLASH技术的只读存储器。

采用这款芯片既克服了采用8031需要添加外部程序存储器导致电路复杂的缺点,又克服了采用8751导致电路制作成本高的缺点。

AT89系列单片机在部结构上基本相同,其中不同型号的单片机只不过在个别模块和功能方面有些区别。

AT89C51单片机部硬件结构框图如图2.1所示。

它由一个8位中央处理器(CPU)、一个256B片RAM及4KBFlashROM、21个特殊功能寄存器、4个8位并行I/O口、两个16位定时/计数器、一个串行I/O口以及中断系统等部分组成,各功能部件通过片单一总线联成一个整体,集成在一块芯片上。

AT89C51单片机部结构如图所示:

时序和振荡电路

程序存储器ROM

数据存储器RAM

2个16位定时/

计数器

CPU

内部8位数据总线

中断

系统

并行

I/O口

串行I/O口

内部中断

外部中断

P0P1P2P3

RXDTXD

时钟源

外部事件

CPU是单片机部的核心部件,是一个8位二进制数的中央处理单元,主要由运算器、控制器和寄存器阵列构成。

(2)DS1302的结构与工作原理

DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。

采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。

DS1302部有一个31×8的用于临时性存放数据的RAM寄存器。

DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。

DS1302的外部引脚功能所示:

DS1302封装图

X1,X2

32.768kHz晶振引脚

GND

RST

复位

I/O

数据输入/输出

SCLK

串行时钟

VCC1

电池引脚

VCC2

主电源引脚

下图为部寄存器的控制命令:

寄存器名称

7

6

5

4

3

2

1

0

1

RAM/CK

A4

A3

A2

A1

A0

RD/W

秒寄存器

1

0

0

0

0

0

0

分寄存器

1

0

0

0

0

0

1

小时寄存器

1

0

0

0

0

1

0

日寄存器

1

0

0

0

0

1

1

月寄存器

1

0

0

0

1

0

0

星期寄存器

1

0

0

0

1

0

1

年寄存器

1

0

0

0

1

1

0

写保护寄存器

1

0

0

0

1

1

1

慢充电寄存器

1

0

0

1

0

0

0

时钟突发寄存器

1

0

1

1

1

1

1

日历、时钟寄存器与控制字对照表

(3)DS18B20结构及工作原理

DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。

因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。

DS18B20数字温度计提供9-12位摄氏温度测量而且有一个由高低电平触发的可编程的不因电源消失而改变的报警功能。

DS18B20通过一个单线接口发送或接受信息,因此在中央处理器和DS18B20之间仅需一条连接线(加上地线)。

它的测温围为-55~+125℃,并且在-10~+85℃精度为±5℃。

除此之外,DS18B20能直接从单线通讯线上汲取能量,除去了对外部电源的需求。

每个DS18B20都有一个独特的64位序列号,从而允许多只DS18B20同时连在一根单线总线上;因此,很简单就可以用一个微控制器去控制很多覆盖在一大片区域的DS18B20。

这一特性在HVAC环境控制、探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。

DS18B20引脚图

DS18B20详细引脚功能描述:

序号

名称

引脚功能描述

1

GND

地信号

2

DQ

数据输入/输出引脚。

开漏单总线接口引脚。

当被用着在寄生电源下,也可以向器件提供电源。

3

VDD

可选择的VDD引脚。

当工作于寄生电源时,此引脚必须接地。

DS18B20的使用方法

  由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。

  由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。

DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。

该协议定义了几种信号的时序:

初始化时序、读时序、写时序。

所有时序都是将主机作为主设备,单总线器件作为从设备。

而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。

数据和命令的传输都是低位在先。

(4)LCD160128

160128是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及格160×128全点阵液晶显示器组成。

可完成图形显示,也可以显示10×8个(16×16点阵)汉字。

主要技术参数和性能:

模块自带-15负压,用于LCD的驱动电压

1、电源VDD:

+5V;

2、显示容:

160(列)×128(行)点

3、全屏幕点阵

4、十三种指令

5、与CPU接口采用8位数据总线并行输入输出

6、驱动路数1/128

7、工作温度:

0°C∽+55°C,存储温度:

-20°C∽+70°C

外形尺寸

项目

尺度

单位

模块体积

129.0×102.0×12.8

mm

视域

101.0×82.0

mm

行列点阵数

160×128

点距离

0.58×0.58

mm

点大小

0.54×0..54

mm

模块外部接口:

4系统软硬件设计

4.1硬件电路设计

(1)时钟电路

单片机工作的时间基准是由时钟电路提供的。

在单片机的XTAL1和XTAL2两个引脚间,接一只晶振及两只电容就构成了单片机的时钟电路,

电路中的器件选择可以通过计算和实验确定,也可以参考一些典型电路的参数。

电路中,电容器C1和C2对振荡器频率有微调作用,通常的取值围30±10pF;石英晶体选择6MHZ或12MHZ都可以。

其结果只是机器周期时间不同,影响计数器的计数初值。

(2)温度检测电路

该电路只是利用DS18B20模拟外界环境温度的变化,从而实时显示在液晶屏上。

(3)LCD160128显示电路

4.2软件设计

应用程序

//---------------LCD_160128.c----------------

//LCD_160128的C文件,含控制函数

//------------------------------------------

#include

#include

#include

#include

#include

#include

#include

#defineASC_CHR_WIDTH8

#defineASC_CHR_HEIGHT12

#defineHZ_CHR_HEIGHT12

#defineHZ_CHR_WIDTH12

ucharcodeLCD_WIDTH=20;

ucharcodeLCD_HEIGHT=128;

ucharcodeASC_MSK[96*12]={

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//''

0x00,0x30,0x78,0x78,0x78,0x30,0x30,0x00,0x30,0x30,0x00,0x00,//'!

'

0x00,0x66,0x66,0x66,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//'"'

0x00,0x6c,0x6c,0xfe,0x6c,0x6c,0x6c,0xfe,0x6c,0x6c,0x00,0x00,//'#'

0x30,0x30,0x7c,0xc0,0xc0,0x78,0x0c,0x0c,0xf8,0x30,0x30,0x00,//'$'

0x00,0x00,0x00,0xc4,0xcc,0x18,0x30,0x60,0xcc,0x8c,0x00,0x00,//'%'

0x00,0x70,0xd8,0xd8,0x70,0xfa,0xde,0xcc,0xdc,0x76,0x00,0x00,//'&'

0x00,0x30,0x30,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//'''

0x00,0x0c,0x18,0x30,0x60,0x60,0x60,0x30,0x18,0x0c,0x00,0x00,//'('

0x00,0x60,0x30,0x18,0x0c,0x0c,0x0c,0x18,0x30,0x60,0x00,0x00,//')'

0x00,0x00,0x00,0x66,0x3c,0xff,0x3c,0x66,0x00,0x00,0x00,0x00,//'*'

0x00,0x00,0x00,0x18,0x18,0x7e,0x18,0x18,0x00,0x00,0x00,0x00,//'+'

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x38,0x60,0x00,//','

0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,//'-'

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x38,0x00,0x00,//'.'

0x00,0x00,0x02,0x06,0x0c,0x18,0x30,0x60,0xc0,0x80,0x00,0x00,//'/'

0x00,0x7c,0xc6,0xce,0xde,0xd6,0xf6,0xe6,0xc6,0x7c,0x00,0x00,//'0'

0x00,0x10,0x30,0xf0,0x30,0x30,0x30,0x30,0x30,0xfc,0x00,0x00,//'1'

0x00,0x78,0xcc,0xcc,0x0c,0x18,0x30,0x60,0xcc,0xfc,0x00,0x00,//'2'

0x00,0x78,0xcc,0x0c,0x0c,0x38,0x0c,0x0c,0xcc,0x78,0x00,0x00,//'3'

0x00,0x0c,0x1c,0x3c,0x6c,0xcc,0xfe,0x0c,0x0c,0x1e,0x00,0x00,//'4'

0x00,0xfc,0xc0,0xc0,0xc0,0xf8,0x0c,0x0c,0xcc,0x78,0x00,0x00,//'5'

0x00,0x38,0x60,0xc0,0xc0,0xf8,0xcc,0xcc,0xcc,0x78,0x00,0x00,//'6'

0x00,0xfe,0xc6,0xc6,0x06,0x0c,0x18,0x30,0x30,0x30,0x00,0x00,//'7'

0x00,0x78,0xcc,0xcc,0xec,0x78,0xdc,0xcc,0xcc,0x78,0x00,0x00,//'8'

0x00,0x78,0xcc,0xcc,0xcc,0x7c,0x18,0x18,0x30,0x70,0x00,0x00,//'9'

0x00,0x00,0x00,0x38,0x38,0x00,0x00,0x38,0x38,0x00,0x00,0x00,//':

'

0x00,0x00,0x00,0x38,0x38,0x00,0x00,0x38,0x38,0x18,0x30,0x00,//';'

0x00,0x0c,0x18,0x30,0x60,0xc0,0x60,0x30,0x18,0x0c,0x00,0x00,//'<'

0x00,0x00,0x00,0x00,0x7e,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,//'='

0x00,0x60,0x30,0x18,0x0c,0x06,0x0c,0x18,0x30,0x60,0x00,0x00,//'>'

0x00,0x78,0xcc,0x0c,0x18,0x30,0x30,0x00,0x30,0x30,0x00,0x00,//'?

'

0x00,0x7c,0xc6,0xc6,0xde,0xde,0xde,0xc0,0xc0,0x7c,0x00,0x00,//''

0x00,0x30,0x78,0xcc,0xcc,0xcc,0xfc,0xcc,0xcc,0xcc,0x00,0x00,//'A'

0x00,0xfc,0x66,0x66,0x66,0x7c,0x66,0x66,0x66,0xfc,0x00,0x00,//'B'

0x00,0x3c,0x66,0xc6,0xc0,0xc0,0xc0,0xc6,0x66,0x3c,0x00,0x00,//'C'

0x00,0xf8,0x6c,0x66,0x66,0x66,0x66,0x66,0x6c,0xf8,0x00,0x00,//'D'

0x00,0xfe,0x62,0x60,0x64,0x7c,0x64,0x60,0x62,0xfe,0x00,0x00,//'E'

0x00,0xfe,0x66,0x62,0x64,0x7c,0x64,0x60,0x60,0xf0,0x00,0x00,//'F'

0x00,0x3c,0x66,0xc6,0xc0,0xc0,0xce,0xc6,0x66,0x3e,0x00,0x00,//'G'

0x00,0xcc,0xcc,0xcc,0xcc,0xfc,0xcc,0xcc,0xcc,0xcc,0x00,0x00,//'H'

0x00,0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00,//'I'

0x00,0x1e,0x0c,0x0c,0x0c,0x0c,0xcc,0xcc,0xcc,0x78,0x00,0x00,//'J'

0x00,0xe6,0x66,0x6c,0x6c,0x78,0x6c,0x6c,0x66,0xe6,0x00,0x00,//'K'

0x00,0xf0,0x60,0x60,0x60,0x60,0x62,0x66,0x66,0xfe,0x00,0x00,//'L'

0x00,0xc6,0xee,0xfe,0xfe,0xd6,0xc6,0xc6,0xc6,0xc6,0x00,0x00,//'M'

0x00,0xc6,0xc6,0xe6,0xf6,0xfe,0xde,0xce,0xc6,0xc6,0x00,0x00,//'N'

0x00,0x38,0x6c,0xc6,0xc6,0xc6,0xc6,0xc6,0x6c,0x38,0x00,0x00,//'O'

0x00,0xfc,0x66,0x66,0x66,0x7c,0x60,0x60,0x60,0xf0,0x00,0x00,//'P'

0x00,0x38,0x6c,0xc6,0xc6,0xc6,0xce,0xde,0x7c,0x0c,0x1e,0x00,//'Q'

0x00,0xfc,0x66,0x66,0x66,0x7c,0x6c,0x66,0x66,0xe6,0x00,0x00,//'R'

0x00,0x78,0xcc,0xcc,0xc0,0x70,0x18,0xcc,0xcc,0x78,0x00,0x00,//'S'

0x00,0xfc,0xb4,0x30,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00,//'T'

0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x78,0x00,0x00,//'U'

0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x78,0x30,0x00,0x00,//'V'

0x00,0xc6,0xc6,0xc6,0xc6,0xd6,0xd6,0x6c,0x6c,0x6c,0x00,0x00,//'W'

0x00,0xcc,0xcc,0xcc,0x78,0x30,0x78,0xcc,0xcc,0xcc,0x00,0x00,//'X'

0x00,0xcc,0xcc,0xcc,0xcc,0x78,0x30,0x30,0x30,0x78,0x00,0x00,//'Y'

0x00,0xfe,0xce,0x98,0x18,0x30,0x60,0x62,0xc6,0xfe,0x00,0x00,//'Z'

0x00,0x3c,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3c,0x00,0x00,//'['

0x00,0x00,0x80,0xc0,0x60,0x30,0x18,0x0c,0x06,0x02,0x00,0x00,//'\'

0x00,0x3c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x3c,0x00,0x00,//']'

0x10,0x38,0x6c,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//'^'

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,//'_'

0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//'`'

0x00,0x00,0x00,0x00,0x78,0x0c,0x7c,0xcc,0xcc,0x76,0x00,0x00,//'a'

0x00,0xe0,0x60,0x60,0x7c,0x66,0x66,0x66,0x66

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2