基于51单片机的万年历.docx

上传人:b****6 文档编号:3924067 上传时间:2022-11-26 格式:DOCX 页数:25 大小:849.55KB
下载 相关 举报
基于51单片机的万年历.docx_第1页
第1页 / 共25页
基于51单片机的万年历.docx_第2页
第2页 / 共25页
基于51单片机的万年历.docx_第3页
第3页 / 共25页
基于51单片机的万年历.docx_第4页
第4页 / 共25页
基于51单片机的万年历.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

基于51单片机的万年历.docx

《基于51单片机的万年历.docx》由会员分享,可在线阅读,更多相关《基于51单片机的万年历.docx(25页珍藏版)》请在冰豆网上搜索。

基于51单片机的万年历.docx

基于51单片机的万年历

中文摘要

本设计万年历以AT89C51为控制中心,与温度传感器DS18B20,时钟芯片DS1302综合应用为一体,不仅能够准确显示时间、日期,闹钟设置,环境温度测量及温度高低温报警等功能。

单片机是一种集CPU、RAM、ROM、I/O接口和中断系统等于一体的器件,只需要外加电源和晶振就可实现对数字信息的处理和控制。

单片机与数字万年历相结合,用于时间显示,温度测试等不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被检测数值的技术指标,从而能够大大提高产品的质量和数量。

 

关键词:

单片机,温度传感器,C语言,液晶显示

 

ABSTRACT

ThisdesignUSESAT89C51ascalendarcontrolcenter,andthetemperaturesensorDS18B20,theclockDS1302chipintegratedapplicationasawhole,andnotonlybeabletoaccuratelydisplaythetime,date,alarm,theenvironmenttemperaturemeasurementandhightemperature,lowtemperaturealarmfunctions.

SCMisacollectionofCPU,RAM,ROM,I/Ointerfaceandinterruptsystemisoneofthedevices,onlyrequireadditionalpowercanbeusedforvibrationandgrainistheprocessofdigitalinformationandcontrol.Single-chipmicrocomputeranddigitalcalendar,combiningfortimetoshow,temperaturetestinghasnotonlycontrolconvenient,simpleandflexibleconfigurationadvantages,andwhichcouldincreasethetechnicalindexofthetestedvalue,whichcangreatlyimprovethequalityoftheproductsandquantity.

 

Keywords:

Single-chipmicrocomputer,TemperatureSensor,Clanguage,Liquidcrystaldispl

 

第一章前言

1.1系统开发背景及现状

当今世界,知识更新的速度越来越快。

特别是在电子技术领域,新的技术,新的产品层出不穷,日新月异,随着电子产品的发展,在这个快节奏的年代,时间就是效益,就是金钱,因此,时间对人们来说是越来越宝贵了。

但在这种快节奏的生活中,人们常常忘记了时间,一旦遇到重要的事情都要事先做好合理的时间安排,所以一个能够进行报时以及有其他多种用途的万年历是对人们的生活工作是非常具有现实意义的。

人们对计时工具在性能和准确度方面的要求是越来越高,传统的时钟正在慢慢被淘汰,因为在很多方面普通时钟已不能满足人们在某些方面的需求了,特别是在准确度方面,而多功能数字钟它占了很大的优势,因为它采用数字电路来实现对时、分、秒的设计。

不管在性能还是在款式样式上都发生了质的飞跃变化,电子闹钟,数字显示的计时装置,广泛用于个人家庭,公司,娱乐场所,码头,办公室等等公共场所,成为人们日常生活中必不可少的生活必需品。

因为数字万年历从原理上讲是一种典型的数字电路,由于数字集成电路的不停发展和石英晶体振荡器的发展以及广泛应用,使得数字钟的精度远远超过传统的钟表,钟表的数字化给人们的生产生活带来了极大的便利而且大大地扩展了钟表原先的功能。

因此,研究多功能数字钟及扩大其应用,有着非常现实的意义。

1.2系统开发的目的

多功能数字万年历系统的最基本功能就是时间的显示,闹钟,温度的采集和报警,本设计的意义在于传统的时钟不能满足现代人们多元化快节奏的生活需求,此设计将单片机作为数字钟的核心控制器,可以通过DS1302数字时钟芯片进行秒,分,时来计时实现计时校时功能,将其时间数据经单片机输出,利用LCD1602显示器液晶显示出来。

采用DS18B20对室内坏境进行温度测量报警,人性化的设计提醒忙碌人们要注意天气温度变化,冬天要保暖御寒,夏天防止高温中暑,通过键盘可以进行手动时间定时、校时闹铃设定,环境温度上下限设定报警等等。

该系统较传统时钟不仅测量精确度高,工作稳定,而且功能可以扩展,使用起来方面,可以广泛用于人们日常生活中,所以具有较好的实用价值。

第二章总体设计

2.1本设计实现的功能和要求

1、基于单片机的多功能万年历,采用LCM1602液晶显示,显示项目有:

年月日、星期、时分秒、带有闹钟功能,带温度显示,高低温报警。

2、采用时钟芯片DS1302,走时非常精确。

板载3V纽扣电池,断电重新上电无需重新设置时间,由3V提供时钟芯片继续计时。

同时自动随时期更变星期。

3、采用DS18b20温度传感器,温度精确显示到0.1度。

并且可以设置高低温度报警。

4、带闹钟功能,且闹钟时间可调,上电默认为:

11:

00:

00,具有掉电闹钟时间保存功能,并可设置闹钟开关等功能。

5、四个键操作:

设置时间、加减、闹钟切换等。

蜂鸣按键提示音功能。

2.2设计的选择方案和论证

2.2.1单片机芯片的选择方案和论证

方案一:

采用89C51芯片作为硬件核心,采用FlashROM,内部具有4KBROM存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。

方案二:

采用AT8C52,片内ROM全都采用FlashROM,能以3V的超底压工作,同时也与MCS-51系列单片机完全该芯片内部存储器为8KBROM存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。

本设计选择采用AT89C52作为主控制系统。

2.2.2显示模块选择方案和论证

方案一:

采用LED液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用LED液晶显示屏。

方案二:

采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。

方案三:

采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。

本设计采用了LED数码管作为显示。

2.2.3时钟芯片的选择方案和论证

方案一:

直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。

采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。

所以不采用此方案。

方案二:

采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA。

本设计采用DS1302时钟芯片。

2.3.4温度传感器的选择方案与论证

方案一:

使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻值随温度变化而变化的特性,采集这两个电阻变化的分压值,并进行A/D转换。

此设计方案需用A/D转换电路,增加硬件成本而且热敏电阻的感温特性曲线并不是严格线性的,会产生较大的测量误差。

方案二:

采用数字式温度传感器DS18B20,此类传感器为数字式传感器而且仅需要一条数据线进行数据传输,易于与单片机连接,可以去除A/D模块,降低硬件成本,简化系统电路。

另外,数字式温度传感器还具有测量精度高、测量范围广等优点。

综上各方案所述,对此次作品的方案选定:

采用AT89S52作为主控制系统,DS1302提供时钟,数字式温度传感器,LED数码管动态扫描作为显示。

2.3总体设计框图

本次设计的基于单片机控制的电子万年历,其具有年、月、日、星期、时、分、秒的显示等功能;具有高低温报警功能;可以设置闹铃的功能。

如图2-1所示为硬件总体设计框图。

其具体实现过程就是由主控制发送信息给DS1302时钟芯片再由时钟芯片反馈给单片机,再由主控制器传送给LCD显示信息。

并且可以在键盘设置模块输入修改时间,设置闹铃等信息,当键盘设置时间、日期时,单片机主控制根据输入信息,通过串口通信传送给DS1302时钟芯片,DS1302芯片读取当前新信息产生反馈传送给单片机,然后单片机根据控制最后输送显示信息到LCD模块上显示。

本设计总体框图如图2-1所示。

 

图2-1硬件设计总体框图

第三章硬件设计

3.1主要元器件介绍

3.1.1单片机简介

单片机引脚图如图3-1所示。

图3-1单片机引脚图

VCC:

供电电压。

GND:

接地。

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口作为AT89C51的一些特殊功能口。

管脚备选功能

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2/INT0(外部中断0)

P3.3/INT1(外部中断1)

P3.4T0(记时器0外部输入)

P3.5T1(记时器1外部输入)

P3.6/WR(外部数据存储器写选通)

P3.7/RD(外部数据存储器读选通)

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

3.1.2传感器DS18B20介绍

DS18B20“一线总线”数字化温度传感器是DALLAS最新单线数字温度传感器,同DS1820一样,DS18B20也支持“一线总线”接口,测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。

DS1822的精度较差为±2°C。

现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。

适合于恶劣环境的现场温度测量,与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。

而且新一代产品更便宜,体积更小。

DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。

可选更小的封装方式,更宽的电压适用范围。

分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。

DS18B20的性能是新一代产品中最好的!

性能价格比也非常出色!

DS1822与DS18B20软件兼容,是DS18B20的简化版本。

省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为±2°C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。

继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。

DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。

DS18B20内部结构主要由四部分组成:

64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

3.1.3LCD1602液晶显示介绍

1、LCD1602显示器的结构:

1602LCD的RAM地址映射及标准字库表,液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。

要显示字符时要先输入显示字符地址,也就是告诉模块在,哪里显示字符。

内部显示地址如图3-2所示。

图3-21602的内部显示地址

2、主要技术参数:

显示容量:

16×2个字符,芯片工作电压:

4.5—5.5V,工作电流:

2.0mA(5.0V),模块最佳工作电压:

5.0V,字符尺寸:

2.95×4.35(W×H)mm。

3、引脚功能说明如表3-1,引脚图如图3-3所示。

图3-31602引脚图

表3-11602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明。

编号

符号

引脚说明

编号

符号

引脚说明

1

VSS

电源地

9

D2

数据

2

VDD

电源正极

10

D3

数据

3

VL

液晶显示偏压

11

D4

数据

4

RS

数据/命令选择

12

D5

数据

5

R/W

读/写选择

13

D6

数据

6

E

使能信号

14

D7

数据

7

D0

数据

15

BLA

背光源正极

8

D1

数据

16

BLK

背光源负极

3.2各模块设计

3.2.1主控制电路

单片机最小化系统如图3-4所示。

图3-4单片机最小化系统

单片机最小系统确保单片机的正常工作,主要由晶振电路和复位电路组成。

任何复杂的单片机系统,都是在单片机最小系统这个基础上通过添加模块设计出来的。

1、单片机的引脚40要接电源端,采用+6V电源供电。

2、晶振电路

单片机的18、19引脚接外部晶振,晶振的频率决定了单片机系统的时钟频率。

比如晶振的频率选择12MHZ,那么单片机工作的时钟频率就是12MHZ。

单片机常用的晶振的频率是11.0592MHZ,12MHZ,通常一个单片机系统共用一个晶振,便于各部分保持同步。

晶振上还要接两个起振电容,可在20~40pF间选取。

本设计的晶振由1个12MHZ的晶振,2个33pF起振电容组成。

3、复位电路

单片机的引脚9是复位端。

单片机系统在刚上电时,或者是发生故障,都要进行复位。

本设计采用的复位电路,是手动按键复位电路。

例如频率为12MHZ,即每机器周期为1us,引脚9只需持续时间2us以上的高电平,就发生复位。

4、单片机的引脚31,决定是访问内部存储器还是外部存储器。

由于现在单片机内部存储器的容量都足够大,基本都是从内部存储读取程序,即不需要扩展外部存储器,因此EA引脚应该应该接高电平。

但是,如果将EA引脚悬空,会导致程序执行不正常。

3.2.2LCD1602显示模块设计

LCD1602显示器工作原理

线段的显示:

点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。

例如屏的第一行的亮暗由RAM区的000H——00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。

这就是LCD显示的基本原理。

字符的显示:

用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。

这样一来就组成某个字符。

但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。

原理图如图3-5所示。

 

 

图3-5LCD1602显示器模块原理图

3.2.3DS18B20温度传感器模块

温度采样在本系统采用了美国DALLAS公司生产的单总线式数字温度传感DS18B20,测温分辨率高达0.0625摄氏度,将结果转换成串行数字信号。

由于采用单总线结构,节级了口线的资源,本系统只占用了p2.0口对温度经行采样。

原理图如图3-6所示。

 

图3-6DS1802温度传感模块原理图

3.2.4键盘输入模块设计

本系统四个按键占用了四个I/O口,分别接在AT89S52单片机的P2口的P2.4,P2.5,P2.6,P3.4引脚上。

采用独立式键盘接口,每个按键各接一根输入线,通过检测输入线的电平状态很容易判断哪个键被按下。

根据多功能数字钟设置键,加一键,减一键,确定键,通过键盘可以随时手动设置日期、时间、闹钟、温度上限和下限数值报警功能。

原理图如图3-7所示。

 

图3-7键盘模块原理图

3.2.5蜂鸣器模块设计

该系统采用一个普通的发光二极管和一个蜂鸣器组成来实现闹钟、当时间到达设定值,蜂鸣器响,蜂鸣器占用了1个I/O口P2.7,它的动作由P2.7控制,当温度超过设定温度上下限值时,二极管导通,二极管和蜂鸣器发出光声报警。

原理图如图3-8所示。

 

图3-8蜂鸣器发声电路

3.2.6DS1302时钟电路模块

DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时实钟/日历和字节静态RAM,通过简单的串行接口与单片机进行通信。

实时时钟/日历电路提供秒分时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。

DS1302与单片机之间能简单地采用同步的方式进行通信,仅需用到三个口线1、RST复位2、I/O数据线3、SCLK串行时钟。

时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。

DS1302工作时功耗很低保持数据和时钟信息时功率小于1mW。

原理图如图3-9所示。

图3-9时钟电路原理

第四章软件设计

1、系统流程图

本设计以单片机为控制中心,以温度传感器DS18B20,液晶显示LCD1602,时钟芯片DS1302组成外围电路,通过相关的编程,用手动按键进行复位和时间控制调整,共同完成日期、时间、温度报警和闹钟功能。

软件流程图如图4-1所示。

 

图4-1软件流程图

 

图4-1软件流程图

2、时间日期时间显示控制流程图

DS1302的初始化,依次先在秒寄存器、分寄存器、时寄存器、日寄存器、月寄存器、周寄存器、年寄存器中写入世间的初始值,然后单片机再从秒寄存器、分寄存器、时寄存器、日寄存器、月寄存器、周寄存器、年寄存器中读出时间的读出时间的初始值,经由LCD1602显示出来。

当通过按键来调整时间时,就是在相应的寄存器中写入调整后的时间值,然后单片机再从相应的寄存器中读出调整后的时间值,经由LCD1602显示调整后的时间。

流程图如图4—2所示。

 

图4-2日期时间设置流程图

3、温度闹钟设置报警

本模块通过按设定闹钟和高低温的值,通过程序控制和蜂鸣模块,共同实现闹钟和温度报警功能。

流程图如图4-3所示。

图4-3温度闹钟设置报警流程图

第五章安装与调试

5.1安装制作

1.清理元器件,重点辩别认清电阻器阻值及相应代号,对电阻、电容、发光二极管、三极管、电源变压器等要用万用表一一检测。

2.安装时,电阻器、整流二极管采用卧式插装,并近贴电路板。

瓷介电容器、电解电容器、三极管等采用立式插装,也要近贴电路板。

发光二极管安装时可不讲极性,因为其供电电路为交流电源,其余有极性元件:

如电解电容器、整流二极管、稳压二极管、三极管、集成电路等必须按正确的极性插装,否则电路不会正常工作。

3.焊完元器件后,在覆铜面剪掉多余元器件的引线,最好用斜口钳,可防止因剪线而使覆铜皮损坏。

4.焊接完后,请认真对照电路原理图、安装图检查电路板上有无漏焊、错焊、短路、断路等错误现象,确认无误后才能通电。

5.2硬件调试

5.2.1布线的原则与焊接

画硬件原理图时应注意些原则:

1、按统一的要求选择图纸幅面、图框格式、电路图中的图形符号、文字符号。

2、应根据万年历的工作原理,将各元器件自左到右,自上而下地排成数列。

3、图面安排时,电源部分一般安排在左下方,输入端在左侧,输出端在右侧。

4、图中可动元件的工作状态,原则上应处于开端、不加电的工作位置。

5、将所有芯片的电源和引脚全部利用,不要悬空。

在实际画的过程中应考虑自己的制作水平,应防止制作出的PCB板有断线等情况的发生。

在画PCB时应注意先看元器件的实物,然后看软件是否有相对应的库元器件,如果没有就需要根据实物自己画出相应的元件,以免做好板后才发现元器件是

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

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1