毕业设计基于at89s5单片机的暖风机设计_第1页
毕业设计基于at89s5单片机的暖风机设计_第2页
毕业设计基于at89s5单片机的暖风机设计_第3页
毕业设计基于at89s5单片机的暖风机设计_第4页
毕业设计基于at89s5单片机的暖风机设计_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、湖州职业技术学院 毕毕 业业 论论 文文 题题 目目: 基于基于 at89s5 单片机的暖风机设计单片机的暖风机设计 学学 生生 黄方亮 专专 业业 应 用 电 子 技 术 指导教师指导教师 赵高峰 讲师 完成日期完成日期 2010 年 1 月 摘摘 要要 本文设计了一种以 at89s52 单片机为核心的低成本、高精度、微型化 led 显示温湿度监测系统,并使用一些常用芯片如:ds18b20、ghs-20e 等。系统由 单片机、温度检测电路、电机驱动电路、报警电路以及显示电路构成。由芯片 at89s52 控制温湿度传感器检测到的温湿度值进行存储转换,从而在显示电路中 数码管中显示出来。本系统具

2、有易安装检测、软件功能完善,工作可靠、准确度 高等优点。 本文论述了单片机技术研制成功的暖风机的监测系统的基本原理,温湿度传 感器信号采集通过单片机来实现方案。采用软件校正,提高了测量精度和整机的 可靠性。实际使用表明,极大的提高了安全性、可靠性和准确度。 关键词:暖风机,温湿度传感器,单片机 at89s52 目 录 摘要 .i 目 录 .ii 第 1 章 概述 .20 1.1 选题背景 .20 1.2 设计过程及工艺要求 .20 1.3 设计的重点与难点 .20 第 2 章 方案论证与比较 .21 2.1 温度传感器的选择 .21 2.2 湿度传感器的选择 .21 第 3 章 系统总体设计

3、.23 3.1 系统设计 .23 3.2 芯片 at89s52 介绍 .23 3.3 传感器的介绍 .26 3.3.1 传感器的定义及作用.26 3.3.2 传感器的特性.26 3.3.3 温度传感器 ds18b20 .26 3.3.4 湿度传感器 ghs-20e .31 3.3.5 a/d 转换 tlc549 .31 3.4 温湿度采集电路设计 .33 3.5 显示电路的设计 .34 3.6 报警电路的设计 .35 3.7 按键电路的设计 .36 第 4 章 系统调试 .37 4.1 软硬件的调试 .37 4.2 系统软件设计 .37 总 结 .40 致 谢 .41 参 考 文 献 .42

4、附 录 .43 第 1 章 概述 1.1 选题背景 带液晶显示屏的暖风机,越来越受到用户的欢迎,配合液晶屏显示,可显 示环境温度及设定状态,大大方便了产品的使用。目前,各大厂商为了在市场 上占有一席之地,纷纷在遥控型暖风机的性能参数标准,重量,体积,厚度, 色彩,价格大大下功夫。如:海宝驰的 奔驰暖风取暖器nsb-200遥控型暖风机, sanyo的三洋暖风机r-p201mr等,样式新颖,都占有很高的性价比。消费者可以 量身挑选适合自己的。 1.2 设计过程及工艺要求 一、基本功能 吹出恒定的暖风 检测温度 显示温度 过限报警 二、主要技术参数 温度检测范围 : 0-+50 测 量 精 度 :

5、0.5 检 测 精 度 : 1%rh 显 示 方 式 : 温度:二位显示 湿度:四位显示 报 警 方 式 : 三极管驱动的蜂鸣音报警 1.3 设计的重点与难点 本设计的任务是设计一个暖风机系统,可以应用于温湿度有一定要求的区 域。测量时能够清晰稳定地显示出监测结果。 系统组成的设计:各部分硬件的选取很有讲究,要十分合理。 设计的难点是: 1、温度湿度模块设计 2、电机驱动模块 3、显示电路设计 4、流程图及程序的设计 第 2 章 方案论证与比较 当将单片机用作测控系统时,系统总要有被测信号懂得输入通道,由计算 机拾取必要的输入信息。对于测量系统而言,如何准确获得被测信号是其核心 任务;而对测控

6、系统来讲,对被控对象状态的测试和对控制条件的监察也是不 可缺少的环节。 传感器是实现测量与控制的首要环节,是测控系统的关键部件,如果没有 传感器对原始被测信号进行准确可靠的捕捉和转换,一切准确的测量和控制都 将无法实现。工业生产过程的自动化测量和控制,几乎主要依靠各种传感器来 检测和控制生产过程中的各种参量,使设备和系统正常运行在最佳状态,从而 保证生产的高效率和高质量。 2.1 温度传感器的选择 方案一:采用热电阻温度传感器。热电阻是利用导体的电阻随温度变化的 特性制成的测温元件。现应用较多的有铂、铜、镍等热电阻。其主要的特点为 精度高、测量范围大、便于远距离测量。 铂的物理、化学性能极稳定

7、,耐氧化能力强,易提纯,复制性好,工业性 好,电阻率较高,因此,铂电阻用于工业检测中高精密测温和温度标准。缺点 是价格贵,温度系数小,受到磁场影响大,在还原介质中易被玷污变脆。按 iec 标准测温范围-200650,百度电阻比 w(100)=1.3850 时,r0 为 100 和 10,其允许的测量误差 a 级为(0.15+0.002 |t|) ,b 级为 (0.3+0.005 |t|) 。铜电阻的温度系数比铂电阻大,价格低,也易于提纯和加 工;但其电阻率小,在腐蚀性介质中使用稳定性差。在工业中用于-50180 测温。 方案二:采用 ds18s20,独特的单线接口,多点能力使分布式温度检测应

8、用简单,不需要外部元件和备份电源,可用数据线供电,测量范围从- 55+125,增量值为 0.5,并且以 9 位数值方式读出温度且可在 1 秒内把 温度变成数字。综合比较方案一与方案二,方案二更为适合于本设计系统对于 温度传感器的选择。 2.2 电机选择与论证 方案一:采用步进电机,步进电机的一个显著特点就是具有快速启停能力, 如果负荷不超过步进电机所能提供的动态转矩值,就能够立即使步进电机启动 或反转。另一个显著特点是转换精度高,正转反转控制灵活。但是步进电机价 格昂贵。 方案二: 采用直流伺服电机,直流伺服电机具有优良的速度控制性能,它 输出较大的转矩,直接拖动负载运行,同时它又受控制信号的

9、直接控制进行转 速调节,在很多方面具有优越性,但是直流伺服电机价格昂贵,且不易购买。 方案三: 采用普通的直流电机,直流电动机具有优良的调速特性,调速平滑、 方便,调整范围广;过载能力强,能承受频繁的冲击负载,可实现频繁的无级 快速启动、制动和反转;能满足各种不同的特殊运行要求,且价格实惠,容易 购买。 由于普通的直流电机价廉物美,且能完成所需的功能,故我们采用方案三 作为小车的动力源。 2.2 测速模块测速模块: 方案 1: 采用采用霍尔开关元器件 a44e 检测轮子上的小磁铁从而给单片机中断脉冲, 达到测量速度的作用。霍尔元件具有体积小,频率响应宽度大,动态特性好, 对外围电路要求简单,使

10、用寿命长,价格低廉等特点,电源要求不高,安装也 较为方便。霍尔开关只对一定强度的磁场起作用,抗干扰能力强,因此可以在 车轮上安装小磁铁,而将霍尔器件安装在固定轴上,通过对脉冲的计数进行车 速测量。 2.3.2 方案 2: 采用红外传感器进行测速。但无论是反射式红外传感器还是对射式红外传 感器,他们对都对外围环境要求较高,易受外部环境的影响,稳定性不高,且 价格较为昂贵。 通过对方案 1、方案 2 的比较其优缺点,综合多方面因素决定选用方案 1, 其原理图接线如(图 5)所示: (图 5) 第 3 章 系统总体设计 3.1 系统设计 本设计是基于单片机对数字信号的高敏感和可控性、温湿度传感器可以

11、产 生模拟信号,和 a/d 模拟数字转换芯片的性能,我设计了以 at89s52 基本系统 为核心的一套检测系统,其中包括 a/d 转换、单片机、复位电路、温度检测、 按键及显示、报警电路、系统软件等部分的设计。见图 3.1 所示: 红外传感器 tlc549 单片机 at89s52 串行口 led 显示 ds18b20 温度传感器 报警电路 图 3.1 系统总体框图 本设计由信号采集、信号分析和信号处理三个部分组成的。 (一) 信号采集 由红外传感器、ds18b20 及 tlc549 组成; (二) 信号分析 由 a/d 转换器 tlc549、单片机 89s52 基本系统组成; (三) 信号处理

12、 由串行口 led 显示器和报警系统等组成。 3.2 芯片 at89s52 介绍 at89s52 是一种低功耗、高性能 cmos 8 位微控制器,具有 8k 在系统可 编程 flash 存储器。使用 atmel 公司高密度非易失性存储器技术制造,与工 业 80c51 产品指令和引脚完全兼容。片上 flash 允许程序存储器在系统可编程, 亦适于常规编程器。在单芯片上,拥有灵巧的 8 位 cpu 和在系统可编程 flash,使得 at89s52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方 案。 由于此单片机应用在仓库温湿度检测上,所以本设计选用了低功耗、高性 能、低价格、小管脚(40 脚

13、)的 at89s52 单片机。如图 3.2 所示: : 图 3.2 at89s52 芯片引脚图 at89s52 具有以下标准功能:8k 字节 flash,256 字节 ram,32 位 i/o 口 线,看门狗定时器,2 个数据指针,三个 16 位定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。另外,at89s52 可降至 0hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,cpu 停止工 作,允许 ram、定时器/计数器、串口、中断继续工作。掉电保护方式下, ram 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬 件复位为止。

14、引脚功能介绍 1.vcc:电源电压。 2.gnd:地。 3. p0 口:p0 口是一个 8 位漏极开路的双向 i/o 口。作为输出口,每位能驱 动 8 个 ttl 逻辑电平。对 p0 端口写“1”时,引脚用作高阻抗输入。当访问外部 程序和数据存储器时,p0 口也被作为低 8 位地址/数据复用。在这种模式下,p0 具有内部上拉电阻。 在 flash 编程时,p0 口也用来接收指令字节;在程序校验时,输出指令字 节。程序校验时,需要外部上拉电阻。 4. p1 口:p1 口是一个具有内部上拉电阻的 8 位双向 i/o 口,p1 输出缓 冲器能驱动 4 个 ttl 逻辑电平。对 p1 端口写“1”时,

15、内部上拉电阻把端口拉 高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部 电阻的原因,将输出电流(iil) 。 此外,p1.0 和 p1.2 分别作定时器/计数器 2 的外部计数输入(p1.0/t2)和时器/计数器 2 的触发输入(p1.1/t2ex) ,具体 如表 3.1 所示: 在 flash 编程和校验时,p1 口接收低 8 位地址字节。 表 3.1 p1 口的第二功能 引脚号第二功能 p1.0t2(定时器/计数器 t2 的外部计数输入),时钟输出 p1.1t2ex(定时器/计数器 t2 的捕捉/重载触发信号和方向控制) p1.5mosi(在系统编程用) p1.6mis

16、o(在系统编程用) p1.7sck(在系统编程用) 5.p2 口:p2 口是一个具有内部上拉电阻的 8 位双向 i/o 口,p2 输出缓 冲器能驱动 4 个 ttl 逻辑电平。对 p2 端口写“1”时,内部上拉电阻把端口拉 高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部 电阻的原因,将输出电流(iil) 。在访问外部程序存储器或用 16 位地址读取外 部数据存储器(例如执行 movx dptr)时,p2 口送出高八位地址。在这种 应用中,p2 口使用很强的内部上拉发送 1。在使用 8 位地址(如 movx ri)访问外部数据存储器时,p2 口输出 p2 锁存器的内容。在

17、flash 编程和校 验时,p2 口也接收高 8 位地址字节和一些控制信号。 6. p3 口:p3 口是一个具有内部上拉电阻的 8 位双向 i/o 口,p3 输出缓 冲器能驱动 4 个 ttl 逻辑电平。对 p3 端口写“1”时,内部上拉电阻把端口拉 高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部 电阻的原因,将输出电流(iil) 。 p3 口亦作为 at89s52 特殊功能(第二功能) 使用,如表 3.2 所示。 在 flash 编程和校验时,p3 口也接收一些控制信号。 表 3.2 p3 口的第二功能 端口引脚第二功能 p3.0rxd(串行输入口 ) p3.1 txd

18、(串行输出口 ) p3.2into(外中断 0) p3.3int1(外中断 1) p3.4to(定时/计数器 0) p3.5t1(定时/计数器 1) p3.6wr(外部数据存储器写选通 ) p3.7rd(外部数据存储器读选通 ) 此外,p3 口还接收一些用于 flash 闪存编程和程序校验的控制信号。 rst复位输入。当振荡器工作时,rst 引脚出现两个机器周期以上高电平 将是单片机复位。 ale/prog当访问外部程存储器或数据存储器时,ale(地址锁存允 许)输出脉冲用于锁存地址的低 8 位字节。一般情况下,ale 仍以时钟振荡频 率的 1/6 输出固定的脉冲信号,因此它可对外输出时钟或用

19、于定时目的。要注 意的是:每当访问外部数据存储器时将跳过一个 ale 脉冲。 对 flash 存储器编程期间,该引脚还用于输入编程脉冲(prog) 。如有 必要,可通过对特殊功能寄存器(sfr)区中的 8eh 单元的 d0 位置位,可禁 止 ale 操作。该位置位后,只有一条 movx 和 movc 指令才能将 ale 激活。 此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ale 禁止位无效。 psen程序储存允许(psen)输出是外部程序存储器的读选通信号, 当 at89c52 由外部程序存储器取指令(或数据)时,每个机器周期两次 psen 有效,即输出两个脉冲,在此期间,当访问外

20、部数据存储器,将跳过两次 psen 信号。 ea/vpp外部访问允许,欲使 cpu 仅访问外部程序存储器(地址为 0000h-ffffh) ,ea 端必须保持低电平(接地) 。需注意的是:如果加密位 lb1 被编程,复位时内部会锁存 ea 端状态。如 ea 端为高电平(接 vcc 端) ,cpu 则执行内部程序存储器的指令。 flash 存储器编程时,该引脚加上+12v 的编程允许电源 vpp,当然这必 须是该器件是使用 12v 编程电压 vpp。 3.3 传感器的介绍 3.3.1 传感器的定义及作用 一、广义地来说,传感器是一种能把物理量或化学量转变成便于利用的电 信号的器件。国际电工委员会

21、(iec:international electrotechnical committee)的定 义为:“传感器是测量系统中的一种前置部件,它将输入变量转换成可供测量的 信号”。按照 gopel 等的说法是:“传感器是包括承载体和电路连接的敏感元件”, 而“传感器系统则是组合有某种信息处理(模拟或数字)能力的传感器”。传感器是 传感器系统的一个组成部分,它是被测信号输入的第一道关口。 二、传感器的作用 1.信息的收集; 2.信息数据的交换; 3.控制信息的采集。 3.3.2 传感器的特性 1、灵敏度高、可靠性强、稳定性好; 2、防尘耐湿、耐高低温、耐冲击、耐振动等严酷环境条件; 3、收发兼用,

22、使用方便。 3.3.3 温度传感器 ds18b20 数字温度传感器 ds-18b20 是美国 dallas 公司生产的 ds18b20 可组网 数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式 多样,适用于各种狭小空间设备数字测温和控制领域。 一、主要特性 ds18b20 温度传感器是美国 dallas 半导体公司最新推出的一种改进型智 能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温。这 一部分主要完成对温度信号的采集和转换工作,由 ds18b20 数字温度传感器及 其与单片机的接口部分组成。数字温度传感器 ds18b20 把采集到的温度通过数 据引脚传到

23、单片机。 (1) ds18b20 的性能特点如下9: 1) 独特的单线接口仅需要一个端口引脚进行通信; 2) 多个 ds18b20 可以并联在惟一的三线上,实现多点组网功能; 3) 无须外部器件; 4) 可通过数据线供电,电压范围为 3.05.5v; 5) 零待机功耗; 6) 温度以 3 位数字显示; 7) 用户可定义报警设置; 8) 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; 9) 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常 工作。 (2) ds18b20 的内部结构 ds18b20 采用 3 脚 pr35 封装,ds18b20 的内部结构,如图 3.

24、3 所示 引脚说明: 地 数据线 可选 图 3.3 ds18b20 封装 64 位 rom 和单线端口 存储器和控制逻辑 暂 存 器 温度传感器 上限触发 th 下限触发 tl8 位 crc 产生 器 电源 控制 dq vdd 图 3.4 ds18b20 内部结构 二 ds18b20 的工作原理 1 ds18b20 的工作时序 根据 ds18b20 的通讯协议,主机控制 ds18b20 完成温度转换须经过三个 步骤: 1). 每一次读写之前都必须要对 ds18b20 进行复位; 2). 复位成功后发送一条 rom 指令; 3). 最后发送 ram 指令,这样才能对 ds18b20 进行预定的操

25、作。 复位要求主 cpu 将数据线下拉 500 微秒,然后释放,ds18b20 收到信号后 等待 1560 微秒左右后发出 60240 微秒的存在低脉冲,主 cpu 收到此信号 表示复位成功。其工作时序包括初始化时序、写时序和读时序,具体工作方法 见图 3.5,3.6,3.7 所示。 (1) 初始化时序 响应脉 冲60240 等待15-60 主机最小480 主机复位脉冲 最小480us 图 3.5 初始化时序 总线上的所有传输过程都是以初始化开始的,主机响应应答脉冲。应答脉 冲使主机知道,总线上有从机设备,且准备就绪。主机输出低电平,保持低电 平时间至少 480us,以产生复位脉冲。接着主机释

26、放总线,4.7k 上拉电阻将 总线拉高,延时 1560us,并进入接受模式,以产生低电平应答脉冲,若为低 电平,再延时 480us12。 (2) 写时序 采 样1545 采 样1545 11 主机写1时序 主机写0时序 图 3.6 写时序 写时序包括写 0 时序和写 1 时序。所有写时序至少需要 60us,且在 2 次独 立的写时序之间至少需要 1us 的恢复时间,都是以总线拉低开始。写 1 时序, 主机输出低电平,延时 2us,然后释放总线,延时 60us。写 0 时序,主机输出 低电平,延时 60us,然后释放总线,延时 2us8。 (3) 读时序 主机采样 主机采样 4545 11 主机

27、写1时序 主机写0时序 图 3.7 读时序 总线器件仅在主机发出读时序是,才向主机传输数据,所以,在主机发出 读数据命令后,必须马上产生读时序,以便从机能够传输数据。所有读时序至 少需要 60us,且在 2 次独立的读时序之间至少需要 1us 的恢复时间。每个读时 序都由主机发起,至少拉低总线 1us。主机在读时序期间必须释放总线,并且在 时序起始后的 15us 之内采样总线状态。主机输出低电平延时 2us,然后主机转 入输入模式延时 12us,然后读取总线当前电平,然后延时 50us4。 2 rom 操作命令 当主机收到 dsl8b20 的响应信号后,便可以发出 rom 操作命令之一,这 些

28、命令如表 3.1.3:rom 操作命令。 三 ds18b20 的测温原理 每一片 dsl8b20 在其 rom 中都存有其唯一的 48 位序列号,在出厂前已写 入片内 rom 中。主机在进入操作程序前必须用读 rom(33h)命令将该 dsl8b20 的序列号读出。程序可以先跳过 rom,启动所有 dsl8b20 进行温度 变换,之后通过匹配 rom,再逐一地读回每个 dsl8b20 的温度数据。 ds18b20 的测温原理如图 3.9 所示,图中低温度系数晶振的振荡频率受温 度的影响很小,用于产生固定频率的脉冲信号送给减法计数器 1,高温度系数 晶振随温度变化其震荡频率明显改变,所产生的信号

29、作为减法计数器 2 的脉冲 输入,图中还隐含着计数门,当计数门打开时,ds18b20 就对低温度系数振荡 器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温 度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计 数器 1 和温度寄存器中,减法计数器 1 和温度寄存器被预置在-55 所对应的一 个基数值。减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当 减法计数器 1 的预置值减到 0 时温度寄存器的值将加 1,减法计数器 1 的预置 将重新被装入,减法计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行 计数,如此循环直到减法计数器 2 计

30、数到 0 时,停止温度寄存器值的累加,此 时温度寄存器中的数值即为所测温度。图 3.5 中的斜率累加器用于补偿和修正 测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未 关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是 ds18b20 的 测温原理。 另外,由于 ds18b20 单线通信功能是分时完成的,他有严格的时隙概念, 因此读写时序很重要。系统对 ds18b20 的各种操作必须按协议进行。操作协议 为:初始化 ds18b20(发复位脉冲)发 rom 功能命令发存储器操作命令 处理数据。见图 3.8 所示: 初始化 ds18b20 跳过 rom 匹配 温度变换延

31、时 1s 跳过 rom 匹配 读暂存器转换成显示码数码管显示 图 3.8 ds18b20 测温流程 减法计数器 斜坡累加器 减到 0 减法计数器 预 置 低温度系数 振 荡 器 高温度系数 振 荡 器 计数比较器 预 置 温度寄存器 减到 0 图 3.9 测温原理内部装置 3.3.4 tlc549 特性特性 一a/d 转换器的特点 tlc549 是美国德州仪器公司生产的 8 位串行 a/d 转换器芯片.可与通用微 处理器控制器通过 i/o clock cs data out 三条口线进行串行接口.具有 4mhz 片内系统时钟和软.硬件控制电路.转换时间最长 45500 次/s,tlc549 允

32、许 的最高转换速率为. 40000 次/s.tlc549 为 40000 次/s. 总失调误差最大为? +- 0.5lsb.典型功耗值为 6mw 采用差分参考电压高阻输入.抗干扰.可按比例量程校 准转换范围。为了把湿度检测电路测出的模拟信号转换成数字量送 cpu 处理, 本系设计选用了 a/d 转换器 tlc549,它片型小.采样速度快.功耗低.价格便宜. 控制简单。 二tlc549 转换器件简介 tlc549 的内部框图和引脚名称如图 3.10 所示: 8 位 模 数 转 换 器 输 出 数 据 寄 存 器 8-1 数据 选择 器和 驱动 器 控制逻辑和输出数据内部系统时钟 采 样 保 持

33、ref+ ref- 3 1 2 analog in cs 5 886 data out 4 7 i/o clock 图 3.10 tlc549 转换器的内部逻辑框图 tlc549 均有片内系统时钟.该时钟与 i/o clock 是独立工作的.无须特殊的 速度或相位匹配其工作时序如图 3.11 所示,当 cs 为高时.数据输出.(data out). 端处于高阻状态.此时 i/o clock 不起作用这种 cs 控制作用允许在同时使用 多片 tlc549 时.共用以减少多路.片 a/d 并用时的 i/o 控制端口.一组通常的控制 时序为: (1) .将 cs 置低内部电路在测得 下降沿后.再等待

34、两个内部时钟上升沿和 一个下降沿后. 然后确认这一变化. 最后自动将前一次转换结果的最高位(d7)位 输出到 data out 端上. (2)前四个 i/o clock 周期的下降沿依次移出第 2.3.4 和第 5 个位 (dd6.d5d4.d3)片上采样保持电路在第 4 个 i/o clock 下降沿开始采样模拟输 入. (3) 接下来的 3 个 i/o clock 周期的下降沿将移出第 6、7、8(d2、d1、d0)个转换位 图 3.11 工作时序图 (4)最后. 片上采样保持电路在第 8 个 i/o clock 周期的下降沿将移出 第 6、7、8(d2、d1、d0)个转换位保持功能将持续

35、 4 个内部时钟周期,.然 后开始进行 32 个内部时钟周期的 a/d 转换 第 8 个 i/o clock 后 cs 必须为 高.或 i/o clock 保持低电平.这种状态需要维持 36 个内部系统时钟周期以等待 保持和转换工作的完成 如果 cs 为低时 i/o clock 上出现一个有效干扰脉冲. 则微处理器/控制器将与器件的 i/o 时序失去同步.若 cs 为高时出现一次有效低 电平. 则将使引脚重新初始化. 从而脱离原转换过程。 在 36 个内部系统时钟周期结束之前. 实施步骤(1)(4),可重新启动一次新 的 a/d 转换.与此同时.正在进行的转换终止.此时的输出是前一次的结果而不

36、是 正在进行的转换结果。 若要在特定的时刻采样模拟信号应使第 8 个 i/o clock 时钟的下降沿与该 时刻对应.因为芯片虽在第 4 个 i/o clock 时钟下降沿开始采样.却在第 8 个 i/o clock 的下降沿开始保存。 3.5 显示电路的设计 led 数码显示管有两种,一种是共阳极数码管,其内部是由八个阳极相连 接的发光二极管组成;另一种是共阴极数码管,其内部是由四个阳极相连接的 发光二极管组成。二者原理不同但功能相同。其外形和内部结构如下图 3.13 所 示: 图 3.13 led 的管脚和电路原理 共阳极 led 数码显示管是将二极管的阳极连接在一起,形成共阳极 led

37、数码显示块的公共端,该公共端接+5v,在共阳极 led 数码显示块中如某个发 光二极管的阴极为低电平时,该发光二极管被点亮;而共阴极 led 数码显示块 的发光二极管阴极连接在一起,形成该模块的公共端(通常称为位选端) ,因此 称为共阴极 led 数码显示器,8 个数码管的另一端通常称为段选端,当显示器 的公共端接低电平,某个发光二极管的阳极接高电平时,该发光二极管被点亮。 用单片机驱动 led 数码管分为静态显示和动态显示。 静态显示就是显示驱动电路具有锁存功能,单片机将所要显示的数据送出 后就不再控制 led,直到下次显示时再传送一次新的显示数据。静态显示的数 据稳定,占用的 cpu 时间

38、少。静态显示中,每一个显示器都要占用单独的具有 锁存功能的 i/o 接口,该接口用于笔划段字型代码。这样单片机只要把显示的 字形代码发送到接口电路,该字段就可以显示发送的字形。要显示新的数据时, 单片机再发送新的数据。 另一种方法是动态扫描显示。由于单片机本生具有较强的逻辑控制能力, 所以采用动态扫描软件译码并不复杂。而且软件译码其译码逻辑可随意编程设 定,不受硬件译码逻辑限制。采用动态扫描软件译码地方式能大大简化硬件电 路结构,降低系统成本。它用分时地方法轮流控制各个显示器地 com 端,使 各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间极为短 暂,但由于人的视觉暂留现象及发

39、光二极管的余辉效应,给人的印象就是一组 稳定的显示数据。 静态显示数据稳定,占用很少的 cpu 时间,但每个显示单元都需要单独的 显 示驱动电路,使用的电路硬件较少;动态显示需要 cpu 时刻对显示器件进 行数据刷新,显示数据有闪烁感,占用的 cpu 时间多,但使用的硬件少,能节 省线路板空间。 本设计的显示电路采用共阳 led 四位数码管和二位数码管,位码用 pnp 三极管驱动。如图 3.14 所示 图 3.14 温湿度 显示电路 3.6 报警电路的设计 报警器的种类很多,比如:扬声器、蜂鸣器等。本设计中选用压电式蜂鸣 器作为报警器。压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及 共

40、鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成。当接通电源后 (1.515v 直流工作电压),多谐振荡器起振,输出 1.52.5khz 的音频信号,阻抗 匹配器推动压电蜂鸣片发声。压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料 制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈 钢片粘在一起。9 设计要求定时时间到时要有声音提醒信号产生,可选择一只蜂鸣器来实现 这一功能。压电式蜂鸣器工作时约需 10ma 的驱动电流,并设计一个相应的驱 动及控制电路。电路设计如图 3.15 所示,蜂鸣器作为三极管 q1 的集电极负载, 当 q1 导通时,蜂鸣器发出鸣叫声音,vt1 截止时,蜂鸣

41、器不发声。 蜂鸣器电路与单片机的接口:q1 的基极接到单片机 p1 口的 p1.5 引脚, 13.5 引脚作为输出口使用。当 p1.6=1 时,q1 导通时,使蜂鸣器的两个引脚间 获得将近 5v 的直流电压,蜂鸣器中有电流通过,而产生蜂鸣音。当 p1.6=0 时, q5 截止,蜂鸣器的两引脚间的直流电压接近于 0v,蜂鸣器不发声。 图 3.15 蜂鸣器报警电路 3.7 按键电路的设计 本设计在按键上运用了按键 1、按键 2、按键 3 分别用于设置、设置+、设 置,三个按键与单片机 p3 口的 p3.7、p3.6、p3.5 一一连接,如图 3.16 所示: 图 3.16 按键设置电路 第 4 章

42、 系统调试 4.1 软硬件的调试 暖风机系统的制作和调试,利用温度度传感器来采集周围环境的温度。根 据设定温度的不同,可适当调整温度正常范围的区间值。当达不到或者超过范 围的通过报警电路进行报警。当再正常范围内时则显示出温度的具体温度值。 硬件电路制作完成并调试好后,便可将程序编译好下载到单片机试运行。 根据实际情况可以修改温度的 初始范围,以适应不同地方,不同条件下的检测 需要。根据所设计的电路参数和程序,温度检测的范围为 0-+50、温度误差 再0.5,系统调试完后应对测量误差和重复一致性进行多次实验分析,不断 优化系统使其达到实际使用的测量要求。 4.2 系统软件设计 本设计就是以 at

43、89s52 单片机为核心。它采用模块化设计,由主程序、 549 读取子程序、ds18b20 读取子程序、键处理子程序、显示子程序等模块组 成。该系统的主程序处于键控循环工作方式,当按下测量键时,主程序开始调 用 549 读取子程序、ds18b20 读取子程序、键处理子程序,并把测量结果用显 示子程序在数码管上显示出来,从而完成整个程序过程。 为了增强系统的可靠性,应在软硬件上采用一些特殊措施。主程序框图如 下图 4.1 所示: 549 读取子程序、ds18b20 读取子程序作用是通过 p1.0 p1.4 端口将采集 到的信号发送给单片机进行处理,在单片机内部处理后,通过显示电路显示出 温湿度值

44、。 549 读取子程序、ds18b20 读取子程序各自完成各自的信号的采集,另外 549 读取子程序还需要通过转换后才能让单片机读取来完成信号的采集。 ds18b20 读取子程序、549 读取子程序如图 4.2 和图 4.3 所示。 开 始 单片机初始化 读取 tlc549 湿度值 数 据 处 理 键 处 理 设 置 读取 ds18b20 温度值 数 据 处 理 显 示 结 束 温度过限 蜂鸣器告警 图 4.1 主程序框图 开始 总 线 复 位 读高位地位字节,并合并 数 据 处 理 是否满足设限温度? 输 出 数 据 结 束 产生报警 y n 图 4.2 ds18b20 读取子程序 结 束

45、tlc549,cs 置低 1.4 微秒后,置 i/o clock 为 高 读 data out ,置 i/o clock 为高 cs 置高 是第 8 位吗? 初始化:cs=0;i/o clock=1,移位计数器为零 y n 图 4.3 549 读取子程序 总 结 本设计系统采用了美国 atmel 公司生产的单片机 at89s52 芯片。以及其 它常用芯片如:温度传感器 ds18b20、直流电机等来设计暖风机电路,实现了 温湿度的读取和显示。本系统具有易安装检测、软件功能完善,工作可靠、准 确度高等优点。 这次毕业设计给我的感受很深刻,使我第一次系统全面的回顾了大学三年 所有的课程:模拟电路、数

46、字电路、编程等等。从中我还体会到了所学理论知 识的重要性:知识掌握得越多,设计得就更全面、更顺利、更好。再有学会了 怎样查阅资料和利用工具书。由于一个人不可能什么都学过,什么都懂,更加 不可能一学就通,因此,当你在设计过程中需要用一些不曾学过的东西时,就 要去有针对性地查找资料。在设计过程中,通过大量的查阅资料,认真研究教 材,对单片机有了更为深刻的理解,在设计软件时,须仔细的分析硬件电路, 画出程序流程图,按着各部分模块编写程序。毕业设计培养了严肃认真和实事 求是的科学态度和吃苦耐劳的精神以及严谨的作风,提高了交流沟通和团体协 作能力。这些对我以后的工作都非常有帮助的。 致 谢 此次毕业设计

47、,我遇到很多问题,通过向老师求教、和同学讨论让我知道 真正完成一项设计是不容易的,在巩固专业知识的同时也让我学到了坚持和努 力,在这里我要谢谢赵高峰老师的悉心指导,帮助解决毕业设计中遇到的许多 问题,还不断向我们传授分析问题和解决问题的办法,并指出了正确的努力方 向,使我在毕业设计过程中少走很多弯路。从他身上学到了很多东西,他认真 负责的工作态度,严谨的治学精神和深厚的理论水平都使我受益非浅。在此表 示深深的敬意与感谢。并对多年来教导关心过我的老师表示深深的谢意和敬意。 参 考 文 献 1李光飞(2005)单片机课程设计实例指导 (第2版)北京航空航天出版 社。 2张志良(2005). 单片机

48、原理及控制技术(第2版).机械工业出版社。 3刘笃仁、韩保君(2003). 传感器原理及应用技术.机械工业出版社。 4刘华东(2006).单片机原理与应用(第2版).电子工业出版社。 5沙占友(2002).智能化集成温度传感器原理与应用m机械工业出版社。 6贾伯年(2000).传感器技术东南大学出版社。 7周志文(2007).c语言程序设计机械工业出版社。 8夏路易(2002).电路原理图与电路板设计教程.北京希望电子出版社。 9赵亮、侯国锐(2003)单片机c语言编程与实例.人民邮电出版社。 10 吉雷(2004)protel99从入门到精通西安电子科技大学出版社。 三、源程序三、源程序 #

49、defineucharunsigned char #define uintunsigned int #define ulong unsigned long #include /导入头文件 #include /导入头文件 #include /导入头文件 #include /导入头文件 sbit setdown =p35;/设置减 sbit setup=p36;/设置加 sbit set =p37;/设置 sbit jdq =p13;/继电器 sbit speak=p15; /报警 sbit gwei=p24; /千位 sbit swei=p23; /十位 sbit bwei=p22; /十位 s

50、bit qwei=p25; /个位 sbit wei6=p26; /位 sbit wei5=p27; /位 sbit fanled =p31; / sbit hotled =p36; / sbit humiled =p37; / sbit fanjdq =p14; / sbit hotjdq =p15; / sfr xsout = 0 x80;/p0=0 x80,p1=0 x90,p2=0 xa0,p3=0 xb0.数据端口 sbit tmdat = p10;/温度 uchartmpbuf6;/临时保存 百位,十位,个位,点位,十点位,正负位,为1为负,为0 为正 /sbit tmdat =

51、p10;/温度 /uchar code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71,0 x00;/显示表 /uchar code table=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 x88,0 x83,0 xc6,0 xa1,0 x86,0 x 8e;/共阳表 uchar code table=0 xa0,0 xbb,0 x62,0 x2a,0 x39,

52、0 x2c,0 x24,0 xba,0 x20,0 x28,0 x30,0 x25,0 xe4,0 x23,0 x64,0 x74;/共阳表 bit xsbz,setbz,setupbz,setdownbz; uchar ms,adjs,setmaxt,setmint,setmaxh,setminh,setmode; uint tmp;/温度 /uint admezhi; /uchartmpbuf5;/临时保存 /* 549控制引脚宏定义 */ sbittlc549_sdo =p13;/ 数据 sbittlc549_cs =p14;/ 片选 sbittlc549_sck =p12;/*549时

53、钟*/ uint adzhi; uint adyzhi; uint adzzhi; uint admezhi; uint xianzhi; uint sdzhi; bit clbz; uchar js; /ad相关 /uint tmp;/温度 uchar setzhi; /设定值 bit setbz,setkbz,setupbz,setdownbz; /设置标志 void delay(int useconds) /延时 int s; for (s=0; suseconds;s+);/延时 ucharreset_bus(void) /ds18b20总线复位 ucharpresence; tmda

54、t = 0; /输出为0 delay(29); /延时 tmdat = 1; /输出为1 delay(3); /延时 presence = tmdat; delay(25); return(presence); void write_bit(char bitval) /ds18b20写入一位命令 tmdat = 0; if(bitval=1) tmdat =1; delay(5); tmdat = 1; void write_byte(char val) /ds18b20 写入一个字节数 uchari; uchartemp; for (i=0; ii; temp write_bit(temp)

55、; delay(5); ucharread_bit(void) /ds18b20读一位 uchari; tmdat = 0; tmdat = 1; for (i=0; i3; i+); return(tmdat); ucharread_byte(void) /读一个字节 uchari; ucharvalue = 0; for (i=0;i8;i+) if(read_bit() value|=0 x01i; delay(6); return(value); void ds18b20_tmp_read(void) /ds18b20读操作 uint temp; uchartemp_lsb,temp_

56、msb; reset_bus();/ds18b20总线复位 write_byte(0 xcc); /ds18b20命令 write_byte(0 x44); /ds18b20命令 delay(20); reset_bus(); write_byte(0 xcc); /ds18b20命令 write_byte(0 xbe); /ds18b20命令 temp_lsb = read_byte(); /ds18b20 读低字节 temp_msb = read_byte(); /ds18b20 读高字节 temp=temp_msb; temp=temp8; temp=temp|temp_lsb; if(

57、temp8) if(sign=0 xf0) tmp=(tmp)+1; /为负 tmpbuf5=1; /elsesign_port=1; else tmpbuf5=0; tmpl=(uchar)(tmp tmph=(uchar)(tmp4) tmpl=tmpl*6.25; tmpbuf4=tmpl%10; tmpbuf3=tmpl/10; tmpbuf2=tmph%10; tmpbuf1=(tmph%100)/10; tmpbuf0=tmph/100; /if(tmpbuf0=0) / /tmpbuf0=10; /if(tmpbuf1=0) /tmpbuf1=10; / /处理 doing()

58、uchar tzhi; tzhi=tmpbuf1*10+tmpbuf2; if(tzhisetmaxt)|(tzhisetmaxh)|(sdzhisetmaxt) fanjdq=1;hotjdq=0;fanled=0;hotled=1;speak=1; if(tzhisetmint)speak=1; if(sdzhisetminh) humiled=0;speak=1;/加湿 if(setminhsdzhi)humiled=1;/关 if(tzhisetmint) */ / /显示处理/ xianshi() int abcd=0; if(setmode!=0) goto xsset; abcd

59、=sdzhi; /abcd%=100 ; xsout=tablesdzhi/10; wei6=0; delay(60); wei6=1; xsout=tablesdzhi%10; wei5=0; delay(60); wei5=1; xsout=table0; qwei=0; delay(60); qwei=1; if(tmpbuf5=1) xsout=0 x7f; else xsout=tabletmpbuf1; bwei=0; delay(60); bwei=1; xsout=tabletmpbuf2; xsout swei=0; delay(60); swei=1; xsout=tabl

60、etmpbuf3; gwei=0; delay(60); gwei=1; return; /设置显示 xsset: xsout=tablesetmode; qwei=0; delay(60); qwei=1; xsout=xsout=0 x7f;/横 bwei=0; delay(60); bwei=1; if(setmode=1) abcd=setmaxt; if(setmode=2) abcd=setmint; if(setmode=3) abcd=setmaxh; if(setmode=4) abcd=setminh; xsout=tableabcd/10; swei=0; delay(6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论