基于单片机的语音温度计的设计

更新时间:2024-03-31 21:15:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

学 士 学 位 论 文

系 别: 计算机科学与技术系

学科专业: 计算机科学与技术

姓 名: 王 磊

运 城 学 院

2007年 6 月

基于单片机的语音温度计的设计

系 别:

学科专业:姓 名:指导教师: 计算机科学与技术系 计算机科学与技术 王 磊 朱 铭 琳 运 城 学 院

2007年 6 月

语音温度计的设计

摘 要 随着人们生活水平的提高,各电子产品突飞猛进的发展,电子测量仪也逐渐丰富

起来,原来的模拟产品逐步向数字化综合化转化,并且不断走向人性化。该设计的实现在工农业生产以及科学实验中起到不可忽视的作用,发挥了它灵活轻巧使用方便的特点。

该设计语音播报系统能够充分发挥人性化的性质,利用AT89S51作为单片机的主芯片,配合DS18B20温度传感器,实现带语音播报功能的温度测试仪。并且在实现语音播报当前温度的同时,也实现了数字液晶显示的功能,功能更形象使用更方便智能。

本设计所介绍的语音温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89S51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。 关键词 单片机;温度计;温度传感器;设计

Thermometer of Design

Abstract Along with the time progress and the development, the monolithic integrated

circuit technology already popularized to us lives, the work, the scientific research, each domain, will already become one kind of quite mature technology, this article introduced one kind the digital thermometer which controlled based on the monolithic integrated circuit.This design introduced the digital thermometer and the traditional thermometer compares, has the reading to be convenient, measured the warm scope is broad, measured warm accurate, its output temperature uses the numeral to demonstrate, mainly uses in to measured the warm quite accurate place, or the scientific research laboratory use, this design controller use monolithic integrated circuit

AT89S51, measured the warm sensor uses DS18B20, this thermometer may adjust the demonstration date, the time, may establish, the maximum temperature lowly reports to the police the value.The survey temperature surpasses the hypothesis the temperature bound, starts the buzzer and the indicating lamp reports to the police. The temperature demonstration is stable. The realization temperature demonstrated that, can above achieve accurately requests. Keywords SCM;thermometer;temperature;sensor;Design

目 录

引 言 .............................................................................................................................................................. 1 第1章 绪论 ........................................................................................................................................................ 2

1.1 课题背景 ........................................................... 2 1.2 语音温度计的国内外状况 ............................................. 2 1.3 温度参数、语音播报 ................................................. 3

1.3.1 温度参数 ................................................................................................................................ 3 1.3.2 语音播报 ................................................................................................................................ 3

第2章 硬件设计 ................................................................................................................................................ 4

2.1 方案论证和比较 ..................................................... 4 2.2 设计原理 ........................................................... 4

2.2.1 主控制器 ................................................................................................................................ 4 2.2.2 温度传感器 ............................................................................................................................ 5 2.2.3 DS18B20温度传感器与单片机的接口电路 ......................................................................... 6 2.2.4 主板电路 ................................................................................................................................ 6 2.2.5. 语音温度计显示模块 ............................................................................................................ 7

2.3 设计过程 ........................................................... 7

2.3.1 总体设计 ................................................................................................................................ 7 2.3.2 各模块设计 .......................................................................................................................... 12

2.4 单片机的简介和发展趋势 ............................................ 14

2.4.1 单片机的特点 ...................................................................................................................... 14 2.4.2 单片机的应用领域和发展趋势 .......................................................................................... 15

第3章 软件设计 .............................................................................................................................................. 16

3.1 设计思路 .......................................................... 16

3.1.1 语音温度计设计的基本原理 .............................................................................................. 16 3.1.2 读出温度子程序 .................................................................................................................. 16 3.1.3 显示数据刷新子程序 .......................................................................................................... 18 3.1.4 软件结构设计 ...................................................................................................................... 18

3.2 程序设计 .......................................................... 19

3.2.1 程序总设计 .......................................................................................................................... 19 3.2.2 LED显示程序模块 ............................................................................................................... 19

第4章 系统调试 .............................................................................................................................................. 20

4.1 硬件调试 .......................................................... 20

4.1.1 硬件静态的调试 .................................................................................................................. 20 4.1.2 系统硬件调试 ...................................................................................................................... 20

4.2 软件调试 .......................................................... 21 4.3 软硬联调 .......................................................... 21

结 论 ............................................................................................................................................................ 22 致 谢 ............................................................................................................................................................ 23 参考文献 ............................................................................................................................................................ 24 附 录 ............................................................................................................................................................ 25

基于单片机的语音温度计系统设计

引 言

随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的数字温度计,本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89S51,测温传感器使用DS18B20,本温度计可调整显示日期、时间,可设定最低、最高温度报警值。测量温度超过设定的温度上、下限,启动蜂鸣器和指示灯报警。温度显示稳定。实现温度显示,能准确达到以上要求 。本论文正是以此为出发点,对单片机控制的交通信号灯模型作了较详尽的介绍。

近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。

第 1 页 共 31页

运城学院计算机科学与技术系毕业论文

第1章 绪论

1.1 课题背景

在现代化的工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。例如:在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用MCS-51单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,为自动化和各个测控领域中广泛应用的器件,在工业生产中称为必不可少的器件,尤其是在日常生活中发挥的作用也越来越大。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的问题。

本论文以上述问题为出发点,设计实现了温度实时测量、显示、控制系统。本设计方案具有较高的测量精度,更加适合对温度精度要求较高的化工生产、电力工程等行业,并希望通过本设计得到举一反三和触类旁通的效果。

事实证明,现代化的温度监测控制是社会人性化发展的有力表现之一。

1.2 语音温度计的国内外状况

通过网上查询、翻阅图书了解到目前国内外市场以单片机为核心的温度控制系统很多,而且方案灵活,且应用面比较广,可用于工业上的加热炉、热处理炉、反应炉,在生活当中的应用也比较广泛,如热水器,室温控制,农业中的大棚温度控制。以上出现的温度控制系统产品,根据其系统组成、使用技术、功能特点、技术指标。选出其中具有代表性的几种如下:

虚拟仪器温室大棚温度测控系统:

在农业应用方面虚拟仪器温室大棚温度测控系统是一种比较智能,经济的方案,适于大力推广,改系统能够对大棚内的温度进行采集,然后再进行比较,通过比较对大棚内的温度是否超过温度限制进行分析,如果超过温度限制,温度报警系统将进行报警,来通知管理人员大棚内的温度超过限制,大棚内的温控系统出现故障,从而有利于农作物的生长,提高产量。

工业方面具有时事监控的应用:

在工业方面带有语音播报功能的温度计是一种比较人性智能,应用广泛,它轻巧灵活,操作方便简单,适于广泛推广。

第 2 页 共 31页

基于单片机的语音温度计系统设计

1.3 温度参数、语音播报

1.3.1 温度参数

■基本范围-50℃-110℃

■精度误差小于0.5℃ 1.3.2 语音播报

先录音,能分160段(地址为00H-0A0H)。我们说话平均语速4字/秒,所以20秒我们录80字。

经过计算,每个字占2个地址。我们录音13段。

录音用S1键,放音控制用S2键。录音时按下键后开始录音,录完每段后放开按键,录音停止。

共录13段,录每段时同时用数码管提示,分别用数字0-F来表示。 按语音提示键播报温度,不按不播报。

第 3 页 共 31页

运城学院计算机科学与技术系毕业论文

第2章 硬件设计

2.1 方案论证和比较

方案一

由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。

方案二

进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。

从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。

2.2 设计原理

方案二的总体设计框图

温度计电路设计总体设计方框图如图2.1所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用3位LED数码管以串口传送数据实现温度显示。

LED单片机复位 主 报警点按键调显 示 控制 温 器度 时钟振荡 传 感器

2.2.1 主控制器

图2.1 总体设计方框图

单片机AT89S51具有低电压供电和体积小等特点,四个端口只需要两个口

第 4 页 共 31页

基于单片机的语音温度计系统设计

就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。 显示电路

显示电路采用3位共阳LED数码管,从P3口RXD,TXD串口输出段码。 硬件电路的设计

..VCCDS18B20DS18B20DS18B20单片机.VCC4.7KGNDGNDGND.

图2.2 DS18B20与单片机的接口电路

2.2.2 温度传感器

DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下:

●独特的单线接口仅需要一个端口引脚进行通信;

●多个DS18B20可以并联在惟一的三线上,实现多点组网功能; ●无须外部器件;

●可通过数据线供电,电压范围为3.0~5.5V; ●零待机功耗;

●温度以9或12位数字; ●用户可定义报警设置;

●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; ●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;

第 5 页 共 31页

运城学院计算机科学与技术系毕业论文

2.2.3 DS18B20温度传感器与单片机的接口电路

DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图2.2 所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。

当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。 2.2.4 主板电路

系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等,如图2.3 所示。

图2.3中有三个独立式按键可以分别调整温度计的上下限报警设置,图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时LED数码管将没有被测温度值显示,这时可以调整报警上下限,从而测出被测的温度值。

图2.3中的按健复位电路是上电复位加手动复位,使用比较方便,在程序跑飞时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位。

图2.3 单片机主板电路

第 6 页 共 31页

基于单片机的语音温度计系统设计

2.2.5. 语音温度计显示模块

2.4 语音温度计显示模块

2.3 设计过程

2.3.1 总体设计

基础设计要求:

分模块设计每部分电路,要求各模块工作的可靠性好,抗干扰能力强,可扩展余地充足;模块与模块间要求独立性高。 ⑴ 系统总框图如图2-5所示:

LCD信息演示模块 键盘控制模块 单片机系统 接口电路 温度计录放音演示LED计时模块 第 7 页 共 31页

运城学院计算机科学与技术系毕业论文

图2.5 系统总框图

系统工作流程:

先录音,能分160段(地址为00H-0A0H)。我们说话平均语速4字/秒,所以20秒我们录80字。

经过计算,每个字占2个地址。我们录音13段。

录音用S1键,放音控制用S2键。录音时按下键后开始录音,录完每段后放开按键,录音停止。

共录13段,录每段时同时用数码管提示,分别用数字0-F来表示。 按语音提示键播报温度,不按不播报。

一、语音温度计温馨提示您,当前温度(00H-27H) 三、一(28H-2FH) 四、二(30H-37H) 五、三(38H-3FH) 六、四(40H-47H) 七、五(48H-4FH) 八、六(50H-57H) 九、七(58H-5FH) 十、八(60H-67H) 十一、九(68H-6FH) 十二、十(70H-77H) 十三、度(78H-7FH)

P3.3为录音。p2.7为放音。P3.6为按键 模块说明; a主控制单片机

主控单片机采用一片ATMEL AT89S51。根据题目要求,充分利用了单片机灵活控制的优点,发挥其优势功能,采用单片机控制显示信号灯,提高了系统的灵活性,设置方便。AT89S51芯片本身集成了看门狗(WDT)电路,这是为了系统更加的稳定可靠,避免了系统因为死机而停止工作的情况发生这种做法对于实际上长时间运行在恶劣状况的交通灯控制系统来说是十分必要的。它可以完成自动加载复位,省去人工调整的麻烦,可以做到无人职守。 AT89S51芯片简介:

AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。(如图2-6所示)。

第 8 页 共 31页

基于单片机的语音温度计系统设计

图2.6 AT89S51芯片

此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。 主要功能特性:

· 兼容MCS-51指令系统 · 32个双向I/O口

· 2个16位可编程定时/计数器 · 全双工UART串行中断口线 , · 2个外部中断源

· 中断唤醒省电模式 · 看门狗(WDT)电路

· 灵活的ISP字节和分页编程

· 4k可反复擦写(>1000次)ISP Flash ROM · 4.5-5.5V工作电压 · 时钟频率0-33MHz · 128x8bit内部RAM · 低功耗空闲和省电模式 · 3级加密位

· 软件设置空闲和省电功能 · 双数据寄存器指针 AT89S51的引脚功能介绍: VCC:

AT89S51 电源正端输入,接+5V。 VSS:

第 9 页 共 31页

运城学院计算机科学与技术系毕业论文

电源地端。 XTAL1:

单芯片系统时钟的反相放大器输入端。 XTAL2:

系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一个20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。 RESET:

AT89S51的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。 EA/VPP:

\为英文\Access\的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用 8751 内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(VPP)。 ALE/PROG:

ALE是英文\的缩写,表示地址锁存器启用信号。AT89S51可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0~A7)锁进锁存器中,因为AT89S51是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。 PSEN:

此为\Store Enable\的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。AT89S51可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。 PORT0(P0.0~P0.7):

端口0是一个8位宽的双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当作I/O用时可以推动8个LS的TTL负载。如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0~A7)及数据总线(D0~D7)。设计者必须外加一个锁存器将端口0送出的地址锁住成为A0~A7,再配合端口2所送出的A8~A15合成一个完整的16位地址总线,而定址到64K的外部存储器空间。 PORT2(P2.0~P2.7):

第 10 页 共 31页

基于单片机的语音温度计系统设计

端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了用做一般I/O端口使用外,若是在AT89S51扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当作I/O来使用了。

PORT1(P1.0~P1.7):

端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LS TTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P1.0又当作定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。 PORT3(P3.0~P3.7):

端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。 其引脚分配如下:

P3.0:RXD,串行通信输入。 P3.1:TXD,串行通信输出。 P3.2:INT0,外部中断0输入。 P3.3:INT1,外部中断1输入。 P3.4:T0,计时计数器0输入。 P3.5:T1,计时计数器1输入。

P3.6:WR:外部数据存储器的写入信号。 P3.7: RD,外部数据存储器的读取信号。 b 信号显示

对于数字显示系统,我们使用串行移位寄存器74HC164来控制LED数码管,每2片为1组,用来构成数码管的0~99秒的数字提示,还有4个LCD二极管,用来控制信号灯的亮与暗。使用这样4组串行连接,这种布局设计便于我们PCB板的布局和制作,而且能够更形象的模拟出温度的测控功能。 74HC164静态显示接口芯片简介:

M74HC164为串行输入、并行输出移位寄存器,74HC164为单向总线驱动器。 在串行口为方式0状态,即工作在移位寄存器方式,波特率为振荡频率的十二分之一。器件执行任何一条将SBUF作为目的寄存器的命令时,数据便开始从RXD端发送。在写信号有效时,相隔一个机器周期后发送控制端SEND有效,即允许RXD发送数据,同时,允许从TXD端输出移位脉冲。第一帧(8位)数据发送完毕时,各控制信号均恢复原状态,只有TI保持高电平,呈中断申请状态。第一个74HC164把第一帧数据并行输出,LED1显示该数据。然后,用软件将TI清零,发送第二帧数据。第二帧数据发送完毕,LED1显示第二帧数据,第一帧数据串行输入给第二个74HC164,LED2显示第一帧数据。依此类推,直到把数据区内所有数据发送出去。应该注意,数据全部发送完后,第一帧数据在最后一个LED显示。由于TXD端口最多可以驱动8个TTL门。

第 11 页 共 31页

运城学院计算机科学与技术系毕业论文

2.3.2 各模块设计

(1) .电源模块

采用单片机控制模块提供电源。优点是系统简明扼要,节约成本;缺点是输出功率不高。其电路图如图2-7所示.

图2.7 电源模块

(2) .单片机及复位键控制模块

单片机采用89S51,其中有8K内存可用。对交通灯的控制主要用其中的计数器定时来完成。一方面要完成对各模块的控制,另一方面也要协调好各模块的时序及口线冲突问题。

单片机复位电路是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从该状态开始工作,例如复位后PC=0000H,使单片机从第一个单元取指令。无论是在单片机刚接上电源时,还是断电后或者发生故障后都要复位。单片机复位的条件是:使RST/VPD引脚 加上持续两个机器周期(即24个振荡周期)的高电平。若时钟频率为12MHz,每机器周期为1us,则只需2us以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。单片机常见的复位电路如图2.8按键复位电路所示。

图2.8 按键复位电路

该电路除了具有上电复位电路功能,还可以使用中复位,只要按下图2.9中的RESET键,此时电源VCC经电阻R1 、R2分压,在RESET端产生一个复位高电平。

单片机复位期间不产生ALE和PSEN信号,即ALE=1,这表明单片机复位不会有任何取值操作。

第 12 页 共 31页

基于单片机的语音温度计系统设计

按键复位电路,易掌握,好操作。 (3) 显示模块

LED 用来实现倒计时功能,可直接从 74HC164 的接口上接过来。其控制较为简单。其电路图如图3-7所示。

LED显示器的简单介绍: 简单的LED显示器有LED状态显示器(俗称发光二极管)、LED七段显示器(俗称数码管)和LED十六段码显示器。发光二极管用于显示系统的两种状态:数码管用于显示数字,LED十六段显示器用于字符显示。本文采用LED七段显示器。

数码管的结构 :由8个发光二极管(以下简称字段)构成,通过不同的组合可用来显示数字0~9,字符A~F等符号及小数点“.”。 有共阳极和共阴极两种类型。

共阳极数码管中8个发光二极管的阳极(二极管正端)连在一起。通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输入端为低电平时,该端所连接的字段导通并点亮。根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。

共阴极数码管中8个发光二极管的阴极(二极管负端)连在一起。通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为高电平时,该端所连接的字段导通并点亮。根据发光字段的不同组合可显示出各种数字或字符。同样,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。

我采用共阴极LED数码管

图2.9 LED显示

第 13 页 共 31页

运城学院计算机科学与技术系毕业论文

发光二极管的作用 发光二极管是一种由磷化镓(GAP)等半导体材料制成的、能直接将电能转变成光能的发光显示器件。当其内部有一定电流通过时,它就会发光。

二极管是用来控制哪个灯亮,12个二极管分别接在AT89S51芯片上的P1.0,P1.1,P1.2,P1.3口。如下图2.10所示。

图2.10 二极管显示

2.4 单片机的简介和发展趋势

单片机全称为单片微型计算机(Single Chip Microcomputer),又称微控

制器或嵌入式控制器。它是将计算机的基本部件微型化并集成到一块芯片上的微型计算机,通常片内都含有CPU、ROM、RAM、并行I/O、串行I/O、定时器/计数器、中断控制、系统时钟及系统总线等。随着技术的发展,单片机片内集成的功能越来越强大,并朝着片上系统方向发展。

单片机有着体积小、功耗低、功能强、性能价格比高、易于推广应用等显著优点,在自动化装置、智能仪器仪表、过程控制、通信、家用电器等许多领域得到日益广泛的应用。 2.4.1 单片机的特点

单片机与通用微机相比较,在结构,指令设置上均有其独特之处,其主要特点如下:

(1) 单片机的存储器ROM和RAM是严格区分的.ROM称为程序存储器,只存放程序,固定常数及数据表格.RAM则为数据存储器,用作工作区及存放用户数据.

第 14 页 共 31页

基于单片机的语音温度计系统设计

这样的结构主要是考虑到单片机用于控制系统中,有较大的程序存储空间,把开发成功的程序固化在ROM中,而把少量的随机数据存放在RAM中.这样,小容量的数据存储器能以高速RAM形式集成在单片机内,以加速单片机的执行速度.但单片机内的RAM是作为数据存储器用,而不是当作高速缓冲存储器(CACHE)使用. (2) 采用面向控制的指令系统.为满足控制的需要,单片机有更强的逻辑控制能力,特别是具有很强的位处理能力.

(3) 单片机的I/O引脚通常是多功能的.由于单片机芯片上引脚数目有限,为了解决实际引脚和需要的信号线的矛盾,采用了引脚功能复用的方法.引脚处于何种功能,可由指令来设置或由机器状态来区分.

(4) 单片机的外部扩展能力强.在内部的各种功能部分不能满足应用需求时,均可在外部进行扩展(如扩展ROM,RAM,I/O接口,定时器/计数器,中断系统等),与许多通用的微机接口芯片兼容,给应用系统设计带来极大的方便和灵活性.

2.4.2 单片机的应用领域和发展趋势

单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:

在智能仪器仪表上的应用 在工业控制中的应用 在家用电器中的应用

在计算机网络和通信领域中的应用 单片机在医用设备领域中的应用

纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:

低功耗CMOS化 微型单片化

主流与多品种共存

第 15 页 共 31页

运城学院计算机科学与技术系毕业论文

第3章 软件设计

3.1 设计思路

3.1.1 语音温度计设计的基本原理

主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图4.1所示。

初始化 调用显示子程序 N 1S到? Y Y 初次上电 N 读出温度值温度计算处理显示数据刷新 发温度转换开始命令

图3.1主程序流程图

3.1.2 读出温度子程序

读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图4.2示

第 16 页 共 31页

基于单片机的语音温度计系统设计

发DS18B20复位命令 发跳过ROM命令 发读取温度命令 读取操作,CRC校验 Y N 9字节完? Y CRC校验正?N 移入温度暂存器 结束

图3.2 读温度流程图

第 17 页 共 31页

运城学院计算机科学与技术系毕业论文

3.1.3 显示数据刷新子程序

显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。程序流程图如图4.3及图4.4

温度数据移入显示寄存器 N 十位数0? Y 百位数0? N Y 十位数显示符号百位数不显示 百位数显示数据(不显示符号) 结束

图3.3 显示数据刷新流程图

发DS18B20复位命令 发跳过ROM命令 发温度转换开始命令 结束 图3.4温度转换流程图

3.1.4 软件结构设计

程序总体执行过程是:上电后系统自动进行初始化,定时/计数器开始工作,检测标志单元3CH,根据3CH单元中的内容让交通灯处于对应的状态, 然后调用显示子程序,将3AH和3BH地址内的数据在七段数码管上显示出来。接着循环检测3CH单元中的内容以及特殊情况控制信号和调用显示子程序,让交通灯处于对应的状态,将3AH地址内的数据送七段数码管上显示出来,在整个过程

第 18 页 共 31页

基于单片机的语音温度计系统设计

中定时/计数器中断始终打开等待定时/计数器中断。中断服务程序完成状态的变换(3CH的值的改变)以及LED显示内容(3AH)的改变。

3.2 程序设计

3.2.1 程序总设计

软件设计本系统的软件包括主程序,以及十三段录音和播报的子程序。 (总程序代码见附录) 3.2.2 LED显示程序模块

LED显示程序就是将3AH单元的内容在两个LED显示器上显示出来。 当定时器定时为1秒,时程序跳转到时间显示及信号灯显示子程序,它将依次显示信号灯时间 ,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显示灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初值 ,重新进入循环。 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; LED显示

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

SGL: JB F0,SGL1 ;F0位为1则转移到SGL1执行,判断F0来控制程序流程

MOV A,R0 ;把R0的内容20给了寄存器A LCALL DY1 ;调用显示控制子程序DY1 MOV A,R1 ;把R1的内容40给了寄存器A LCALL DY1 ;调用显示控制子程序DY1

MOV A, R0

LCALL DY1 MOV A, R1 LCALL DY1

LCALL DELAY ;调用DELAY子程序 SJMP DIAOY ;跳到标号DIAOY执行

SGL1: MOV A,R1 ;把R1的内容40给了寄存器A LCALL DY1 ;调用显示控制子程序DY1

MOV A,R0 ;把R0的内容20给了寄存器A

LCALL DY1 ;调用显示控制子程序DY1 MOV A, R1 LCALL DY1 MOV A R0 LCALL DY1 LCALL DELAY ;调用DELAY子程序

第 19 页 共 31页

运城学院计算机科学与技术系毕业论文

第4章 系统调试

近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。

根据方案设计的要求,调试过程共分三大部分:硬件调试、软件调试和软硬联调。

单片机系统的硬件调试和软件调试是不能分开的,许多硬件错误是在软件调试中被发现和纠正的。但通常是先排除明显的硬件故障以后,再和软件结合起来调试以进一步排除故障。可见硬件的调试是基础,如果硬件调试不通过,软件设计则是无从做起。

4.1 硬件调试

4.1.1 硬件静态的调试

1. 排除逻辑故障

这类故障往往由于设计和加工制板过程中工艺性错误所造成的。主要包括错线、开路、短路。排除的方法是首先将加工的印制板认真对照原理图,看两者是否一致。应特别注意电源系统检查,以防止电源短路和极性错误,并重点检查系统总线(地址总线、数据总线和控制总线)是否存在相互之间短路或与其它信号线路短路。必要时利用数字万用表的短路测试功能,可以缩短排错时间。

2. 排除元器件失效

造成这类错误的原因有两个:一个是元器件买来时就已坏了;另一个是由于安装错误,造成器件烧坏。可以采取检查元器件与设计要求的型号、规格和安装是否一致。在保证安装无误后,用替换方法排除错误。 3. 排除电源故障

在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加电后检查各插件上引脚的电位,一般先检查VCC与GND之间电位,若在5V~4.8V之间属正常。若有高压,联机仿真器调试时,将会损坏仿真器等,有时会使应用系统中的集成块发热损坏。 4.1.2 系统硬件调试

电路的调试主要看接口以及连线是否正确。依次检查,直到正常工作。

第 20 页 共 31页

基于单片机的语音温度计系统设计

4.2 软件调试

本系统的软件系统较大,全部采用汇编语言编写,除语法与逻辑差错外,当确认程序没问题时,直接下载到单片机仿真调试。采取自下到上的方法,单独调好每一个模块,最后完成一个完整的系统调试。

软件调试在Wave E2000编译器下进行,源程序编译及仿真调试应分段或以子程序为单位一个一个进行,最后可结合硬件实时调试。

伟福仿真器采用大规模可编程芯片及专用仿真芯片制造, 集仿真器、逻辑分析仪、跟踪器、逻辑笔、 波形发生器、影子存储器、代码覆盖、记时器、程序时效分析、数据时效分析、硬件测试仪、事件触发器于一体的通用仿真器。WAVE6000软件在以前的版本基础上做了增加了许多功能,特别是在窗口管理、项目管理和源文件编辑工具上做了较大改进,在WAVE6000环境下的所有窗口均可以放在窗口的同一块区域,各窗口可以直接切换,节省了窗口的面积,使窗口管理更有效。WAVE6000还增强了项目管理和源文件编辑方面的功能,使得项目、文件切换更方便,有效地后退、前进功能使得修改程序更方便。新增加的书签窗口和断点窗口可以有效地管理断点和书签,使得程序员无需在众多的代码和断点中逐行查询,断点信息和书签信息在各自的窗口中显示一目了然。应用WAVE6000软件进行编译调试程序, 使程序生成十六进制文件。

4.3 软硬联调

系统做好后,进行系统的完整调试。联机仿真必须借助仿真开发装置、示波器、万用表等工具。这些工具是单片机开发的最基本工具。 信号线是联络80S51和外部器件的纽带,如果信号线连结错误或时序不对,那么都会造成对外围电路读写错误。51系列单片机的信号线大体分为读、写信号线、片选信号线、时钟信号线、外部程序存贮器读选通信号(PSEN)、地址锁存信号(ALE)、复位信号等几大类。这些信号大多属于脉冲信号,对于脉冲信号借助示波器(这里指通用示波器)用常规方法很难观测到,必须采取一定措施才能观测到。应该利用软件编程的方法来实现。 (1).初始化后,开始运行。

(2).如果运行过程中出现问题,按复位键后,重新开始。

第 21 页 共 31页

运城学院计算机科学与技术系毕业论文

结 论

经过查阅资料与各位老师的精心指导,终于完成了我的语音温度计的设计。

在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,举个例子,以前写的那几次,数据加减时,我用的都是BCD码,这一次,我全部用的都是16进制的数直接加减,显示处理时在用除法去删分,感觉效果比较好,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。

从这次的课程设计中,我真正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次毕业设计中的最大收获。

第 22 页 共 31页

基于单片机的语音温度计系统设计

致 谢

通过本次毕业设计,我在指导老师朱铭琳老师的精心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,并对当前电子领域的研究状况和发展方向有了一定的了解,单片机领域这对我今后进一步学习计算机方面的知识有极大的帮助。另外,此次毕业设计还获得了计科系各位领导和老师的大力支持。在此,我衷心感谢朱铭琳老师以及物理系孙老师的指导和支持。在未来的工作和学习中,我将以更好的成绩来回报各位领导和老师。

同时,我要感谢我们学院的各位老师,正是由于他们的传道、授业、解惑,让我学到了专业知识,并从他们身上学到了如何求知治学、如何为人处事。特别要要感谢赵润林老师在毕业设计阶段给我的帮助,也要感谢我的母校运城学院,是她提供了良好的学习环境和生活环境,让我的大学生活丰富多姿,为我的人生留下精彩的一笔。

最后,向我的亲爱的家人和亲爱的朋友表示深深的谢意,他们给予我的爱、理解、关心和支持是我不断前进的动力。

最后,衷心地感谢所有关心和帮助过我的所有恩师、所有亲朋好友,衷心地祝愿他们永远幸福、快乐!

第 23 页 共 31页

运城学院计算机科学与技术系毕业论文

参考文献

[1] 全国大学生电子设计竞赛组委会.第三届全国大学生电子设计竞赛获奖作品选编.北京:北京理工大学出版社,1998

[2] 余锡存、曹国华,单片机原理及接口技术,陕西: 西安电子科技大学出版社, 2002.8

[3] 李建忠,单片机原理及应用,陕西:西安电子科技大学出版社,2004.1 [4] 谢瑞和、翁虹, 32位微型计算机原理与接口技术, 北京: 高等教育出版社, 2004.7

[5] 肖来胜、冯建兰,单片机技术实用教程 ,武汉:华中科技大学出版社, 2004.10

[6] 蔡美琴、张为民,MSC-51系列单片机系统及其应用,北京:高等教育出版社(第二版),北京,2005.7v

[7] 李华. MCS -51系列单片机实用接口技术[M] . 北京:北京航空航天大学出版社,1993

[8] 周航慈. 单片机应用程序设计技术[M] . 北京:北京航空航天大学出版社,1991

[9] 曹巧媛. 单片机原理及应用[M] . 北京:电子工业出版社,1997

[10] 何立民. MCS-51系列单片机应用系统设计[M].北京:北京航空航天大学出版社, 1995.

[11] YAN J R ,QIAN X Z. Oscillation and comparision results for delay

difference equations[J ] . J Math Ana Appl ,1992 ,165(2) :346 - 360 [12] Wei Zhou.“Systematic Research on High - Accuracy Fre2quency Measurements and Control”[D] . Shizuoka Universi2ty , doctor dissertation ,Feb. 2000 , pp. 26 - 32 ,46 - 53

第 24 页 共 31页

基于单片机的语音温度计系统设计

附 录

程序设计总代码如下:

TEMPER_L EQU 29H TEMPER_H EQU 28H

FLAG1 EQU 38H;是否检测到DS18B20标志位 A_BIT EQU 20H ;数码管个位数存放内存位置 B_BIT EQU 21H ;数码管十位数存放内存位置 XS EQU 40H ;时间累积单元 ms500 equ 41h ORG 0000H LJMP ZHU ORG 0003H RETI

ORG 000BH RETI ORG 0013H RETI ORG 001BH LJMP DSHI ORG 0030H

ZHU: MOV A,#00H MOV XS,A mov ms500,a mov tmod,#10h MOV TH1,#20H MOV TL1,#00H SETB ET1 SETB EA MOV P1,A MOV p0,A MOV r5,A

clr P3.6;开第二个数码管显示1-C MOV P1,#3FH MOV A,#02H

;JNB P2.1,XSWD;显示温度 LOOP: JNB P2.0,LUYIN JNB P2.1,XSWD;显示温度 setb p2.5;关录音 AJMP LOOP

第 25 页 共 31页

运城学院计算机科学与技术系毕业论文

LUYIN: lcall d10ms jb p2.0,loop

mov dptr,#lyadd;录音地址加一 mov a,r5 inc r5

movc a,@a+dptr mov p0,a

clr p2.5;准备录音

mov dptr,#numtab;录音数码管显示加一 mov a,r5

movc a,@a+dptr mov p1,a ly: jb p2.0,loop sjmp ly

XSWD: MOV A,#00H MOV p0,A MOV R5,#01H

MAIN: JNB P2.1,FYIN;播报语音 jb f0,fyinn SJMP BEGIN

FYIN: ;lcall d10ms ;JB P2.1,MAIN jnb p2.1,$ setb f0

setb tr1;开定时器 mov p0,#00h

clr p2.7;开始放音 fyinn: mov a,ms500 cjne a,#9,still1 ;clr tr0;关定时器 setb p2.7;关放音 lcall d10ms

;**************************第一段完 mov dptr,#lyadd

MOV A,B_BIT ;取十位数 movc a,@a+dptr mov p0,a clr p2.7 ;setb tr0

第 26 页 共 31页

基于单片机的语音温度计系统设计

;mov a,ms500

still1: cjne a,#11,still2 ;clr tr0;关定时器 setb p2.7;关放音 lcall d10ms

;**************************第二段完 mov p0,#70h clr p2.7 ;mov a,ms500

still2: cjne a,#13,still3 setb p2.7;关放音 lcall d10ms

;**************************第三段完 mov dptr,#lyadd

MOV A,A_BIT ;取个位数 movc a,@a+dptr mov p0,a clr p2.7 ;mov a,ms500

still3: cjne a,#14,still4 setb p2.7;关放音 lcall d10ms

;**************************第四段完 mov p0,#78h clr p2.7 ;mov a,ms500

still4: cjne a,#15,begin setb p2.7;关放音 lcall d10ms clr tr1 clr f0

;**************************第五段完 mov ms500,#00h ljmp main

;***********************************************************

BEGIN: LCALL GET_TEMPER;调用读温度子程序 MOV A,29H MOV B,A CLR C RLC A

第 27 页 共 31页

运城学院计算机科学与技术系毕业论文

CLR C RLC A CLR C RLC A CLR C RLC A SWAP A MOV 31H,A MOV A,B

MOV C,40H;将28H中的最低位移入C RRC A MOV C,41H RRC A MOV C,42H RRC A MOV C,43H RRC A MOV 29H,A

LCALL DISPLAY;调用数码管显示子程序

AJMP MAIN; 这是DS18B20复位初始化子程序

;****************************************************************** INIT_1820: SETB P3.4 NOP

CLR P3.4;主机发出延时537微秒的复位低脉冲 MOV R1,#3

TSR1: MOV R0,#107 DJNZ R0,$ DJNZ R1,TSR1

SETB P3.4;然后拉高数据线 NOP NOP NOP

MOV R0,#25H

TSR2: JNB P3.4,TSR3;等待DS18B20回应 DJNZ R0,TSR2

LJMP TSR4 ; 延时

TSR3: SETB FLAG1 ; 置标志位,表示DS1820存在 LJMP TSR5

TSR4: CLR FLAG1 ; 清标志位,表示DS1820不存在 LJMP TSR7

第 28 页 共 31页

基于单片机的语音温度计系统设计

TSR5: MOV R0,#117

TSR6: DJNZ R0,TSR6 ; 时序要求延时一段时间 TSR7: SETB P3.4

RET; 读出转换后的温度值

;*************************************************** GET_TEMPER: SETB P3.4

LCALL INIT_1820;先复位DS18B20 JB FLAG1,TSS2

RET ; 判断DS1820是否存在?若DS18B20不存在则返回 TSS2: MOV A,#0CCH ; 跳过ROM匹配 LCALL WRITE_1820

MOV A,#44H ; 发出温度转换命令

LCALL WRITE_1820;这里通过调用显示子程序实现延时一段时间,等待AD转换结束,12位的话750微秒 LCALL DISPLAY

LCALL INIT_1820;准备读温度前先复位 MOV A,#0CCH ; 跳过ROM匹配 LCALL WRITE_1820

MOV A,#0BEH ; 发出读温度命令 LCALL WRITE_1820

LCALL READ_18200; 将读出的温度数据保存到35H/36H RET;写DS18B20的子程序(有具体的时序要求)

;*********************************************************** WRITE_1820:

MOV R2,#8;一共8位数据 CLR C

WR1: CLR P3.4 MOV R3,#6 DJNZ R3,$ RRC A

MOV P3.4,C MOV R3,#23 DJNZ R3,$ SETB P3.4 NOP

DJNZ R2,WR1

RET; 读DS18B20的程序,从DS18B20中读出两个字节的温度数据

;**************************************************************** READ_18200:

MOV R4,#2 ; 将温度高位和低位从DS18B20中读出

第 29 页 共 31页

运城学院计算机科学与技术系毕业论文

MOV R1,#29H ; 低位存入29H(TEMPER_L),高位存入28H(TEMPER_H) RE00: MOV R2,#8;数据一共有8位 RE01: CLR C SETB P3.4 NOP NOP

CLR P3.4 NOP NOP NOP

SETB P3.4 MOV R3,#9

RE10: DJNZ R3,RE10 MOV C,P3.4 MOV R3,#23

RE20: DJNZ R3,RE20 RRC A

DJNZ R2,RE01 MOV @R1,A DEC R1

DJNZ R4,RE00 RET

;**********************************************************************

DISPLAY:

MOV A,29H

MOV B,#10 ;10进制/10=10进制 DIV AB

MOV B_BIT,A ;十位在A MOV A_BIT,B ;个位在B MOV R0,#4

DPL1: MOV R1,#250 ;显示1000次 DPLOP:

MOV DPTR,#NUMTAB

MOV A,A_BIT ;取个位数

MOVC A,@A+DPTR ;查个位数的7段代码 MOV P1,A ;送出个位的7段代码 CLR P3.6 ;开个位显示 ACALL D1MS ;显示1MS SETB P3.6

第 30 页 共 31页

基于单片机的语音温度计系统设计

MOV DPTR,#NUMTAB

MOV A,B_BIT ;取十位数

MOVC A,@A+DPTR ;查十位数的7段代码 MOV P1,A ;送出十位的7段代码 CLR p3.7 ;开十位显示 ACALL D1MS ;显示1MS SETB p3.7

DJNZ R1,DPLOP ;250次没完循环 DJNZ R0,DPL1 ;4个250次没完循环 RET;1MS延时(按12MHZ算)

;**********************************************************************

D1MS: MOV R7,#80 DJNZ R7,$ RET

DSHI: INC XS mov a,xs

cjne a,#10,tguo mov xs,#00h inc ms500

tguo: MOV TH1,#20H MOV TL1,#00H RETI

d10ms: mov r3,#20 d1: mov r4,#250 djnz r4,$ djnz r3,d1 ret

lyadd: db 00h,28h,30h,38h,40h,48h,50h,58h,60h,68h,70h,78h numtab: db

3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7fh,39h,3Fh,79h,71h END

第 31 页 共 31页

本文来源:https://www.bwwdw.com/article/3kmr.html

Top