基于单片机的温度时间计算器的设计.docx
- 文档编号:30173030
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:88
- 大小:848.90KB
基于单片机的温度时间计算器的设计.docx
《基于单片机的温度时间计算器的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的温度时间计算器的设计.docx(88页珍藏版)》请在冰豆网上搜索。
基于单片机的温度时间计算器的设计
毕业论文(设计)
基于单片机的温度时间计算器的设计
学生姓名:
于亮
指导教师:
李春晖、讲师
合作指导教师:
专业名称:
通信工程
所在学院:
信息工程学院
2013年6月
摘要
如今随着计算机领域的高速发展,电子产业发展迅猛。
在电子产品生产研发过程中,其主要的核心元器件往往是单片机。
由于它的特殊的结构特点,配合相应的软件语言进行编程,实现功能。
单片机技术作为计算机技术的一个重要的分支,广泛应用于工业控制、智能化仪器,家用电器,甚至电子玩具等各个领域,它具有体积小、功能多、价格低廉、使用方便、系统设计灵活等优点。
单片机将会成为电子产品的重要组成部分。
本论文设计基于单片机的温度时间计算器系统,基于51系列的单片机AT89C52与时钟芯片DS1302、液晶显示器LM016L、温度传感器DS18B20相结合,并且运用C语言对其进行嵌入式编程,使基于单片机的温度时间计算器系统能正常运行和实现功能。
关键词:
单片机,液晶显示器,温度传感器,C语言编程
Abstract
Nowadayswiththerapiddevelopmentofcomputerscience,therapiddevelopmentofelectronicindustry.Intheproductionofelectronicproductsresearchanddevelopmentprocess,SCMisthecorecomponent.Becauseofthespecialstructureofitscharacteristics,combinedwiththecorrespondingsoftwareprogramminglanguage,function.Single-chiptechnologyconductanimportantbranchofcomputertechnology,widelyusedinindustrialcontrol,intelligentinstruments,householdappliances,andvariouselectronictoysandotherfields,ithastheadvantagesofsmallvolume,multiplefunctions,lowprice,easytouse,flexiblesystemdesignetc..SCMwillbecomeanimportantpartofelectronicproducts.Inthispaper,thedesigntemperaturetimecalculatorsystembasedonSCM,51SeriesMCUAT89C52andDS1302clockchip,LM016LLCD,temperaturesensorbasedonthecombinationofDS18B20,andtheuseofClanguageforembeddedprogrammingonit,sothatthetemperaturetimecalculatorsystembasedonSCMwillcirculatenormallyandachievefunction.
Keywords:
singlechipmicrocomputer,LCDdisplay,temperaturesensor,Cprogramminglanguage
第1章前言
1.1研究目的和意义
单片机是一门实践性很强的课程,书本上的实例很少,也不够深入,单纯学习课本上的知识是不能够掌握这门课程的全部知识,通过本次的毕业设计,能从更多的方面去了解单片机以及其余的电子硬件,使自己的硬件设计能力和编程能力都能得到提升。
1.2国内外研究的现状
计算器目前是我们生产和生活中不可或缺的一部分,它超强的计算能力为人们解决了许多算数上的问题。
计算器在生活,学习,科研等领域是一个重要的电子工具。
计算器的发明解决了大量运算效率,解放了人的大脑,提高了生产及研发的效率。
在早些时候,我国使用算盘等辅助工具帮助人们进行简单的计算,而在国外也曾发明过机械式计算器,机械式计算器含有互相联锁的齿轮,一个转过十位的齿轮会使另一个齿轮转过一位,就像拨电话号码盘那样,将数字拨进去,另一个窗口就会显示计算结果[1]。
在此以后,一直要到20世纪50年代末才有电子计算器的出现。
现如今电子计算器的种类繁多,样式新颖,并具有各种附加功能,例如可以显示当前的时间等等。
本次我的设计课题是基于单片机的温度时间计算器的设计,单片机的应用范围之广,功能强大,配合其他电子芯片可以实现各种你想要的功能,本次设计的计算器拥有附加功能,不仅可以达到计算的效果,而且还能够感知当前所在环境的温度并显示在显示屏幕上,并且还能够查看时间,调整时间的精准度。
通过对系统进行C语言的编程使计算器多功能化。
1.3研究内容与方法
对于以上分析论述的结果,我们清楚的知道信单片机在我们生产生活中有很重要的意义。
尤其是对电子产品的设计。
本论文设计基于单片机的温度时间计算器系统,学习单片机以及其余元器件的基本理论,并深入学习元器件的工作原理,并对系统进行C语言的嵌入式,使其能正常工作。
第2章硬件设计
2.1硬件系统的介绍
通过计算机基础等相关课程的学习可知,微型计算机系统由硬件系统和软件系统两部分组成,硬件主要由CPU(CentralProcessingUnit)、内存、内部功能单元和I/O(InputOutput)接口电路等部分组成[2]。
在计算机发展的初期,每一部分至少需要一片集成电路,如图1所示。
单片机是微型计算机的一个分支,与常规微型计算机的区别主要在结构上。
图1微型计算机系统组成示意图
本次毕业设计是基于单片机的温度时间计算器的设计,该系统是由AT89C52单片机、LM016L液晶显示器、DS1302时钟芯片以及DS18B20温度传感器等元器件构成。
通过对其系统进行C语言的嵌入式编程,使它能实现正常的功能。
本次设计的硬件系统结构框图如图2所示。
图2硬件系统结构框图
2.2AT89C52单片机的介绍
常用的AT89C51/52、STC89C51单片机都采用DIP40封装。
图3(a)为DIP40单片机封装外形及引脚分布,图3(b)是单片机的电路符号。
40个引脚按功能分为4个部分,即电源引脚(Vcc和Vss)、时钟引脚(XTAL1和XTAL2)、控制信号引脚(RST、、和ALE)以及I/O口引脚(P0~P3)。
(a)DIP40单片机引脚分布(b)DIP40单片机电路符号
(c)实物外形
图3MCS-51系列单片机的引脚分布图
在单片机生产研发中,AT89C52单片机耗电小、很高的性能处理器,还有可编程Flash存储器,它的空间是8K[3]。
对芯片的程序编写将会被存放在Flash存储器中。
在芯片上的CPU引脚有8个。
因此AT89C52单片机在电子产品设计和生产研发中应用范围大,运算速率快等优点。
本次设计用到的单片机含有8K大小的可反复擦写的只读程序存储器,256×8B的RAM,4×8个传输口线,16位可编程定时计数器有3个,数据传输口全部是双向导通的,芯片内好友晶振电路和时钟电路[3]。
另外,该芯片可降到0Hz静态状态,拥有节电功能。
当芯片不工作时,片内CPU将会停止工作,其余功能引脚将会继续工作。
当没有接通电源时,保存RAM里的内容,晶振停止工作,芯片停止工作,复位时,芯片将会重新工作。
综合考虑设计成本以及实现的功能后,决定采用单片机AT89C52芯片。
2.2.1AT89C52单片机的硬件结构
芯片的硬件结构图如图4所示。
运算单元和控制单元组成了CPU。
运算单元是将数进行四则运算、逻辑关系判断和位运算。
控制单元就像人的大脑掌控所有控制信息,保证芯片的有条不紊的正常运行。
片内除了含8KB的反复可擦写的只读程序存储器。
数据存储单元比51系列的单片机相比大了256×8B的RAM。
器件中凝结了ATMEL公司的高密度、非易失性的存储技术,兼容性强,标准MCS-51指令系统和51产品引脚也对它适用。
图4单片机AT89C52结构框图
2.2.2AT89C52单片机的主要功能特性
1)兼容MCS-51指令系统
2)2个串行中断
3)32个双向I/O口
4)3个16位定时/计数器中断
5)2个读写中断口线
6)2个外部中断源
7)8KB可反复擦写(大于1000次)FLASHROM
8)时钟频率0Hz~24MHz
9)256×8bit内部RAM
10)可编程UART串行通道
11)6个中断源
12)3级加密位
13)软件设置睡眠和唤醒功能
2.2.3AT89C52单片机的引脚介绍
Vcc:
接+5V电源正端
Vss:
接+5V电源地端
P0口:
既可以用作通用I/O口(C=0),又可以用作地址/数据总线(C=1)。
前者是准双向口,后者是真正的双向口。
作为输出口用时,由于其是一组8位漏极开路型双向I/O口,每位将以吸收电流的方式驱动8个TTL逻辑电平。
对端口P0写“1”时,输出呈现高阻态。
在访问外部数据存储单元或程序存储单元时,P0口是作为分时复用的低8位地址/数据总线,访问期间激活内部上拉电阻。
P1口:
仅能作为通用的数据输入/输出口,是唯一的单功能口。
P1口带内部上拉电阻的8位双向传输口,它的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑电平。
对端口写“1”,端口是高电平状态,该口被用作输入口。
用作输入口时,因为内部存在上拉电阻,内部为高电平,外部信号为低电平时会输出一个电流(IIL)。
此外,与AT89C51单片机不同之处是,定时/计数器2的外部计数输入为P1.0口(P1.0/T2)和输出为P1.1口(P1.1/T2EX),具体如表1所示。
表1P1.0和P1.1的第二功能
引脚号
功能特性
P1.0
P1.1
T2时钟输出
T2EX定时/计数2捕获/重装载触发和方向控制
P2口:
既可以用作通用I/O口(C=0),又可以用作地址总线(C=1)。
P2口是具有上拉电阻。
作为一个8位的双向I/O口,P2口的输出缓冲级能够带动四个TTL逻辑电平。
当P2口为“1”,端口的高电平内部的上拉电阻发挥作用,该口可作为输入口。
当使用输出口时,上拉电阻的作用不可忽视,其使内部电平高于外部电平,且产生一个带拉电流(IIL)。
浏览外部程序存储器,P2口是具有高8位地址数据的端口。
同理,在访问16位地址的外部数据存储器时。
P3口:
是双功能口,用作第一功能时是通用I/O口。
作为一般的I/O口线外,P3口更重要的用途是它的第二功能如表2所示。
表2P3口引脚第二功能
引脚号
第二功能
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
RXD(串行输入)
TXD(串行输出)
INT0(外中断0)
INT1(外中断1)
T0(定时/计数器0)
T1(定时/计数器1)
WR(外部数据存储器写选通)
RD(外部数据存储器读选通)
RST:
复位信号无论对什么样的系统都很重要,由于复位系统的存在,用户可以在发生突发事件使程序跑飞时,输入复位信号,使其稳定地重新开始执行程序,保证正常的工作。
对51单片机的复位而言,高电平有效,但必须在该引脚上出现两个周期或两个周期以上的高电。
ALE/:
当8052上电正常工作后,ALE引脚会不断向外输出脉冲信号,输出的频率为振荡器频率的1/6。
当CPU访问外部存储器时,频率为振荡器的1/2,ALE的输出信号作为锁存低8位地址的控制信号;当不访问片外存储器时,正常工作的振荡频率从ALE口输出,所以时钟信号可由ALE口输出信号构成。
:
外部程序存储单元选通信号。
在芯片从外部程序存储单元读取命令时,两次机器周期PSEN才起作用,然后就会有两个脉冲输出。
其中,在浏览到外面的数据存储器时,就会两次不浏览PSEN信号。
/VPP:
引脚为高电平时,CPU访问内部ROM,当PC指针超过0FFFH(4KB)时,自动转向执行外部ROM。
该引脚为低电平,片内ROM不会被访问,直接从片外ROM的0000H开始取指令。
XTAL1:
在片内它作为振荡器倒相放大器的输入端,与外接晶振和微调电容的一端衔接。
如果使用到外部TTL时钟,对该引脚的要求是必须接地。
XTAL2:
在片内它作为振荡器倒相放大器的输出端,与外接晶振和微调电容的另一端衔接,与XTAL1不同,使用到外部TTL时钟时,对引脚的要求是必须作为外部时钟的输入端。
2.2.4AT89C52单片机的存储器单元
单片机有单独的程序存储器和数据存储器。
外部程序存储器和数据存储器都可以64K寻址。
1.程序存储单元
如果EA引脚为高电平时,CPU访问内部ROM,当PC指针超过0FFFH(4KB)时,自动转向执行外部ROM。
该引脚为低电平,片内ROM不会被访问,直接从片外ROM的0000H开始取指令。
2.数据存储单元
该芯片拥有256B的RAM。
特殊功能寄存单元中的内容是在高128B中。
高128B的存储单元也可作为存储空间来用,而不同的寻址方式将会决定你是要访问高存储单元空间还是特殊功能寄存器单元。
但是如果你用的是直接寻址方式,则将会直接访问特殊功能寄存器单元。
2.2.5AT89C52单片机的作用
AT89C52单片机是本次设计的重要元器件,它是各个元器件之间沟通的桥梁,它将与LM016L液晶显示器、DS1302时钟芯片、DS18B20温度传感器等元器件进行数据传输,以达到各个元器件的功能实现,使整个系统正常运行。
AT89C52单片机将与20个功能按键进行结合,计算器的各个功能按键序列及功能如下表3所示。
表3计算器各个功能按键
数字按键
功能按键
7
8
9
÷
功能转换
4
5
6
×
↑
1
2
3
-
↓
清除
0
﹦
﹢
切换
计算器由20个按键组成,分别为数字按键、运算按键以及功能按键。
按下各功能键,执行相对应的操作,其中当前年月,日期,星期,温度均可调整,先选择功能转换键,然后可以增加或减小,按切换键液晶可以当做小型计算器,对应操作由表可知。
数字与运算按键将与AT89C52单片机的P2口相连,功能按键将分别与P3.4、P3.5、P3.6、P3.7口相连。
清除按键将与AT89C52单片机的9号引脚相连。
如图5。
图5功能按键仿真图
单片机的按键方式有直接按键方式、矩阵式键盘等。
按键很多的时候,为了防止I/O口线的不够用的情况,我们一般采用矩阵式键盘。
如图6所示。
图6矩阵按键图
在矩阵式键盘中,导线的水平垂直交叉处不能连接,按键才能使它们连接。
一个并行口可以构成4×4=16个按键,比直接将引脚与键盘相连多出了一倍,当按键越多,之间的区别就很明显了。
如果多添加一条导线就能过形成拥有20个键的形式,如果将导线直接与端口连接则只能再多出一个按键。
经过讨论,按键很多的情况下,我们一般采用矩阵式按键方法。
矩阵式结构的键盘显然比独立式键盘复杂一些,识别也要复杂一些,列线通过电阻接电源,并将行线所接的单片机I/O口作为输出端,而列线所接的I/O口则作为输入端。
这样,当没有键被按下时,由于输入端都是高电平,则行线输出是低电平;若有键按下,则输入线会被下拉,通过读取输入线的电平就可知是否有键按下了。
确定矩阵键盘上哪一个键被按下一般采用“行扫描法”或者“行反转法”。
行扫描法又称为逐行(或列)扫描查询法,此方法应用比较广泛。
一.矩阵按键的工作原理
1.判断键盘中有无键按下
若将所有行线设为低电平,然后检测每条列线的电平,若有一列的电平为低电平,则说明键盘中有键被按下,并且闭合按键的位置在低电平列线与行线相交叉按键之中;如果所有列线都是高电平,则表示矩阵键盘中没有键被按下。
2.判断闭合键所在的位置
在确认有键被按下后,则进行判断按键位置。
其方法是:
将某根行线设为低电平(即当某根行线为低电平时,其它行线均为高电平),行线设置完成后,再逐步检测各个列线的电平状态,若检测到某列为低电平,则闭合按键处于该列线与置为低电平行线的交叉处。
二.举例说明
单片机的P1口用作键盘I/O口,键盘的列线接到P1口的高4位,键盘的行线接到P1口的低4位,也就是把列线P1.4-P1.7分别接4个上拉电阻到电源,把列线P1.4-P1.7设置为输入线,行线P1.0-P1.3设置为输出线,4根行线和4根列线形成16个相交点,如上图6所示。
检测当前是否有键被按下:
检测的方法是P1.0-P1.3输出全“0”,读取P1.4-P1.7的状态,若P1.4-P1.7为全“1”,则说明无键闭合;否则有键闭合。
2.3LM016L液晶显示器的介绍
LM016L与LCD1602原理是一样的,只不过PROTEUS中016没显示调亮度的那两个端口,但并不影响。
在日常生活中,我们对液晶显示器并不陌生例如在计算器等其余电子生产研发产品都会用到,主要显示像1,2,3这样的数字或是像A,B,C这样的英文或是一些特殊的图形。
发光管、LED数码管、液晶显示器是目前的电子产品生产研发的主要硬件。
图7(a)为LCD1602液晶显示器引脚分布图,图7(b)为LCD1602液晶显示器实物图。
(a)引脚分布(b)实物图
图7LCD1602液晶显示器的引脚分布图
在众多液晶显示器中,该显示器的画面质量肯定很清晰。
当有电流到达芯片后,西芯片的颜色鲜艳度和屏幕的亮暗度会一直不变,它们和以前的射线管显示器完全是两个东西,工作条件完全不一样,源源不断的电流冲击才会保证射线管的发光。
所以液晶显示器它不会一闪一闪的。
本次设计的芯片采用的是数字式接口,可以简单的和单片机相连,数据传输通常无阻。
该芯片特别特别的轻,并且还还非常非常的小。
当有源源不断的电流流进芯片是电流会对液晶分子产生作用。
通俗的说吧,该芯片它对电量的需求是很小的,不会过热也不会。
液晶的发现对液晶显示器发展有很多的帮助,电流对屏幕有冲击作用,屏幕就会发光显示。
由于它非常非常的轻巧,可作为非常非常大的电路驱动,使色彩达到最大的饱和。
就像现如今很多很多的电子工具都是这样的。
有很多很多的液晶显示方法,可是我们大部分人比较认可的几个方法是段显示,字符显示和点阵显示。
芯片可以显示很多颜色黑的白的灰的什么的很多很多的。
若按照驱动方式来分,可分为静态驱动、单纯矩阵驱动和主动矩阵驱动三种[4]。
LM016L液晶显示器属于字符式显示方法。
2.3.1LM016L液晶显示器的结构及功能
HD44780是该芯片的控制器,功能指令非常非常的简单一看就会,屏幕上的字符可以左右来回移动,也可以不停的一闪一闪的。
该芯片与单片机并行传输方式分比为8位或4位,控制器由2个寄存器他们的位数分别是8位,指令寄存器(IR)和数据寄存器(DR)忙标志(BF),显示数RAM(DDRAM),字符发生器ROMA(CGOROM)字符发生器RAM(CGRAM),地址计数器RAM(AC)组成[4]。
寄存指令码放在IR中,只可以写入不可以读取。
数据将寄存在DR中,在芯片内部本身自己工作时,数据会被放在DDRAM和CGRAM中,或者是DDRAM和CGRAM中的数据存放在DR中。
高电平给了BF时,该芯片会处于内部模式,就像与外界断了联系,不会与外界交流。
显示字符将存放在DDTAM中,只能存放80个字符码。
8位字符码生成160种的5×7点阵字符和32种的5×10点阵字符组成了CGROM,我么可以将一些不常见的字符放在CGROM中,不过它的大小只能放64K。
DDRAM和CGRAM的地址可以寄存在AC里面,如果IR收到地址码,则IR自动将地址放在AC里面,DDRAM或CGRAM单元会被选择。
2.3.2LM016L液晶显示器的显示
一.线段的显示
显示的形状可以看做M×N个方块构成,假设该芯片的屏幕上最多能有水平行32个,有64个竖线与之相较,这样就保证每8个竖线组成8位即1B,即共64个点组成,屏上32×8个显示单元与显示RAM区256B相对应,你想显示什么东西该范围内就会发光显示出来。
假设屏幕的第一个横行的发光程度由RAM区的00H-08H的8B的内容决定,当(00H)=FFH时,则一根很短很短的亮线在屏幕的最左上角出现,这根线的长度是由8个点组成;当(FFH)=FFH时,则一根很短很短的亮线在屏幕的最右下角出现;当(00H)=FFH,(01H)=00H,(02H)=00H,……(0EH)=00H,(0FH)=00H时,则一根很短很短的亮线在屏幕的最上面出现,亮线与暗线交替出现就会产生虚线。
二.字符的显示
这个方法很麻烦的,6×8或8×8点阵可以构建一个字符,不仅与显示RAM区的8字节位置相对应,而且一个字节有的位是高电平,有的是低电平,高电平的点亮,低电平的点不亮。
你想显示的东西就会出来。
该芯片内部存有一些少许的字符,很多都是比较简单易懂的,但可以让它以文本方式运行,根据你想要显示东西的行列号和每行的列数与显示RAM的地址相仿,在该芯片工作的状态下,送上对应代码,在光标的地方显示你想显示的东西。
三.汉字的显示
该方法就像画图一样,首先我们得知道你想显示的东西的点阵码是多少(一般用字模提取软件),正常的汉子只占32大小的字节,均分成两份,奇数号在左边,偶数号在右边,根据你想显示的东西的行列号及每行的列数与显示RAM地址相对应,在该芯片工作的状态下,送上汉字的第一字节,光标位置往下移动,送第二个字节,换行按列对齐,送第三个字节……直到32大小的字节里的东西完整的送出就会显示你想要的东西[5]。
2.3.3LM016L液晶显示器的参数
该芯片分为有背部发光和没有背部发光,无论哪种全由HD44780控制,从文字中就可知有背部发光的比没有背部发光的肯定要厚一些,它俩的显示原理都是一样的,两个大小情况如下图8所示:
图8LCD1602液晶显示器的规格图
LM016L液晶显示器的主要功能介绍:
1)显示容量:
16×2个字符
2)芯片工作电压:
4.5—5.5V
3)工作电流:
2.0mA(5.0V)
4)模块最佳工作电压:
5.0V
5)字符尺寸:
2.95×4.35(W×H)mm
2.3.4LM016L液晶显示器的引脚说明及控制命令
该芯片是字符显示的方法,共有14个引脚(没有背光效果)还有16条引脚(有背光效果)的,显而易见,多出来的2根线肯定是用在背光发光的,所以15号引脚是背光发光的电源线和16号引脚是地线,它俩的工作情况都是一样的,只是多了个背光效果。
引脚的作用如下表4所示,LM016L液晶显示器的控制命令如下表5所示。
表4LM016L液晶显示器的引脚功能
引脚
符号
功能说明
1
VSS
接地
2
VDD
接+5V电源
3
V0
对比度调整端,接高电平时对比度最低,接低电平时对比度最高
4
RS
寄存器选择,数据寄存器高电平、指令寄存器低电平
5
R/W
读写信号端,读操作高电平,写操作低电平
6
E
使能端,下降沿触发
7
DB0
底4位三态、第0位
8
DB1
底4位三态、第1位
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 温度 时间 计算器 设计