毕业设计基于STC12C5A60S2单片机的室内甲醛检测仪的设计.doc

上传人:仙人指路1688 文档编号:3975272 上传时间:2023-03-30 格式:DOC 页数:58 大小:630.50KB
返回 下载 相关 举报
毕业设计基于STC12C5A60S2单片机的室内甲醛检测仪的设计.doc_第1页
第1页 / 共58页
毕业设计基于STC12C5A60S2单片机的室内甲醛检测仪的设计.doc_第2页
第2页 / 共58页
毕业设计基于STC12C5A60S2单片机的室内甲醛检测仪的设计.doc_第3页
第3页 / 共58页
毕业设计基于STC12C5A60S2单片机的室内甲醛检测仪的设计.doc_第4页
第4页 / 共58页
毕业设计基于STC12C5A60S2单片机的室内甲醛检测仪的设计.doc_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《毕业设计基于STC12C5A60S2单片机的室内甲醛检测仪的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计基于STC12C5A60S2单片机的室内甲醛检测仪的设计.doc(58页珍藏版)》请在三一办公上搜索。

1、青岛农业大学毕 业 论 文(设计) 题 目: 基于单片机的室内甲醛检测仪的设计 姓 名: 王振宇 学 院: 机电工程学院 专 业: 电气工程及其自动化 班 级: 2008.01 学 号: 20082396 指导教师: 岳丹松 2012年6月18日 目 录摘 要IAbstractII1 绪论11.1 引言11.2 甲醛检测仪的种类12 整体设计方案32.1 系统设计的基本要求32.2 系统设计的思想32.3 系统设计方案的对比选择33 设计开发工具介绍53.1 单片机的概念和特点53.2 单片机的发展和趋势63.3 STC12C5A60S2单片机63.4 LTC1049CN8运算放大器73.5

2、LCD1602液晶显示屏83.6 甲醛传感器94 系统硬件设计114.1 系统整体电路的原理114.2 系统晶振电路的设计124.3 系统复位电路的设计124.4 系统放大电路的设计144.5 系统单片机及显示电路的设计144.6 系统报警电路设计155 系统软件设计175.1 程序编写语言介绍175.2 编译软件介绍175.3 主程序模块225.4 模数转换225.5 按键模块245.6 液晶显示模块266 设计总结306.1 全文总结306.2 心得体会30参考文献32致谢33附录34基于单片机的室内甲醛检测仪的设计摘 要 众所周知,甲醛对人体的危害很大, 在当今的社会中甲醛通过各种途径侵

3、入人们的生活,特别是在房屋装修的过程中,装修材料中残留大量的甲醛,所以应如何快速高效的检测室内甲醛的含量是否超标就显得尤为重要。传统的检测方法操作麻烦,而且精度不够高,于此本研究设计了一种在室内具有检测和超限报警功能的智能甲醛检测仪。该设计方案基于STC12C5A60S2单片机,选择英国达特公司生产的甲醛传感器。该系统将传感器输出的电流信号放大后,通过A / D转换电路调整,再通过单片机进行数据处理,最后由LCD显示甲醛浓度值。本设计具有显示报警功能,并且具有功耗低、精度高、便于携带等特点。关键词:甲醛;STC12C5A60S2;传感器;A / D;LCDDesign of Indoor Fo

4、rmaldehyde Detector Based on SCM AbstractAs is known to all, formaldehyde does great harm to human body. Nowadays, peoples life is influence by formaldehyde through different ways, especially when buildings have been decorated. There are amount of the residual formaldehyde in the room. Thus, it is i

5、mportant to detect accurately that if the content of indoor formaldehyde is out of limits. The operation of traditional test methods is troublesome and of low accuracy. Compared with which, an intelligent formaldehyde analyzer which can test the content of indoor formaldehyde and alarm when the form

6、aldehyde is out of limits is designed. Based on the STC12C5A60S2 microcontroller, the design needs a formaldehyde sensor produced by Dartmouth Company. In the system, current signal output by sensor will be amplified and will be adjusted through the A/D converter. Then through the single-chip microc

7、omputer data processing, formaldehyde chrome value will be showed in the liquid crystal displays (LCD). This design has the function of showing alarms and has lots of advantages such as low power consumption, high precision, easy to carry, etc.Keywords: formaldehyde; STC12C5A60S2; Sensors; A/D; LCD1

8、 绪论1.1 引言甲醛是一种无色有强刺激性气味的气体。溶于水、醇类和醚。甲醛在室温下是气体,通常以水溶液的形式存在。37%的水溶液称为福尔马林,医疗和科研部门通常用来做标本的防腐保存。在我们国家有毒化学物质优先控制名单中甲醛位居第二。甲醛一直是世界卫生组织确定为癌症和导致畸形的物质材料1。甲醛可以和蛋白质结合,吸入高浓度甲醛会引起呼吸道严重的刺激和水肿、眼痛、头痛,也可能发生支气管哮喘,人的皮肤直接接触甲醛,可能会引起皮炎、皮肤色斑、皮肤坏死。经常吸入甲醛,也能导致慢性中毒,出现黏膜充血、皮肤刺激疾病、过敏性皮炎、指甲角化以及脆弱等。全身症状有头痛、疲劳、心悸、失眠、体重减轻和植物神经紊乱等2

9、。甲醛的来源途径一般有这个方面:1室内装饰材料里面的合成板材,如胶合板、细木工板、高密度板、刨花板。甲醛在这些板材中起胶合剂、防腐剂的角色,主要用于加强材料的硬度、防虫、腐蚀。板材里的残余和未参与反应的甲醛向周围生态环境逐步释放甲醛,是室内空气中甲醛的主要来源。2使用合成板制造家具,厂家为追求利润的不惜使用不合格的木料板材,再粘贴材料表面时使用不合格的胶水,导致家具的甲醛含量超标。3含有甲醛并且可能会向周围环境发出的各种装饰材料,如墙纸、地毯、油漆等。1.2 甲醛检测仪的种类目前,市场的甲醛检测器有许多不同的种类,其中比较常见的是使用试验纸光电光度法,当甲醛吹到浸有发色剂的试纸上时,浸有发色剂

10、的TAB组合就会发生化学反应使标签颜色发生变化。在接触甲醛后溶解在试纸里的试药就会和甲醛发生化学反应产生化合物,试纸的颜色会从白色变成黄色。颜色改变的程度可以反映出所受光的反射光量,反射光量的强度变化率强度可以作为被测气体的甲醛含量的预测值。预先设定检测线,可以通过测量反应率来检测甲醛浓度的含量。在收集气体的方法上有的是使用自动吸引方式(内置微型空气泵),一些使用扩散式。用测试纸光电光度法分析甲醛的浓度,它的优点是灵敏度高,操作简单,快速测定。但是这种方法在分析甲醛浓度时,往往是目视比色法,它的缺点是:(1)因为许多有色溶液是不够稳定的,不能长久保存,经常需要在测定的时候现配制溶液,比较费时费

11、力费事。(2)目视比色法的精度低,准确率不高,一般相对误差为520。本文设计的便携式甲醛检测仪所使用的甲醛传感器是电化学传感器。它可以使甲醛的浓度转换成微弱的电流信号。这样可以通过电流电压变换电路使微弱的电流信号转换为可以测量的稳定的电压信号,增强了该电信号的稳定性。2 整体设计方案2.1 系统设计的基本要求本次设计的主要内容是设计一种基于单片机的室内甲醛检测仪,主要利用单片机和放大电路对甲醛传感器的输出信号进行采集处理。设计基本要求:(1)快速检测功能:当将仪器至于封闭环境时能快速测出甲醛浓度并显示。(2)超标报警功能:当甲醛浓度超出国标时给予报警提示。2.2 系统设计的思想随着现代电子技术

12、的迅速发展,传感技术已形成一个独立的新兴的高科技领域。传感器的高度自动化、微型化与集成化,减少了对使用者环境和技术的要求,其便携式的特点尤其适合于野外、现场分析的需要。本设计拟采用英国达特公司生产的CH20甲醛传感器,传感器的贵金属电极与挥发的甲醛气体发生反应,产生与挥发的甲醛浓度成正比的电信号。由于甲醛传感器产生的电信号十分微弱,不能直接与控制电路相连接使用,我们将其首先经过一个放大电路,将信号放大,再经过模数转换器将模拟信号转换成数字信号,在单片机电路的作用下,通过LCD将空气中甲醛含量的浓度用数字显示出来3。创新点:(1)使化学检测转化为电信号检测。(2)应用单片机来显示最后结果,成本低

13、。(3)设备便于携带,操作简单。(4)实现单片机控制的智能化。2.3 系统设计方案的对比选择方案一:基于普通51单片机和国产MQ138传感器的设计方案国产MQ138传感器中能基本实现甲醛测量需要,其信号可以经过放大电路,在经过AD转换芯片后送给单片机进行处理最后显示。其工作模块可以分为:传感器、放大电路、AD电路、单片机、显示电路。通过这几个部分的结合可以基本实现设计的功能,但是由于MQ138传感器的线性度极其不理想,而且其测量范围为1ppm10ppm,最低测量值已经远远超过国家标准的最低值0.8ppm。系统所采用的单片机只能进行数据处理,仍需要另外购买AD芯片,给系统造成成本增加,且对电路的

14、性能会造成影响。方案二:基于增强型单片机和进口传感器的设计方案英国达特(DART)公司的甲醛传感器虽然价格为MQ138的两倍,但其拥有稳定的线性度,且灵敏度达到0.01ppm,可以满足测量国家标准。系统工作模块也分为传感器、放大电路、AD电路、单片机、显示电路。系统才用的是增强型51单片机即STC12C5A60S2单片机,不但拥有超高的执行速度而且内置了10位的AD转换,可以简单化电路,更可以节约一定的成本,对整体电路的稳定性能更有保障。两个方案的比较:方案一,虽然基本满足测量需求,但是01ppm的范围为盲区,无法测量更无法在超过国标时及时提醒,系统整体稳定性不高。方案二,完全能够满足测量需求

15、,精度高,功耗更低,电路设计简单,稳定性高,更加可靠,所以选用方案二。3 设计开发工具介绍3.1 单片机的概念和特点现代社会中,尽管PC机的应用已经相当普遍,但是,在工控领域,在日益追求小而精、轻而薄的自动化控制器、自动化仪器仪表、家电产品等方面,PC机仍有所不相适宜的地方。而工业控制、仪器仪表、家电产品等市场广阔,要求PC机技术与之相适应。在这种情况下,单片机应运而生了(也称作微型计算机)。微型计算机的基本机构是由中央处理器、储存器、和I/O设备构成的。所谓的单片机是指将微型计算机3个单元的多个分体中的主要功能用1个集成电路芯片来实现,该芯片具有一个微型计算机的基本功能。这种超大规模集成电路

16、芯片即称为单片微型计算机,通常简称单片机。单片机具有以下特点:(1) 受集成度限制,片内存储容量较小,一般8位单片机的ROM小于8/16K字节,RAM小于256字节,但可在外部扩展,通常ROM、RAM可分别扩展至64K字节。(2) 可靠性好。芯片本身是按工业测控环境要求设计的,其抗工业噪声干扰优于一般通用CPU;程序指令及常数、表格固化在ROM中不易破坏;许多信号通道均在一个芯片内,故可靠性高。(3) 易扩展。片内具有计算机正常运行所必需的部件。芯片外部有许多供扩展用的三总线及并行、串行输入/输出管脚,很容易构成各种规模的计算机应用系统。(4) 控制功能强。为了满足工业控制要求,一般单片机的指

17、令系统中具有极丰富的条件分支转移指令、I/O口的逻辑操作以及位处理功能。一般说来,单片机的逻辑控制功能及运行速度均高于同一档次的微处理器。(5) 一般单片机内无监控程序或系统通用管理软件,只放置有用户调试好的应用程序。但近年来也开始出现了在片内固化有BASIC解释程序的单片机。3.2 单片机的发展和趋势由于单片机具有以上特点,因此在工业控制、数据采集、智能仪器仪表、智能化设备和各种家用电器等领域得到广泛的应用。随着微电子工艺水平的提高,近十年来单片微型计算机有了飞速的发展。归纳起来,它是沿着两条路发展的:1.改进集成电路制造工艺,提高芯片的工作速度,降低工作电压和降低功耗:2.在保留共同的CP

18、U体系结构,最基本的外设装置(如异步串行口,定时器等)和一套公用的指令系统的基础上,根据不同的应用领域,把不同的外设装置集成到芯片内,在同一个家族内繁衍滋生出各种型号的单片机。另外在单片机的应用中,可靠性是首要因素,为了扩大单片机的应用范围和领域,提高单片机自身的可靠性是一种有效方法。近年来,单片机的生产厂家在单片机设计上采用了各种提高可靠性的新技术,主要表现在一下几点:(1)EFT(Electrical Fast Transient)技术(2)低噪音布线技术及驱动技术(3)采用低频时钟总之,单片机在目前的发展形势下,表现出几大趋势:(1)可靠性及应用水平越来越高,和internet连接已是一

19、种明显的走向;(2)所集成的部件越来越多;(3)功耗越来越低;(4)和模拟电路结合越来越多。3.3 STC12C5A60S2单片机STC12C5A60S2单片机(引脚如图3-1)是宏晶科技生产的一种能够与传统8051完全兼容的新型单片机,它执行速度是传统51单片机的812倍,内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(即P1口),因此具有很强大的数据处理能力,本身自带的10位A/D转换更是为本设计节约了成本。其基本参数如下4:1.与MCS-51产品指令和引脚完全兼容。2.60K字节可重擦写FLASH闪存存储器。3.100000次写/擦循环。4.时钟频率:0Hz35M

20、Hz相当于普通单片机的0420M。5.三级加密存储器。6.1280字节内部RAM。7.36/40/44个可编程I/O口线。 8.4个16位定时/计数器,7个中断源。9.2路PWM。 10.低功耗的空闲和掉电模式。 11.片内振荡器和时钟电路。图3-1 STC12C5A60S2 规范引脚3.4 LTC1049CN8运算放大器LTC1049(引脚如图3-2)是一种高性能,低功耗的零漂移运算放大器。此外,LTC1049提供优越的DC和AC性能,其理论供应电流仅为200A。LTC1049拥有典型失调电压漂移0.02V/C, 0.1Hz到10Hz输入噪声电压的3V。转换速度电压增益为与典型的160dB与

21、增益带宽产品的0.8MHz。超载从饱和状态的恢复时间6ms,比削波器放大器显着改善使用外部电容器,可以在LTC1049是一个插件替换与大多数标准运算amps大幅度提高DC性能和降低功耗。其基本参数如下:1.低电源电流:200A2.无需外部元件3.最大失调电压:10V4.最大偏移电压漂移:0.1V/C5.单电源供电:4.75V到16V6.输入共模范围包括地面8.典型的过载恢复时间:6ms9.在8-Pin可用,以便和PDIP软件包兼容图3-2 LTC1049CN8 的引脚图3.5 LCD1602液晶显示屏LCD显示有很多种,常用的有1602和12864两种,由于本设计中显示的甲醛含量属于较简单的字

22、符,可以考虑使用1602,LCD1602具有显示内容丰富,接口电路简单,人机交流性强等特点,适合本次设计的研究。其具体参数如表3-1,接口信号参数如表3-24。具体参数:表3-1 LCD1602技术参数显示容量:162个字符芯片工作量:4.55.5V工作电流:2.0Ma(5.0V)模块最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm接口信号参数:表3-2 LCD1602接口信号表格编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/O2VSS电源正极10D3Data I/O3VL液晶显示偏压信号11D4Data I/O4RS数据/命令选择端12D5Data I/O5R

23、/W读/写选择端13D6Data I/O6E使能信号14D7Data I/O7D0Data I/O15BLA背光源正极8D1Data I/O16BLK背光源负极3.6 甲醛传感器本甲醛检测仪采用英国达特(DART)公司生产的甲醛传感器如图3。该传感器是两电极电化学型的传感器,通过扩散原理实现,因此不需要外部采样硬件。当有甲醛气体存在的时候,将会有一个很小的直流产生;传感器本身不需要电源供应,但是产生的这个电流需要外部的数据采集将其变为可读的信号。主要参数如下6:1.正常检测0一10ppm,最大值50ppm;2.输出信号250300nAppm;3.分辨率001ppm;4.响应时间30s;5.最大

24、零点沮度漂移(+20一+40C)lppm;6.工作温度-10一40;7.基线飘移0.03/ppm;8.寿命3年。图3-3 甲醛传感器的实物图4 系统硬件设计4.1 系统整体电路的原理基于上述的首选设备,提出了硬件设计功能框图如图4-1所示:传感器CH2O放大电路STC12C5A60S2单片机(A/D转换及数据处理)LCD1602按键图4-1 硬件功能框图报警电路图4-1 硬件功能框图通过查阅资料提出整体的设计框架(如下3点),通过电脑仿真来完成功率放大电路和传感器的研究工作,通过单片机开发板软件和硬件的结合设计出A/D转换程序及LCD显示模块,最后综合在一起,通过实验室进行各项技术指标的测量不

25、断改进、完善。1.信号转换部分:该部分由气体传感器组成,其功能是将被测物浓度变成电信号。2.信号处理部分:该部分由信号变换组成。 信号变换由气体传感器产生的电信号较小且和要求输出的信号不成比例关系,必须经放大后才能得到标准输出信号及控制信号。信号经处理后,输出模拟信号。通过A/D转化为数字信号进入单片机,最后LCD显示,温度信号经变换后供控制和计算用。 3.输出部分:该部分由模拟信号输出和LCD 数字输出两部分组成(通过单片机来实现),由传感器出来的信号经过放大电路进行放大后由单片机经过A/D转换并经过数字滤波和进制转换后送到LCD1602显示,由按键来控制其它功能,当检测到得甲醛含量超过上限

26、值则发出报警。4.2 系统晶振电路的设计单片机在工作时的每个指令的微操作在时间上都有严格的秩序,这样的微操作时间顺序称为时序,单片机时钟信号用于给单片机芯片里的各种微操作提供了一个时间基准, STC12C5A60S2的时钟生产方式分为两种,一种是内部时钟方式,一是外部时钟方式10。内部时钟的方式就是在单片机外部连接一个晶振电路和单片机内部的振荡器发生作用产生时钟脉冲信号。外部时钟形式是把现有的外部时钟信号引入到控制器在里面,这种方法通常被用于多片STC12C5A60S2单片机同时工作时,为了方便单片机系统的同步,一般要求外部信号的高电平的持续时间超过20 ns,且为频率低于12MHz的方波11

27、。该系统以尽量降低功耗的原则使用了内部时钟模式。图4-2 晶振电路图在STC12C5A60S2单片机内部有一个震荡电路,只要在单片机的处理器的XTAL1和XTAL2引脚外接石英晶体(简称晶振)就构成了自激振荡器并且在单片机内部产生时钟脉冲信号,图中的电容器C2和C3稳定频率和快速起振,电容值在530pF,典型值是22 pF,晶振CYS选择的是12 MHz。4.3 系统复位电路的设计复位的含义:单片机开始工作的时候,必须处于一种确定的状态,否则,不知哪是第一条程序和如何开始运行程序。端口线电平和输入输出状态不确定可能使外围设备误动作,导致严重事故的发生;内部一些控制寄存器(专用寄存器)内容不确定

28、可能导致定时器溢出、程序尚未开始就要中断及串口乱传向外设发送数据。因此,任何单片机在开始工作前,都必须进行一次复位过程,使单片机处于一种确定的状态 12。复位电路原理:当在STC12C5A60S2单片机的RST引脚接入高电平并且保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。实际的应用中,复位操作有两种基本类型:一种是上电复位,另一种是上电和按键都有效的复位,要求接通电源后,单片机自动实现复位操作。本次设计中的复位电路采用的是开关复位电路,开关S9没有按下时是上电复位电路,上电复位电路在上电的瞬间,由于电容上的电压不能突变,电容充电(导通)状态

29、,所以RST引脚的电压和VCC相同。随着电容的充电,RST引脚上的电压会逐渐降低。选择合理的充电常数,就可以保证开关按下时RST端有两个机器周期以上的高电平,从而使STC12C5A60S2内部复位。开关按下时是手动复位电路,RST端口通过电阻与VCC电源相接通,通过电阻的分压来可以实现单片机的复位。电路图见图4-3。图4-3 复位电路图4.4 系统放大电路的设计由于传感器的输出信号非常微弱,因此放大器需要选择高放大倍数的运放。电路设计和元器件的选择因此显得非常关键。校准可以通过调整电路的放大倍数,从而在软件中实现校准。具体放大电路如图4-4,其中电流源模拟甲醛传感器输出电流,放大器对其进行转换

30、放大,其放大电路的具体参数及转换放大原理图如图5所示。在系统中的高精度测量放大电路设计中,反馈电阻选为470 k,同时并联一个4.7F的钽电容在没有反向响应时间的情况下降噪7。图4-4 放大电路原理图4.5 系统单片机及显示电路的设计因为STC12C5A60S2单片机和普通51单片机的引脚相同并且完全兼容,因此在该电路设计时,可采用普通的单片机最小系统板来布局就可以了,放大电路的信号可以在经过P1口进入单片机进行A/D转换和数据处理后经过连接P0口的LCD1062从而来进行显示。具体电路如图4-5所示。图4-5 显示电路和STC12C5A60S24.6 系统报警电路设计当电路测试到甲醛浓度超过

31、国家标准的限制性时,将产生一个信号给报警电路。让报警电路报警以此来提醒工作人员查看解决,超限报警电路如下图4-6所示。这是由STC12C5A60S2的P2.6口来进行控制,当超过设置的数值0.08 PPM时,通过预设的程序使P2.6口值变为高电平,从而使三极管导通,报警电路接通,使蜂鸣器发出警号声。这个任务的实现主要依靠程序来完成。图4-6 报警电路5 系统软件设计5.1 程序编写语言介绍对于单片机的开发应用中,逐渐引入了高级语言,C语言就是其中的一种。汇编语言的可控性较高级语言来说更具优越性。程序编写语言比较常见的有C语言、汇编语言。汇编语言的机器代码生成效率高,控制性好,但就是移植性不高。

32、C语言编写的程序比用汇编编写的程序更符合人们的思考习惯。还有很多处理器都支持C编译器,这样意味着处理器也能很快上手。且具有良好的模块化、容易阅读、维护等优点,且编写的模块程序易于移植8。基于C语言和汇编语言的优缺点,本系统采用C语言编写方法。 编写软件的主要思想是把要实现的系统功能按照不同的模块进行划分,然后再根据每个模块最终要实现的功能逐个的编写程序。本设计是采用查询的方式来编写整个程序的。5.2 编译软件介绍Keil软件简介:在单片机的开发利用的过程中软件同硬件一样都是离不开的,人们编写的汇编语言源程序要成为一个CPU可以执行的机器代码有两种方法手工汇编和机器汇编,现在手工汇编基本上不用了

33、。机器汇编是用汇编软件把源程序编写成机器代码,随着单片机的发展越来越趋向成熟, 从普遍使用汇编语言到逐渐使用高级语言开发,单片机的相关软件开发也在不断地发展,使用最普遍的汇编软件就是Keil软件。本设计就采用了Keil软件。1.系统概述 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就

34、能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。2. Keil C51单片机软件开发系统的整体结构C51工具包整体结构,如图5-1所示, 其中的Ishell和uVision分别是C51 for Dos和for Windows的集成开发环境,能够完成编辑、编译、连接、调试和仿真等整个开发过程。开发人员可以使用IDE本身或者其他编辑器编辑C语言或者汇编源文件。然后分别通过A51和C51编译器编译生成目标文件。 目标文件可以通过LIB51来生成库文件, 也可以与库文件一起经L51连接定位生成绝对目标文件。绝对目标文件

35、由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中17。 图5-1 C51工具包的整体结构图3. 运行KEIL51软件见图5-2 图 5-2 软件运行图4.建立项目(1)单击Project菜单,再单击下拉菜单的New Project,接着弹出一个Windows文件的对话框,在“文件名”输入你的第一个C程序项目的名称,“保存”文件扩展名为uv2,然后可以通过点击这个文件来打开以前做的项目。(2)选择需要的单片机,本设计用的是宏晶的STC12C5A60S2单片机。完成以上的

36、步骤,现在可以写程序了。(3)首先我们要在项目中创建新的程序文件或加入旧程序文件。如果你没有现成的程序,那么就要新建一个程序文件。(4)点击保存新建的程序,也可以用菜单FileSave或快捷键Ctrl+S进行保存。我们把第一个程序命名为test1.c,保存在项目所在的目录中,这时你会发现程序单词有了不同的颜色,说明KEIL的C语法检查生效了。鼠标在屏幕左边的Source Group1文件夹图标上右击弹出菜单,在这里可以做在项目中增加减少文件等操作。然后点击“quot;Add File to Group Source Group 1”弹出文件窗口,选择刚刚保存的文件,按ADD按钮,关闭文件窗,程

37、序文件已加到项目中了。这时在Source Group1文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它可以展开查看。(5) C程序文件已被我们加到了项目中了,下面就剩下编译运行了。如图5-3,图中1、2、3都是编译按钮,不同是1是用于编译单个文件。2是编译当前项目,如果先前编译过一次之后文件没有做动编辑改动,这时再点击是不会再次重新编译的。3是重新编译,每点击一次均会再次编译链接一次,不管程序是否有改动。在3右边的是停止编译按钮,只有点击了前三个中的任一个,停止按钮才会生效。在4中可以看到编译的错误信息和使用的系统资源情况等,以后我们要查错就靠它了。6是有一个小放大镜的按钮,这就是

38、开启关闭调试模式的按钮,它也存在于菜单DebugStartStop Debug Session,快捷键为Ctrl+F5。(6)进入调试模式,软件窗口样式大致如图所示。图中5-4为运行,当程序处于停止状态时才有效,2为停止,程序处于运行状态时才有效。3是复位,模拟芯片的复位,程序回到最开头处执行。按4我们可以打开5中的串行调试窗口,这个窗口我们可以看到从51芯片的串行口输入输出的字符,这里的第一个项目也正是在这里看运行结果。首先按4打开串行调试窗口,再按运行按钮。要停止程序运行回到文件编辑模式中,就要先按停止按钮再按开启关闭调试模式按钮。然后我们就可以进行关闭KEIL等相关操作了。 图5-3 编

39、译运行图 图5-4 调试窗口图(7)HEX文件的生成HEX文件格式是英特尔公司提出的把数据信息按照地址进行排列的数据信息,数据宽度为字节 ,所有的数据使用16进制数字表示。右击图 5-5上的1项目文件夹,弹出项目功能菜单, 选Options for TargetTarget1 ,出现项目选项设置窗口,选择项目文件夹图标。打开项目选项窗口,转向页面输出选项页,如图5-6所示,1是选择编译输出途径,2设置编译输出生成的文件名,3是决定要不要再创建HEX文件。图5-5 项目窗口图图5-6 项目窗口图5.3 主程序模块主程序实现的功能: 图5-7 主程序流程图5.4 模数转换 (1)模数转换模块的主要

40、功能就是把经放大器放大的模拟电压信号转化为单片机能够处理的数字信号,并传送给单片机。(2)STC12C5A60S2转换的流程图见下图5-8所示。 图5-8 数模转换流程图#define uint unsigned int /常量/变量定义/uchar k,i,j;float xdata lv;sbit ADCS =P31; /ADC0832 chip seclect /接口定义/ /其它引脚略uchar xdata dsw20; /存放sprintf转换字符uchar xdata value149; /点阵字符储存uchar code table= /字符查表unsigned int Adc0

41、832(unsigned char channel) /AD转换,返回结果 uchar i=0; ADCS=0;/拉低CS端 _nop_(); _nop_(); ADCLK=1;/拉高CLK端 _nop_(); _nop_(); ADCLK=0;/拉低CLK端,形成下降沿1 _nop_();_nop_();ADCLK=1;/拉高CLK端 ADDI=1;/控制命令结束 _nop_(); _nop_(); dat=0; for(i=0;i8;i+) dat|=ADDO;/收数据 j=0; j=j|ADDO;/收数据 ADCLK=1; _nop_(); _nop_(); ADCLK=0;/形成一次时

42、钟脉冲5.5 按键模块(1)按键是显示人机对话的一个控制按钮,通过对按键的操作,对系统进行发送操作指令,后经与单片机串行通信,然后在液晶上显示。(2)按键查询式的流程图见下图 图5-9 按键流程图uchar get_key() /读键 uchar pass,kcodebuf;static uchar lastkcode,keytime=0; /定义为静态变量,外部不可见,但需要常驻内存.static uchar havekey=0;static uchar keylock=0;kcodebuf=P1 & 0xff;keytime+;if (kcodebuf!=lastkcode) keytim

43、e=0;if (kcodebuf=0xff) havekey=0;keylock=0;keytime=0;pass=0;else pass=nusekey;lastkcode=kcodebuf;return(pass);5.6 液晶显示模块本系统使用1602液晶显示。控制程序主要有三部分:向液晶中写入指令;向液晶中写入数据;液晶测试忙碌状态。写命令时,首先测液晶是否忙碌,液晶忙碌信号消失后,置RS及RW引脚低电平,然后使能端EN为高电平,下一条指令EN为低电平,有一定延时。之后液晶将开始处理这条指令,置位忙碌信号,在指令处理期间将不再响应其他指令或数据请求;写数据,先测是否忙碌,液晶忙碌信号消

44、失后;置RS=1,RW=0,然后使能端EN=1;下一条指令EN=0,之后液晶将开始处理这条指令,置位忙碌信号,在指令处理期间将不再响应其他指令或数据请求。图5-10 液晶显示的操作流程图液晶的程序主要由初始化函数、写入函数、清RAM函数,其中初始化液晶的工作状态,包括光标归位,显示设置,显示移位等,屏幕清空等命令,是使用液晶前必须要执行的函数。子程序流程图如下图所示。图5-11 液晶显示的操作流程图sbit RS=P20; /寄存器选择位,将RS位定义为P2.0引脚sbit RW=P21; /读写选择位,将RW位定义为P2.1引脚sbit E=P22; /使能信号位,将E位定义为P2.2引脚sbi

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号