1、中北大学信息商务学院2016届毕业设计说明书气敏传感器信号采集系统设计摘 要:随着电子领域的快速发展,采用电子设备探测气体引起了人们的广泛关注。由于年龄、经验、环境、身体状况等因素会存在一定的主观性,采用人或者其他动物对瓦斯、有毒气体、酒精、天然气等气体的检测,影响其判断力,而采用电子设备,利用传感器检测气体后经过A/D转换,再由MCU对其进行处理,能够得知气体浓度,对不良或者超标的检测结果进行报警灯功能,电子检测仪能高效的完成任务。由此被广泛应用于能源化工、环境污染检测、医疗、工业生产和交通等行业。本文以AT89C51单片机为控制核心,设计了一套气敏传感器信号采集装置。气体采集的传感器采用M
2、JC4/3.0L瓦斯检测传感器;A/D转换模块采用ADC0809将传感器检测到的电压进行数字化传送给MCU处理;运算放大器采用OP07模块;显示采用LED数码管,其驱动为MAX7219串行输入/输出共阴显示驱动;电源模块采用的是LM317稳压芯片。关键词:气敏传感器;AT89C51;A/D转换;数码管显示第 35 页 共 39 页Design of Gas Sensor Signal Acquisition system窗体底端Abstract:Along with the rapid development of the electronic field, adopting electron
3、ic equipment to detect gas has aroused extensive attention. Due to the subjectivity of age, experience, environment, healthy conditions, the detection of gases like gas, toxic gas, alcohol and natural gas practiced by people or animals will affect the accuracy of judgments, while electronic devices
4、like sensors are adopted to detect gases. After the A/D conversion, gases are processed by MCU that can recognize the concentration of gases and show the alarm lamp for adverse or excessive results, so electronic detector can efficiently complete tasks. This method is widely employed in the energy a
5、nd chemical industry as well as industries of environmental pollution detection, medical treatment, industrial production and transportation.Taking single chip Microcomputer of AT89C51 as the control core, this paper will design a set of signal collection devices with gas sensors. The sensor used fo
6、r collecting gases is the gas detection sensor of MJC4/3.0 L; A/D conversion module utilizes ADC0809 to transmit digitized voltage detected by sensors to MCU. Operational amplifier is OP07 module and the display device uses LED digital tube whose display driver is serial input/output common cathode
7、of MAX7219. Power module is LM317 voltage chip.Key words: Gas sensor; AT89C51; A/D conversion;Digital display目 录摘要IAbstractII目 录III1 引言111 选题背景112 国内外发展现状113 本文设计方案22 气敏传感器原理及MCU选择32.1 气敏传感器32.2 MJC4/3.0L气体检测传感器32.3 MJC4/3.0L气体检测传感器技术指标42.4 系统MCU介绍43 系统硬件电路设计63.1 单片机最小系统63.2 运算放大电路83.3 A/D采样电路103.4
8、数码管显示电路及其驱动103.4.1显示器结构与原理以及显示方式103.4.2 显示驱动器MAX7219113.5 电源模块123.6 报警电路144 系统软件设计155 仿真结果分析17致 谢18参 考 文 献19附录 A Protues仿真图21附录 B 系统原理图22附录 C PCB Top Layer23附录 D PCB Bottom Layer24附件 E 系统主要程序251 引言 11 选题背景天然气主要存藏于地下多岩层的空隙中,包括油田气、气田气、煤层气、泥火山气和生物生成气等,也有少量出产于煤层。天然气是优质的燃料和化工原料。它的主要用途是作为燃料,也可用于制造炭黑、化学制以及
9、生产液化石油气,天然气生产的丙烷、丁烷是现代工业的重要原料。天然气主要由气态低分子烃和非烃气体混合组成。天然气主要成分烷烃,其中甲烷占绝大多数,另有少量的乙烷、丙烷和丁烷,此外一般有硫化氢、二氧化碳、氮和水气和少量一氧化碳及微量的稀有气体,如氦和氩等。天然气在送到最终用户之前,为助于泄漏检测,还要用硫醇、四氢噻吩等来给天然气添加气味。天然气不溶于水,密度为0.7174kg/Nm3,相对密度(水)为约0.45(液化)燃点()为650,爆炸极限(V%)为5-15。在标准状况下,甲烷至丁烷以气体状态存在,戊烷以上为液体。甲烷是最短和最轻的烃分子。有机硫化物和(HS)是常见的杂质,在大多数使用天然气的
10、时候都必须预先把杂质去除。然而在工业应用或者家用的天然气装置因某些因素会发生泄漏,当泄漏的气体达到一定浓度后,遇到明火或者高温,会产生爆炸或者剧烈燃烧,对人身和财产安全造成很大的隐患。因此设计一套电子气体检测装置,有利用解决以上安全隐患问题。12 国内外发展现状气敏传感器主要用于检测某些环境下气体的成分和浓度,由于检测现场的温度和湿度等各项条件具有很多不确定因素,有时检测的环境比较恶劣,所以对气敏传感器的稳定性、响应速度、敏感度、重复使用性等性能要求很高。不过由于所检测的气体种类具有多样性,而且其物理特性也各不相同,因此不可能采用同一种性能的传感器来检测不同种类的气体,所以气敏传感器的也分很多
11、种类,譬如根据气体之间相互作用时产生不同的变化,可分为表面控制型和体控制型。表面控制型传感器原理是当半导体的表面吸附的气体和半导体之间发生电子交换,由此使半导体的导电率等物理性质发生变化,不过传感器内部的化学成份不会变化;体控制型传感器原理是半导体与气体发生化学反应,使半导体内部成份发生化学变化,从而使导电率发生变化。从技术发展的角度来看,根据传感器原理及其应用环境的不同,所应用的领域和检测装置结构也有所不同,不过其共同点是多采用了以单片机为控制核心,把传感器采集到的信号转化为电信号,再由A/D转换为数字信号送往单片机进行分析处理。国外在应用半导体和催化原理的气体检测仪器上处于较领先水平,目前
12、国内也相继研制出了能应用多个行业的不同种类的气体检测装置。随着制造工业的成熟和新材料的研发,传感器的成本也在逐渐降低,这有利于促进电子检测装置的发展。超大规模集成电路技术的不断提升,使得单片机的发展迅猛,由最初的4位、8位字长,发展到现在的16位、32位字长,大大促进了数字化发展进程。在我国,智能化仪器仪表中,单片机以其高性能、低成本、高效率等特点,被广泛使用1。13 本文设计方案针对天然气泄漏的检测装置,传统方式上采用较多的是化学检测方法,比如分光光度计、化学滴定和色谱分析等。但是这些化学检测方法不仅耗费时间和劳动力,且大大降低了检测效率、成本也过高。随着电子设备的快速发展和传感器技术的提升
13、,基于单片机的气体检测装置应运而生,并且在测试精度、范围、稳定性等标准上达到实际应用要求。本文以AT89C51单片机为控制核心,设计了一套天然气检测装置。系统采用模块化设计方案,主要包括电源、A/D转换、按键、LED显示、报警等。软件编程是在Keil uVision4环境下,采用C语言编写。2 气敏传感器原理及MCU选择2.1 气敏传感器气体传感器是组成气体传感器信号采集系统的核心元器件,其性能在整个系统中起着至关重要的作用。气体传感器就是能够感知被测环境中气体成分的一种敏感行元器件,它将气体的种类及其浓度的相关信息转化为电信号,再根据这些电信号的强弱就可获得与待测气体在环境中存在情况有关的信
14、息,从而可以进行检测、监控、报警,有些气体传感器还能通过接口电路与PC组成电子自动检测控制、显示检测数据和报警的系统。从本质来说,气体传感器是一种将检测到的某种气体浓度转化成为MCU和识别信号并进行数据处理转化器。它是对气体做定量和定性检测的必备元器件。气敏传感器是化学传感器分类汇总一个比较大的门类2。从所采用原材料到加工工艺,从工作原理到测量技术,从检测对象到应用领域,都可视为一个独立的分类标准,衍生出一个庞大复杂的分类体系,在分类上目前还没有统一标准。按照气敏传感器采用的材料和气敏传感器特征的不同,可分为半导体、电化学和聚合物气体传感器等类型3。2.2 MJC4/3.0L气体检测传感器适宜
15、制成半导体气体传感器的材料主要是金属氧化物。图2-1为MJC4/3.0L催化燃烧式气敏传感器的外形结构图。图2-1 MJC4/3.0L外形结构图其检测电路如图2-2所示。黑元件是载体催化燃烧式元件,当甲烷气体在元件表面与氧气产生无焰燃烧时,电桥失去平衡,输出一个电压信号,白元件是补偿元件,基本结构和技术参数与黑元件相同,但表面不涂镀催化剂,所以它不掺入低温燃烧。图2-2为MJC4/3.0L传感器电路原理图。图2-2 MJC4/3.0L传感器电路原理图2.3 MJC4/3.0L气体检测传感器技术指标MJC4/3.0L气体检测传感器技术指标如表2-1所示:表2-1 MJC4/3.0L气体检测传感器
16、技术指标工作电压(V)3.00.1工作电流(mA)12010灵敏度1%甲烷20401%丁烷30501%氢气2545测量范围(%LEL)0100响应时间(90%)小于10秒恢复时间(90%)小于30秒使用环境-40+70外形尺寸(mm)81014长期稳定性:在空气中每年漂移小于2个mV,在1%CH4中每年漂移小于2个mV4。短期储存(两周内)30分钟即可稳定,如长期储存(一年),则需老化5小时才可稳定6。2.4 系统MCU介绍ATMEL的AT89C51是一种将多功能8位CPU和闪速存储器组合在单个芯片中的高效微控制器。AT89C051是它的一种精简版本8。AT89C51单片机为很多嵌入式控制系统
17、提供了一种灵活性高且价廉的方案9。图2-3系列单片机DIP封装图给出了双列直插式封装(DIP. Dualln-line Package), DIP封装与MCS一51系列单片机的引脚完全兼容,可互换使用。外形及引脚排列如图2-3所示。图2-3 AT89C51DIP封装引脚排列3 系统硬件电路设计气敏传感器信号采集系统主要由电源模块、气敏传感器及其适配电路、A/D转换模块、复位电路、显示模块、报警电路等模块组成。系统工作流程:气体信号检测电路由气敏传感器和信号运算放大电路组成,将传感器采集到的气体信号转化为模拟的电信号;A/D模数转换模块将气体检测电路送出的模拟信号转换成单片机可识别的数字信号后再
18、送入单片机;单片机对该数字信号进行处理分析,判断气体含量是否超过预设值,如果超标则报警电路启动,反之则判断为正常状态;同时在LED灯上显示天然气浓度并存储数据;复位电路可以防止系统“跑飞”,按下复位按键后,MCU重新执行程序。图3-1为系统总设计方案。图3-1为系统总设计方案框图。图3-1 系统总设计方案框图3.1 单片机最小系统本设计中单片机的最小系统由AT89C51、12M晶振、两个33pf电容、10K电阻、复位开关组成。如图3-2所示。电路中的晶振即石英晶体震荡器。由于石英晶体震荡器具有非常好的频率稳定性和抗外界干扰的能力,所以石英晶体震荡器可用来对单片机产生基准频率7。通过基准频率来控
19、制电路中的频率的准确性。同时,它还可以产生振荡电流,向单片机发出时钟信号。片内电路与片外器件就构成一个时钟产生电路,CPU的所有操作均在时钟脉冲同步下进行。片内振荡器的振荡频率非常接近晶振频率,一般多在1.2MHz24MHz之间选取。C1、C2是反馈电容,其值在20pF100pF之间选取。本电路选用的电容为33pF,晶振频率为12MHz18。振荡周期1/12s; 机器周期Sm=1s 指令周期T14sXTAL1接外部晶体的一个引脚,XTAL2接外晶体的另一端。在单片机内部,接至上述振荡器的反相放大器的输出端。采用外部振荡器时,对HMOS单片机,该引脚接外部振。在石英晶体的两个管脚加交变电场时,它
20、将会产生一定频率的机械变形,而这种机械振动又会产生交变电场,上述物理现象称为压电效应。一般情况下,无论是机械振动的振幅,还是交变电场的振幅都非常小。但是,当交变电场的频率为某一特定值时,振幅骤然增大,产生共振,称之为压电振荡。这一特定频率就是石英晶体的固有频率,也称谐振频率。石英晶振起振后要能在XTAL2线上输出一个3V左右的正弦波,以便使片内的OSC电路按石英晶振相同频率自激振荡。在上电或复位过程中控制CPU的复位状态,这段时间内让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令,执行错误操作,也可以提高电磁兼容性能。无论使用哪种类型的单片机,总要涉及到单片机复位
21、电路的设计。而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。复位后,PC内容初始化为0000H,是单片机从0000H单元开始执行程序。单片机复位后不影响内部RAM的状态。AT89C51单片机复位信号的输入端是RESET引脚,高电平有效。其有效时间持续24个时钟周期以上。单片机RESET端得外部复位电路有两种操作方式:上电自动复位和按键手动复位。上电自动复位是利用电容储电来实现的上电瞬间,RC电路充电,RESET端出现正脉冲,随着充电电流的减少,RE
22、SET的电位逐渐下降。按键手动复位用电平方式10。按键电平复位是相当于RESET通过电阻接高电平,复位按键为S612。图3-2 AT89C51最小系统3.2 运算放大电路OP07芯片是一种低噪声,非斩波稳零的双极性运算放大器集成电路13。图3-3为OP07芯片内部引脚。图3-3 OP07芯片内部引脚OP07芯片的特点:低的输入噪声电压幅度:0.35VP-P (0.1Hz -10Hz);极低的输入失调电压:10V;极低的输入失调电压温漂:0.2V/ ;具有长期的稳定性:0.2V/MO;低的输入偏置电流:1nA;高的共模抑制比:126dB;宽的共模输入电压范围:14V;宽的电源电压范围:3V-22
23、V。图3-4 OP07外部接线图电路分析计算:由电路可得: (3-1) (3-2)所以由式(1)和式(2)得: (3-3)又因为输入共模电压,输入差模电压,将它们带入式(3)可得: (3-4)因为从传感器输出得电压信号为0-90mv,为了取得较大的A/D转换器输入信号,需要对其放大,取R3=R6=5000,R4= R5=100,放大倍数为51倍。3.3 A/D采样电路在检测系统中,传感器将采集到的信号都是模拟信号,这些模拟信号需要进行处理,放大、滤波、补偿、以及信号的变换等方式,然后在案通过某些芯片将模拟信号变成数字信号,然后再传递给MCU,也就是51单片机做处理。ADC0809是工艺8通道,
24、8位逐次逼近式A/D模数转换器14。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换516。芯片的引脚图如图3-5所示。图3-5 ADC芯片引脚图3.4 数码管显示电路及其驱动3.4.1显示器结构与原理以及显示方式LED显示块是由发光二极管显示字段的显示器件15。在单片机中通常使用的是7段LED。当某个发光二极管阴极为低电平时,发光二极管点亮;共阴极LED显示块的发光二极管阴极共地17。当某个发光二极管的阳极为高电平时,发光二极管点亮,共阴和共阳电路如图3-6所示。图3-6 共阴和共阳电路通常使用的7段显示块有8个二极管组成,故也称8段
25、显示器。其中7个发光二极管构成7笔字型“8”;一个发光二极管构成小数点“.”。7段LED显示器如图3-7所示。图3-7 7段LED显示器3.4.2 显示驱动器MAX7219MAX7219能方便的用模拟或数字方法控制段电流的大小,改变显示器的亮度;能对每一位进行译码或不译码控制;能选择驱动显示器的数量;能进入低功耗的关断模式(仅消耗150uA电流,数据保留);而且其最重要的一点是,每个显示位都能个别寻址和刷新,而不需要重写其他的显示位,这使得软件编程十分简单且灵活1119。MAX7219的引脚排列如图3-8所示。图3-8 MAX7219的引脚排列如图MAX7219采用串行寻址方式,在传送的串行数
26、据中包含有内部RAM的地址20。加在 DIN脚上的串行数据,必须在LOAD信号为高电平的前提下,以每两个字节为一个数据包在CLK信号上升沿移入16位的移位寄存器。然后在LOAD信号的上升沿锁存进数字或控制寄存器中。LOAD信号必须在第16个CLK信号上升沿的同时,或在下一个 CLK信号上升沿之前升高,否则数据会丢失。DIN脚上的串行数据在16.5个CLK信号后出现在 DOUT脚上,以便级连应用时传到下一个MAX7219上。3.5 电源模块1. +3V稳压源的设计+3V电压的实现需要LM317芯片。LM317作为输出电压可变的集成三端稳压块,是一种使用方便、应用广泛的集成稳压块。输出电压范围为1
27、.2V到37V之间可调节;内部有热过载保护;不随温度变化的内部短路电流限制;输入至少要比输出高2V,否则不能调压;输出电流最好不超过1A;可调整输出电压可低到1.2V。用LM317实现+3V稳压电源,提供传感器工作电压。其稳压示意图如图3-9所示。图3-9 LM317稳压示意图2. +5V稳压源的设计MAX756可接受一个输入电压低至0.7V,并将其转换为更高3.3V或5V可选的输出电压。典型的全负荷的MAX756效率大于87%。其关键特性是,输入电压为0.7V;20mA的效率为87%;静态电流为60A;20A的关闭模式;温度误差1.5%;低电池最检波器(LBI/LBO);8-Pin SO封装
28、。用MAX756实现+5V的稳压电路如图所示。图3-10 MAX756稳压电路图3. -5V稳压源的设计该稳压电源的设计采用芯片ICL7660来实现。LCL7660有8个引脚。其中的NC是空脚;CAP+是储能电容正极;CAP-是储能电容负极;LV是输入低电压控制端,输入电压低于3.5V时,该脚接地,输入电压高于5V时该脚必须悬空;OSC是作时钟输入端。采用ICL7660芯片实现-5V稳压电源的电路如图所示。图3-11 ICL7660稳压电路3.6 报警电路报警信号由单片机的P1.5口发出指令,经由光电隔离器,警告指示灯D2会亮,此时喇叭会发出警告声音。图3-12为报警电路示意图。图3-12 报
29、警电路4 系统软件设计 系统软件部分采用C语言编写,因为C语言可移植性高、且易于软件系统的维护。软件的编写是在Keil uVision4的Keil C51开发环境下,Keil uVision4的灵活窗口和界面,非常适用于C51单片机的开发21。并且能够为开发者更高效的利用屏幕空间,在多个窗口下提供了一个整洁和高效的开发环境。系统软件主要由主程序、模数转换子程序、串行通信子程序、LED数码管显示和报警子程序等组成。主程序主要负责初始化程序的设定。其中程序的定时器中断主要负责LED数码管的显示,每中断一次会刷新LED数码管显示的数字信息,串行口中断负责采样频率、数据的传输、开始和停止气体采样。图4
30、-1为单片机的软件主程序流程图。图4-1 单片机主程序流程图数据采集与处理部分由气A/D转换模块、运算放大、数据存储组成。气敏传感器是一个非常敏感的,只要外界稍有波动,其信号就能被气敏传感器识别,因此采集数据的时候,需要用到多组数据进行排序比较,折合取得中间值才有可信度。图4-2为数据采集模块流程图。图4-2 数据采集模块流程图数码管显示模块由中断0进行控制,当中断指令发出后,TH和TL重装,判断LED数码管的当前显示状态,清楚屏幕信息,然后计算位置,将每一通道的字符串发送至LED数码管显示。图4-3为LED数码管显示模块流程图。图4-3 LED数码管显示模块流程图5 仿真结果分析系统的仿真是
31、在Protues软件上搭建,仿真软件编程在Keil上编写,通过在Keli上编译源程序生产HEX格式文件。由Protues于Keil进行联和调试,最终实现仿真。其仿真过程分析如下:当气敏传感器检测到气体含量超标后,经由ADC0809模数转换,将电信号转换为单片机可识别的数字信号,由单片机进行处理,会在LED数码管上显示当前的气体浓度,如果气体浓度超过设定浓度值时,系统的报警电路开始鸣笛提示。图5-1为LED数码管显示的当前气体浓度为133(设定60为最高警戒值),此时已经超过预定值,报警电路工作,报警电路如图2-1所示。 图4-1 数码管显示当前气体浓度图4-2 报警电路仿真图致 谢本论文是在岳
32、凤英老师的悉心指导下完成的。从课题开始,岳老师以严谨的学术态度,孜孜不倦的求实精神使我受益匪浅。岳老师以优秀的学术底蕴,平易近人的人格魅力,在我写论文器件给予了无微不至的关怀与指导,耐心帮助我解答疑问,直至论文的完成。当选定气敏传感器信号采集系统设计这个课题时,因为自身知识的局限性,我从茫然到熟悉了解,再到学习单片机的知识,设计硬件电路,学习使用Altium Designer软件画原理图、PCB,器件遇到了不少的困难,不过最终在岳老师和其他同学的帮助下得到解决。在学习C语言编程过程中使我深刻意识到掌握一门嵌入式语言的重要性。通过这个课题的锻炼,不仅巩固了我本科学习的知识,还让我学会了为人处世的
33、很多道理,磨练了我的意识,也增强了自主学习能力。同时还要感谢帮助过我的同学,是你们的鼓舞与支持,让我能够顺利完成毕业设计,祝愿你们前程似锦。在此完成之际,向岳老师致以崇高的敬意,向帮助过我的人表示由衷的感激。同时也感谢在百忙之中阅读和参加答辩的各位专家、教授!真诚的祝愿你们工作愉快、身体健康!参 考 文 献1 甲烷检测气体检测仪:国内外研究现状,. 2 刘迎春等.传感器原理设计及应用M.长沙:国防科技大学出版社,2009.3 孟立凡,郑宾.传感器原理及技术M.北京:国防工业出版社.2004.4 陈锦荣.传感器设计原理M.南京:南京理工大学出版社.2005.5 楼然苗,51系列单片机设计实例M.
34、北京:航空航天大学出版社,2005.5 于成波,传感器与自动检测技术M.北京:高等教育出版社,2009.9 李朝青,单片机原理及接口技术M.北京:航空航天大学出版社,2010.11 周润景等.单片机电路设计、分析与制作M.北京:机械工业出版社,2010.12 刘奎学,陈丽华等.智能型天然气检测装置的研究J.电子测量与仪器学报2002增刊.2002:177-180.13 赫晓剑,杨述平等.仪器电路设计与应用M.北京:电子工业出版社,2007.14 郭天祥.51单片机C语言教程M.北京:电子工业出版社,2009.15 彭伟.单片机C语言程序设计实训100例-基于8051+Protues仿真M.北京
35、:电子工业出版社,2008.16 Collier W A,Baird D B,ParkNg Z ADiscrimination among milks and cultured dairy products using screenprinted electrochemical arrays and an electronic noseSensorsand Actuators,2003,92(1-2):23223917 Akrajas,Muhamad Mat Salleh,Muhammad Yahaym Enriching the selectivityOf metal loporphyrin
36、s chemical sensors by means of optical techniqueSensors and Actuators,2002,85(3):19119618 徐伟.51单片机综合学习系统-数码管原理与应用篇J.电子制作,2007(1):26-2719 张立科单片机典型外围器件及应用实例M北京:人民邮电出版社,200720 张毅刚单片机原理及应用M.北京:高等教育出版社,200421 彭爱华.单片机高级语言C51应用程序设计M.北京:北京工业出版社,200922 冯育长等.单片机系统设计与实例分析M西安:西安电子科技大学出版社,200723 吴金戌等.8051单片机实践与应
37、用M.北京:清华大学出版社,2002.24 李念强等.单片机原理及应用M.北京:机械工业出版社,2007.附录 A Protues仿真图附录 B 系统原理图附录 C PCB Top Layer 附录 D PCB Bottom Layer附件 E 系统主要程序/* 程序:可燃性气体报警器 * 课题名称: 气敏传感器信号采集系统设计 * 功能描述: 本设计主程序 * 输入: * 内容: * 输出: * 全局变量:* 调用模块: * 作者: 何 强* 日期: 2016.05.12*/#include / 引用标准库的头文件#include #include #define uchar unsigne
38、d char#define uint unsigned intsbit DIN = P20; / 串行数据输入sbit CLK = P21; / 串行时钟sbit LOAD = P22; / 显示数据锁存控制sbit SOUND = P15; /用来进行蜂鸣器的报警sbit ST=P36; /启动信号sbit EOC=P33; /转换结束信号连到外部中断1口,转换结束后进入外中断sbit OE=P37; /输出使能#define NoOp 0x00 / 空操作寄存器#define Digit0 0x01 / 数码管1寄存器#define Digit1 0x02 / 数码管2寄存器#define
39、 Digit2 0x03 / 数码管3寄存器#define Digit3 0x04 / 数码管4寄存器#define Digit4 0x05 / 数码管5寄存器#define Digit5 0x06 / 数码管6寄存器#define Digit6 0x07 / 数码管7寄存器#define Digit7 0x08 / 数码管8寄存器#define DecodeMode 0x09 / 译码模式寄存器#define Intensity 0x0a / 亮度寄存器#define ScanLimit 0x0b / 扫描位数寄存器#define ShutDown 0x0c / 低功耗模式寄存器/#defi
40、ne DisplayTest 0x0f / 显示测试寄存器#define ShutdownMode 0x00 / 低功耗方式#define NormalOperation 0x01 / 正常操作方式#define ScanDigit 0x07 / 扫描位数设置,显示8位数码管#define DecodeDigit 0xff / 译码设置,8位均为BCD码#define CommonDigit 0x00 / 译码设置,8位均为非译码方式#define IntensityGrade 0x0a / 亮度级别设置#define TestMode 0x01 / 显示测试模式#define TextEnd
41、 0x00 / 显示测试结束,恢复正常工作模式float result; /AD采样采得的数据uchar MAX,MIN; /报警极的最低值和不报警的最大值uint f;/* 函数名称: SendChar* 功能描述: 向MAX7219写入字节(8位)* 输入: ch :要送入的数据 * 输出: * 全局变量: * 调用模块: 延时函数_nop_*/void SendChar(uchar ch) uchar i,temp; _nop_(); /短暂的延时 for (i=0;i8;i+) temp=ch&0x80; ch=ch1; if(temp) /当该位为1时写入 DIN=1; CLK=0; CLK=1; else /当该位为0时写入 DIN=0; CLK=0; CLK=1; /* 函数名称: changestyle* 功能描述: 译码功能,将需要显示的数字转成相应的七段译码表 如要显示的字符为“0”,则为7e -0111 1111,只有中间的一个LED不亮* 输入: p:要转换的数据 * 输出: * 全局变量: * 调用模块: *