版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章 多通道温度检测系统的设计本章将以一个适用的多通道温度检测系统为设计主体,详细阐述该系统的设计方法。第4.1节 系统功能(1)单通道测试键盘上标号为08的八个键为单通道试键,按一次其中一个键,即开始启动一个与该键标号相对应的一个测温通道,该测温点的温度值立即在显示屏上显示出来。温度测定值以闪烁方式显示,显示0.5s,关断0.5s。显示五次结束。显示屏上重新出现待命提示符“00”,等待键入新的键号。(2)八通道巡回检测键盘上标号为8的键为八通道巡回检测键。按一次8号键,即顺序启动八个测温通道进行巡回检测。每测试一个通道,先在显示屏上显示该通道的通道号,然后再显示该测温点的温度值。通道号及温
2、度值均以闪烁方式,通道号闪烁三次,温度值显示五次。只有按一次复位键后,巡回检测方式方可中断,显示屏上重新出现待命提示符“00”,等待键入新的键号。(3)被测点温度溢出提示当被测点温度30时,显示器显示温度过低溢出提示“99”;当被测点温度40时,显示器显示温度多高提示“99”。第4.2节 系统组成图4-1给出了多通道温度检测系统的逻辑图,为了降低功耗,系统中全部使用MOS芯片。该系统各主要组成部分的功能如下:(1)单片机8031用于系统控制,主频使用2MHz,机器周期为6s。有加电复位和按键复位电路。(2)行列式键盘4行4列共16个功能键07键用于单通道测试,8号键用于八通道巡回检测。915号
3、键不用,可由用户根据功能需要自定义。(3)A/D 转换器ADC0809ADC0809为八个输入端,八位A/D 转换器。用于8个通道的温度测量。使用一个型号为WH5-1A 10K-B的电位器作为输入电路。八个电位器分别放置在需要进行温度测试的八个测试点上,作为温度传感器。(4)LED动态显示电路本系统采用四个七段码LED动态显示器,其结构和工作方式在第三章已经详细说明。单通道测试时,最左边的显示器不显示任何信息;八通道巡回测试时,最左边的显示器用来显示通道号,其它三个显示器用来显示实时温度值。+5V4.7K210K801237654 P2.6 P2.7 WR RD P00 P078031 P3.
4、3 P2.0 P2.1 P2.2 PB7IO/MCSWR PB0RD 8155AD0 PC1 PC0AD7 PA0PA1PA2PA3D0 IN0 IN1D7 RD IN2WRCS IN3EOC IN4ADC0809 IN5AB IN6C IN7DpGFEDCBA74LS07X1X2X3X474LS04+5V4.7K8+5V图4-1 八通道温度检测系统逻辑图第4.3节 软件说明及程序设计软件设计是本文重点,下面详细介绍本系统的程序设计。4.3.1 软件说明(1)温度值的确定温度传感器将温度变为电信号后输入到A/D转换器,由A/D转换器将模拟量换成数字量,再通过查表程序即可由温度标准测量值表中确定
5、被测点的温度值。由于测量环境和测量元器件的影响,在测定温度时,只采集一个数据往往会带来较大的误差。因此,我们的数据采集子程序设计为一次同时采集16个数据。如何得到16个数据的测量值,有各种不同的实现办法,通常是采用求平均值的办法来实现。由于温度是一个缓慢变化的物理量,故同时采集的16个数据虽不尽相同,但离散性不大,只是在一个中间值附近出现较小的波动。所以,我们可以设计一个排序子程序,将所采集的16个数据按照从小到大的顺序排列好,然后选取位于中间的一个数据作为实际测量值即可,实践证明,这是一种比较简单有效的算法。(2)ROM分配表0000H02FFH:主程序0300H04FFH:子程序0500H
6、058CH:温度标准测量值表058DH0594H:通道号显示表(3)RAM分配表30H52H:A/D转换数据采集缓冲区5AH5CH:显示字符存放单元55H:被检测的通道号寄存器56H:巡回检测方式循环变量寄存器60H6FH:堆栈(4)I/O口分配表P0口:低八位地址/数据总线P2口:高八位地址总线P3口:P3.3与EOC连接构成查询A/D转换器转换结束信号输入位(5)扩展I/O地址分配表78FFH:A/D模入通道通道0转换启动地址79FFH:A/D模入通道通道1转换启动地址7AFFH:A/D模入通道通道2转换启动地址7BFFH:A/D模入通道通道3转换启动地址7CFFH:A/D模入通道通道4转
7、换启动地址7DFFH:A/D模入通道通道5转换启动地址7EFFH:A/D模入通道通道6转换启动地址7FFFH:A/D模入通道通道7转换启动地址7F00H:8155的控制/状态命令口地址7F01H:8155 的A口地址7F02H:8155的B口地址7F03H:8155的C口地址4.3.2 程序设计思路(1)键输入程序硬件结构如图4-1所示,键输入程序设计流程图如图4-2所示: 开始输入键号A调用显示子程序延时2ms二次调用显示子程序延时4ms判断闭合键键号栈闭合键释放否?有键闭合否?有键闭合否?开始YESYESYESYESNONONO 图4-2 键输入程序流程图当PA口工作与方式0输入、PC口工
8、作与AL1方式输入时,方式命令控制字可设为03H。下面介绍程序控制扫描工作方式的工作过程和键盘扫描子程序:KEYSCAN:ACALLCCSCAN ;检查有键闭合否JNZINK1 ;有键按下转至INK1LCALLDL2MS ;延时2msAJMPKEYSCAN ;无键按下跳回KEYSCANINK1:ACALLDL2MS ;有键按下两次延时ACALLDL2MS ;ACALLCCSCAN ;再次确认有无键按下JNZINK2 ;有键闭合转至INK2AJMPKEYSCAN ;抖动引起,转KEYSCANINK2:MOVR2,#0FEH ;扫描第一列MOVR4,#00H ;R4中放首列的首行键值COLUM:M
9、OVDPTR,#7F01H ;8155PA口地址MOVA,R2MOVXDPTR,A ;PA口低位即为要查相应列,INCDPTR 送出扫描码到PA口INCDPTR ;指向8155PC口MOVXA,DPTR ;回读8155PC口JBE0H,LONE ;首行PC0无键按下至LONEMOVA,#00H ;有键按下A中放相应首行号AJMPKCODE ;跳转KCODE去计算键值LONE:JBE1H,NEXT ;第二行无键按下转下一列MOVA,#04H ;有键按下次,号行04H送AKCODE:ADDA,R4 ;行号+列号=键值PUSHE0H ;保护键值UP:ACALLDL2MS ;延时2msACALLCCS
10、CAN ;判断按键是否释放JNZUP ;未释放,等待释放POPE0H ;若起键,则键码送ARETNEXT:INCR4 ;准备扫描下一列MOVA,R2 ;R2从FEHF7H可变JNBE3H,KERR ;若扫描过一遍则转至KERRRLA ;扫描位左移,并存储至R2MOVR2,A ;AJMPCOLUM ;进行下一列扫描KERR:AJMPKEYSCAN ;转KEYSCAN,重复CCSCAN:MOVDPTR,#7F01H ;全面查有无键按下MOVA,#00H ;全列置零MOVXDPTR,AINCDPTRINCDPTR ;指向PC口MOVXA,DPTR ;回读PC口CPLA ;A中是回读取反后情况有1AN
11、LA,#03H 就是有键按下RETDL2MS:MOVR7,#04H ;延时2ms子程序DM0:MOVR6,#0FEHDM1:DJNZR6,DM1DJNZR7,DM0RET 本例中用延时4ms子程序进行软件消抖;用计算方法得到键号,即键号=首行键号+列号。键盘扫描子程序可完成如下几个功能:置数据个数R6开始送缓冲区首址至R0置比较次数R7A-R20?(R0)R2(R0+1)A交换两数修改指针R7-1=0?R6-1=0?开始YESYESNONONOYES判别有无键按下。 其方法为PA口输入全为0,读PC口状态。若PC0PC3为全0,则说明无键按下;若不全为0,则说明有键按下。消除按键抖动的影响。其
12、方法为判断有键按下后,用软件延时的方法4ms,再判断键盘状态。如果任为有键按下状态,则认为有一个确定的键按下,否则当作按键抖动处理。求按键位置。根据前面介绍的扫描方法进行逐列置0扫描,最后确定按键的行列值,并通过计算得到按键的键号。键闭合一次仅进行一次按键的处理。方法是等待按键释放之后,再进行按键功能的处理。(2)数据采集 数据采集程序设计在第三章已作了详述,在此参照系统流程图只简要叙述数据采集通道的启动地址地址。如图4-1所示,P2口的低三位与A/D转换器的八个通道的地址控制线相连,因此,8路模拟输入通道地址为:78FFH7FFFH,采集程序设计如前所述。(3)数据排序程序设计下面介绍16个
13、数据按照从小到大的 图4-3 数据排序流程图顺序排列程序,其中数据缓冲区首址为30H,16个数据分别存放在对应的内存单元30H3FH中,排序结束后结果任存放在对应的内存单元中,其存放顺序为从小到大排列,流程图如4-3所示。MOVR6,#0FH;设置外围比较次数START:MOVR7,#0FH;设置内围比较次数MOVR0,#30H;送缓冲区首址至R0L1:MOVA,R0;送缓冲区初值至AINCR0;指向下一个数MOVR2,A;暂存前数MOVA,R0;取下一个数CLRC;清零进位标志SUBBA,R2;前后数相减MOVA,R2;恢复前数JNCL2;无借位,则顺序排列XCHA,R0;交换两数DECR0
14、;指向前数地址XCHA,R0;交换数据INCR0;指针恢复任指向后数单元L2:DJNZR7,L1;一轮中重复进行比较DJNZR6,START;进行小一轮比较RET(4)数字量与温度值的对应关系在程序设计中是这样来使阻值和温度对应的:首先将转换的数字量与0FH比较,如小于则显示负溢出,否则将数字量除以3,根据公式N=(VINVREF(-)256/(VREFVFER(-),其转换值大于计算值,为了提高系统的精确度,当数字量不是3的倍数时,将数字量减1,将结果再除以3,以此不断减1,直到所得的数字量是3的倍数为止。将所得的商与05H比较,如小于则显示负溢出;所得的商与4BH比较,如大于,则显示正溢出
15、。05H与4BH之间共71个数,为了与温度值相对应和便于查表,将所得的商减05H,此时的余数与1EH比较,如小于则显示负温度,否则显示正温度。如果实际转换的数字量为4FH,因其不是3的倍数,将其减1,差为4EH且是3的倍数,商为1AH,大于05H小于4BH,不溢出,将1AH减05H,差为15H,通过查表程序即将15H减去1EH差为-9H(十进制为-9),最后显示的温度为-9,若查表程序前所得的数字量为30H,则通过查表后所得的差为1AH(十进制为18),最后显示的温度值为18。(5)显示程序数据采集程序设计在第三章已作了详述,此处不做详细介绍。第4.4节 系统程序流程图设计的系统能对八个检测点的温度进行自动检测。温度测定范围为-30C+40C,测量精度为士1。工作方式有两种:单通道测试;八通道巡回捡测。开始键号A显示待命提示符“00”扫描键盘键号=55H设置A/D模入0通道地址键号08H散转表置地址DPTR键号2AA=0?A=2?A=4?A=6?A=8?A=0A?A=0C?A=0E?E设置A/D模入1通道地址设置A/D模入2通道地址设置A/D模入3通道地址设置A/D模入4通道地址设置A/D模入5通道地址设置A/D模入6通道
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 扶恤金分配协议书
- 工程维保协议书
- 家教签合同还协议
- 小吃培训合同范本
- 英欧协议书范本
- 销售独家协议合同
- 装修拆旧协议书
- 资料印制协议书
- 药材销售协议书
- 装潢合同协议书
- 安全生产新年第一课
- 【MOOC】化学实验室安全基础-大连理工大学 中国大学慕课MOOC答案
- 国开《企业信息管理》形考任务1-4试题及答案
- TD-T 1048-2016耕作层土壤剥离利用技术规范
- JBT 13675-2019 筒式磨机 铸造衬板 技术条件
- 劳动合同范本模板打印
- 纪检监察信访知识讲座
- 2024年合同知识产权审查表-(含附件)
- 智能教育:科技驱动下的学校革新
- 汉字笔画练习字帖
- 酒店住宿和餐饮行业企业安全风险分级管控清单
评论
0/150
提交评论