第4章多通道温度检测系统的设计.docx
- 文档编号:5668632
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:13
- 大小:173.91KB
第4章多通道温度检测系统的设计.docx
《第4章多通道温度检测系统的设计.docx》由会员分享,可在线阅读,更多相关《第4章多通道温度检测系统的设计.docx(13页珍藏版)》请在冰豆网上搜索。
第4章多通道温度检测系统的设计
第4章多通道温度检测系统的设计
本章将以一个适用的多通道温度检测系统为设计主体,详细阐述该系统的设计方法。
第4.1节系统功能
(1)单通道测试
键盘上标号为0~8的八个键为单通道试键,按一次其中一个键,即开始启动一个与该键标号相对应的一个测温通道,该测温点的温度值立即在显示屏上显示出来。
温度测定值以闪烁方式显示,显示0.5s,关断0.5s。
显示五次结束。
显示屏上重新出现待命提示符“00”,等待键入新的键号。
(2)八通道巡回检测
键盘上标号为8的键为八通道巡回检测键。
按一次8号键,即顺序启动八个测温通道进行巡回检测。
每测试一个通道,先在显示屏上显示该通道的通道号,然后再显示该测温点的温度值。
通道号及温度值均以闪烁方式,通道号闪烁三次,温度值显示五次。
只有按一次复位键后,巡回检测方式方可中断,显示屏上重新出现待命提示符“00”,等待键入新的键号。
(3)被测点温度溢出提示
当被测点温度≤-30℃时,显示器显示温度过低溢出提示“-99”;当被测点温度≥40℃时,显示器显示温度多高提示“99”。
第4.2节系统组成
图4-1给出了多通道温度检测系统的逻辑图,为了降低功耗,系统中全部使用MOS芯片。
该系统各主要组成部分的功能如下:
(1)单片机8031
用于系统控制,主频使用2MHz,机器周期为6μs。
有加电复位和按键复位电路。
(2)行列式键盘
4行4列共16个功能键
0~7键用于单通道测试,8号键用于八通道巡回检测。
9~15号键不用,可由用户根据功能需要自定义。
(3)A/D转换器ADC0809
ADC0809为八个输入端,八位A/D转换器。
用于8个通道的温度测量。
使用一个型号为WH5-1A10K-B的电位器作为输入电路。
八个电位器分别放置在需要进行温度测试的八个测试点上,作为温度传感器。
(4)LED动态显示电路
本系统采用四个七段码LED动态显示器,其结构和工作方式在第三章已经详细说明。
单通道测试时,最左边的显示器不显示任何信息;八通道巡回测试时,最左边的显示器用来显示通道号,其它三个显示器用来显示实时温度值。
图4-1八通道温度检测系统逻辑图
第4.3节软件说明及程序设计
软件设计是本文重点,下面详细介绍本系统的程序设计。
4.3.1软件说明
(1)温度值的确定
温度传感器将温度变为电信号后输入到A/D转换器,由A/D转换器将模拟量换成数字量,再通过查表程序即可由温度标准测量值表中确定被测点的温度值。
由于测量环境和测量元器件的影响,在测定温度时,只采集一个数据往往会带来较大的误差。
因此,我们的数据采集子程序设计为一次同时采集16个数据。
如何得到16个数据的测量值,有各种不同的实现办法,通常是采用求平均值的办法来实现。
由于温度是一个缓慢变化的物理量,故同时采集的16个数据虽不尽相同,但离散性不大,只是在一个中间值附近出现较小的波动。
所以,我们可以设计一个排序子程序,将所采集的16个数据按照从小到大的顺序排列好,然后选取位于中间的一个数据作为实际测量值即可,实践证明,这是一种比较简单有效的算法。
(2)ROM分配表
0000H——02FFH:
主程序
0300H——04FFH:
子程序
0500H——058CH:
温度标准测量值表
058DH——0594H:
通道号显示表
(3)RAM分配表
30H——52H:
A/D转换数据采集缓冲区
5AH——5CH:
显示字符存放单元
55H:
被检测的通道号寄存器
56H:
巡回检测方式循环变量寄存器
60H——6FH:
堆栈
(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转换启动地址
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所示:
图4-2键输入程序流程图
当PA口工作与方式0输入、PC口工作与AL1方式输入时,方式命令控制字可设为03H。
下面介绍程序控制扫描工作方式的工作过程和键盘扫描子程序:
KEYSCAN:
ACALL
CCSCAN
;检查有键闭合否
JNZ
INK1
;有键按下转至INK1
LCALL
DL2MS
;延时2ms
AJMP
KEYSCAN
;无键按下跳回KEYSCAN
INK1:
ACALL
DL2MS
;有键按下两次延时
ACALL
DL2MS
;
ACALL
CCSCAN
;再次确认有无键按下
JNZ
INK2
;有键闭合转至INK2
AJMP
KEYSCAN
;抖动引起,转KEYSCAN
INK2:
MOV
R2,
#0FEH
;扫描第一列
MOV
R4,
#00H
;R4中放首列的首行键值
COLUM:
MOV
DPTR,
#7F01H
;8155PA口地址
MOV
A,
R2
MOVX
@DPTR,
A
;PA口低位即为要查相应列,
INC
DPTR
送出扫描码到PA口
INC
DPTR
;指向8155PC口
MOVX
A,
@DPTR
;回读8155PC口
JB
E0H,
LONE
;首行PC0无键按下至LONE
MOV
A,
#00H
;有键按下A中放相应首行号
AJMP
KCODE
;跳转KCODE去计算键值
LONE:
JB
E1H,
NEXT
;第二行无键按下转下一列
MOV
A,
#04H
;有键按下次,号行04H送A
KCODE:
ADD
A,
R4
;行号+列号=键值
PUSH
E0H
;保护键值
UP:
ACALL
DL2MS
;延时2ms
ACALL
CCSCAN
;判断按键是否释放
JNZ
UP
;未释放,等待释放
POP
E0H
;若起键,则键码送A
RET
NEXT:
INC
R4
;准备扫描下一列
MOV
A,
R2
;R2从FEH~F7H可变
JNB
E3H,
KERR
;若扫描过一遍则转至KERR
RL
A
;扫描位左移,并存储至R2
MOV
R2,
A
;
AJMP
COLUM
;进行下一列扫描
KERR:
AJMP
KEYSCAN
;转KEYSCAN,重复
CCSCAN:
MOV
DPTR,
#7F01H
;全面查有无键按下
MOV
A,
#00H
;全列置零
MOVX
@DPTR,
A
INC
DPTR
INC
DPTR
;指向PC口
MOVX
A,
@DPTR
;回读PC口
CPL
A
;A中是回读取反后情况有1
ANL
A,
#03H
就是有键按下
RET
DL2MS:
MOV
R7,
#04H
;延时2ms子程序
DM0:
MOV
R6,
#0FEH
DM1:
DJNZ
R6,
DM1
DJNZ
R7,
DM0
RET
本例中用延时4ms子程序进行软件消抖;用计算方法得到键号,即键号=首行键号+列号。
键盘扫描子程序可完成如下几个功能:
判别有无键按下。
其方法为PA口输入全为0,读PC口状态。
若PC0~PC3为全0,则说明无键按下;若不全为0,则说明有键按下。
消除按键抖动的影响。
其方法为判断有键按下后,用软件延时的方法4ms,再判断键盘状态。
如果任为有键按下状态,则认为有一个确定的键按下,否则当作按键抖动处理。
求按键位置。
根据前面介绍的扫描方法进行逐列置0扫描,最后确定按键的行列值,并通过计算得到按键的键号。
键闭合一次仅进行一次按键的处理。
方法是等待按键释放之后,再进行按键功能的处理。
(2)数据采集
数据采集程序设计在第三章已作了详述,在此参照系统流程图只简要叙述数据采集通道的启动地址地址。
如图4-1所示,P2口的低三位与A/D转换器的八个通道的地址控制线相连,因此,8路模拟输入通道地址为:
78FFH~7FFFH,采集程序设计如前所述。
(3)数据排序程序设计
下面介绍16个数据按照从小到大的图4-3数据排序流程图
顺序排列程序,其中数据缓冲区首址为30H,16个数据分别存放在对应的内存单元30H~3FH中,排序结束后结果任存放在对应的内存单元中,其存放顺序为从小到大排列,流程图如4-3所示。
MOV
R6,
#0FH
;设置外围比较次数
START:
MOV
R7,
#0FH
;设置内围比较次数
MOV
R0,
#30H
;送缓冲区首址至R0
L1:
MOV
A,
@R0
;送缓冲区初值至A
INC
R0
;指向下一个数
MOV
R2,
A
;暂存前数
MOV
A,
@R0
;取下一个数
CLR
C
;清零进位标志
SUBB
A,
R2
;前后数相减
MOV
A,
R2
;恢复前数
JNC
L2
;无借位,则顺序排列
XCH
A,
@R0
;交换两数
DEC
R0
;指向前数地址
XCH
A,
@R0
;交换数据
INC
R0
;指针恢复任指向后数单元
L2:
DJNZ
R7,
L1
;一轮中重复进行比较
DJNZ
R6,
START
;进行小一轮比较
RET
(4)数字量与温度值的对应关系
在程序设计中是这样来使阻值和温度对应的:
首先将转换的数字量与0FH比较,如小于则显示负溢出,否则将数字量除以3,根据公式N=(VIN-VREF(-))×256/(VREF-VFER(-)),其转换值大于计算值,为了提高系统的精确度,当数字量不是3的倍数时,将数字量减1,将结果再除以3,以此不断减1,直到所得的数字量是3的倍数为止。
将所得的商与05H比较,如小于则显示负溢出;所得的商与4BH比较,如大于,则显示正溢出。
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℃。
工作方式有两种:
单通道测试;八通道巡回捡测。
图4-4八通道温度检测系统流程图
多通道温度检测系统的系统程序流程图如图4-4所示,从流程图上可以看出单通道检测和多通道巡回检测两种工作流程是分开的,因此在程序设计时也应该分开考虑。
图4-4(续)
附录
系统应用程序清单
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 多通道温度检测系统的设计 通道 温度 检测 系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)