




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘 要本课题本系统采用PT100热电阻温度传感器和单片机组成可靠性高、 功耗低 的温度检测系统。以AT89C51单片机系统为核心,对单点的温度进行实时检测。 采用模拟温度传感器PT100对温度进行检测;采用用型模数转换器ADC0809a行 A/D转换把温度信号调解转换为电压信号与 AT89C5惮片机接口设置LED八段数 码管实时显示温度值。本设计包括温度传感器、A/D转换模块、数据传输模块、温度显示模块四个部分。关键词:单片机,PT100热电阻,ADC0809温度检测The design of Single Chip MicrocomputerTemperature Detection Sys
2、temBased 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 mediat
3、ion AT89C51 Single-Ship Compute interfaces with the eighth LED digital display of real-time temperature. The design includes four parts of the temperature sensorand the A / D converter module and the data transmission modules and the temperature display module. Each part functions and the process wa
4、s described in the Paper in detail.Key words: Single-Ship Computer; Resistive Thermal Detector of PT100; ADC0809; Measure-temperature目 录摘 要IAbstract ii1绪论11.1 课题背景11.2 方案论证21.2.1 单片机选型21.2.2 模数转换器选型31.2.3 显示方案确定32硬件设计42.1 温度信号的获取与放大 42.1.1 元件介绍42.1.2 放大电路设计 42.2 模数转换单元52.2.1 8 位串行 A/D转换器 ADC0809 52.
5、2.2 模数转换单元电路的设计 72.3 键盘电路的设计 82.4 LED显示电路的设计82.4.1 LED 数码管原理 92.4.2 LED数码管编码方式 92.4.3 LED数码管显示方式和典型应用 102.4.4 LED 数码管的原理图 112.5 声光报警电路122.6 单片机接口电路132.6.1 单片机的时钟电路 132.6.2 复位电路和复位状态 133软件设计163.1 程序设计语言的选用 163.2 软件程序的设计 163.2.1 程序流程163.2.2 键盘管理173.2.3 LED 显示183.2.4 模拟量的采集与处理 183.3 源程序224抗干扰设计294.1 用于
6、单片机系统的干扰抑制元件 294.2 提高单片机系统抗干扰能力的主要手段 295结论31致谢32参考文献33论文原创性声明错误!未定义书签。1绪论1.1 课题背景在人类的生活环境中,温度扮演着极其重要的角色。无论你生活在哪里,从 事什么工作,无时无刻不在与温度打着交道。自18世纪工业革命以来,工业发展对是否能掌握温度有着绝对的联系。在冶金、钢铁、石化、水泥、玻璃、医药 等等行业,可以说几乎80的工业部门都不得不考虑着温度的因素。温度对于工业如此重要,由此推进了温度传感器的发展。传感器主要大体经 过了三个发展阶段。模拟集成温度传感器。该传感器是采用硅半导体集成工艺制成,因此亦 称硅传感器或单片集
7、成温度传感器。此种传感器具有功能单一(仅测量温度)、测 温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等,适合远距离 测温、控温,不需要进行非线性校准,外围电路简单。它是目前在国内外应用最 为普遍的一种集成传感器,典型产品有 AD590 AD592 TMP17 LM135?。模拟集成温度控制器。模拟集成温度控制器主要包括温控开关、可编程 温度控制器,典型产品有LM56 AD22105?口 MAX6509某些增强型集成温度控制 器(例如TC652/653)中还包含了 A/D转换器以及固化好的程序,这与智能温度传 感器有某些相似之处。但它自成系统,工作时并不受微处理器的控制,这是二者 的
8、主要区别。智能温度传感器。能温度传感器(亦称数字温度传感器)是在20世纪90 年代中期问世的。它是微电子技术、计算机技术和自动测试技术 (ATE)的结晶。 智能温度传感器内部都包含温度传感器、 A/D转换器、信号处理器、存储器(或 寄存器)和接口电路。有的产品还带多路选择器、中央控制器(CPU)、随机存取存 储器(RAM和只读存储器(ROM)智能温度传感器的特点是能输出温度数据及相关 的温度控制量,适配各种微控制器(MCU)并且它是在硬件的基础上通过软件来 实现测试功能的,其智能化程度也取决于软件的开发水平。进入21世纪后,温度传感器正朝着高精度、多功能、总线标准化、高可靠 性及安全性、开发虚
9、拟传感器和网络传感器、研制单片测温系统等高科技的方向 迅速发展。目前市场主要存在单点和多点两种温度测量仪表。对于单点温测仪表,主要采用传统的模拟集成温度传感器,其中又以热电阻、热电偶等传感器的测量精度高, 测量范围大,而得到了普遍的应用。此种产品测温范围大都在-200 C800c之间, 分辨率12位,最小分辨温度在0.0010.01之间。自带LED显示模块,显示4 位到16位不等。有的仪表还具有存储功能,可存储几百到几千组数据。该类仪 表可很好的满足单个用户单点测量的需要。多点温度测量仪表,相对与单点的测 量精度有一定的差距,虽然实现了多路温度的测控,但价格昂贵。本课题以PT100热电阻为温度
10、检测元件,设计了一个对单点温度实时检测的 单片机温度检测系统。1.2 方案论证本方案以AT89C51单片机系统为核心,对单点的温度进行实时测量检测。 并采用热电阻PT100作为温度传感器、LM741作为信号放大器ADC0809作为 A/D转换部件,对于温度信号的采集具有大范围、高精度的特点。在功能、性能、 可操作性等方面都有较大的提升,具有更高的性价比。1.2.1 单片机选型美国Atmel公司是国际上著名的半导体公司, 该公司的技术优势在于Flash 存储器技术。随着业务的发展,在 20世纪90年代初,ATME公司一跃成为全球 最大的EEPROM应商。1994年,为了介入单片机市场,Atmel
11、公司以EEPROlMfc 术和Intel公司的80C31单片机核心技术进行交换,从而取得了 80C31核的使用 权°ATME公司把自身的先进Flash存储器技术和80C31核相结合,推出了 F1ash AT89系列单片机。这是一种内部含 Flash存储器的特殊单片机。由于它内部含 有大容量的Flash存储器,所以,在产品开发及生产便携式商品、 手提式仪器等 方面有着十分广泛的应用,也是目前取代传统的MCS-51系列单片机的主流单片机之一。AT89系列单片机对于一般用户来说,有下列明显的优点:内部含有 Flash存储器,在系统开发过程中很容易修改程序,可以大大缩短了系统的开发 时间。与
12、MCS-51系列单片机引脚兼容,可以直接进行代换。 AT89系列并不 对80C31的简单继承,功能进一步增强。在我国这种单片机受到广泛青睐,很多以前使用80C5幺80C52的用户都转而使用AT89系列。对于有丰富编程经验的用户而言,不需要仿真器,可以直接将程 序烧入芯片,放在目标板上加电直接运行,观察运行结果,出现问题时再进行修 改,然后重新烧写程序,再进行试验,直至成功。AT89系列包括两大类第一类是常规的,就是 AT89C系列,这类单片机要用 常规的并行方法编程,必需使用编程器编程;第二类是在系统可编程 (即芯片安 装到电路板上之后不用.拿下来而直接往里面烧写程序 )ISP Flash系列
13、,也就 是AT89S系列,这类单片机除了用常规的并行方法编程外,还可以在系统用下载 线进行编程,省去价格较贵的编程器,而且可以在目标板上直接修改程序。又考虑到单片机的存储空间与价格,以及我对单片机的熟悉程度,课本学习 的是AT89C51单片机,因此,此次设计我选用了 AT89C51片机来完成此次设计。1.2.2 模数转换器选型A/D转换的好与坏直接关系到整个系统的精确度。由于本系统测量的是温度 信号,响应时间长,滞后大,不要求快速转换,因此选用 8位用型A/D转换器 ADC0809能达到设计的基本要求。为进一步提高精度,可以直接采用12位A/D转换器,也可以采用过采样和求均值技术来提高测量分辨
14、率。本系统采用了求平均值来提高分辨率。因为8位ADC0809m生价比更高,更重要的是我对ADC0809g力口 了解(课本上学的就是 ADC0809,所以本次设计我选用了 ADC0809(乍为模数转 换器。1.2.3 显示方案确定该设计的温度测量系统只要求温度的显示,所以显示系统在该设计中是必不 可少的。当前常用的有液晶显示和数码管显示两种显示方法。 液晶显示功能强大, 不但可以显示数字字符、德文、法文、点阵显示,还可以显示全部国标汉字,但 是也存在与单片机连接时接口电路驱动复杂;显示亮度低,不利于观察;编程困难;成本高等缺点,本系统只显示数字,而且需要考虑到能耗尽量少等问题,数 码管内部元件比
15、较简单,耗能相对较低,所以选择了数码管显示。不但硬件电路 简单,造价低廉,而且数码管亮度高,利于我们的观察读数。2硬件设计2.1 温度信号的获取与放大本系统以PT100为温度传感器获取温度信号,以放大器LM741为信号放大器 件。2.1.1 元件介绍PT100温度传感器为正温度系数热电阻传感器,主要技术参数如下: 测量范围:-200C+850C; 允许偏差值 AC: A 级 ±(0.15 + 0.002|t| ), B 级 士(0.30+0.005t );响应时间< 30s; 最小置入深度:热电阻的最小置入深度>200mm允通电流0 5mA另外,PT100温度传感器还具有
16、抗振动、稳定性好、准确度高、耐高压等优 点。金白热电阻的线性较好,在0100摄氏度之间变化时,最大非线性偏差小于0.5摄氏度。金白热电阻阻值与温度关系为:-200 C<t<0C时,RRt =100*-1 + At + Bt2 +Ct3*(t100)1 ; 0 CWt 0850 c 时,RRt =100*(1 +At+ Bt2 );式中,A=0.00390802; B=-0.000000580; C=0.0000000000042735 可见 PT100 在常温0100摄氏度之间变化时线性度非常好,其阻值表达式可近似简化为: % =100*(1 + At ),当温度变化1C, PT1
17、00阻值近似变化0.39建。2.1.2 放大电路设计热电阻测温是基于金属导体的电阻值随温度的增加而增加这一特性来进行 温度测量的。通常将其放在电桥的桥臂上,温度变化时,热电阻两端的电压信号 被送到仪器放大器LM741的输入端,经过仪器放大器放大后的电压输出送给 A/D 转换芯片,从而把热电阻的阻值转换成数字量。电路原理图如图2-1所示。图2-1信号采集与放大电路对信号放大,我们使用了低价格、高精度的仪器放大器LM741它运用方便,可以通过外接电阻方便的进行各种增益(1-1000)的调整。其增益计算公式为:(2-1)温度值计算过程:由于A/D检测到的模拟电压值(2-2)蓬门妻,蜜计算可到的Ute
18、,然后利用如下公式求出温度值:(2-3)其中2.2 模数转换单元2.2.1 8 位串行A/D转换器ADC0809ADC080思带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻 辑的CMOSS件。它是逐次逼近式 A/D转换器,可以和单片机直接接口。它是美 国国家半导体公司的产品,是目前国内最广泛的 8位通用的A/D转换的芯片。ADC0809的内部逻辑结构如图2-2所示。IHOIN1ALE .VREFX+)VREFX-)S路 模 拟开 关址存译资地锁与蝇三态输出锁存器0E图2-2 ADC0809内部逻辑结构由上图可知,ADC080的一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器
19、和一个三态输出锁存器组成。多路开关可选通 8个模拟通道,允许8 路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换 完的数字量,当OES为高电平时,才可以从三态输出锁存器取走转换完的数据。引脚结构如图2-3所示。1n<zEM4INIDST5ESTOrNGAIN7RSTCEOCAL,E,oeULK05VKJEF+ J_1OGNT> VREADIDN2ii2273ZG42.5524O237ZZS21Q201(>1<>11161217131 1415图2-3引脚结构IN0IN7: 8条模拟量输入通道ADC0809寸输入模拟量要求:信号单极性,电压
20、范围是05V,若信号太小, 必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快, 则需在输入前增加采样保持电路。地址输入和控制线:4条ALE为地址锁存允许输入线,高电平有效。当 ALE线为高电平时,地址锁 存与译码器将A, B, C三条地址线的地址信号进行锁存, 经译码后被选中的通道 的模拟量送入转换器进行转换。A, B和C为地址输入线,用于选通IN0 IN7上 的一路模拟量输入。通道选择表如表 2-4 o表2-4通道选择CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7数字量输出及控制线:11条ST为转换启动信
21、号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开 始进行A/D转换;在转换期间,ST应保持低电平。EOE转换结束信号。当EOC 为高电平时,表明转换结束;否则,表明正在进行 A/D转换。OE为输出允许信 号,用于控制三条输出锁存器向单片机输出转换得到的数据。巳1,输出转换得到的数据;O&0,输出数据线呈高阻状态。D7 D0为数字量输出线。CLK为时钟输入彳S号线。因ADC0809勺内部没有时钟电路,所需时钟信号必 须由外界提供,通常使用频率为 500KHzVREF( + ), VREF(-)为参考电压输入。ADC080而用注意事项:ADC0809内部带有输出锁存器,可以与AT89S
22、51 单片机直接相连。初始化时,使ST和OE信号全为低电平。 送要转换的哪 一通道的地址到A, B, C端口上。 在ST端给出一个至少有100ns宽的正脉冲 信号。 是否转换完毕,我们根据EOCW号来判断。 当EO喙为高电平时, 这时给OE为高电平,转换的数据就输出给单片机了。2.2.2 模数转换单元电路的设计电路原理图如图2-5。10 MO 了图2-5 A/D转换电路原理图PHDDJ-(P31W-12-324IH42-J2-<nr3Tp-g2-7ILx国4BOCDT-J叫RD&EAD1>Cni-7ALE吟)OTEfOJEAMCUOCE21优19wij/14/17/7>
23、;1333 一再17J21WJ71LSDi,97VMJ10由图2-5可以看出A R C都接地(都为0),故信号输入口选IN0,其空间地址为7FF8H2.3 键盘电路的设计本设计采用1*3独立按键。其原理图如图2-62.4 LED显示电路的设计在单片机应用系统中,如果需要显示的内容只有数码和某些字母,使用LED 数码管是一种较好的选择。LED数码管显示清晰、成本低廉、配置灵活,与单 片机接口简单易行2.4.1 LED数码管原理LE躁码管是由发光二极管作为显示字段的数码型显示器件。图2-7a为0.5英尺LED数码管的外形和引脚图,其中七只发光二极管分别对应ag笔段构成r字形另一只发光二极管 码管或
24、八段数码管。dp作为小数点。因此这种LED显示器称为七段数g fcom* blbe dooms ”外形和引脚目共阳极站构图2-7 LED数码管LED数码管按电路中的连接方式可以分为共阴极和共阳极两大类,如图2-7b、c所示。共阳型是将各段发光二极管的正极连在一起,作为公共端COM公共端COMR高电平,ag、dp各笔段通过限流电阻接控制端。某笔段控制端低电 平时,该笔段发光,高电平时不发光。控制这几段笔段发光,就能显示出某个数 码或字符。共阴型是将各数码发光二极管的负极连在一起, 作为公共端COM1地, 某笔段通过限流电阻接高电平时发光。LE躁码管按其外形尺寸有多种形式,使用较多的是 0.5英寸
25、和0.8英寸; 按显示颜色也有多种形式,主要有红色和绿色;按亮度强弱可分为高亮和普亮, 指通过同样的电流显示亮度不一样,这是因发光二极管的材料不一样而引起的。LED数码管的使用与发光二极管相同,根据其材料不同正向压降一般为1.52V额定电流为10mA最大电流为40mA静态显示时取10mA宜,动态扫 描显示可加大,加大脉冲电流,但一般不超过 40mA2.4.2 LED数码管编码方式当LED数码管与单片机相连时,一般将LED数码管的各笔段引脚a、b、 g、dp按某一顺序接到MCS- 51型单片机某一个并行I/O DDR D1、D7,当 该I/O 口输出某一特定数据时,就能使LED数码管显示出某个字
26、符。例如要使共 阳极LED数码管显示“ 0",则a、b、c、d、e、f各笔段引脚为低电平,g和dp为高电平,如表2-8。表2-8 共阳极LED数码管显示数字“ 0”时各管段编码D7D6D5D4D3D2D1D0字段码显示数dpgfedcba11000000C0H0C0H称为共阳极LED数码管显示“ 0”的字段码,不计小数点的字段码称为 七段码,包括小数点的字段称为八段码。LE躁码管编码方式有多种,按小数点计否可分为七段码和八段码;按共阴 共阳可分为共阴字段码和共阳字段码,不计小数点的共阴字段码与共阳字段码互 为反码;按a、b、g、dp编码顺序是高位在前,还是低位在前,又可分为顺 序字段
27、码和逆序字段码。甚至在某些特殊情况下将 a、b、g、dp顺序打乱编 码。表2-9为共阴极和共阳极LED数码管几种八段编码表。表2-9共阴极和共阳极LEDR码管几种八段编码共阴顺序小数点暗共阴逆序小数点暗共阳顺序小数点亮共阳顺序小数点暗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 060H79HF9 H20 1 0 1 1 0 1 15BH1 1 0 1 1 0 1 0DAH24HA4 H30 1 0 0 1
28、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 1 0 1 1 1 16FH1 1 1 1 0 1 1 0F6H10 H9
29、0 H2.4.3 LED数码管显示方式和典型应用LED数码管显示电路在单片机应用系统中可分为静态显示方式和动态显示 方式。静态显示方式。在静态显示方式下,每一位显示器的字段需要一个8位I/O 口控制,而且该I/O 口须有锁存功能,N位显示器就需要N个8位I/O 口,公共端可直接接+5V (共阳)或接地(共阴)。显示时,每一位字段码分别从I/O 控制口输出,保持不变直至 CPU刷新显示为止。也就是各字段的亮灭状态不变。 静态显示方式编程较简单,但占用I/O 口线多,即软件简单、硬件成本高,一般 适用显示位数较少的场合。 动态扫描显示方式。当要求显示位数较多时,为简化电路、降低硬件成 本,常采用动
30、态扫描显示电路。所谓动态扫描显示电路是将显示各位的所有相同 字段线连在一起,每一位的a段连在一起,b段连在一起 g段连在一起,共8 段,由一个8位I/O 口控制,而每一位的公共端(共阳或共阴COM由另一个I/O 口控制。这种连接方式由于将多位字段线连在一起,当输出字段码时,由于多门同时选通,每一位将显示相同的内容。因此要显示不同的内容,必须采取轮流显 示的方式。即在某一瞬间时,只让某一位的字位线处于选通状态(共阴极 LED 数码管为低电平,共阳极为高电平),其他各位的字位线处于开断状态,同时字 段线上输出这一位相应要显示字符的字段码。在这一瞬时,只有这一位在显示, 其他几位暗。同样在下一瞬时,
31、单独显示下一位,这样依次轮流显示,循环扫描。 由于人的视觉滞留效应,人们看到的是多位同时稳定显示。本设计为静态显示,电路如图2-10所示。显示器由4个LED数码管组成。 输入有12个信号,它们是段选信号 P1.0P1.7和位选信号INT1、INTO、T1、 T0o若想使LED发光则必须保证有足够大的电流流过 LED的各段。流过LED的电 流大时,LED发光亮度高;流过LED的电流小时,LED发光亮度就低,为了使LED 能够长期可靠地工作应使流过 LED的电流为其额定电流。为LED显示器提供电流 的电路称为LED的驱动电路。由于显示部分选择了静态显示,因此驱动电路也选 择静态驱动。静态显示电路的
32、驱动电路分为段驱动电路和位驱动电路两种。段驱动电路考虑到所有的段电流均流过位选线,因此位驱动电路的驱动能力应为段驱动能力的 8倍(最严重情况八段全亮)。驱动电路可采用分立元件电路,也可采用集成驱动电路,此外有些硬件译码 电路本身包括驱动电路。由于这里采用动态输出,且单片机的内部结构决定了数 码管可以直接由单片机驱动。因此采用分立元件的显示驱动电路也很简单。2.4.4 LED数码管的原理图LED数码管显示原理图如图2-10图2-10 LED数码管显示原理图2.5声光报警电路2.6单片机接口电路2.6.1 单片机的时钟电路单片机内部的振荡电路是一个高增益反相放大器, 引线XTAL1和XTAL2分别
33、 是放大器的输入端和输出端。单片机内部虽然有振荡电路,但要形成时钟,外部 还需附加电路。单片机的时钟产生方式有两种。 内部时钟方式。利用其内部的振荡电路在 XTAL1和XTAL2引线上外接定 时元件,内部振荡电路便产生自激振荡,用示波器可以观察到XTAL2输出的时钟 信号。最常用的是在XTAL1和XTAL2之间连接晶体振荡器与电容构成稳定的自激 震荡器,如图2-12所示。晶体可在1.212MHz之间选择。MCS-5俾片机在通常 应用情况下,使用振荡频率为6MHz勺石英晶体,而12Hz频率的晶体主要是在高 速串行通信情况下才使用。对电容值无严格要求,但它的取值对振荡频率输出的 稳定性、大小及振荡
34、电路起振速度有少许影响。C1和C2可在20100pF之间取值,一般取30pF左右。外部时钟方式。在由我单片机组成的系统中,为了各单片机之间时钟信 号的同步,应当引入惟一的合用外部振荡脉冲作为各单自片机的时钟。外部时钟方式中是把外部振荡信号源直接接入 XTAL1或XTAL2由于HMO制CHMOS片 机外部时钟进入的引线不同,其外部振荡信号源接入的方式也不同。HMOS!单片机由XTAL2a入,外部振荡信号接至XTAL2而内部反相放大器的输入端 XTAL1 应接地,如图2-13所示。由于XTAL2端的逻辑电平不是TTL的,故还要接一上 接电阻。CHMOS单片机由XTAL1进入,外部振荡信号接至 XT
35、AL1,而XTAL2可 不接地,如图2-14所示。WE3-1设用片内分畴 电路的时力电HiMlz-z单片机曲界时坤方总的外部冷伸万血图2-12内部时钟电路图2-13 HMOS®外部时钟电路图2-14外部时钟电路2.6.2 复位电路和复位状态单片机的复位是靠外部电路实现的。单片机工作后,只要在它的RST引线上 加载10ms以上的高电平,单片机就能够有效地复位。 复位电路。单片机通常采用上电自动复位和按键复位两种方式。最简单的复位电路如图2-15所示。上电瞬间,RC电路充电,RST引线端出现正脉冲, 只要RST端保持10ms以上的高电平,就能使单片机有效地复位。在应用系统中, 有些外围芯
36、片也需要复位。如果这些芯片复位端的复位电平的要求一致,则可以 将复位信号与之相连。JRESET上电复程(b)上电与按彘位图2-15简单的复位电路 复位状态。复位电路的作用是使单片机执行复位操作。复位操作主要是 把PC初始化为0000H,使单片机从程序存储器的0000H单元开始执行程序。程 序存储器的0003H单元即单片机的外部中断0的中断处理程序的入口地址。留出 的0000H- 0002H 3个单元地址,仅能够放置一条转移指令,因此,MCS-51单片机的主程序的第一条指令通常情况下是一条转移指令。除PC之外,复位还对其他一些特殊功能的寄存器有影响,它们的复位状态 如表2-16所示。利用它们的复
37、位状态,可以减少应用程序中的初始化编程。由表2-16可知,除SP=07H P0P3 4个锁存器均为FFH外,其他所有的寄 存器均为0,很好记忆。记住他们的复位状态,对于熟悉单片机的操作,减少应 用程序中的初始化编程都是十分必要的。单片机的复位不影响片内RAM勺状态(包括通用寄存器Rn)0PR P1、P2、P3共有4个8位并行I/O 口,它们引线为:P0.0P0.7、P1.0 P1.7、P2.0P2.7、P3.0P3.7,共32条引线。这32条引线可以全部用做I/O 线,也可将其中部分用做单片机的片外总线。表2-16寄存器的复位状态寄存器复位状态寄存器复位状态PC0000HTMOD00HACC0
38、0HTCONOOHPSW00HTL000HSP07HTH000HDPTR0000HTL100HP0 P3FFHTH100HIPXxx00000BSCON00HIE0XX00000BPCON0XX00000B控制线A、ALE地址锁存允许当单片机访问外部存储器时,输出信号 ALE用于锁存P0 口输出的低8位地 址A7A0O ALE的输出频率为时钟振荡频率的1/6。B、EA程序存储器选择EA=0,单片机只访问外部程序存储器。对内部无程序存储器的单片机8031, EA必须接地。EA = 1,单片机访问内部程序存储器,若地址超过内部程序存储器 的范围,单片机将自动访问外部程序存储器。对内部有程序存储器的
39、单片机,EA 应接高电平。G PSEN片外程序存储器的选通信号。此信号为读外部程序存储器的选通 信号。D RSTM位信号输入电源及时钟VSS4端接地线,VCCfe源端接+5V, XTAL1和XTAL2接晶振或外部振荡信号 源。3软件设计3.1 程序设计语言的选用本设计中采用的处理器是AT89C51单片机,由此可采用面向MCS-51的程序 设计语言,包括ASM51匚编语言和C51高级语言,这两种语言各有特点。汇编语 言更接近机器语言,常用来编制与系统硬件相关的程序, 如访问I/O端口、中断 处理程序、实时控制程序、实时通信程序等;而数学运算程序则适合用C51高级 语言编写,因为用高级语言编写运算
40、程序可提高编程效率和应用程序的可靠性。 考虑到汇编语言的以下特点,在智能测控装置的基本功能软件开发中, 全部程序 均米用ASM51匚编语言编写:汇编语言是最基本的程序设计语言。迄今为止,汇编语言仍然是计算机 系统底层软件(例如汇编程序、PC机的BIOS等)设计的基本语言; 能充分利用机器的硬件功能与结构特点。汇编语言与机器语言密切相关, 因此能透彻地反映计算机硬件的功能与特点。程序员可充分利用机器硬件系统的 许多特性(如寄存器、标志位以及一些特殊指令等)。这样能充分发挥程序设计 的技巧; 用汇编语言编写的程序比起用高级语言编写程序具有更高的系统性能。 汇编语言程序具有执行速度快和节省存储空间的
41、特点,它可以精确地描述算法, 把计算过程和控制过程刻画得更具体; 实时性能好。用汇编语言编制的程序可以对各种接口芯片及I/O端口直接进行控制,实时性能好。对于一些应用领域(例如工业监控系统等)汇编语言 是不可缺少的,一般高级语言不适合这种应用,因为一般高级语言不能充分地利 用计算机硬件所提供的诸如中断等方面的功能。3.2 软件程序的设计3.2.1 程序流程程序主要由主程序和子程序两部分构成。主程序主要实现系统的初始化,键值处理,A/D转换,显示数据。系统的初始化包括寄存器的初始化(控制寄存器、堆栈、中断寄存器等),通信的初始化(串口的初始化,ADC0809勺初始化,通信缓冲区的初始化),LED
42、 显示的初始化,输出端口的初始化,采集、累计数据的初始化。键值处理包括对系统三个键的判断与处理。A/D转换包括数据转换(主要实现将测量电路监测到的电压信号转换成LED显示所需的数据类型)。显示数据包括数据转换(主要实现将各类参数、测量数据、计算累计值等转 换成LED显示所需的数据类型)和显示屏的刷新(包括刷新采集数据屏和根据按 下的键更改显示屏)。子程序主要由温度信号采集程序和键值处理程序等。其程序流程图如图3-1。3.2.2 键盘管理键盘管理软件包括键盘消息接收和键盘消息处理两个部分。键盘消息接收是指当用户按下某个键后, 通过对键盘端口的分析,接收到按 键的编码信息,然后查询键值表获得相应的
43、键值并保存。键盘消息处理是取出所得到的键值, 并按照键值的定义分别处理。在本系统 中,包括“+”、“-”、“功能”三个键位,各个键位处理程序都将在主控机程序中 执行。键值具体定义 “+”:设置从机的上限值;“-”:设置从机的下限值;“功能”:设 置从机的执行功能。其流程图如图3-2。图3-2键盘流程图3.2.3 LED 显示在系统启动时要初始化LED显示,包括清LED显示屏。3.2.4 模拟量的采集与处理由于干扰的存在,可能导致 A/D转换的结果与炉温出现差异,为了提高系 统的可靠性和信号的真实性,采用程序计算的方法对采样信号进行平滑加工, 从 而克服虚假信号,这种算法称为数字滤波。数字滤波的
44、方法有以下几种:限幅滤波,其基本方法是通过比较相邻(n和n-1时刻)的两个采样值Yn 和Yn-1,如果它们的差值过大.超出了参数可能的最大变化范围,则认为发生 了随机干扰,并视后一次采样值 Yn为非法值,应予剔除。 中值滤波,就是连续采样三次,取中间值作为本次采样值。 算术平均滤波,就是连续取几个采样值进行算术平均。 其数学表达式为,一 1 v因算术平均滤波方法简单、数据采集更加精确,滤波结果就是对单点温度多 次采样的平均值,更加准确的反应了被测温度的大小,因此,本系统采用了算术 平均滤波法。设计时,外部输入的模拟量信号首先由传感器送入测控器,然后进 行模拟量采集,在一次采样间隔时间T内,依次
45、将各输入量轮流接到A/D转换器 进行一次转换。为了准确地反映被测信号,防止干扰,对每一路信号在20 ms内采集4次,即采样间隔时间T=5ms 4次采集完成后再将4次采集的值求平均 得出此次采集的结果。在20ms的采集完成后,要将数据按照量程或计算公式转 换为有实际意义的数据,并根据报警界限判断数据是否有低于下限或超出上限的 报警。流程图如。开始图3-3流程图IWIPIIRI2c2 CSS71 2 3 4 5 6 7 8 1D,YafEd; D abcde f g p D 2 68lj DYaR G Se pYD a b c d e fgdD 1WWPYam g abcde fgdDCE3K1
46、1Rk一 V 21RK3 KR1tTR P0图3-3电路原理图3.3源程序*;name :ADC0809 的应用;功能:温度检测;p0 口接0809的数字量输出口;pl 口接数码管段输出口;p2按键接口.*J;变量定义JHIGN DATA 20H;存放温度上限LOW DATA 21H;存放温度下限vstr DATA 22H ;存放标准位,0时设置上限;1时设置下限,2时显示A_BITDATA30HB_BITDATA31HC_BITDATA32HD_BITDATA33HSTARTBITp2.7 ;p3.0接0809的开始选通端口,输出允许控制端EOCBITp3.2 ;外部中断0,当0809数据转
47、换完成触发程序开始org 0000hORG0003HLJMPINT0ajmp main main:noplcall proinitloop:setb start ;启动 A/D 转换nopclr startMOV A,30HCJNZ A,20H,BAOJING;超过上限CJNZ A,21H,BAOJING;低于下限lcall display;处理后显示LCALL KEY;调用键盘函数ajmp main; 初始化子程序 proinit:mov 20h,#20mov 21h,#00mov 22h,#00mov 30h,#00mov 31h,#00mov 32h,#00mov 33h,#00ret;
48、送显前的数值转换程序dat_cov:setb start ;打开输出允许控制端mov a,p0nopnopclr startmov b,#51div ab;除以51即是乘以5除以255mov 30h,a;30H中是整数部分mov a,bmov b,#5div abmov 31h,amov a,bmov b,#2mul abmov 32h,aret尸=; 键盘程序;SB1为功能键;SB2设置数据+;SB3设置数据-;=KEY:JNBP2.0,KEY1JBP2.0,$ ;按键松开取键值MOV A,22H;有功能键按下INC ACJNZ A,#2,EXITMOV 22H,AKEY1: JNB P2.
49、1,KEY2JBP2.1,$ ;等待按键弹起CJNE 23H,#0,XIAXIANMOVA,20H;设置上限加INCAMOV20H,AXIAXIAN:MOVA,21H;设置下限加INC AMOV21H,AKEY2: JNB P2.1,EXITJB P2.1,$ ;等待按键弹起CJNE 23H,#0,XIAXIAN0MOV A,20H;设置上限加DEC AMOV20H,AXIAXIAN:MOVA,21H;设置下限加DEC AMOV21H,AEXIT:MOV22H,#00RET尸=;中断程序;=INT0:lcall dat_cov;数据处理CLR F0J;报警函数尸=BAOJING:SETB P2
50、.4;光报警SETB P2.5;声报警LCALL DELAYCLR P2.4CLR P2.5RET;=;数码管显示部分;入口参数:A,B,C;使用资源:DPTR,P3,P1 ,R7;=DISPLAY: NOP;第一位显示MOVDPTR,#TAB ;指定查表启始地址MOVA,A_BIT ;取第一位数MOVCA,A+DPTR ;查第一位数的7段代码ORLA,#10HSETBP3.4MOVP1,A ;送出第一位的7段代码LCALLdelay8ms 显示 8msCLRP3.4;开第一位显示;第二位显示MOV DPTR,#TAB ;指定查表启始地址MOVA,B_BIT ;取第二位数MOVCA,A+DPTR ;查第二位数的7段代码SETBP3.5MOVP1,A ;送出第二位的7段代码LCALLdelay8ms 显示 8msCLRP3.5;开第二位显示;第三位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 导尿管及造瘘管的护理
- 2025企业班车租赁合同书
- 2025贷款合同范本
- 2025员工终止劳动合同协议书范本
- 上肢骨解剖课件
- 2025健身房转让合同2
- 手汗症病人的护理
- 2025锌精矿业采购合同范本
- 2025制片人聘请合同范文
- 2025润滑油供应合同模板
- 《运动处方》课件-高血压人群运动处方案例
- 人工智能技术与知识产权保护
- 2025年中国数控转台行业市场规模及投资前景预测分析报告
- 建筑工程技术毕业实践报告3000字
- 中国加速康复外科临床实践指南2021
- 山东省大教育联盟学校2024-2025学年高三下学期开学检测化学试题(原卷版+解析版)
- 2025教科版六年级科学下册全册教案【含反思】
- DB43T-稻-再-油生产技术规程
- 中国慢性冠脉综合征患者诊断及管理指南2024版解读
- 课件:《科学社会主义概论(第二版)》第五章
- DB36∕T 1720-2022 牧草裹包青贮技术规程
评论
0/150
提交评论