基于单片机的多路温度巡检系统设计毕业设计说明书 - 图文

更新时间:2023-12-16 08:49:01 阅读量: 教育文库 文档下载

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

摘 要

温度检测仪是一种非常重要的测温设备,广泛应用于建筑工业场所,温度检测系统中的信息对城市供暖、新型建筑材料的特性检验、建筑节能、空暖与热网、空调系统、通风、排水网与燃气配管网等系统的特性与运行研究起着至关重要的作用,这也是本文研究温度检测系统的意义所在。

本文主要设计了一种多路温度巡检系统的方案。该系统主要完成以单片机STC 12C5A16AD系统为核心,采用8路K型热电偶传感器和多路开关CD4051,从而实现对8路温度巡回采集,并且采用MAX6675芯片完成对热电偶微弱信号的放大、冷端补偿和A/D转换等功能。将转换后的采样值送入单片机进行数据处理来确定其温度值。单片机通过对数字信号处理,并在数码管上显示。本文从硬件和软件两个方面介绍了设计的实现方法,其中硬件设计的重点是单片机最小系统、电源电路、温度检测电路、多通道切换电路、A/D转换电路、显示电路、按键电路、报警电路,软件设计的重点是系统总体流程设计、显示模块、按键模块、A/D转换模块、报警指示模块。

经过仿真测试结果表明,本系统测量速度快、测量精度高、测量范围广,达到了系统的指标要求,工作可靠,操作简单,用户界面友好。

关键词:温度检测仪,单片机,热电偶,多通道切换

I

Abstract

Temperature detector is a kind of very important temperature measuring equipment, which is widely used in the construction industry place, temperature detection system in the information of urban heating, new building material property test, the construction of energy-efficient, empty warm and heat supply network, air-conditioning system, ventilation, drainage network and gas piping network system characteristics and operation of research plays a vital role and the significance of which is the study of the temperature detection system.

This paper designed a multi-channel temperature measuring system scheme. This system mainly completes STC12C5A16AD microcontroller system as the core, the 8 K type thermocouple sensor and multi-channel switch CD4051, so as to realize the temperature circuit acquisition, and by using MAX6675 chip to complete the thermocouple weak signal amplification, cold junction compensation and A/D conversion function. The sampling values into the SCM data processing to determine the temperature value. The MCU through the digital signal processing and digital tube display.This paper describes the hardware and software aspects of the design implementation, focusing on where the hardware design is the smallest single-chip system, the power supply circuit, the temperature detection circuit, a multi-channel switching circuit, A/D converter circuit, display circuit, key circuit alarm circuit, focusing on the overall system software design process design, display module, button module, A/D converter module, alarm indication module.

According to the simulation test results show that the system fast measurement speed, high measurement precision, measurement range wide, can satisfy the requirements of system of indicators, reliable work, simple operation, the user interface friendly.

Keywords:Temperature detector, microcontroller, thermocouple, multi-channel switch

II

目 录

摘 要 .............................................................................................................................................. I Abstract ....................................................................................................................................... II 目 录 ......................................................................................................................................... III 第1章 绪论 ............................................................................................................................. 1

1.1 系统背景 ........................................................................................................................ 1 1.2 系统来源及现状 ............................................................................................................ 2

1.2.1 系统的来源 ......................................................................................................... 2 1.2.2 温度检测仪表的现状 ......................................................................................... 2 1.3 系统概述 ........................................................................................................................ 3 1.4 本文的研究的主要内容 ................................................................................................ 3 第2章 系统方案设计论证 ................................................................................................. 4

2.1 系统的基本设计方案 .................................................................................................... 4 2.2 系统的工作原理 ............................................................................................................ 4 2.3 系统的方案设计与比较 ................................................................................................ 5

2.3.1 单片机的选择 ..................................................................................................... 5 2.3.2 温度传感器的选择 ............................................................................................. 5 2.3.3 多通道切换电路的选择 ..................................................................................... 6 2.3.4 键盘的选择 ......................................................................................................... 6 2.3.5 显示模块的选择 ................................................................................................. 7 2.3.6 报警电路的选择 ................................................................................................. 7 2.4 方案的论证及确定 ........................................................................................................ 7 2.5 本章小结 ........................................................................................................................ 8 第3章 系统硬件设计 .......................................................................................................... 9

3.1 单片机最小系统的设计 ................................................................................................ 9 3.2 电源电路的设计 .......................................................................................................... 11 3.3 温度检测电路的设计 .................................................................................................. 12 3.4 多通道切换电路的设计 .............................................................................................. 13 3.5 A/D转换电路的设计 ................................................................................................... 14

3.5.1 模拟信号的放大 ............................................................................................... 16 3.5.2 热电偶的冷端补偿 ........................................................................................... 16 3.5.3 信号的A/D转换 ............................................................................................... 16 3.6 显示电路的设计 .......................................................................................................... 16 3.7 按键电路的设计 .......................................................................................................... 17 3.8 报警电路的设计 .......................................................................................................... 18 3.9 本章小结 ...................................................................................................................... 19 第4章 系统软件设计 ........................................................................................................ 20

4.1系统主程序的设计 ....................................................................................................... 20 4.2 显示子程序的设计 ...................................................................................................... 21 4.3 按键子程序的设计 ...................................................................................................... 23 4.4 A/D转换子程序的设计 ............................................................................................... 25 4.5 报警子程序的设计 ...................................................................................................... 26 4.6 本章总结 ...................................................................................................................... 26

I II

第5章 系统调试 ................................................................................................................. 27

5.1 软件系统调试 .............................................................................................................. 27 5.2 硬件系统仿真调试 ...................................................................................................... 28 5.3 实物调试 ...................................................................................................................... 31 5.4 本章总结 ...................................................................................................................... 32 第6章 总结 ........................................................................................................................... 33 致 谢 ......................................................................................................................................... 34 参考文献 .................................................................................................................................. 35 附录 ........................................................................................................................................... 37

原理图 .................................................................................................................................. 37 部分程序 .............................................................................................................................. 38

IV

第1章 绪论

1.1 系统背景

测量是运用专业的工具,根据生物、物理、化学等原理,通过计算与实验得到被测量的数据。测量的目的是尽量准确的及时收集到被测量的状态信息,以便于对生产的过程进行准确的控制。测量是人类认识和改造世界的一种不可缺少和代替的手段。历史事实也已经证明:科学的进步,生产的进步与发展是相互促进与依赖的。测量技术反映一个国家的科学技术发展的水平。测量水平的发展与科学技术的进步是密切相关的。可以这么说,评价一个国家的科技水平,最简单方便的办法就是看这个国家的测量出的水平与测量出来的数据是如何被运用的。

在建筑测量的热工特性;暖通空调领域中,空调、供暖、制冷效果的检验;对建筑节能的研究;对新型建筑材料特性的检验;空暖与热网,空调系统、通风、排水网与燃气配管网等系统的特性与运行研究中,都需要对压力、温度等参数进行测量。

这些领域的测量具有本身具备的特点,例如在供暖网的系统中,它存在以下的特点:

(1)需要分时记录管网运行参数。要对管网的运行进行分析与研究,管网的分时运行参数的测量和记录特别重要。一般要求在管网运行时期,按规定的顺序检测与记录运行的参数。

(2)测量点分散,作用半径较大。就拿一个城市的集中供暖网的系统来说,它的系统大,覆盖面广。这样对供暖网不通点的运行参数进行测量时,测量点就相当分散。

除此之外还有节能建筑的效果检验,它需要对非节能建筑与节能建筑之间的功耗进行比较,这一样需要对建筑物内的房间进行分时的测量与记录。但它也存在和供暖效果检验的一样困难。另外一些其他的专业的科学实验中,温度也是一个特别重要测量参数。

综上所述,由于温度的测量存在上面所提到的问题,就需要由一种使用便利的测量仪表,能进行实时的检测,能进行对数据的记录,不需要人为干预其长期自动运行。所以本文设计了一种方便使用的数码显示温度数据,采用热电偶温度传感器来将温度信号转换为电压信号,并运用冷端补偿的方法来消除热电偶的测量误差。本温度传感器在设计的时候,为了满足多路巡检这个要求,采用了8路热电偶传感器轮流进行检测,从而实现对多路温度巡检的实时数据进行采集。采用稳压电源来给位处理器进行供电,这样可以省去电池供电所带来的如电压不稳定、作用时间不长以及电压的下降而影响整个系统的工作精度于稳定性的问题。

1

路简单,而且节约了大量的I/O接口。

综上所述,由于本系统所需要的按键不多,故采用独立式按键。

2.3.5 显示模块的选择

方案1:数码管的静态显示

采用LED数码管的静态显示的方式电路简单,但是需要的每个数码管都要用一块74LS47来驱动显示,这样的话就增加了设计的复杂性,也提高了设计所需要的成本,并且需要占用单片机大量的I/O口。

方案2:数码管的动态显示

采用LED数码管的动态的扫描显示的方式,只需要一块相应的数码管驱动的芯片就能够驱动数码管开始工作,数码管的动态显示价格便宜,操作简单。能够节省大量的I/O口,并且功耗更低。

综上所述,选用数码管动态显示适合本次的设计要求。

2.3.6 报警电路的选择

方案1:采用闪光报警

闪光报警时一个非常基本的报警系统,它的设计简单,工作方式就是人们只有看到报警发出的信号灯,才知道系统有故障,所以应用范围不是很广。

方案2:蜂鸣报警

蜂鸣报警在目前的报警系统中运用非常普遍,它的电路简单,人们可以通过对报警发出的声音就可以很轻易的发现系统故障。所以应用范围广。

方案3:语音报警

语音报警系统是智能化的报警系统,它可以实现语音报警提醒人们系统出现故障,因为是智能化的报警系统,所以设计要用到的电路、程序等都很复杂。

综上所述,本文采用蜂鸣报警,一旦工厂里的室内温度出现异样,蜂鸣报警器就会产生作用,提醒工作人员。

2.4 方案的论证及确定

综上所述,通过各个模块功能的比较与选择,本系统的方案是采用基于

STC12C5A16AD单片机为核心的温度巡检仪,采用8路K型热电偶温度传感器和多路开关CD4051,从而实现对8路温度巡回采集,并且采用MAX6675芯片完成对热电偶微弱信号的放大、冷端补偿和A/D转换等功能。本系统采用独立式键盘,数码管动态显示,蜂鸣报警。

7

2.5 本章小结

本章首先阐述了系统的基本设计方案,说明了系统的工作原理,详细地对硬件的各个模块进行分析比较,从而确定了各个模块的具体型号、功能。为下面硬件设计与软件设计奠定了基础。

8

第3章 系统硬件设计

多路温度巡检系统是由硬件电路与软件配合来共同完成其功能的,硬件主要由单片机最小系统、电源电路、温度检测电路、多通道切换电路、A/D转换电路、显示电路、按键电路、报警指示电路组成。下面将对多路温度巡检系统的硬件电路进行详细分析。

3.1 单片机最小系统的设计

STC12C5A16AD器件是完全集成的混合信号系统级MCU芯片,具有32个数字I/O引脚,是STC生产的机器周期(1T)/单时钟的单片机,是低功耗/高速/超强抗干扰的新一代8051单片机,指令代码能够完全兼容传统8051,但速度比8051快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换,引脚如图3-1所示。本设计主要利用 STC12C5A16AD运算速度快,从而达到优化系统设计的目的。

图3-1 STC 12C5A16AD 单片机引脚图

下面列出了一些主要特性:

1、增强型8051CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051 2、工作电压:5.5V - 3.5V(5V单片机)

3、工作频率范围:0~35MHz,相当于普通8051的0~420MHz 4、片上集成1280字节RAM 5、用户应用程序空间16K

9

6、通用I/O口:每个I/O口驱动能力均可达到20mA,但是芯片最大不能够大于120mA

7、ISP(在系统中能编程)/IAP(在应用中能编程),不需要专用编程器与专用仿真器,能够在串口(P3.0/P3.1)直接可以下载程序,

8、有EEPROM功能 9、看门狗

10、内部集成MAX810独有的复位电路

11、外部掉电检测电路:P4.6口中有一个低压门槛比较器

12、时钟源:时钟晶体,内部R/C振荡器,在精度要求不高时候,可以选择内部时钟。

13、共4个16位定时器,两个同8051兼容的计数器/定时器,定时器T0与T1,无定时器2,再加上2路PCA模块可再得到2个16位定时器

14、2个时钟输出口,可通过T0的溢出在T0/P3.4输出时钟,可通过T1的溢出在T1/P3.5输出时钟

15、7路外部中断I/O口,传统的低电平触发中断,而且新增了上升沿中断的PCA模块,Power Down模式可通过外部中P3.2/INT0,P3.3/INT1,P3.4/T0,P3.5 /T1,P3.0 /RXD,P1.3 /CCP0, P1.4/CCP1

16、PCA(2路)(2路可编程计数器阵列)

--- 也能当2路D/A使用 --- 也能再得到2个定时器 --- 也能再得到2个外部中断

17、A/D转换, ADC精度为10位,共8路,转换速度能够达到250K/S

18、通用全双工异步串行口(UART),STC12系列是增强版8051,可再用定时器或PCA软件实现多串口

19、使用温度范围:-40~+85℃(工业级)/0~75℃(商业级)

单片机最小系统包括单片机、晶振电路、复位电路、电源电路。单片机最小系统如图3-2所示。

10

VCCVCCP10P12P13P14P15P16P17RST1234567891011121314151617181920U1P10/T2P11/T2EXP12P13P14P15(MOSI)P16(MISO)P17(SCK)RSTP30/RXDP31/TXDP32/INT0P33/INT1P34/T0P35/T1P36/WRP37/RDXTAL2XTAL1GNDVCCAD0/P00AD1/P01AD2/P02AD3/P03AD4/P04AD5/P05AD6/P06AD7/P07EA/VPPALE/PROGPSENA15/P27A14/P26A13/P25A12/P24A11/P23A10/P22A9/P21A8/P204039383736353433323130292827262524232221P00P01P02P03P04P05P06P07S0SW-PBC110uF/25V10KR1P34P35P36P37X2X1C220PY112MC320PP25P24P23P22P21P20STC 12C5A16AD

图3-2单片机最小系统

各端口分配表见表3-1。

表3-1单片机IO分配表

单片机IO口 P0.0~P0.7 P1.O P1.2~P.4 P1.5~P1.7 P2.0~P2.5 P3.4~P3.7 XTAL1、XTAL2 RST 所接器件 接数码管 接报警电路 接按键 接MAX6675 接接数码管驱动电路 接CD4051 接晶振电路 接复位电路 3.2 电源电路的设计

电源电路的作用是将外部输入电源转换为内部所需要的各类工作电压,电源电路设计的好坏将影响到整个设备。电源电路设计不当,将导致整个电路不能正常工作,甚至被烧坏。设计好的电源电路能为设备的运行提供稳定的工作电压。

本次电源电路设计主要由整流桥、电容、稳压芯片7805、稳压芯片7905组成电源电路设计,供电原理:外接的交流电压220V电源经变压器转换输出为12V的电压,再通过整流桥、滤波电路、稳压芯片实现一个稳定的电压。为整个系统提供+5V、-5V电源。电源电路原理图如图3-3所示。

1 1

1D1BRIDGE1JP?21421U67805VinGNDVCC+5V3C11C10104470uF/16V21交流电压12V3C8C9104470uF/16V470uF/16VC13GNDU7C1479051042VinC15470uF/16V3C16104-5V-VCC

图3-3电源电路图

3.3 温度检测电路的设计

本系统采用K型热电偶传感器进行对远距离的8路温度进行检测,K型热电偶传感器的作用是将采集到的温度信号转换成电压信号。

K型热电偶是现在使用最广泛的廉价热电偶,其用量是最多的,几乎是其它热电偶使用之和。K型热电偶丝的直径通常是1.2~4.0mm。

正极(KP)的名义化学成分为:Ni:Cr=90:10,负极(KN)的名义化学成分为:Ni:Si=97:3,其使用温度为0℃~1300℃。

K型热电偶具有线性度好,灵敏度高,均匀性较好,稳定性与热电动势较大,价格便宜,抗氧化性能强等优点,它可以在氧化性惰性气氛使用中,它被用户广泛地所采用。K型热电偶不能直接用于氧化交替的气氛中和真空中,弱氧化气氛,也不能够在高温下用于硫,还原性或还原。根据本设计技术要求测温范围为:0~1000℃,选择K型热电偶能满足要求。

表3-2 K型热电偶性能说明

分度号 材质 补偿导线型号 补偿导线材质 正极 铜

负极 康铜 K 镍镉-镍硅 SC x121y0x0

图3-4 K型热电偶传感器

12

3.4 多通道切换电路的设计

本系统是一个多路巡检的系统,为了实现8路检测,如果在每一路都接一个A/D采样通道,这样太浪费资源,所以要使用模拟通道开关芯片,可以实现多个通道的快速切换,这样只要一路A/D采样通道即可实现8路巡检功能,同时还可以保证各通道电流的一致性。本设计所用多路开关是两个单八路模拟开关CD4051。CD4051引脚见图3-5。

OUTx3U3XX0X1X2X3X4X5X6X7INHVCCVEEGNDCD4051ABC131415121524611109x0x1x2x3x4x5x6x7VCC-VCC1678U4OUTy3XX0X1X2X3X4X5X6X7INHVCCVEEGNDCD4051ABC131415121524611109y0y1y2y3y4y5y6y7P34P35P36P37VCC-VCC1678

图3-5 CD4051引脚图

CD4051相当于一个单刀八掷开关, 其中“INH”是禁止端,当 “INH”=1时,各通道均不接通。只有当“INH”=0时,才能选通某一通道,使开关接通。开关接通哪一通道,由输入的3位地址码ABC来决定。当ABC输入000~111,分别对应0~7通道上的开关处于闭合状态。此外,CD4051还有另外一个电源端VEE,它是当作电平位移的时候用的,能使一般在单组电源供电情况下工作的 CMOS电路所提供的数字信号能够直接控制CD4051,并且使CD4051可传输峰-峰值达到15V的交流信号。比如,如果模拟开关的供电电源VCC=+5V,当VEE=-5V时,只要对这个模拟开关施加0~5V的数字控制信号,就可模拟信号的幅度范围控制在-5V~+5V的。输入状态和接通通道见表3-3。

3 1

表3-3 CD4051连接状态表

INH 0 0 0 0 0 0 0 0 1 A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 连接状态 0 1 2 3 4 5 6 7 均不接通 3.5 A/D转换电路的设计

本文采用MAX6675芯片进行对K型热电偶传感器采集到的模拟信号进行信号的线性校正、放大、冷端补偿、A/D转换处理。K型热电偶是一种主要的温度传感器,具有测量精度高、测温范围宽、测量速度快、使用方便等特点。然而把K型热电偶用在基于单片机的系统时,却有着下面几个问题。

1.热电偶输出的热电势同温度之间存在非线性关系,所以在使用的时候一定要对其实行线性化处理。

2.热电偶输出的热电势是热端与冷端温度t0=0℃时的电势之差,但是在实际测量时冷端的温度会随环境温度的变化而改变,所以对其要实行冷端补偿。

3.与MCU系统接口一定要进行数字信号输出,而热电偶传感器输出的模拟信号一定是不能满足要求的,所以需要进行A/D转换。

综上所述,如果将热电偶应用在单片机系统时,需要设计出复杂的信号放大电路、冷端补偿电路、线性校正电路、A/D转换电路及数字化输出接口。假如能够把上面所提到的功能集成到一个集成芯片中,就是采用一个芯片来完成信号的放大、冷端补偿、线性化校正以及数字化输出功能,那么就能够使热电偶在单片机的应用设计得以简单化。

MAX6675芯片是Maxim公司推出的一种K型热电偶专用A/D转换器,内部集成了信号调节放大器、冷端补偿电路、12位的A/D热电偶转换器、数字控制器、SPI串行接口与SPI有关的逻辑控制。 MAX6675芯片有以下特性:

1.测温范围为:0℃~+1024℃; 2.SPI串行接口输出温度值; 3.12位0.25℃的分辨率; 4.高阻抗差动输入;

14

5.冷端补偿;

6.K型热电偶断线检测; 7.功耗较低; 8.电源电压为:+5V; 9.2000V的ESD信号;

10.工作温度范围为:-20℃~+85℃。

该器件采用8引脚SO帖片封装,引脚排列如图3-6所示。

U2P15P16P17765SOCSSCKT+T-VCC324OUTxOUTyVCCC120.1uF

GNDMAX66751

图 3-6 MAX6675的引脚图

由热电偶测温的方法可知,热电偶的输出热电势不仅仅取决于热端的温度,还同冷端的温度也有关,芯片通过对它内部元器件参数进行激光修正,从而使K型热电偶的非线性得到内部校正。同时,MAX6675内部集成的热电偶断线检测电路、冷端补偿二极管电路、非线性校正电路都让K型热电偶的应用得以简化,它的工作原理如图3-7所示。

图3-7 MAX6675内部结构图

5 1

3.5.1 模拟信号的放大

MAX6675片内先通过信号调节放大器把热电偶输出的热电势信号转换成与ADC输入通道能够兼容的电压信号,T+和T-输入端与低噪声放大器A1相连接,那么就使检测输入的精度变高,同时把干扰源与热电偶连接导线相隔离。热电偶输出的热电势通过低噪声放大器A1放大之后,通过电压跟随器A2缓冲后,送到ADC的输入端。

3.5.2 热电偶的冷端补偿

在将温度电压值转换为相同的温度值之前,MAX6675需要对热电偶进行冷端补偿,冷端温度就是MAX6675周围的温度同0℃实际参考值之差。芯片是通过冷端补偿的方法来校正周围温度变化的。MAX6675能够将冷端温度经过其内部的冷端补偿二极管转化成补偿电压。

3.5.3 信号的A/D转换

为了得到热电偶实际测量的温度值,MAX6675从热电偶的输出与温度补偿二极管的输出测量电压。MAX6675内部电路把冷端补偿二极管电压与热电偶输出电压送至ADC中转换,从而计算出热电偶的热端温度。

MAX6675采用标准的SPI串行接口输出数据的。MAX6675芯片通过SPI串行接口输出数据的过程是这样的:片选信号端CS为高电平时启动温度转换,低电平时允许数据输出;SCK为时钟输入端;SO为数据输出端,AD转换后的12位数据由S0以SPI方式输出。CS端接单片机的P1.6脚,SCK引脚接单片机的P1.7脚,SO引脚接单片机的P1.5脚。

3.6 显示电路的设计

本文采用两位一体的共阴数码管显示通道号,四位一体共阴数码管显示温度信息,两位LED是共阴极的两位动态显示数码管,其内部有两个共阴极数码管,四位LED是共阴极的四位动态显示数码管,其内部有四个共阴极数码管,选择动态的显示数码管可以节省单片机的I/O。另外由于单片机的I/O口驱动能力有限,本文采用三极管来驱动LED显示。

共阴极(C0M)数码管是通过把发光二极管的阴极连接起来,即共阴数码管。其在使用的时候应该把公阴极C0M接地,当其中一个字段的阴极是低电平的时候,这一字段就会亮。当其中一个字段的阴极是高电平的时候,这一字段就不亮。

动态显示数码管是使用最多的一种显示方式之一,动态驱动是把数码管\c,d ,e, f, g, dp\的同名端接在一起,除此之外为所在的数码管公共极C0M提供位选通的控制电路,位选通是由每个独立的I/O口控制,单片机可以输出字形码,数码管也可以收到相同字形码,最终单片机可以通过位选通(C0M)端的电路控制显示出字形

16

的数码管,因此只需将所要显示某位的数码管选通的控制打开,数码管所在的位会显示出字形来,然而数码管的选通控制没有打开,即该数码管不会显示。数码管的动态驱动是分时轮流控制数码管(C0M)端,可以实现控制数码管的显示。能够节省大量的I/O口,并且功耗更低。

P0010P01P029P031P043P052P066P0745fegdbcdpefgdbcdpD12位数码管78Q5NPNR114.7KQ6NPNR134.7KR104.7KP24P25R124.7K

图3-8通道显示

P0011P01P0274P03P042P05110P06P0753afedgbcdpedfgbcdpedfgbcdpedfagbcdpD24位数码管12986Q1NPNR34.7KQ2NPNR54.7KQ3NPNR74.7KQ4NPNR94.7KR24.7KR44.7KR64.7KR84.7K P20P21P22

图3-9 温度显示

3.7 按键电路的设计

常用的键盘分为独立按键式键盘与行列扫描式键盘两种。独立按键式键盘用于在系统中所用的按键不多的情况,单个的按键电路与单片机的I/O 口线直接连接。而行列扫描式键盘用在系统中所需按键较多的情况,由于本设计用到的键盘数量少,单片

7 1

P23

机I/O 端口充足,故使用独立式键盘。

在单片机的应用当中,有时需要输入配置信息参数。在这些的应用当中,键盘是一个不可以缺少的部分,运用STC12C5A16AD单片机很容易就可以实现独立键盘的功能。结合本系统采用独立式按键,接口接在STC12C5A16AD单片机的P1.2、P1.3、P1.4上,总共是3个独立的按键,按键按下,电路导通,相应的功能就会得到应用,四个按键分别是S1、S2、S3,主要的功能是S1巡检,S2定点,S3退出报警。

P12s1SW-PBP13s2SW-PBP14s3SW-PB 图3-10 独立按键电路图

3.8 报警电路的设计

在单片机采集温度当超出所设定的温度500℃时,单片机系统能相应发出提醒。本设计采用蜂鸣器。蜂鸣器可用STC12C5A16AD 的P1.0口线通过设置PNP的饱和截止驱动蜂鸣器发声,应当I/O口线发出具有一定的低电平信号,即可使蜂鸣器报警。报警电路如图3-11所示。

VCCU3BUZZERR141.5KP10Q19012

图3-11 报警电路图

18

3.9 本章小结

本章内容详细地分析系统硬件电路,良好的硬件是保证系统正常工作的基础。整个硬件系统由单片机最小系统、电源电路、温度检测电路、多通道切换电路、A/D转换电路、显示电路、按键电路、报警电路组成。

系统选用STC12C5A16AD系统的MCU,保证了系统高速、稳定运行,MAX6675内置AD用来转换采集来的电压信号。

9 1

第4章 系统软件设计

软件的功能可以分为两大类:一是主程序,它是整个控制系统的核心,主要是用来协调各执行模块和操作者的关系。二是子程序,主要是用来完成各种实质性的功能AD转换、状态显示、通讯等。每一个执行软件也就是一个小的功能执行模块。

因为汇编语言程序的可读性与可移植性相对较差,使用汇编语言编写程序周期长,调试与排错也很难,为了使单片机应用程序的效率得到提高,使程序的可读性和可移植性得到改善,采用高级语言无疑是一种很好的选择。采用C语言可以提高单片机应用程序的效率,改善程序的可读性和可移植性。C语言既有面向硬件和系统、像汇编语言那样可以直接访问硬件的功能,又有高级语言面向用户、容易记忆、便于阅读和书写的优点,C语言表达能力强且应用灵活的特点。

温度检测仪的检测的程序采用模块的思想,让主程序担当协调模块之间处理的核心,设置许多的模块化的子程序,使用子程序可以让各个模块的功能能够实现,使得设计简化,当运行中出现问题时,用户可以调用子程序能够直观地检查出问题的所在,大大简化了调试,设计思路清晰,使复杂的功能实现简洁易行。

采用模块程序设计。采用自顶向下的程序设计。外部设备和外部事件尽量采用中断方式与CPU联络,这样既便于系统模块化, 也可提高程序效率。近几年推出的单片机开发系统, 有些是支持高级语言的,系统的软件设计应充分考虑到软件抗干扰措施。

本设计主要分为系统主程序的设计、显示子程序的设计、按键子程序的设计、A/D转换子程序的设计、报警子程序的设计。

4.1系统主程序的设计

温度巡检仪通电后,系统初始化完成以后,系统首先要进行切换通道,然后进行AD采集读取温度,并且执行温度比较,假如温度超过设定的上限值,将进行蜂鸣器报警并显示报警温度,如果温度没有高于设定的上限值,则通过数码管显示正常温度数据。之后扫描按键,判断按键是否按下,如果有按键触发将会进行按键处理,如果没有按键触发则返回主程序。系统总流程图如图4-1所示。

20

开始初始化切换通道AD采集读取温度温度超过上限值N显示Y蜂鸣器响进行按键处理扫描按键按键是否按下YN返回

图4-1 系统总流程图

4.2 显示子程序的设计

本设计采用两位一体的共阴数码管显示通道号,四位一体共阴数码管显示温度信息。

数码显示有静态显示和动态显示两种方式,由硬件决定了本设计采用动态显示方式,动态显示具有节约CPU 资源、节省单片机端口、显示灵活等优点。 显示模块具体要求如下:

1、能够单独显示某一位; 2、小数点能够灵活显示; 3、能够实时的显示。

通道号显示子程序流程图如图4-2所示,温度值显示子程序流程图如图4-3所示。

1 2

第5章 系统调试

系统调试主要用到 Keil 和 Protues 两大软件,Keil 用于编程,Protues可以和 Keil 联调,可以直观的看到程序效果。

5.1 软件系统调试

Keil C51 是美国 Keil Software 公司出品的51系列兼容单片机C语言软件开发系统,Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,理解起来比较容易。在开发大型软件时,高级语言的优势更加明显。

与汇编比较起来,C语言在结构性、可维护性、可读性、功能上等方面的优势比较明显,所以学习和使用比较容易。用过汇编语言之后再使用C语言来,就会有更深的体会, Keil C51提供大量的库函数与功能强的调试工具,全 Windows 界面。

本设计的程序是用C语言编写的,用 Keil uVision4编译软件进行编译。将源文件:多路温度巡检系统设计.c进行编译,Keil作为编译的程序,当编译成功后可以用自带的仿真功能仿真,Keil编译成功如图5-1所示。

图5-1 Keil 编译成功

7 2

在进行程序编译完成之后,我们将对其生成多路温度巡检系统.hex文件,具体操作如图5-2所示。

图5-2生成.hex文件

5.2 硬件系统仿真调试

Protues 软件是英国 Labcenter electronics 公司出版的 EDA 工具软件。它不仅具有EDA软件的仿真功能,还具有仿真单片机以及外围器件。虽然目前国内推广刚起步,但已受到单片机喜爱者,以及致力于单片机开发的科技工作者的青睐。Proteus 是世界上比较著名的EDA软件仿真工具,从原理图的布置、代码的调试到单片机以及外围电路的仿真,可以更快的切换到 PCB的设计,操作简单。

它是目前世界上可以将电路、PCB的设计、虚拟模型集合在一起的仿真软件,可以使用8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086 和 MSP430 等处理器处理,持续增加其他系列处理器模型。

先用 Protues软件画好仿真原路图,然后后将多路温度巡检系统.hex文件加载到单片机进行调试,然后开始仿真,Protues 原理图如图5-3所示。

在本文中选择了对第一路,第三路,第五路,第七路的温度从100℃到200℃随机选取几组温度值,进行了抽样测量。

28

图5-3 Protues 原理图

当按下S1按键时,系统进行8路巡检,当两位数码管显示01时,按下S2按键时,即对第一路温度进行定点检测,四位数码管显示温度为137.0℃。

图5-4第一路温度显示

9 2

当按下S1按键时,系统进行8路巡检,当两位数码管显示03时,按下S2按键时,即对第三路温度进行定点检测,四位数码管显示温度为142.2℃。

图5-5第三路温度显示

当按下S1按键时,系统进行8路巡检,当两位数码管显示05时,按下S2按键时,即对第五路温度进行定点检测,四位数码管显示温度为158.0℃。

图5-6第五路温度显示

30

当按下S1按键时,系统进行8路巡检,当两位数码管显示07时,按下S2按键时,即对第七路温度进行定点检测,四位数码管显示温度为167.5℃。

图5-7 第七路温度显示

调试中遇到的问题及解决:一开始仿真的时候,系统不能够进行多路切换,只能够进行一路温度定点检测,通过检查程序,并且向导师请教,发现编写的程序有问题,导致了系统不能够进行多路切换,通过改写程序,再将程序生成的hex文件加载到单片机中,继续进行仿真,终于可以实现多路巡检。

5.3 实物调试

软件仿真成功,将程序烧至单片机,进行实物调试,在调试过程中遇到了一些问题,下文将进行讲述和分析。

第一个问题:仪器上电后数码管出现闪屏现象。

排查分析:由原理图可知,单片机控制数码管的显示。我们可以进行逐级排查的方法来查找问题。

排查1:检查4位数码管是共阴还是共阳。方法:用两根导线一端分别接电源的正负极,接正的导线另一端接数码管任意一位位选端,接负的导线接段码a~Dp 中的任意一端发现数码管不亮,相反接法对应段发光,说明管子是共阴管。由此得出数码管是符合要求的。

排查2:排除数码管的嫌疑后,就只剩下单片机的原因了。首先用万用表检查单片机的P0.0~P0.7是否正常,是否有短接可能,通过检查发现单片机20号引脚(GND)

1 3

与40号引脚(+5V)短路。经过修改,数码管正常显示了。

第二个问题:仪器自动测量后数码管无论怎么测量都是0。

排查分析:由原理图可知,可以看出信号传达的方向,我们可以根据信号的流向进行逐级排查来查找问题。

排查1:检查查单片机模块是否正常工作。首先用万用表检查该芯片供电引脚是否正常,是否有短接可能。

排查2:多路开关4051是否正常工作。可以测量4051芯片的工作电压是否正常,经测量,发现4051芯片工作正常。

排查3:排查MAX6675芯片是否正常工作。可以测量MAX6675的工作电压是否正常,经测量,发现MAX6675存在虚焊的问题。通过把A/D芯片的引脚重新抹焊,解决了该问题。

第三个问题:报警部分出现的故障以及解决方法

无报警,可能的原因:蜂鸣器没有导通。用万用表测试一下P10引脚的电平,如果始终是高电平,则说明可能是单片机的P10引脚坏了。

通过以上的排查,查出问题所在,并进行适当的更改修正,使得系统能够正常工作,由此软件测试完成,同时系统各个模块调试结束。

5.4 本章总结

本章主要介绍了使用Protues仿真软件对设计多路温度巡检系统的程序进行仿真运行,仿真结果表明,能够实现预定的功能。系统仿真调试过程中遇到了很多的困难,每次仿真失败后都仔细地检查程序,并进行不断的修改,最后实现了预期想要的结果。但是仿真出来了,在实际的硬件的电路上不一定能够实现,在真正的硬件实际运行可能是错误的,在程序的编写过程中,由于自身的知识和经验有限,可能有些问题没有考虑到,导致在调试电路板的时候没有调试出来。这就需要一定的调试经验和技巧,只有通过不断的思考,不断的请教导师和同学,反复地进行仿真和实际电路板的调试,最后才能实现预期的结果。

32

第6章 总结

本章重点对论文的研究成果进行总结介绍,并在现有的基础上对今后的改进和发展做进一步的展望。

1.本文总结

结合温度测检仪的实际设计和调试经验,对本文的工作总结如下:

(1)简单介绍了温度检测仪的背景,分析其发展趋势以及主要功能。结合实际情况,提出了本文所设计的热电偶温度多路巡检系统的总体方案。

(2)重点说明了热电偶传感器测温的原理及方案。首先,分析下温度测量的设计方案,其次,分析工作原理,最后简单说明尚需改进的方面。

(3)使用了K型热电偶作为本设计的温度传感器,加上适当的外围电路,使本系统具有许多其它温度巡回检测系统所不具备的优点。

(4)结合STC12C5A16AD单片机的内部资源的使用,分别对单片机最小系统、AD采集模块、多路切换模块、显示模块、报警模块等硬件设计电路进行了详细的说明。 (5)首先是对软件系统的开发环境以及总体设计方案进行简单的介绍。然后按照模块化的设计思想,分别介绍显示模块、按键模块、A/D转换模块、报警模块等程序设计。

2.工作中的改进和特点

通过对现有的温度传感器的优缺点的分析,采用8路K型热电偶传感器测温,K型热电偶同其他热电偶传感器相比,其最大的特点就是其专门的信号处理器MAX6675的强大功能。从而在设计电路时不必去考虑信号的放大电路、K型热电偶的冷端补偿、A/D 转换的问题,这种方法大大简化了电路,提高了集成度,本设计结合了MAX6675的工作特性,提出了基于单片机高精度的多路温度巡检系统的设计方案。

3 3

致 谢

随着毕业设计的结束,也就代表着我的四年大学生活也即将结束了。在学校的点点滴滴都像一张张照片在我的脑海里浮现,这些都记录着我的成长,已成为记忆深处的沉淀。正是这些记忆深处的沉淀让我获得了许多感悟,这些感悟将成为我人生的宝贵财富,让我以后的道路走得更加坚实有力。在大学四年的岁月里,无论在学习上还是在思想上我都受益匪浅。除了自己坚持不懈努力之外,还与各位恩师、同学和朋友的支持和鼓励是密不可分的。

整个毕业设计加上论文的撰写对我来说都是富有一定挑战性的。我非常感谢郭建江老师在整个毕业设计中悉心的教导与建议,特别是在整体方案设计方面老师给了不少建议,从开始到最后老师都是一直呕心沥血地给我指导与建议,很多时候正是老师的这些点拨使我豁然开朗,从心底里很感谢我的老师。没有郭建江教授的辛勤栽培、孜孜教诲,就没有我设计的顺利完成。但是,我从他身上学到最多不仅仅是知识,而是一种对待学术的态度,一丝不苟认真对待设计中每个细微的问题,刚开始觉得老师太较真,认为这些根本就不影响设计,后来通过和老师的沟通,才知道就是这些细枝末节的较真才是设计成败的关键。郭老师这种潜移默化的影响,对我在今后人生的作用将有不可替代的地位。

我还要感谢母校—常州工学院,是母校给我提供了优良的学习氛围与条件,感谢每位曾给我授课的老师,是你们教会了我专业知识。

由于本人水平有限,本次毕业设计并不十分完美,对设计中的不足之处,敬请各位老师、同学予以批评指正。

34

参考文献

[1]高洁.关于太阳能热水器控制系统部分硬件电路的设计[J].电子世界,2013. [2]吴凤娟.利用机器翻译技术消瘦少数名族语言障碍马家辰[J].价值工程,2012.

[3]张玉伟.基于STC单片机的智能温湿度控制器的设计与实现[D].河北工业大学出版社,2011. [4]娄洪广.基于多信息融合技术的汽车障碍诊断系统的研究[D].山东科技大学出版社,2007. [5]张迎雪.基于单片机的多路温度控制器硬件设计[J].数字技术与应用,2013.

[6]王华强,顾曼曼. DMF 回收温度监测通信方案的设计[J].安徽大学学报: 自然科学版,2012. [7]王军,高美凤,朱建鸿.基于单片机的多路温度过程测控仪的实现[J].微计算机信息,2010. [8]黄俊,余水宝.基于STC12C5A16AD 的高频高精度频率计的设计[J].微型计算机与应用,2012.

[9]王福瑞等编,单片机微机测控系统设计大全[M].北京航空航天大学出版社,1998. [10]刘大伟,李绪友,郑波祥,等.基于DSP的多路温度控制系统的设计[J].仪表技术与传感器,2004.

[11]房小翠等编.单片机实用系统设计技术[M].国防工业出版社,1999、6. [12]李华等,MCS-51系列单片机实用接口技术,北京航空航天大学出版社. [13]胡汉才编.单片机原理及接口技术, 清华出版社,1995.4.

[14]王庆. Protel 99 SE & DXP电路设计教程[M]. 北京:电子工业出版社,2006.

[15] 罗浩,谢华成.一种新的基于ARM 的数据采集系统设计[J].信阳师范学院学报: 自然科学版,2006.

[16] 万文略.单片机原理及应用.重庆: 重庆大学出版社, 2004.

[17] 郁有文、常健、程继红.传感器原理及工程应用.第二版.西安:西安电子科技大学出版社,2003.

[18] 余成波,胡新宇,赵勇主编.传感器与自动检测技术.北京:高等教育出版社,2004.2. [19] 李丹丹,李正明.基于ARM 的多路温度监控系统的设计[J].微计算机信息,2009. [20] 谭浩强.C语言程序设计(第二版).北京:清华大学出版社,2000.

[21] 诸昌铃.LED显示屏系统原理及工程技术.西安:西安电子科技大学出版社,2000.9 [22]徐爱均.Keil Cx51 V7.0单片机高级语言编程与μVision2应用实践[M].北京:北京航空航天大学出版社,1998.

[23] 沈红卫.单片机应用系统设计实例与分析[M].北京:北京航空航天大学出版社,2003 [24] PHILIPS:80C51-Based 8-bit Microcontrollers,1998. [25] 李广弟等.单片机基础[M].北京航空出版社,2001.

[26] 王东峰等.单片机C语言应用100例[M].电子工业出版社,2009. [27] 陈海宴.51单片机原理及应用[M].北京航空航天大学出版社,2010.

5 3

[28] 刘守义等.单片机技术基础[M].西安电子科技大学出版社,2007. [29] 钟富昭等. 8051单片机典型模块设计与应用[M].人民邮电出版社,2007. [30] 李平等.单片机入门与开发[M].机械工业出版社,2008.

36

显示温度VCCVCC1P1023P124P135P146P157P168P17RST910111213P3414P3515P3616P3717X218X11920VCCP10/T2P11/T2EXAD0/P00AD1/P01P12AD2/P02P13AD3/P03P14P15(MOSI)AD4/P04P16(MISO)AD5/P05P17(SCK)AD6/P06AD7/P07RSTEA/VPPP30/RXDP31/TXDALE/PROGPSENP32/INT0A15/P27P33/INT1A14/P26P34/T0A13/P25P35/T1A12/P24P36/WRA11/P23P37/RDA10/P22XTAL2A9/P21XTAL1A8/P20GNDP00P01P02P03P04P05P06P07fedgbcedpfgd78U14039383736353433323130292827262524232221bcdpP25P24P23P22P21P20Q5NPNR114.7KP0010P01P029P031P043P052P066P0745P0011P01P027P034P042P05110P06P0753显示通道feD1数码管2位dgabcedpfgdbcedpfgdbcedpfagdbcdpS0巡检键P12s1SW-PBSW-PB复位电路P13s2SW-PB10KR1C110uF/25VD2数码管4位12定点键退出键P14s3C2SW-PBC320PSTC 12C5A16ADY112M20P986Q1NPNQ2NPNQ3NPNQ4NPNQ6NPNR134.7KR24.7KR34.7KR54.7KR74.7KR94.7KR44.7KR64.7KR84.7K晶振电路独立按键单片机最小系统P24R104.7KP25R124.7K动电路LED驱附录

P201U3D1BRIDGE1U67805VCC+5VC10104470uF/16V2P21OUTxU2P157P166P175C11SOCSSCKT+T-VCC324OUTxOUTyVCC1GNDMAX6675C15470uF/16V3C16104C120.1uFVCC-VCC33X交流电压12VC8C9104470uF/16V3GND21

4Vin211678INH6VCCVEE470uF/16V2GNDC13U7C1479051041GNDABC11109CD4051Vin-5V电源电路-VCCAD采集U4OUTy3XVCCU3x1x2x3x4x5x6x7x8VCC-VCCBUZZERR14P101212121212121212X0X1X2X3X4X5X6X71678131415121524y0y1y2y3y4y5y6y7INH6P34VCCVEEGNDQ11.5K9012ABC11109P35P36P37CD4051通道切换x0y0x1y1x2y2x3y3x4y4x5y5x6y6x7y7原理图

热电偶K型警报器鸣蜂

7 3

JP?X0X1X2X3X4X5X6X7131415121524x0x1x2x3x4x5x6x7P22P23

部分程序

#include \ //包含头文件

#include \()延时函数需要引用的头文件

#define uchar unsigned char //宏定义下文中的uchar和uint都用unsigend char和unsigend int代替

#define uint unsigned int

sbit SO=P1^5; // 定义MAX6675的数据IO口 sbit SCK=P1^6; // 定义MAX6675的时钟IO口 sbit CS=P1^7; // 定义MAX6675的片选IO口

sbit S1=P1^2; //定义按键IO口 sbit S2=P1^3; sbit S3=P1^4;

sbit BEEP=P1^0;//定义蜂鸣器IO口

sbit TA=P3^5; //定义TA、TB、TC:4051电子开关的通道选择 sbit TB=P3^6; sbit TC=P3^7;

sbit INH=P3^4; //定义4051的片选信号 uint j=0; //延时使用的中间变量 uint wendu; //当前的温度 uint baojin=500;//报警温度值

uint Read_AD(); //读取MAX6675的温度数据函数的声明 void Display_temp(); //显示函数的声明

uchar qian=0,bai=0,shi=0,ge=0,xiao=0;//温度的各个数据分离 uint temp; //中间变量

uint channel_num=1; //当前通道号 uint system_flag=1; //定义

uchar code tab_1[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0~9不带小数点显示段码

uchar code tab_2[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; //0~9带小数点显示段码

uchar code tab_3[6]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf}; //对应显示位码 uint tt=500;

/*********************************************************** *函数名: uint Read_AD() *函数描述:读温度数据

38

*输入参数:无

*输出参数:uint

************************************************************/ uint Read_AD() {

uchar i; //定义中间变量

unsigned long Temp_2=0; //定义中间变量,用于存储读取的AD数据 CS=1; SCK=0; _nop_(); CS=0;

for(i=0;i<16;i++) //读取AD的16位数据 {

Temp_2<<=1; //左移一位 _nop_(); //延时 SCK=1; //拉高时钟

if(SO==1) //若数据为高,则数据为加1 {Temp_2=Temp_2|0x01;} else

Temp_2=Temp_2|0x00; //否则清零 _nop_(); //简单延时 SCK=0; //拉低时钟 _nop_(); //简单延时 }

Temp_2=Temp_2&0x7FF8; //读取数据的第3~14位

Temp_2=Temp_2*1024*5/4096/4; //对数据进行处理,处理成温度数据 return(Temp_2); //返回温度 }

/////////////延时函数/////////////////////////// void delay(uint n) {

uint i=0,j=0; for(i=n;i>0;i--) {

for(j=110;j>0;j--); } }

/*********************************************************** *函数名: void Display_temp()

*函数描述:显示温度数据 ,及当前通道号 *输入参数:无

*输出参数:无

************************************************************/ void Display_temp()

9 3

{

uint temp=wendu; temp=temp*10; if(wendu<=500) {

bai=wendu/1000; //对温度数据进行处理 wendu=wendu00; shi=wendu/100; wendu=wendu0; ge=wendu/10; wendu=wendu; xiao=wendu;

P2=0xFF; delay(1);

P2=tab_3[0]; // P0=tab_1[bai];

for(j=tt;j>0;j--); // delay(2);

P2=0xFF; delay(1);

P2=tab_3[1]; // P0=tab_1[shi]; delay(2);

P2=0xFF; delay(1);

P2=tab_3[2]; // P0=tab_2[ge]; delay(2);

P2=0xFF; delay(1);

P2=tab_3[3]; // P0=tab_1[xiao]; delay(2); } }

void Show_Channel(void) {

P2=0xFF; delay(1);

P2=tab_3[4]; //

显示百位数字 延时 显示十位数字 显示个位数字 显示小数位 显示通道号 十位

40

P0=tab_1[channel_num/10]; delay(2);

P2=0xFF; delay(1);

P2=tab_3[5];

P0=tab_1[channel_num]; //显示通道号 个位 delay(2); }

/*********************************************************** *函数名: void Choose_Channel(uint num) *函数描述:选择通道 *输入参数:uint num *输出参数:无

************************************************************/ void Choose_Channel(uint num) {

INH=0; switch(num) {

case 1:{TA=0;TB=0;TC=0;break;} //选通第1通道 case 2:{TA=0;TB=0;TC=1;break;} //选通第2通道 case 3:{TA=0;TB=1;TC=0;break;} //选通第3通道 case 4:{TA=0;TB=1;TC=1;break;} //选通第4通道 case 5:{TA=1;TB=0;TC=0;break;} //选通第5通道 case 6:{TA=1;TB=0;TC=1;break;} //选通第6通道 case 7:{TA=1;TB=1;TC=0;break;} //选通第7通道 case 8:{TA=1;TB=1;TC=1;break;} //选通第8通道 default:break; } }

////////////////////按键扫描函数/////////////////// uint Key_Scan(void) {

if(S1==0)//如果是S1按键按下 {

delay(2000);//延时消斗

if(S1==0)//再次判断是否按下 {

return 1;//返回按键号 }

while(S1==0);//松手检测

1 4

}

if(S2==0)//如果是S2按键按下 {

delay(2000);//延时消斗

if(S2==0)//再次判断是否按下 {

return 2;//返回按键号 }

while(S2==0);//松手检测 }

if(S3==0)//如果是S3按键按下 {

delay(2000);//延时消斗

if(S3==0)//再次判断是否按下 {

return 3;//返回按键号 }

while(S3==0);//松手检测 }

return 0; }

void main(void) {

uint k=0; uint temp;

for(j=300;j>0;j--); while(1) { wendu=Read_AD(); // 热电偶数据读取,返回温度

if(wendu >baojin)//当温度大于报警值则蜂鸣器报警,否则关闭蜂鸣器 BEEP=0; else

BEEP=1; Display_temp(); //温度显示 Show_Channel(); //显示通道

if(temp=Key_Scan())//扫描按键,查看按键是否被按下 {

if(temp==1) //如果是S1按键按下,则系统处于巡检状态 {

system_flag=1; }

if(temp==2) //如果是S2按键被按下,则系统处于定点状态 {

42

system_flag=2; }

if(temp==3) //如果是S3按键被按下,则系统处于退出报警状态

{

system_flag=3; } } k++;

if(k==40) {

k=0;

channel_num++; //读完通道,通道自增

if(channel_num>8) //判断通道是否巡检到8通道,若是则从第一通道开始显示

{

channel_num=1; }

Choose_Channel(channel_num); //选通下一个通道 } }

//这里是通道的切换

if(system_flag==1)//当系统处于巡检状态时

channel_num++; //读完通道,通道自增

if(channel_num>8) //判断通道是否巡检到8通道,若是则从第一通道开始显示

{

channel_num=1; }

INH=1;

INH=0; }

3 4

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

Top