基于89C51单片机的温度显现的电子时钟 1.docx

上传人:b****1 文档编号:10997796 上传时间:2023-05-28 格式:DOCX 页数:36 大小:473.09KB
下载 相关 举报
基于89C51单片机的温度显现的电子时钟 1.docx_第1页
第1页 / 共36页
基于89C51单片机的温度显现的电子时钟 1.docx_第2页
第2页 / 共36页
基于89C51单片机的温度显现的电子时钟 1.docx_第3页
第3页 / 共36页
基于89C51单片机的温度显现的电子时钟 1.docx_第4页
第4页 / 共36页
基于89C51单片机的温度显现的电子时钟 1.docx_第5页
第5页 / 共36页
基于89C51单片机的温度显现的电子时钟 1.docx_第6页
第6页 / 共36页
基于89C51单片机的温度显现的电子时钟 1.docx_第7页
第7页 / 共36页
基于89C51单片机的温度显现的电子时钟 1.docx_第8页
第8页 / 共36页
基于89C51单片机的温度显现的电子时钟 1.docx_第9页
第9页 / 共36页
基于89C51单片机的温度显现的电子时钟 1.docx_第10页
第10页 / 共36页
基于89C51单片机的温度显现的电子时钟 1.docx_第11页
第11页 / 共36页
基于89C51单片机的温度显现的电子时钟 1.docx_第12页
第12页 / 共36页
基于89C51单片机的温度显现的电子时钟 1.docx_第13页
第13页 / 共36页
基于89C51单片机的温度显现的电子时钟 1.docx_第14页
第14页 / 共36页
基于89C51单片机的温度显现的电子时钟 1.docx_第15页
第15页 / 共36页
基于89C51单片机的温度显现的电子时钟 1.docx_第16页
第16页 / 共36页
基于89C51单片机的温度显现的电子时钟 1.docx_第17页
第17页 / 共36页
基于89C51单片机的温度显现的电子时钟 1.docx_第18页
第18页 / 共36页
基于89C51单片机的温度显现的电子时钟 1.docx_第19页
第19页 / 共36页
基于89C51单片机的温度显现的电子时钟 1.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于89C51单片机的温度显现的电子时钟 1.docx

《基于89C51单片机的温度显现的电子时钟 1.docx》由会员分享,可在线阅读,更多相关《基于89C51单片机的温度显现的电子时钟 1.docx(36页珍藏版)》请在冰点文库上搜索。

基于89C51单片机的温度显现的电子时钟 1.docx

基于89C51单片机的温度显现的电子时钟1

课程设计(论文)说明书

题目:

带温度显示的电子时钟

院(系):

信息与通信学院

专业:

电子信息工程

学生姓名:

学号:

指导教师:

吴小年

职称:

教授

2012年12月1日

摘要

日期和时钟是一级温度都是我们日常生活关心的问题。

本设计是采用单片机STC89C51作为核心元件,利用1602液晶屏作为显示元件;用单片机实现时钟和日历功能,并且可用三个键盘对电子日历及时钟进行调控;其中DS18b20实现温度数据的采集;并以总线形式将数据传输给单片机;本作品在单片机最小系统基础上,分别接上了1602液晶显示电路和DS18b20温度数据采集电路。

由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性好,抗干扰能力强和使用方便等方面的独特的优点,所以此装置不仅轻便、稳定,而且功能非常实用。

可作为我们生活的小助手。

关键字:

STC89C51;1602液晶屏;DS18b20;电子日历;温度计

 

Abstract

Dateandtemperaturearetheclockisaconcerninourdailylives.ThisdesignisusedasacorecomponentchipSTC89C51,using1602astheLCDdisplaydevice;withMCUclockandcalendarfunctions,andthreekeyboardavailableontheelectroniccalendarandclock

control;whichDS18b20fortemperaturedatacollection;andtobusformdatatothe

microcontroller;theworkinthesmallestsingle-chipsystemsbasedonliquidcrystaldisplayareconnectedtothe1602circuitandDS18b20temperaturedataacquisitioncircuit.Ashighlyintegratedsingle-chip,powerful,commongood,especiallywhenitissmall,lightweight,lowpowerconsumption,cheapandreliability,stronganti-interferenceabilityandeaseofuseoftheuniqueadvantages,sothisdeviceisnotonlylightweight,stable,andisverypractical.Asweliveinasmallassistant.

Keywords:

STC89C51;1602LCDscreen;DS18b20;electroniccalendar;thermometer

 

目录

引言…………………………………………………………………………1

1设计任务…………………………………………………………………1

2系统总体方案及硬件设计………………………………………………1

2.1单片机最小系统电路…………………………………………………………………1

2.1.1复位电路……………………………………………………………………………1

2.1.2晶振电路……………………………………………………………………………1

2.1.3单片机系统功能……………………………………………………………………5

2.1.4单片机机管脚功……………………………………………………………………1

2.1.551单片内部寄存器能………………………………………………………………1

2.1.6单片机最小系统原理图……………………………………………………………1

2.21602液晶电路设计…………………………………………………………………4

2.2.1管脚图………………………………………………………………………………4

2.2.2字符地址……………………………………………………………………………4

2.2.3指令集………………………………………………………………………………8

2.2.4电路设计……………………………………………………………………………5

2.3DS18b20电路设计……………………………………………………………………5

2.3.1DS18B20的简介……………………………………………………………………5

2.3.2工作原理…………………………………………………………………………6

2.3.3DS18B20的外形和内部结构……………………………………………………6

2.3.4DS18B2与单片机的典型接口设计………………………………………………6

3系统原理图及PCB图介绍………………………………………………7

4软件设计………………………………………………………………7

5结论……………………………………………………………………7

谢辞…………………………………………………………………………8

参考文献……………………………………………………………………9

附录…………………………………………………………………………10

 

第1页共25页

引言

电子日历和温度计是一种很实用的生活小制作,由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性好,抗干扰能力强和使用方便等方面的独特的优点,易于在系统中实现上述功能,并越来越多的普及在我们的生活中。

1设计任务

制作一个可以实现24小时计时的数字钟,以及1到30号的日期更换,并且用三个键盘实现对日期时钟的调控,用1602液晶屏显示日期时钟。

外加一个由DS18b20读取的温度数据也显示在液晶评上的小作品。

2设计要求

2.1可使用键盘修改年、月、日,时、分、秒,实现加减修改。

2.2时钟误差范围为:

15分每天。

2.3温度误差范围为:

0.5摄氏度。

3系统总体方案及硬件设计

3.151单片机最小系统电路介绍

3.1.1复位电路

单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用10~30uF,51单片机最小系统容值越大需要的复位时间越短。

3.1.2晶振电路

单片机最小系统晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。

3.1.3单片机系统功能

单片机最小系统起振电容C2、C3一般采用15~33pF,并且电容离晶振越近越好,晶振离单片机越近越好4.P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。

设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。

计数值N乘以机器周期Tcy就是定时时间t。

设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。

在每个机器周期的S5P2期间采样T0、T1引脚电平。

当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。

由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。

当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2ms。

第2页共25页

3.1.451单片机管脚功能

89C51是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供下列标准特征:

4K字节的程序存储器,128字节的RAM,32条I/O线,2个16位定时器/计数器,一个5中断源两个优先级的中断结构,一个双工的串行口,片上震荡器和时钟电路。

引脚说明:

·VCC:

电源电压

·GND:

·P0口:

P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。

当对0端口写入1时,可以作为高阻抗输入端使用。

当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。

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

在EPROM编程时,P0口接收指令字节,同时输出指令字节在程序校验时。

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

·P1口:

P1口是一带有内部上拉电阻的8位双向I/O口。

P1口的输出缓冲能接受或输出4个TTL逻辑门电路。

当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。

当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。

·P2口:

P2是一带有内部上拉电阻的8位双向的I/O端口。

P2口的输出缓冲能驱动4个TTL逻辑门电路。

当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。

作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。

P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX@DPTR)时,P2口送出高8位地址数据。

在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。

当利用8位地址线访问外部数据存储器时(例MOVX@R1),P2口输出特殊功能寄存器的内容。

当EPROM编程或校验时,P2口同时接收高8位地址和一些控制信号。

·P3口:

P3是一带有内部上拉电阻的8位双向的I/O端口。

P3口的输出缓冲能驱动4个TTL逻辑门电路。

当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。

作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。

·ALE/

:

当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址的低8位字节。

当在Flash编程时还可以作为编程脉冲输出(

)。

·RST:

复位输入。

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

P3口的第二功能:

P3口同时具有AT89C51的多种特殊功能,具体如下表3-1所示:

第3页共25页

表3-1

端口引脚

第二功能

P3.0

RXD(串行输入口)

P3.1

TXD(串行输出口)

P3.2

(外部中断0)

P3.3

(外部中断1)

P3.4

T0(定时器0)

P3.5

T1(定时器1)

P3.6

(外部数据存储器写选通)

P3.7

(外部数据存储器都选通)

一般情况下,ALE是以晶振频率的1/6输出,可以用作外部时钟或定时目的。

但也要注意,每当访问外部数据存储器时将跳过一个ALE脉冲。

3.1.5单片机内部寄存器

标识符号地址寄存器名称

P30B0HI/O口3寄存器

PCON87H电源控制及波特率选择寄存器

SCON98H串行口控制寄存器

SBUF99H串行数据缓冲寄存器

TCON88H定时控制寄存器

TMOD89H定时器方式选择寄存器

TL08AH定时器0低8位

TH08CH定时器0高8位

TL18BH定时器1低8位

TH18DH定时器1高8图3-1

3.1.6单片机最小系统原图

如图3-1所示:

第4页共25页

3.21602液晶电路设计

3.2.1管脚功能

工业字符型液晶,能够同时显示16x02即32个字符。

(16列2行)

1602采用标准的16脚接口,其中:

第1脚:

VSS为地电源

第2脚:

VDD接5V正电源

第3脚:

V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度

第4脚:

RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:

RW为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。

第6脚:

E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:

D0~D7为8位双向数据线。

第15~16脚:

空脚

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表1所示,这些字符有:

阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”

3.2.2字符地址

表3-2

显示位序号

12345………………40

DDRAM

地址(HEX)

第一行

0001020304..…………..27

第二行

4041424344……………..67

3.2.3指令集

1602通过D0~D7的8位数据端传输数据和指令。

显示模式设置:

(初始化)

00111000[0x38]设置16×2显示,5×7点阵,8位数据接口;

显示开关及光标设置:

(初始化)

00001DCBD显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)

000001NSN=1(读或写一个字符后地址指针加1&光标加1),

N=0(读或写一个字符后地址指针减1&光标减1),

第5页共25页

S=1且N=1(当写一个字符后,整屏显示左移)

s=0当写一个字符后,整屏显示不移动

数据指针设置:

数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)

其他设置:

01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。

通常推荐的初始化过程:

延时15ms写指令38H

延时5ms写指令38H

延时5ms写指令38H

延时5ms

(以上都不检测忙信号)

(以下都要检测忙信号)

写指令38H

写指令08H关闭显示

写指令01H显示清屏

写指令06H光标移动设置

写指令0cH显示开及光标设置

3.2.4电路设计图3-2

3.3DS18b20电路设计

3.3.1DS18B20的简介

(1)独特的单线接口方式:

DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

(2)在使用中不需要任何外围元件

(3)可用数据线供电,电压范围:

+3.0~+5.5V。

(4)测温范围:

-55~+125℃。

固有测温分辨率为0.5℃。

(5)通过编程可实现9~12位的数字读数方式。

(6)用户可自设定非易失性的报警上下限值。

(7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。

(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。

3.3.2工作原理

DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨

率不同而不同,且温度转换时的延时时间由2s减为750ms。

DS18B20测温原理如

图3所示。

图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率

第6页共25页

的脉冲信号送给计数器1。

高温度系数晶振随温度变化其振荡率明显改变,生的

信号作为计数器2的脉冲输入。

计数器1和温度寄存器被预置在-55℃所对应的

一个基数值。

计数器1对低温度系数晶振

产生的脉冲信号进行减法计数,当计数器1

的预置值减到0时,温度寄存器的值将加1,

计数器1的预置将重新被装入,计数器1重

新开始对低温度系数晶振产生的脉冲信号

进行计数,如此循环直到计数器2计数到0

时,停止温度寄存器值的累加,此时温度寄

存器中的数值即为所测温度。

图3中的斜

率累加器用于补偿和修正测温过程中的非

线性,其输出用于修正计数器1的预置值。

3.3.3DS18B20的外形和内部结构

3.3.4DS18B20与单片机的典型接口设计图3-3

以MCS-51单片机为例,图3中采用寄生电源供电方式,P1.1口接单线总线为保

证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管和89C51的

P1.0来完成对总线的上拉。

当DS18B29处于写存储器和温度A/D变换操作时,总

线上必须有强的上拉,上拉开启时间最大为10us。

采用寄生电源供电方式时VDD

和GND端均接地。

由于单线只有一根线,因此发送接口必须是三态的。

主机控制

DS18B20完成温度转换必须经过三个步骤:

初始化、ROM操作指令、存储器操作指

令。

假设单片机系统所用的晶体管晶振频率为12MHZ,根据DS18B20的初始化时序、

写时序和读时序,分别编写三个子程序:

INTI为初始化子程序,WRITE为写子程

序,READ为读子程序,所有的数据读写均由最低位开始,实际在实验中不用这种

方式,只要在数据线上加一个上拉电阻4.7K,另外两个引脚分别接电源和地。

4系统原理图及PCB图

4.1系统原理图

本作品设计是基于51单片机最小系统,加上1602液晶显示电路和DS18b20的温度采集数据电路,其中左上角为复位电路,左下角为晶振电路。

单片机上方为电源指示电路。

右下角的版块为温度电路,用于温度的数据采集;其中还使用了P0和P2口接1602的电路,作为对液晶屏数据的的输入和字符输入的控制电路,P3口接了三个控制键盘,可对时钟和日期进行选定调控。

并在P0和P2两个输出端口加上了两个2K的上拉电阻,增加电路的驱动电路,使得1602液晶屏能够获得足够的供电电压,显示更好的效果;在电源接入部分,使用了两个插针接入5V电源给单片机和电路供电,具体作品原理图见附录1

第7页共25页

3.2系统PCB图

在PCB图的布局时,根据电路特点进行了原件的合理摆放,原件封装大小,和焊

的设置都进行了相关的确认之后用手动布线,其中为了节省空间,将晶振电路放

到了单片机的底座下,这样既节省了空间也使电路看起来更加美观。

具体PCb见

附录2

4软件设计

具体软件程序见附录3

5结论

经试验测试,实现了系统设计的任务要求,稳定显示了日期和时钟,并且键盘的选定和加减调控日期和时钟均实现功能,其中温度也能够温度且准确的显示温度,若改变温度,变化明显。

作品实物见附录3。

键盘调控范围如下表所示:

键盘

调控范围

0—9999

0—12

0—30

键盘功能测试结构如下表所示:

键盘按下次数

1

2

3

4

5

6

K1

选定秒

选定分

选定时

选定日

选定月

选定年

K2

+1

+1

+1

+1

+1

+1

K3

-1

-1

-1

-1

-1

-1

(其中K1、K2、K3为正对实物从右往左对键盘编号)

其中温度显示范围为:

测温范围:

-55~+125℃。

固有测温分辨率为0.5℃。

本次作品制作完成了任务要求,达到了之前预定的目标。

但是在程序方面,由于作者能力有限,在许多程序方面有待完善,其中在日期的12月的设计中,没能很好的处理好大小月份的显示以及闰年和瑞年的问题,以及在扩展功能上,需要在程序中加入时钟。

但所设定的任务都已完成,作者在之后将继续在程序方面进行改进完善,争取完善作品。

 

第8页共25页

谢辞

在本次课程设计过程中,从作品的选题,到制作过程,以及程序的修改等,都得到了老师和同学的大力帮助,特别感谢武小年老师在选题和作品设计方面给出的良好建议和悉心的指导,感谢科协学长在程序设计方面给出的指导和建议,以及感谢学院科协提供的制作场地,才使得作品能够按时顺利完成所设定的任务。

在今后的学习中,我会在理论学习的同时注重实践,让理论和实践能够真正的融合为一体。

当一名理论知识和动手能力全面发展的大学生。

 

第9页共25页

参考文献

⑴专著:

[1]郭天祥.51单片机C语言教程[M].电子工业出版社,2008

[2]张毅刚.新编MCS-51单片机应用设计[M].哈尔滨:

哈尔滨工业大学出版社,2003

[3]谭浩强.C程序设计.[M].北京:

清华大学出版社,1991

[4]求是科技.单片机典型模块设计实例导航[M].北京:

人民邮电出版社,2004

 

第10页共25页

附录

附录1:

附录2:

 

 

第11页共25页

附录3

 

作品程序附录:

作品程序:

#include

#defineuintunsignedint

#defineucharunsignedchar

sbitlcdrs=P2^5;

sbitgnd=P2^6;

sbitlcden=P2^7;

sbitDQ=P3^5;//ds18b20单线与单片机的接口定义

sbits1=P3^2;

sbits2=P3^3;

sbits3=P3^4;

voidinit();

voidwrite_com(ucharcom);

第12页共25页

voidwrite_date(uchardate);

voiddelays(uintz);

voidkeyscan();

voidwrite_n(ucharadd,uchardate);

voidwrite_yr(ucharadd,uchardate);

voidwrite_sfm(ucharadd,uchardate);

voidinit_ds18b20(void);//18b20声明初始化函数

voiddelay(uintt);//声明延时函数

voidwrite_byte(uchardat);//声明写字节函数

voidwrite_wen(uchartemp);//写温度函数

ucharreadtemperature(void);//读取温度函数

 

uchars1num;ge1,shi1,ge2,shi2,ge3,shi3,aa,num,wen1,wen2,temp;

charmiao,fen,shi,nian,nian1,nian2,yue,ri;

uchartable[]="2011-01-26";

uchartable1[]="00:

00:

00T:

";

voidmain()

{

init();

while

(1)

{

keyscan();

}

}

voidinit_ds18b20(void)//初始化函数

{

ucharn;

DQ=1;//先把总线拉高

delay(8);//延时等待稳定

DQ=0;

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

当前位置:首页 > 自然科学 > 物理

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

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