1、 目录第章 绪论 11.1 引言 1第章 概述 32.1 系统总概述 .32.2 总体方案设计 .32.3 硬件设计 .32.4 软件设计 .42.5 硬件结构框图 2.1.42.6 软件结构框图 2.2.4第 3 章 硬件设计 53.1 硬件设计主电路图见附录 9.153.2 硬件选择 .53.2.1 MCU 的选择与简介 53.2.2 单片机最小系统的实现 .103.2.3 数据采集系统 .133.2.4 模数转换的选择与简介 .143.2.5 按键选择与简介 .163.2.6 外围扩充存储器 .173.2.7 时钟芯片选择与简介 .183.2.8 上拉电阻 .203.2.9 液晶显示器简
2、介。 .203.2.10 报警电路 .233.2.11 硬件仿真环境介绍 .24第 4 章 软件设计 .264.1 编写语言的选择 264.2 编译软件介绍 .274.3 主程序模块 324.4 模数转换 334.5 按键模块 334.6 时钟模块 344.7 液晶显示模块 34第 5 章 系统仿真 35第 6 章 结束语 37致 谢 38参考文献 .39附录 .40毕业设计(论文) 1第章 绪论1.1 引言1.1.1 甲醛的特性及危害甲醛是一种无色,有强烈刺激性气味的气体。易溶于水、醇和醚。甲醛在常温下是气态,通常以水溶液形式出现。其 37%的水溶液称为福尔马林,医学和科研部门常用于标本的防
3、腐保存。此溶液沸点为 19.5故在室温时极易挥发,随着温度的上升甲醛的挥发速度加快。在我国有毒化学品优先控制名单中甲醛列居第二位。1.1.2 甲醛的来源1.室内装修所用的合成板材,如胶合板、细木工板、高密度板、刨花板。这些板材中甲醛起胶合剂、防腐剂的作用,主要用于加强板材的硬度、防虫、防腐。板材中残留的和未参与反应的甲醛逐渐向周围环境释放,是室内空气中甲醛的主要来源。2.用合成板材制造的家具,厂家为了追求利润使用不合格的板材,再粘贴面材料时使用不合格的胶水,造成家具中甲醛含量超标。3.含有甲醛成分并有可能向外界散发的各类装饰材料,如壁纸、地毯、油漆。第章 概述2.1 系统总概述本论文主要完成甲
4、醛检测仪软件设计,设计内容包括:A/D 转换器程序、控制程序、超标报警、键盘检测、数据显示等。本系统采用单片机为控制核心,以实现便携式甲醛检测仪的基本控制功能。系统主要功能内容包括:数据处理、时间设置、开始测量、超标报警、键盘检测、自动休眠:仪器若不进行称量操作,5 分钟后自动进入休眠模式,以降低电源消耗。本系统设计采用功能模块化的设计思想,系统主要分为总体方案设计、硬毕业设计(论文) 2AT89C52LCD传 感 器信 号 调 制A/D 按 键时 钟外 围 扩 充 存 储 器件和软件的设计三大部分。2.2 总体方案设计室内甲醛污染对人身体健康影响较大,标准规定的方法绝大多数是化学分析法,使用
5、的手段是实验室分析仪器 主要有比色计、 分光光度计、化学滴定、 气相和液相色谱。但这些方法费力费时、成本高、自动化程度低过程复杂、大多数过程是人工操作很难做到现场实时控制随着传感器和计算机技术的不断发展,现已有了基于单片机的便携式甲醛测试仪,并且测试测试范围、分辨率、精度、稳定性已接近标准要求。因此本设计可选用基于电化学原理的甲醛传感器,其原理是空气中的甲醛在电极下发生氧化反应,产生的扩散电极电流与空气中的甲醛浓度成正比,通过检测放大电路和放大倍数的调整经 A/D 转换后送单片机 、由单片机现场自动控制检测并显示甲醛浓度。由于甲醛含量超量的话,将对人体健康造成很大的影响。具有民用价值的便携式甲
6、醛检测仪的研制受到了人们的高度重视。设计能够满足生活需要,携带方便的便携式甲醛检测仪迫在眉睫。针对目前的现状,本系统设计遵守体积小,质量轻,性价比高的原则。2.3 硬件设计硬件设计部分主要包括:(MCU、A/D、时钟芯片、LCD、外围扩展数据RAM)等芯片的选择; 硬件主电路设计、数据采集、模数转换电路设计、液晶显示电路设计、外围扩充存储器接口电路、时钟电路、复位电路、键盘接口电路等功能模块电路设计。2.4 软件设计软件设计部分主要包括:编写语言的选择、主程序/子程序流程的设计、功能模块程序的编写、软/硬件结合调试与演示。主要包括一下功能模块:51 驱动、检测、液晶显示、时钟、键盘、模数软换。
7、2.5 硬件结构框图 2.1毕业设计(论文) 3系 统 初 始 化 、 按 键 扫 描显 示 选 择 菜 单测 量 相 关 设 置数 据 处 理 显 示 数 据串 行 通 信上 位 机 软 件 对 数 据 处 理图 2.12.6 软件结构框图 2.2图 2.2第 3 章 硬件设计3.1 硬件设计主电路图见附录 9.13.2 硬件选择3.2.1 MCU 的选择与简介1. 单片机的概念和特点现代社会中,尽管 PC 机的应用已经相当普遍,但是,在工控领域,在日益追求小而精、轻而薄的自动化控制器、自动化仪器仪表、家电产品等方面,PC毕业设计(论文) 4机仍有所不相适宜的地方。而工业控制、仪器仪表、家电
8、产品等市场广阔,要求 PC 机技术与之相适应。在这种情况下,单片机应运而生了(也称作微型计算机) 。微型计算机的基本机构是由中央处理器、储存器、和 I/O 设备构成的。所谓的单片机是指将微型计算机 3 个单元的多个分体中的主要功能用 1 个集成电路芯片来实现,该芯片具有一个微型计算机的基本功能。这种超大规模集成电路芯片即称为单片微型计算机,通常简称单片机。单片机具有以下特点:(1) 受集成度限制,片内存储容量较小,一般 8 位单片机的 ROM 小于 8/16K 字节,RAM 小于 256 字节,但可在外部扩展,通常 ROM、RAM 可分别扩展至 64K 字节。(2) 可靠性好。芯片本身是按工业
9、测控环境要求设计的,其抗工业噪声干扰优于一般通用 CPU;程序指令及常数、表格固化在 ROM 中不易破坏;许多信号通道均在一个芯片内,故可靠性高。(3) 易扩展。片内具有计算机正常运行所必需的部件。芯片外部有许多供扩展用的三总线及并行、串行输入/输出管脚,很容易构成各种规模的计算机应用系统。(4) 控制功能强。为了满足工业控制要求,一般单片机的指令系统中具有极丰富的条件分支转移指令、I/O 口的逻辑操作以及位处理功能。一般说来,单片机的逻辑控制功能及运行速度均高于同一档次的微处理器。(5) 一般单片机内无监控程序或系统通用管理软件,只放置有用户调试好的应用程序。但近年来也开始出现了在片内固化有
10、 BASIC 解释程序的单片机。2. 单片机的发展与趋势由于单片机具有以上特点,因此在工业控制、数据采集、智能仪器仪表、智能化设备和各种家用电器等领域得到广泛的应用。随着微电子工艺水平的提高,近十年来单片微型计算机有了飞速的发展。归纳起来,它是沿着两条路发展的:1.改进集成电路制造工艺,提高芯片的工作速度,降低工作电压和降低功耗:2.在保留共同的 CPU 体系结构,最基本的外设装置(如异步串行口,定时器等)和一套公用的指令系统的基础上,根据不同的应用领域,把不同的外设装置集毕业设计(论文) 5成到芯片内,在同一个家族内繁衍滋生出各种型号的单片机。另外在单片机的应用中,可靠性是首要因素,为了扩大
11、单片机的应用范围和领域,提高单片机自身的可靠性是一种有效方法。近年来,单片机的生产厂家在单片机设计上采用了各种提高可靠性的新技术,主要表现在一下几点:(1) EFT(Electrical Fast Transient)技术(2) 低噪音布线技术及驱动技术(3) 采用低频时钟总之,单片机在目前的发展形势下,表现出几大趋势: 可靠性及应用水平越来越高,和 internet 连接已是一种明显的走向; 所集成的部件越来越多; 功耗越来越低; 和模拟电路结合越来越多。3.单片机选择 本系统采用单片机为控制核心。单片机/MCU 主要有 51 基本型和 52 增强型,而相比之下 52 型比 51 型功能更为
12、强大,ROM 和 RAM 存储空间更大,52还兼容 51 指令系统。基于本系统设计内容的需要,综合考虑后,我们选择单片机 ATME 公司的 AT89C52 为控制核心;主要基于考虑 AT89C52 是一个低电压,高性能 CMOS 8 位单片机,片内含 8k bytes 的可反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器(RAM ) 、6 个中断源;时钟频率 0-24MHz;器件采用高密度、非易失性存储技术生产,并兼容标准 MCS-51 指令系统,功能强大。(2)AT89C52 介绍AT89C52 是美国 ATMEL 公司生产的低电压,高性能 CMOS 8 位
13、单片机,片内含 8K bytes 的可反复擦写的只读程序存储器(PEROM)和 256K bytes 的随机存取数据存储器,器件采用 ATMEL 公司的高密度,非易失性存储技术生产,与标准MCS-51 指令系统及 8052 产品引脚兼容,片内置通用 8 位中央处理器和 FLASH存储单元,功能强大,AT89C52 单片机适合于许多较为复杂控制应用场合。主要性能参数: 与 MCS-51 产品指令和引脚完全兼容 8K 字节可重擦写 FLASH 闪存存储器 1000 次写/擦循环毕业设计(论文) 6 时钟频率:0Hz24MHz 三级加密存储器 256 字节内部 RAM 32 个可编程 I/O 口线
14、3 个 16 位定时/计数器 图 3.1 引脚图 6 个中断源 可编程串行 UART 通道 低功耗的空闲和掉电模式 片内振荡器和时钟电路AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,片内振荡器及时钟电路,AT89C52可以按照常规方法进行编程,也可以在线编程。同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作
15、直到下一个硬件复位。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发本.AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。AT89C52引脚功能:Vcc:电源电压GND:地P0 口:P0 口是一组 8 位漏极开路型双向 I/O 口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动 8 个 TTL 逻辑门电路,对端口 P0 写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位)和数据总线复用,在访问器件激活内部上拉电阻。在 Flash 编
16、程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。毕业设计(论文) 7P1 口:P1 是一个带内部上拉电阻的 8 位双向 I/O 口,P1 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1” ,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(I IL) 。与 AT89C51 不同之处是,P1.0 和 P1.1 还可分别作为定时/计数器 2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),参见表 2-1。Flash 编程和程序校验期间,P1
17、 接收低 8 位地址。表 2-1 为 P1.0 和 P1.1的第二功能表 3-1 P1.0 和 P1.1 的第二功能P2 口:P2 是一个带有内部上拉电阻的 8 位双向 I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口 P2 写“1” ,通过内部的上拉电阻把端口拉到高电平,同时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL) 。在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行MOVDPTR 指令)时,P2 口送出高 8 位地址数据。在访问 8 位地址的外部数据存储器(如执行 MOVRI 指令
18、)时,P2 口输出 P2 锁存器的内容。Flash 编程或校验时,P2 亦接收高位地址和一些控制信号。P3 口:P3 口时一组带有内部上拉电阻的 8 位双向 I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对 P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的 P3 口将用上拉电阻输出电流(IIL) 。P3 口作为一般的 I/O 口线外,更重要的用途是它的第二功能,如表 2-2 所示:此外,P3 口还接收一些用于 Flash 闪速存储器编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电
19、引 脚 号 功 能 特 性P1.0 T2( 定 时 /计 数 器 2外 部 计 数 脉 冲 输 入 ) , 时 钟 输 出P1.1 T2EX( 定 时 /计 数 2捕 获 /重 装 载 触 发 和 方 向 控 制 )毕业设计(论文) 8平将使单片机复位。ALE/ :当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。一般情况下,ALE 仍以时钟振荡频率的 1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。表 3-2 P3 口第二功能端口引脚 第二功能P3.0 RXD(串行输入口
20、)P3.1 TXD(串行输出口)P3.2 (外中断 0)0P3.3 (外中断 1)1P3.4 T0(定时/计数器 0)P3.5 T1(定时/计数器 1)P3.6 (外部数据存储器写选通)P3.7 (外部数据存储器读选通)对 Flash 存储器编程器件,改引脚还用于输入编程脉冲( ) 。如有必要,可通过对特殊功能寄存器(SFR)区中的 8EH 单元的 D0 位复位,可禁止 ALE 操作。该位置复位后,只有一条 MOVX 和 MOVC 指令才能将 ALE 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE 禁止位无效。 :程序储存允许( )输出是外部程序存储器的读选通信号,当 A
21、T89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次 有效,即输出两个脉冲。在次期间,当访问外部数据存储器,将跳过两次 信号。 /VPP:外部访问允许。欲使 CPU 仅访问外部程序存储器(地址为0000H-FFFH) , 端必须保持低电平(接地) 。需要注意的是:如果加密位 LB1被编程,复位时内部会锁存 端状态。如 端为高电平(接 Vcc 端) ,CPU 则执行内部程序存储器中的指令。Flash 存储器编程时,该引脚加上12V 的编程允许电源 Vpp,当然这必须是该器件是使用 12V 编程电压 Vpp。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。毕业设计(论文) 9X
22、TAL2:振荡器反相放大器的输出端。3.2.2 单片机最小系统的实现介绍完以上的单片机系统的核心芯片之后,我们采用 AT89C52 来实现一个单片机系统能运行起来的需求最小的系统,电路图见图 3.2:图 3.2 单片机最小系统图上图由晶振电路和复位电路,AT89C52 芯片组成,构成最小的单片机系统, 下面详细介绍其中的两个电路。(1)晶振电路单片机工作的过程中各指令的微操作在时间上有严格的次序,这种微操作的时间次序称作时序,单片机的时钟信号用来为单片机芯片内部各种微操作提供时间基准,89c52 的时钟产生方式有两种,一种是内部时钟方式,一种是外部时钟方式。内部时钟方式即在单片机的外部接一个晶
23、振电路与单片机里面的振荡器组合作用产生时钟脉冲信号,外部时钟方式是把外部已有的时钟信号引入到单片机内,此方式常用于多片 89C52 单片机同时工作,以便于各单片机的同步,一般要求外部信号高电平的持续时间大于 20ns.且为频率低于 12MHz 的方波。对于 CHMOS 工艺的单片机,外部时钟要由 XTAL1 端引入,而 XTAL2 端应悬空。本系统中为了尽量降低功耗的原则,采用了内部时钟方式。毕业设计(论文) 10电路图见图 3.3:图 3.3 晶振电路图在 89C52 单片机的内部有一个震荡电路,只要在单片机的 XTAL1 和XTAL2 引脚外接石英晶体(简称晶振)就构成了自激振荡器并在单片
24、机内部产生时钟脉冲信号,图中电容器 C1 和 C2 稳定频率和快速起振,电容值在 530pF,典型值是 22pF,晶振 CYS 选择的是 12MHz。(2)复位电路复位的意义单片机开始工作的时候,必须处于一种确定的状态,否则,不知哪是第一条程序和如何开始运行程序。端口线电平和输入输出状态不确定可能使外围设备误动作,导致严重事故的发生;内部一些控制寄存器(专用寄存器)内容不确定可能导致定时器溢出、程序尚未开始就要中断及串口乱传向外设发送数据因此,任何单片机在开始工作前,都必须进行一次复位过程,使单片机处于一种确定的状态。复位电路原理当在 89C52 单片机的 RST 引脚引入高电平并保持 2 个
25、机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态) 。实际应用中,复位操作有两种基本形式:一种是上电复位,另一种是上电与按键均有效的复位,上电复位见图 3.4,要求接通电源后,单片机自动实现复位操作。常用的上电复位电路如下图所示。上电瞬间 RST 引脚获得高电平,随着电容 C1 的充电,RST 引脚的高电平将逐渐下降。毕业设计(论文) 11图 3.4 上电复位电路图RST 引脚的高电平只要能保持足够的时间(2 个机器周期) ,单片机就可以进行复位操作。该电路典型的电阻和电容参数为:晶振为 12MHz 时,C1 为22uF:R1 为 8.2 ;振为 6MHz
26、 时,C1 为 22uF,R1 为 1 .KK本设计中复位电路采用的是开关复位电路,开关 S9 未按下是上电复位电路,上电复位电路在上电的瞬间,由于电容上的电压不能突变,电容处于充电(导通)状态,故 RST 脚的电压与 VCC 相同。随着电容的充电,RST 脚上的电压才慢慢下降。选择合理的充电常数,就能保证在开关按下时是 RST 端有两个机器周期以上的高电平从而使 AT89C52 内部复位。开关按下时是按键手动复位电路,RST 端通过电阻与 VCC 电源接通,通过电阻的分压就可以实现单片机的复位。电路图见图 3.5: 毕业设计(论文) 12图 3.5 复位电路图3.2.3 数据采集系统(1)从
27、传感器过来的电压信号,必须放大,滤波,采集,转换才能被 MCU 识别和处理。由于假若每一路都设置放大、滤波等器件,那么成本会很大,所以信号的采集一般用多路模拟通路进行选择。然而选择多路模拟开关时必须考虑以下的几个因素:通道数量、切换速度、开关电阻和器件的封装形式。总之数据采集与硬件的选择有很大的关系。(2)甲醛传感器的选择甲醛传感器由甲醛探头 CH20 传感器组成。甲醛传感器/甲醛模块(CH2O 传感器)详细介绍如下表 3-3:(3)测量电路测量电路由 CH20/S-10 甲醛传感器,ADC0832 组成。 甲醛传感器由甲醛探头和 CH20 传感器组成。当空气被内部的采样系统吸收后,产生一个与
28、甲醛浓度成正比的电压信号, 该电压信号经 AD0832 与AT89C52 单片机相连,在显示器上显示出甲醛的浓度值,当超过国家规定的标准时报警。表 3-3 传感器参数表名称 甲醛传感器 CH2O/S-10:测量范围 0- 10 ppm毕业设计(论文) 13最大负荷 50ppm工作寿命 空气中 3 年输 出 1200300nA/ppm4-20mA(甲醛模块分辨率 0.05 ppm温度范围 -20 to 45压力范围 大气压10%响应时间 (T 90) 50 seconds湿度范围 -20 to 45零点输出 (纯净空体,20) 0.1 ppm最大零点漂移(20to 40)0.1 ppm长期漂移
29、2% /每月推荐负载值 10线性度输出 线性重 量 约 32 克3.2.4 模数转换的选择与简介实现 A/D 转换的基本方法很多,有计数法、逐次逼近法、双斜积分法和并行转换法。由于逐次逼近式 A/D 转换具有速度,分辨率高等优点,而且采用这种方法的 ADC 芯片成本低,所以我们采用逐次逼近式 A/D 转换器。逐次逼近型 ADC 包括 1 个比较器、一个模数转换器、1 个逐次逼近寄存器(SAR)和 1 个逻辑控制单元。逐次逼近型是将采样信号和已知电压不断进行比较,一个时钟周期完成 1 位转换,依次类推,转换完成后,输出二进制数。这类型 ADC 的分辨率和采样速率是相互牵制的。优点是分辨率低于 1
30、2 位时,价格较低,采样速率也很好。由于 ADC0832 模数转换器具有 8 位分辨率、双通道 A/D 转换、输入输出电平与 TTL/CMOS 相兼容、5V 电源供电时输入电压在 05V 之间、工作频率为250KHZ 、转换时间为 32 微秒、一般功耗仅为 15MW 等优点,适合本系统的应用,所以我们采用 ADC0832 为模数转换器件。电路图见图 3.6 如下: ADC0832 具有以下特点:毕业设计(论文) 14 8 位分辨率; 双通道 A/D 转换; 输入输出电平与 TTL/CMOS 相兼容; 5V 电源供电时输入电压在 05V 之间; 工作频率为 250KHZ,转换时间为 32S;图
31、3.6 模数转换电路图 一般功耗仅为 15mW; 8P、14PDIP(双列直插)、PICC 多种封装; 商用级芯片温宽为 0C to +70C,工业级芯片温宽为40C to +85C;芯片接口说明: CS_ 片选使能,低电平芯片使能。 CH0 模拟输入通道 0,或作为 IN+/-使用。 CH1 模拟输入通道 1,或作为 IN+/-使用。 GND 芯片参考 0 电位(地)。 DI 数据信号输入,选择通道控制。 DO 数据信号输出,转换数据输出。 CLK 芯片时钟输入。 Vcc/REF 电源输入及参考电压输入(复用)。ADC0832 为 8 位分辨率 A/D 转换芯片,其最高分辨可达 256 级,
32、可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的毕业设计(论文) 15模拟电压输入在 05V 之间。芯片转换时间仅为 32S,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过 DI 数据输入端,可以轻易的实现通道功能的选择。单片机对 ADC0832 的控制原理:正常情况下 ADC0832 与单片机的接口应为 4 条数据线,分别是CS、CLK、DO、DI。但由于 DO 端与 DI 端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将 DO 和 DI 并联在一根数据线上使用。
33、当ADC0832 未工作时其 CS 输入端应为高电平,此时芯片禁用,CLK 和 DO/DI 的电平可任意。当要进行 A/D 转换时,须先将 CS 使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK 输入时钟脉冲,DO/DI 端则使用 DI 端输入通道功能选择的数据信号。在第1 个时钟脉冲的下沉之前 DI 端必须是高电平,表示启始信号。在第 2、3 个脉冲下沉之前 DI 端应输入 2 位数据用于选择通道功能,(4)测量量程本系统的量程为 0-10ppm。由于我所使用的是 8 位 ADC0832,所以本系统的精度为:10ppm/256=0.03
34、9ppm。3.2.5 按键选择与简介本系统应用有人机对话功能,该功能即能随时发出各种控制命令和数据输入以及和 LCD 连接显示运行状态和运行结果。键盘分为:独立式和矩阵式两类,每一类按其编码方法又可以分为编码和非编码两种。由于本系统只有UP、DOWN 、OK 、CANCEL 4 个控制命令,所需按键较少,所以本系统选择独立式按键。电路图见图 3.7:毕业设计(论文) 16图 3.7 按键电路图独立式按键是直接用 I/O 口线构成的单个按键电路。每个独立式按键占有一根 I/O 口线。各根 I/O 口线之间不会相互影响。在此电路中,按键输入部采用低电平有效,上拉电阻保证了按键断开时,I/O 口线有
35、确定的高电平,(AT89C52 .P1 口内部接有上拉电阻)所以就不需要再外接上拉电阻。键盘抖动的消除:抖动的消除大致可以分为硬件削抖和软件削抖。硬件削抖是采用硬件电路的方法对键盘的按下抖动及释放抖动进行削抖,经过削抖电路后使按键的电平信号只有两种稳定状态。软件削抖的基本原理是当检测出键盘闭合时,先执行一个延时子程序产生数毫秒的延时,待接通时的前沿抖动消失后再判别是否有健按下。当按键释放时,也要经过数毫秒延时,待后沿抖动消失后再判别键是否释放。由于应用硬件削抖还需要外加器件,成本相对较高,所以本系统选择软件延时削抖的方法。3.2.6 外围扩充存储器基于 AT89C52 单片机具有 8KB 的程
36、序存储器(ROM) ,256B 的数据存储器(RAM) ,由于考虑到本系统的数据处理与存储所需的容量,现在需要扩充存储器的容量。在应用中要保存一些参数和状态,据了解基于 EEPROM 的存储芯片是一种很好的选择。我们选定了 AT24C128 存储器。电路图见图 3.8:毕业设计(论文) 17图 3.8 外围扩充存储电路图3.2.7 时钟芯片选择与简介因为此系统需要记录测量发生的时间,所以需要时钟芯片来记录不同人在不同时间的监测数据,因此我们在系统中加入了时钟芯片。对时钟芯片的要求首先是低功耗,其次是编程简单,缩短程序开发时间,实际上也就缩短了系统用于实际生产所用的开发周期以及成本,在本系统,我
37、们选择了DS1302时钟芯片。我们时钟电路选择的芯片是 DS1302,其内含一个实时时钟/日历和 31 字节静态 RAM,可以通过串行接口与单片机通信。而通信时,仅需要 3 个口线:(1)RES(复位) , (2)I/O 数据线, (3)SCLK(串行时钟) 。时钟/RAM 的读/写数据以一字节或多达 31 字节的字符组方式通信。其工作时功耗很低,广泛应用于电话,传真,便携式仪器等产品领域。 DS1302 主要性能有:时实时钟能计算 2100 年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年的调整能力;读/写时钟或 RAM 数据时,有单字节和多字节传送两种方式;与 DS1202/TT
38、L 兼容。 DS1302 引脚概述:X1,X2:振荡源,外接 32。768KHZ 晶振;SCLK:串毕业设计(论文) 18行时钟输入端。 日历、时钟寄存器与控制字对照表、日历、时钟寄存器命令字、取值范围以及各位内容对照表。见表 3-4。表 3-4 时钟控制字对照表DS1302 数据输入/输出时序数据输入是在输入写命令字的 8 个 SCLK 周期之后,在接下来的 8 个 SCLK 周期中的每个脉冲的上升沿输入数据,数据从 0 位开始。如果有额外的 SCLK 周期,它们将被忽略。数据输出是在输出命令字的 8 个 SCLK 周期之后,在接下来的 8 个 SCLK 周期中的每个脉冲的下降沿输出数据,数
39、据从 0 位开始。需要注意的是,第一个命令字 各位内容寄存器名写操作读操作取值范围 7 6 5 4 30秒寄存器 80H 81H 0059 CH 10SEC SEC分寄存器 82H 83H 0059 0 10MIN MIN时寄存器 84H 85H 0112 002312/24 0 10/(A/P)HR HR日寄存器 86H 87H 0128,29、30、310 0 10DATE DATE月寄存器 88H 89H 0112 0 0 0 10M MONTH周寄存器 8AH 8BH 0107 0 0 0 0 DAY年寄存器 8CH 8DH 0199 10YEAR YEAR写保护寄存器 8EH 8FH
40、 WP 0 0 0 0慢充电寄存器 90H 91H TCS TCS TCS TCS DSDSRSRS时钟突发寄存器BEH BFH毕业设计(论文) 19数据位在命令字节的最后一位之后的第一个下降沿被输出。只要 RST 保持高电平,如果有额外的 SCLK 周期,将重新发送数据字节,即多字节传送。其电路图见图 3.9:图 3.9 时钟电路图3.2.8 上拉电阻在主电路图中接在 P0 口处有一个排阻 RP1 ,由于 P0 口没有内接上拉电阻,为了为 P0 口外接线路有确定的高电平,所以要接上排阻 RP1,以确保有 P0 口有稳定的电平。电路连接图见图 3.10:图 3.11 上拉电阻电路图3.2.9
41、液晶显示器简介。对于本系统要有显示装置完成显示功能。显示器最好能够显示数据、图形。考虑到同种LCD显示器的屏幕越大体积越大,功耗越大的特点,在同类产品中选用了AMPIRE128X64液晶显示模块。该型号显示器消耗电量比较低,可以满足系毕业设计(论文) 20统要求。该类液晶显示模块采用动态的液晶驱动,可用5V供电。1AMPIRE128X64液晶模块引脚说明AMPIRE128X64 液晶共有 22 个引脚,其引脚说明如表 3-5 所示:表 3-5 液晶引脚说明图管脚名称 管 脚 定 义/CSA 片选 1/CSB 片选 2VSS 数字地VDD 逻辑电源+5VV0 对比度调节R/S 指令数据通道R/W
42、 读写选择E 使能选择DB0-DB7 数据线CS1 片选 1CS2 片选 2/RES 复位信号VEE 液晶驱动电源LED+ LED 背光正电源LED- LED 接地端表 3-5AMPIRE128X64 液晶显示模块与计算机的接口电路有两种方式。它与单片机的接口方法分为直接访问方式和间接控制方式。直接访问方式是把液晶模块作为存储器或 I/O 设备直接接在单片机的总线上,单片机以访问存储器或 I/O 设备的方式操作液晶显示模块的工作。间接控制方式则不使用单片机的数据系统,而是利用它的 I0 口来实现与显示模块的联系。即将液晶显示模块的数据线与单片机的 Pl 口连接作为数据总线,另外三根时序控制信号
43、线通常利用单片机的 P3 口中未被使用的 IO 口来控制。这种访问方式不占用存储器空间,它的接口电路与时序无关,其时序完全靠软件编程实现。本系统采用间接控制方式。液晶显示工作原理介绍毕业设计(论文) 21以下为液晶显示电路接线原理图见图 3.12图3.12 液晶电路图2.在单片机系统中应用液晶显示器作为输出器件有以下几个有点:1)显示质量高:由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。2)数字式接口:液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。3)体积小
44、、重量轻:液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻的多。4)功耗低:相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC 上,因而耗电量比其他显示器要少的多。3. LCD 按其显示方式通常可以分为断式、点字符式、点阵式等。还有黑白、多灰度、彩色显示等。液晶显示原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就显示黑色,这样就可以显示出图形。针对于本系统要显示汉字,字母,数字等,以及其在一个界面同时要显示的字数,本系统要以图形的形式显示各运行结果,我们最终选择 AMPIRE128x64 型号的 LCD。 毕业设计(论文
45、) 22 字符显示:字符显示比较复杂,一个字符由 16x8 点阵组成,即要找到和显示屏是某几个位置对应的 RAM 区的字节,再使不同的位置为1其他的为0 ;为1的点亮,为0的不亮,这样就显示出一个字符。4.汉字显示:汉字显示和字符显示的原理差不多,就是一个汉字一般采用图形方式,事先从微机中用字模软件提取要显示的汉字的点阵码,每个汉字占32B,为为两部分,各 16B。根据在 LCD 上开始显示的行列号及每行的列数就可以找出显示 RAM 的对应地址,送上汉字要显示的第一字节,以此类推,最后送完 32B,这样汉字就显示出来了。系统的液晶显示字体和字母的显示就是按照上述的原理显示的,点阵码是用字模软件
46、在相同的设置区域找出的。然后把提取的点阵码放入编写的 LCD 软件程序里。5.阵码获取过程简介:首先,打开 软件,然后 ,因为汉字占 32B 所以设置其为 高度和宽度16x16。取模方式选择 在文字输入区输入汉字,在点阵区生成点阵码,例如在文字输入区输入“欢”字,其点阵码生成如下3.2.10 报警电路在单片机应用系统中,一般的工作状态可以通过指示灯或数码显示来指示,供操作人员参考,了解系统的工作状况。但对于某些紧急状态,比如系统检测毕业设计(论文) 23到的错误状态等,为了使操作人员不至于忽视,及时采取措施,往往还需要有某种更能引人注意,提起警觉的报警信号。这种报警信号通常有三种类型:一是闪光
47、报警,因为闪动的指示灯更能提醒人们注意;二是鸣音报警,发出特定的音响,作用于人的听觉器官,易于引起和加强警觉;三是语音报警,不仅能起到报警作用,还能直接给出警报种类的信息。其中,前两种报警装置因硬件结构简单,软件编程方便,常常在单片机应用系统中使用;而语音报警虽然警报信息较直接,但硬件成本高,结构较复杂,软件量也增加。单频音报警 实现单频音报警的接口电路比较简单,其发音元件通常可采用压电蜂鸣器,当在蜂鸣器两引脚上加 315V 直流工作电压,就能产生 3kHZ 左右的蜂鸣振荡音响。压电式蜂鸣器结构简单、耗电少,更适于在单片机系统中应用。压电式蜂鸣器,约需 10mA 的驱动电流,可在某端口接上一只
48、三极管和电阻组成的驱动电路来驱动,如图 3.13 所示。在图 2 中,P1.0 接三极管基极输入端,当 P1.0 输出高电平“1”时,三极管导通,蜂鸣器的通电而发音,当 P1.0 输出低电平“0”时,三极管截止,蜂鸣器停止发音。图 3.13 单频音报警电路图基于本系统的需求和功耗要求,只需要基本的报警功能即可,我选择采用的是三极管驱动的单音频报警电路。以下为报警电路接线图见图 3.14毕业设计(论文) 24图 3.14 报警电路图3.2.11 硬件仿真环境介绍Proteus ISIS 是英国 Labcenter 公司开发的电路分析与实物仿真软件。它运行于 Windows 操作系统上,可以仿真、
49、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和 SPICE 电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232 动态仿真、I2C 调试器、SPI 调试器、键盘和 LCD 系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000 系列、8051 系列、AVR 系列、PIC12 系列、PIC16 系列、PIC18 系列、Z80 系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的