《基于PT100热电阻的单片机温度检测系统设计(共37页).doc》由会员分享,可在线阅读,更多相关《基于PT100热电阻的单片机温度检测系统设计(共37页).doc(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上目 录专心-专注-专业摘 要本课题以AT89C51单片机系统为核心,对单点的温度进行实时检测。采用模拟温度传感器PT100对温度进行检测;采用串型模数转换器ADC0809进行A/D转换把温度信号调解转换为电压信号与AT89C51单片机接口设置LED八段数码管实时显示温度值。本设计包括温度传感器、A/D转换模块、数据传输模块、温度显示模块四个部分。文中对每个部分功能、实现过程作了详细介绍。关键词 单片机;PT100热电阻;ADC0809;温度检测The design of Single Chip Microcomputer Temperature Detection S
2、ystem Based on the Resistive Thermal Detector of PT100AbstractThis article AT89C51 monolithic integrated circuit which produces by ATMEL Corporation is the core, can inspect a single point of the temperature in real time. The adoption of the serial A/D for temperature signals into voltage signal med
3、iation AT89C51 Single-Ship Compute interfaces with the eighth LED digital display of real-time temperature. The design includes four parts of the temperature sensor and the A / D converter module and the data transmission modules and the temperature display module. Each part functions and the proces
4、s was described in the Paper in detail.Key words Single-Ship Computer; Resistive Thermal Detector of PT100; ADC0809; Measure-temperature1 绪论1.1 课题背景在人类的生活环境中,温度扮演着极其重要的角色。无论你生活在哪里,从事什么工作,无时无刻不在与温度打着交道。自18世纪工业革命以来,工业发展对是否能掌握温度有着绝对的联系。在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎%80的工业部门都不得不考虑着温度的因素。温度对于工业如此重要,由此推进了温度
5、传感器的发展。传感器主要大体经过了三个发展阶段。 模拟集成温度传感器。该传感器是采用硅半导体集成工艺制成,因此亦称硅传感器或单片集成温度传感器。此种传感器具有功能单一(仅测量温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等,适合远距离测温、控温,不需要进行非线性校准,外围电路简单。它是目前在国内外应用最为普遍的一种集成传感器,典型产品有AD590、AD592、TMP17、LM135等。 模拟集成温度控制器。模拟集成温度控制器主要包括温控开关、可编程温度控制器,典型产品有LM56、AD22105和MAX6509。某些增强型集成温度控制器(例如TC652/653)中还包含了A/
6、D转换器以及固化好的程序,这与智能温度传感器有某些相似之处。但它自成系统,工作时并不受微处理器的控制,这是二者的主要区别。 智能温度传感器。能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的。它是微电子技术、计算机技术和自动测试技术(ATE)的结晶。智能温度传感器内部都包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和接口电路。有的产品还带多路选择器、中央控制器(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。智能温度传感器的特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU);并且它是在硬件的基础上通过软件来实现测试功能的,其智能化程度也取决
7、于软件的开发水平。进入21世纪后,温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。目前市场主要存在单点和多点两种温度测量仪表。对于单点温测仪表,主要采用传统的模拟集成温度传感器,其中又以热电阻、热电偶等传感器的测量精度高,测量范围大,而得到了普遍的应用。此种产品测温范围大都在-200800之间,分辨率12位,最小分辨温度在0.0010.01之间。自带LED显示模块,显示4位到16位不等。有的仪表还具有存储功能,可存储几百到几千组数据。该类仪表可很好的满足单个用户单点测量的需要。多点温度测量仪表,相对与单点的测量精
8、度有一定的差距,虽然实现了多路温度的测控,但价格昂贵。本课题以PT100热电阻为温度检测元件,设计了一个对单点温度实时检测的单片机温度检测系统。1.2 方案论证本方案以AT89C51单片机系统为核心,对单点的温度进行实时测量检测。并采用热电阻PT100作为温度传感器、LM741作为信号放大器ADC0809作为A/D转换部件,对于温度信号的采集具有大范围、高精度的特点。在功能、性能、可操作性等方面都有较大的提升,具有更高的性价比。1.2.1 单片机选型美国Atmel公司是国际上著名的半导体公司,该公司的技术优势在于Flash存储器技术。随着业务的发展,在20世纪90年代初,ATMEL公司一跃成为
9、全球最大的EEPROM供应商。1994年,为了介入单片机市场,Atmel公司以EEPROM 技术和Intel公司的80C31单片机核心技术进行交换,从而取得了80C31核的使用权。ATMEL公司把自身的先进Flash存储器技术和80C31核相结合,推出了F1ash AT89系列单片机。这是一种内部含Flash存储器的特殊单片机。由于它内部含有大容量的Flash存储器,所以,在产品开发及生产便携式商品、手提式仪器等方面有着十分广泛的应用,也是目前取代传统的MCS-51系列单片机的主流单片机之一。AT89系列单片机对于一般用户来说,有下列明显的优点:内部含有Flash存储器,在系统开发过程中很容易
10、修改程序,可以大大缩短了系统的开发时间。与MCS-51系列单片机引脚兼容,可以直接进行代换。AT89系列并不对80C31的简单继承,功能进一步增强。在我国这种单片机受到广泛青睐,很多以前使用80C51、80C52的用户都转而使用AT89系列。对于有丰富编程经验的用户而言,不需要仿真器,可以直接将程序烧入芯片,放在目标板上加电直接运行,观察运行结果,出现问题时再进行修改,然后重新烧写程序,再进行试验,直至成功。AT89系列包括两大类第一类是常规的,就是AT89C系列,这类单片机要用常规的并行方法编程,必需使用编程器编程;第二类是在系统可编程(即芯片安装到电路板上之后不用拿下来而直接往里面烧写程序
11、)ISP Flash系列,也就是AT89S系列,这类单片机除了用常规的并行方法编程外,还可以在系统用下载线进行编程,省去价格较贵的编程器,而且可以在目标板上直接修改程序。又考虑到单片机的存储空间与价格,以及我对单片机的熟悉程度,课本学习的是AT89C51单片机,因此,此次设计我选用了AT89C51单片机来完成此次设计。1.2.2 模数转换器选型A/D转换的好与坏直接关系到整个系统的精确度。由于本系统测量的是温度信号,响应时间长,滞后大,不要求快速转换,因此选用8位串型A/D转换器ADC0809。能达到设计的基本要求。为进一步提高精度,可以直接采用12位A/D转换器,也可以采用过采样和求均值技术
12、来提高测量分辨率。本系统采用了求平均值来提高分辨率。因为8位ADC0809其性价比更高,更重要的是我对ADC0809更加了解(课本上学的就是ADC0809),所以本次设计我选用了ADC0809作为模数转换器。1.2.3 显示方案确定该设计的温度测量系统只要求温度的显示,所以显示系统在该设计中是必不可少的。当前常用的有液晶显示和数码管显示两种显示方法。液晶显示功能强大,不但可以显示数字字符、德文、法文、点阵显示,还可以显示全部国标汉字,但是也存在与单片机连接时接口电路驱动复杂;显示亮度低,不利于观察;编程困难;成本高等缺点,本系统只显示数字,而且需要考虑到能耗尽量少等问题,数码管内部元件比较简单
13、,耗能相对较低,所以选择了数码管显示。不但硬件电路简单,造价低廉,而且数码管亮度高,利于我们的观察读数。2 硬件设计2.1 温度信号的获取与放大本系统以PT100为温度传感器获取温度信号,以放大器LM741为信号放大器件。2.1.1 元件介绍PT100温度传感器为正温度系数热电阻传感器,主要技术参数如下: 测量范围:-200+850; 允许偏差值: A级 , B级 ; 响应时间30s; 最小置入深度:热电阻的最小置入深度200mm; 允通电流5mA。另外,PT100温度传感器还具有抗振动、稳定性好、准确度高、耐高压等优点。鉑热电阻的线性较好,在0100摄氏度之间变化时,最大非线性偏差小于0.5
14、摄氏度。鉑热电阻阻值与温度关系为: -200t0时,; 0t850时,;式中,A=0.00390802;B=-0.000000580;C=0.0000000000042735。可见PT100在常温0100摄氏度之间变化时线性度非常好,其阻值表达式可近似简化为:,当温度变化1,PT100阻值近似变化0.39。2.1.2 放大电路设计热电阻测温是基于金属导体的电阻值随温度的增加而增加这一特性来进行温度测量的。通常将其放在电桥的桥臂上,温度变化时,热电阻两端的电压信号被送到仪器放大器LM741的输入端,经过仪器放大器放大后的电压输出送给A/D转换芯片,从而把热电阻的阻值转换成数字量。电路原理图如图2
15、-1所示。图2-1信号采集与放大电路对信号放大,我们使用了低价格、高精度的仪器放大器LM741,它运用方便,可以通过外接电阻方便的进行各种增益(1-1000)的调整。其增益计算公式为: (1)温度值计算过程:由于A/D检测到的模拟电压值 (2)计算可到的值,然后利用如下公式求出温度值: (3)其中,。2.2 模数转换单元2.2.1 8位串行A/D转换器ADC0809ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。它是美国国家半导体公司的产品,是目前国内最广泛的8 位通用的A/D转换的芯片。 ADC08
16、09的内部逻辑结构如图2-2所示。 图2-2 ADC0809内部逻辑结构由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。 引脚结构如图2-3 所示。图2-3 引脚结构IN0IN7:8条模拟量输入通道 ADC0809对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前
17、增加采样保持电路。 地址输入和控制线:4条 ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量送入转换器进行转换。A,B和C为地址输入线,用于选通IN0IN7上的一路模拟量输入。通道选择表如表2-4。表2-4通道选择CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7数字量输出及控制线:11条 ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC
18、为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态。D7D0为数字量输出线。 CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ。VREF(),VREF()为参考电压输入。ADC0809应用注意事项 : ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。 初始化时,使ST和OE信号全为低电平。 送要转换的哪一通道的地址到A,B,C端口上。 在ST端给出一个至少有100ns宽的正脉冲
19、信号。 是否转换完毕,我们根据EOC信号来判断。 当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。 2.2.2 模数转换单元电路的设计电路原理图如图2-5。图2-5 A/D转换电路原理图由图2-5可以看出A、B、C都接地(都为0),故信号输入口选IN0,其空间地址为7FF8H。2.3 键盘电路的设计本设计采用1*3独立按键。其原理图如图2-6。图2-6 键盘电路原理图2.4 LED显示电路的设计在单片机应用系统中,如果需要显示的内容只有数码和某些字母,使用LED数码管是一种较好的选择。LED数码管显示清晰、成本低廉、配置灵活,与单片机接口简单易行。2.4.1 LED数码管
20、原理LED数码管是由发光二极管作为显示字段的数码型显示器件。图2-7a为0.5英尺LED数码管的外形和引脚图,其中七只发光二极管分别对应ag笔段构成“”字形另一只发光二极管dp作为小数点。因此这种LED显示器称为七段数码管或八段数码管。图2-7 LED数码管LED数码管按电路中的连接方式可以分为共阴极和共阳极两大类,如图2-7 b、c所示。共阳型是将各段发光二极管的正极连在一起,作为公共端COM,公共端COM接高电平,ag、dp各笔段通过限流电阻接控制端。某笔段控制端低电平时,该笔段发光,高电平时不发光。控制这几段笔段发光,就能显示出某个数码或字符。共阴型是将各数码发光二极管的负极连在一起,作
21、为公共端COM接地,某笔段通过限流电阻接高电平时发光。LED数码管按其外形尺寸有多种形式,使用较多的是0.5英寸和0.8英寸;按显示颜色也有多种形式,主要有红色和绿色;按亮度强弱可分为高亮和普亮,指通过同样的电流显示亮度不一样,这是因发光二极管的材料不一样而引起的。LED数码管的使用与发光二极管相同,根据其材料不同正向压降一般为1.52V额定电流为10mA,最大电流为40mA。静态显示时取10mA为宜,动态扫描显示可加大,加大脉冲电流,但一般不超过40mA。2.4.2 LED数码管编码方式当LED数码管与单片机相连时,一般将LED数码管的各笔段引脚a、b、g、dp按某一顺序接到MCS51型单片
22、机某一个并行I/O口D0、D1、D7,当该I/O口输出某一特定数据时,就能使LED数码管显示出某个字符。例如要使共阳极LED数码管显示“0”,则a、b、c、d、e、f各笔段引脚为低电平,g和dp为高电平,如表2-8。表2-8 共阳极LED数码管显示数字“0”时各管段编码D7D6D5D4D3D2D1D0字段码显示数dpgfedcba11000000C0H0C0H称为共阳极LED数码管显示“0”的字段码,不计小数点的字段码称为七段码,包括小数点的字段称为八段码。LED数码管编码方式有多种,按小数点计否可分为七段码和八段码;按共阴共阳可分为共阴字段码和共阳字段码,不计小数点的共阴字段码与共阳字段码互
23、为反码;按a、b、g、dp编码顺序是高位在前,还是低位在前,又可分为顺序字段码和逆序字段码。甚至在某些特殊情况下将a、b、g、dp顺序打乱编码。表2-9为共阴极和共阳极LED数码管几种八段编码表。表2-9 共阴极和共阳极LED数码管几种八段编码共阴顺序小数点暗共阴逆序小数点暗共阳顺序小数点亮共阳顺序小数点暗dp g f e d c b a16进制a b c d e f g dp16进制00 0 1 1 1 1 1 13FH1 1 1 1 1 1 0 0FCH40HC0 H10 0 0 0 0 1 1 006H0 1 1 0 0 0 0 0 60H79HF9 H20 1 0 1 1 0 1 15
24、BH1 1 0 1 1 0 1 0DAH24HA4 H30 1 0 0 1 1 1 14FH1 1 1 1 0 0 1 0F2H30HB0 H40 1 1 0 0 1 1 066H0 1 1 0 0 1 1 066H19 H99 H50 1 1 0 1 1 0 16DH1 0 1 1 0 1 1 0B6H12 H92 H60 1 1 1 1 1 0 17DH1 0 1 1 1 1 1 0BEH02 H82 H70 0 0 0 0 1 1 107H1 1 1 0 0 0 0 0E0H78 HF8 H80 1 1 1 1 1 1 17FH1 1 1 1 1 1 1 0FEH00 H80 H90 1
25、 1 0 1 1 1 16FH1 1 1 1 0 1 1 0F6H10 H90 H2.4.3 LED数码管显示方式和典型应用LED数码管显示电路在单片机应用系统中可分为静态显示方式和动态显示方式。 静态显示方式。在静态显示方式下,每一位显示器的字段需要一个8位I/O口控制,而且该I/O口须有锁存功能,N位显示器就需要N个8位I/O口,公共端可直接接+5V(共阳)或接地(共阴)。显示时,每一位字段码分别从I/O控制口输出,保持不变直至CPU刷新显示为止。也就是各字段的亮灭状态不变。静态显示方式编程较简单,但占用I/O口线多,即软件简单、硬件成本高,一般适用显示位数较少的场合。 动态扫描显示方式。
26、当要求显示位数较多时,为简化电路、降低硬件成本,常采用动态扫描显示电路。所谓动态扫描显示电路是将显示各位的所有相同字段线连在一起,每一位的a段连在一起,b段连在一起g段连在一起,共8段,由一个8位I/O口控制,而每一位的公共端(共阳或共阴COM)由另一个I/O口控制。这种连接方式由于将多位字段线连在一起,当输出字段码时,由于多门同时选通,每一位将显示相同的内容。因此要显示不同的内容,必须采取轮流显示的方式。即在某一瞬间时,只让某一位的字位线处于选通状态(共阴极LED数码管为低电平,共阳极为高电平),其他各位的字位线处于开断状态,同时字段线上输出这一位相应要显示字符的字段码。在这一瞬时,只有这一
27、位在显示,其他几位暗。同样在下一瞬时,单独显示下一位,这样依次轮流显示,循环扫描。由于人的视觉滞留效应,人们看到的是多位同时稳定显示。本设计为静态显示,电路如图2-10所示。显示器由4个LED数码管组成。输入有12个信号,它们是段选信号P1.0P1.7和位选信号INT1、INT0、T1、T0。若想使LED发光则必须保证有足够大的电流流过LED的各段。流过LED的电流大时,LED发光亮度高;流过LED的电流小时,LED发光亮度就低,为了使LED 能够长期可靠地工作应使流过LED的电流为其额定电流。为LED显示器提供电流的电路称为LED的驱动电路。由于显示部分选择了静态显示,因此驱动电路也选择静态
28、驱动。静态显示电路的驱动电路分为段驱动电路和位驱动电路两种。段驱动电路考虑到所有的段电流均流过位选线,因此位驱动电路的驱动能力应为段驱动能力的8倍(最严重情况八段全亮)。驱动电路可采用分立元件电路,也可采用集成驱动电路,此外有些硬件译码电路本身包括驱动电路。由于这里采用动态输出,且单片机的内部结构决定了数码管可以直接由单片机驱动。因此采用分立元件的显示驱动电路也很简单。2.4.4 LED数码管的原理图LED数码管显示原理图如图2-10。图2-10 LED数码管显示原理图2.5 声光报警电路报警电路原理如图2-11。图2-11 声光报警电路原理图2.6 单片机接口电路2.6.1单片机的时钟电路单
29、片机内部的振荡电路是一个高增益反相放大器,引线XTAL1和XTAL2分别是放大器的输入端和输出端。单片机内部虽然有振荡电路,但要形成时钟,外部还需附加电路。单片机的时钟产生方式有两种。 内部时钟方式。利用其内部的振荡电路在XTAL1和XTAL2引线上外接定时元件,内部振荡电路便产生自激振荡,用示波器可以观察到XTAL2输出的时钟信号。最常用的是在XTAL1和XTAL2之间连接晶体振荡器与电容构成稳定的自激震荡器,如图2-12所示。晶体可在1.212MHz之间选择。MCS-51单片机在通常应用情况下,使用振荡频率为6MHz的石英晶体,而12Hz频率的晶体主要是在高速串行通信情况下才使用。对电容值
30、无严格要求,但它的取值对振荡频率输出的稳定性、大小及振荡电路起振速度有少许影响。C1和C2可在20100pF之间取值,一般取30pF左右。 外部时钟方式。在由我单片机组成的系统中,为了各单片机之间时钟信号的同步,应当引入惟一的合用外部振荡脉冲作为各单自片机的时钟。外部时钟方式中是把外部振荡信号源直接接入XTAL1或XTAL2。由于HMOS和CHMOS单片机外部时钟进入的引线不同,其外部振荡信号源接入的方式也不同。HMOS型单片机由XTAL2进入,外部振荡信号接至XTAL2,而内部反相放大器的输入端XTAL1应接地,如图2-13所示。由于XTAL2端的逻辑电平不是TTL的,故还要接一上接电阻。C
31、HMOS型单片机由XTAL1进入,外部振荡信号接至XTAL1,而XTAL2可不接地,如图2-14所示。图2-12 内部时钟电路 图2-13 HMOS型外部时钟电路 图2-14外部时钟电路2.6.2复位电路和复位状态单片机的复位是靠外部电路实现的。单片机工作后,只要在它的RST引线上加载10ms以上的高电平,单片机就能够有效地复位。 复位电路。单片机通常采用上电自动复位和按键复位两种方式。最简单的复位电路如图2-15所示。上电瞬间,RC电路充电,RST引线端出现正脉冲,只要RST端保持10ms以上的高电平,就能使单片机有效地复位。在应用系统中,有些外围芯片也需要复位。如果这些芯片复位端的复位电平
32、的要求一致,则可以将复位信号与之相连。图 2-15 简单的复位电路 复位状态。复位电路的作用是使单片机执行复位操作。复位操作主要是把PC初始化为0000H,使单片机从程序存储器的0000H单元开始执行程序。程序存储器的0003H单元即单片机的外部中断0的中断处理程序的入口地址。留出的0000H0002H 3个单元地址,仅能够放置一条转移指令,因此,MCS-51单片机的主程序的第一条指令通常情况下是一条转移指令。除PC之外,复位还对其他一些特殊功能的寄存器有影响,它们的复位状态如表2-16所示。利用它们的复位状态,可以减少应用程序中的初始化编程。由表2-16可知,除SP=07H,P0P3 4个锁
33、存器均为FFH外,其他所有的寄存器均为0,很好记忆。记住他们的复位状态,对于熟悉单片机的操作,减少应用程序中的初始化编程都是十分必要的。单片机的复位不影响片内RAM的状态(包括通用寄存器Rn)。P0、P1、P2、P3共有4个8位并行I/O口,它们引线为:P0.0P0.7、P1.0P1.7、P2.0P2.7、P3.0P3.7,共32条引线。这32条引线可以全部用做I/O线,也可将其中部分用做单片机的片外总线。表2-16 寄存器的复位状态寄存器复位状态寄存器复位状态PC0000HTMOD00HACC00HTCONOOHPSW00HTL000HSP07HTH000HDPTR0000HTL100HP0
34、P3FFHTH100HIPXxx00000BSCON00HIE0xx00000BPCON0xx00000B 控制线A、ALE地址锁存允许当单片机访问外部存储器时,输出信号ALE用于锁存P0口输出的低8位地址A7A0。ALE的输出频率为时钟振荡频率的1/6。B、程序存储器选择=0,单片机只访问外部程序存储器。对内部无程序存储器的单片机8031,必须接地。=1,单片机访问内部程序存储器,若地址超过内部程序存储器的范围,单片机将自动访问外部程序存储器。对内部有程序存储器的单片机,应接高电平。C、片外程序存储器的选通信号。此信号为读外部程序存储器的选通信号。D、RST复位信号输入 电源及时钟VSS地端
35、接地线,VCC电源端接+5V,XTAL1和XTAL2接晶振或外部振荡信号源。3 软件设计3.1 程序设计语言的选用本设计中采用的处理器是AT89C51单片机,由此可采用面向MCS-51的程序设计语言,包括ASM51汇编语言和C51高级语言,这两种语言各有特点。汇编语言更接近机器语言,常用来编制与系统硬件相关的程序,如访问I/O端口、中断处理程序、实时控制程序、实时通信程序等;而数学运算程序则适合用C51高级语言编写,因为用高级语言编写运算程序可提高编程效率和应用程序的可靠性。 考虑到汇编语言的以下特点,在智能测控装置的基本功能软件开发中,全部程序均采用ASM51汇编语言编写: 汇编语言是最基本
36、的程序设计语言。迄今为止,汇编语言仍然是计算机系统底层软件(例如汇编程序、PC机的BIOS等)设计的基本语言; 能充分利用机器的硬件功能与结构特点。汇编语言与机器语言密切相关,因此能透彻地反映计算机硬件的功能与特点。程序员可充分利用机器硬件系统的许多特性(如寄存器、标志位以及一些特殊指令等)。这样能充分发挥程序设计的技巧; 用汇编语言编写的程序比起用高级语言编写程序具有更高的系统性能。汇编语言程序具有执行速度快和节省存储空间的特点,它可以精确地描述算法,把计算过程和控制过程刻画得更具体; 实时性能好。用汇编语言编制的程序可以对各种接口芯片及I/O端口直接进行控制,实时性能好。对于一些应用领域(
37、例如工业监控系统等)汇编语言是不可缺少的,一般高级语言不适合这种应用,因为一般高级语言不能充分地利用计算机硬件所提供的诸如中断等方面的功能。3.2 软件程序的设计3.2.1 程序流程程序主要由主程序和子程序两部分构成。 主程序主要实现系统的初始化,键值处理,A/D转换,显示数据。 系统的初始化包括寄存器的初始化(控制寄存器、堆栈、中断寄存器等),通信的初始化(串口的初始化,ADC0809的初始化,通信缓冲区的初始化),LED显示的初始化,输出端口的初始化,采集、累计数据的初始化。 键值处理包括对系统三个键的判断与处理。A/D转换包括数据转换(主要实现将测量电路监测到的电压信号转换成LED显示所
38、需的数据类型)。显示数据包括数据转换(主要实现将各类参数、测量数据、计算累计值等转换成LED显示所需的数据类型)和显示屏的刷新(包括刷新采集数据屏和根据按下的键更改显示屏)。 子程序主要由温度信号采集程序和键值处理程序等。其程序流程图如图3-1。图3-1 程序主流程图3.2.2 键盘管理键盘管理软件包括键盘消息接收和键盘消息处理两个部分。 键盘消息接收是指当用户按下某个键后,通过对键盘端口的分析,接收到按键的编码信息,然后查询键值表获得相应的键值并保存。键盘消息处理是取出所得到的键值,并按照键值的定义分别处理。在本系统中,包括“+”、“-”、“功能”三个键位,各个键位处理程序都将在主控机程序中
39、执行。键值具体定义 “+”:设置从机的上限值;“-”:设置从机的下限值;“功能”:设置从机的执行功能。其流程图如图3-2。图3-2 键盘流程图3.2.3 LED显示在系统启动时要初始化LED显示,包括清LED显示屏。3.2.4 模拟量的采集与处理由于干扰的存在,可能导致AD转换的结果与炉温出现差异,为了提高系统的可靠性和信号的真实性,采用程序计算的方法对采样信号进行平滑加工,从而克服虚假信号,这种算法称为数字滤波。数字滤波的方法有以下几种: 限幅滤波,其基本方法是通过比较相邻(n和n-1时刻)的两个采样值和,如果它们的差值过大超出了参数可能的最大变化范围,则认为发生了随机干扰,并视后一次采样值
40、为非法值,应予剔除。 中值滤波,就是连续采样三次,取中间值作为本次采样值。 算术平均滤波,就是连续取几个采样值进行算术平均。其数学表达式为,因算术平均滤波方法简单、数据采集更加精确,滤波结果就是对单点温度多次采样的平均值,更加准确的反应了被测温度的大小,因此,本系统采用了算术平均滤波法。设计时,外部输入的模拟量信号首先由传感器送入测控器,然后进行模拟量采集,在一次采样间隔时间T内,依次将各输入量轮流接到A/D转换器进行一次转换。为了准确地反映被测信号,防止干扰,对每一路信号在20 ms内采集4次,即采样间隔时间T=5ms,4次采集完成后再将4次采集的值求平均得出此次采集的结果。 在20ms的采
41、集完成后,要将数据按照量程或计算公式转换为有实际意义的数据,并根据报警界限判断数据是否有低于下限或超出上限的报警。流程图如图3-3。图3-3 数据处理流程图4 抗干扰设计为提高单片机本身的可靠性。近年来单片机的制造商在单片机设计上采取了一系列措施以期提高可靠性。4.1 用于单片机系统的干扰抑制元件 去耦电容。每个集成电路的电源、地之间应配置一个去耦电容,它可以滤掉来自电源的高频噪声。作为储能元件,它吸收或提供该集成电路内部三极管导通、截止引起的电流变化,从而降低系统噪声。要选高频特性好的独石电容或瓷片电容作去耦电容。每块印制电路板电源引入的地方要安放一只大容量的储能电容。由于电解电容的缠绕式结
42、构,其分布电感较大,对滤除高频干扰信号几乎不起作用。使用时要与去耦电容成对使用。钽电容则比电解电容效果更好。 自恢复保险丝。这是用一种新型高分子聚合材料制成的器件,当电流低于其额定值时,它的直流电阻只有零点几欧。而电流大到一定程度,它的阻值迅速升高,引起发热,而越热电阻越大,从而阻断电源电流。当温度降下来以后能自动恢复正常。这种器件可防止CMOS器件在遇到强冲击型干扰时引起所谓“可控硅触发”现象。这种现象指集成电路硅片的基体变得导通,从而引起电流增大,导致CMOS集成电路发热乃至烧毁。 防雷击器件。室外使用的单片机系统或电源线、信号线从室外架空引入室内的,要考虑系统的防雷击问题。常用的防雷击器
43、件有:气体放电管TVS等,气体放电管是当电源电压大于某一值时,通常为数十伏或数百伏,气体击穿放电,将电源线上强冲击脉冲导入大地,TVS可以看成两个并联且方向相反的齐纳二极管,当电两端电压高于某一额定值时导通。其特点是可以瞬态通过数百乃至上千安培的电流。这类元器件要和抗共模和抗差模干扰的电感配合使用以提高抗干扰效果。4.2 提高单片机系统抗干扰能力的主要手段 接地。这里的接地指接大地,也称作保护地。为单片机系统提供良好的地线,对提高系统的抗干扰能力极为有益。特别是对有防雷击要求的系统,良好的接地至关重要。上面提到的一系列抗干扰元件,意在将雷击、浪涌式干扰以及快脉冲群干扰去除,而去除的方法都是将干
44、扰引入大地,如果系统不接地,或虽有地线但接地电阻过大,则这些元件都不能发挥作用。为单片机供电的电源的地俗称逻辑地,它们和大地的地的关系可以相通、浮空、或接一电阻,要视应用场合而定。不能把地线随便接在暖气管子上。绝对不能把接地线与动力线的火线、零线中的零线混淆。 隔离与屏蔽。典型的信号隔离是光电隔离。使用光电隔离器件将单片机的输入输出隔离开,一方面使干扰信号不得进入单片机系统,另一方面单片机系统本身的噪声也不会以传导的方式传播出去。屏蔽则是用来隔离空间辐射的,对噪声特别大的部件,如开关电源,用金属盒罩起来,可减少噪声源对单片机系统的干扰。对特别怕干扰的模拟电路,如高灵敏度的弱信号放大电路可屏蔽起
45、来。而重要的是金属屏蔽本身必须接真正的地。 滤波。滤波指各类信号按频率特性分类并控制它们的方向。常用的有各种低通滤波器、高通滤波器、带通滤波器。低通滤波器用在接入的交流电源线上,旨在让50周的交流电顺利通过,将其它高频噪声导入大地。低通滤波器的配置指标是插入损耗,选择的低通滤波器插入损耗过低起不到抑制噪声的作用,而过高的插入损耗会导致“漏电”,影响系统的人身安全性。高通、带通滤波器则应根据系统中对信号的处理要求选择使用。印制电路板的设计对单片机系统能否抗干扰非常重要。要本着尽量控制噪声源、尽量减小噪声的传播与耦合,尽量减小噪声的吸收这三大原则设计印制电路板和布线。当你设计单片机用印制电路板时,
46、不仿对照下面的条条检查一下。印制电路板要合理区分,单片机系统通常可分三区,即模拟电路区(怕干扰),数字电路区(即怕干扰、又产生干扰),功率驱动区(干扰源)。印刷板按单点接电源、单点接地原则送电。三个区域的电源线、地线由该点分三路引出。噪声元件与非噪声元件要离得远一些。使用满足系统要求的最低频率的时钟,时钟产生器要尽量靠近用到该时钟的器件。石英晶体振荡器外壳要接地,时钟线要尽量短,且不要引得到处都是。使用45度的折线布线,不要使用90度的折线,以减小高频信号的发射。时钟线垂直于I/O线比平行于I/O线干扰小,时钟线要远离I/O线。每个集成电路要加一个去耦电容,要选高频信号好的独石电容式瓷片电容作去耦电容。去耦电容焊在印制电路板上时,引脚要尽量短。需要时,电源线、地线上可加铜线绕制铁氧用体而成的高频扼流器件阻断高频噪声的传导