4回路数据监测系统设计报告.docx
- 文档编号:25394492
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:38
- 大小:1.31MB
4回路数据监测系统设计报告.docx
《4回路数据监测系统设计报告.docx》由会员分享,可在线阅读,更多相关《4回路数据监测系统设计报告.docx(38页珍藏版)》请在冰豆网上搜索。
4回路数据监测系统设计报告
计算机控制技术基础课程设计
4回路数据监测系统设计
指导老师
重庆大学自动化学院
2013年9月
引言
随着人类社会的发展,人们对于各种数据的监测也同时提高的监测标准,数据监测的精度和准确性也越来越高,由抽样监测到实时监测。
同时监测的手段也越来越多样、智能化。
在日常生活中,我们能发现大量的监测系统,例如:
大气环境的监测,输油管道的流量监测,室内温度和湿度的监测以及交通运输方面的车流量的监测等等。
本次设计的主要监测对象为温度、压力、位移和加速度,要求实现4回路的数据检测。
本次设计将采用AD574A来是实现具体的设计要求。
AD574A是美国模拟数字公司(Analog)推出的单片高速12位逐次比较型A/D转换器,内置双极性电路构成的混合集成转换显片,具有外接元件少,功耗低,精度高等特点,并且具有自动校零和自动极性转换功能,只需外接少量的阻容件即可构成一个完整的A/D转换器。
其主要功能特性如下:
性能:
分辨率:
12;位非线性误差:
小于±1/2LBS或±1LBS;转换速率:
25us;模拟电压输入范围:
0—10V和0—20V,0—±5V和0—±10V两档四种;电源电压:
±15V和5V;数据输出格式:
12位/8位;芯片工作模式:
全速工作模式和单一工作模式
一、设计主要内容
设计一个4回路数据监测系统,完成对温度、压力、位移和加速度的实时监测。
具体参数和设计要求如下:
1、设计4路能够产生幅值范围为
VDC可调的直流电压信号源,分别模拟:
0—300
温度、0—100MPa压力、0—200mm位移、0—800
.
2、设计一个4路数据监测系统,并能通过LED交替显示4个测量值。
3、设计人机交互接口,包括键盘、显示器和发光二极管。
能够通过键盘设置4个测量值的上、下限报警值,并能通过发光二极管或蜂鸣器进行声、光超限报警。
4、采用PD-32E试验箱进行硬件实现。
二、设计的主要要求
1、硬件设计:
要求完成控制系统框图;绘制完整的控制系统电路原理图;说明各功能模块的具体功能和参数;结合实验室现有的PD-32E实验装置进行系统组成,对整个系统的工作原理进行全面分析,讨论其结构特点、工作原理、有、缺点和使用场合。
分析和论述系统采用的主要单元的工作原理和特性。
2、软件工作:
要求合理分配系统资源,完成实现4回路数据监测系统的程序设计(如:
系统初始化;主程序;A/D转换;标度变换;显示与键盘管理;输出等)。
3、对设计控制系统进行系统联调。
4、编写课程设计报告:
按统一论文格式、统一报告纸和报告的各要素【封面、任务书、目录、摘要、序言、主要内容(包括设计总体思路、设计步骤、原理分析和相关知识的引用等)、总结、各组员心得体会、参考书籍记附录】进行编写,字数要求不少于4000字,要求设计报告论理正确,逻辑性强,文理通顺,层次分明,表达确切。
三、设计方案
本次设计由小组成员的资料收集以及讨论,最终确定采用模块化的程序设计方式。
模块化设计的主要优点如下:
第一,把所有代码都统统写在一个主函数中是一个糟糕的方案,这样的想法在很多时候都会萌生,因为学习者刚开始编写的大多数程序都是“一次性”的快餐程序!
学习者一旦完成了程序,就根本不需要回头修改,或者是以后再阅读。
没有模块化设计的程序是极其难以阅读和改进的,即便是程序的作者本人,在一段时间后,也很难重新对程序进行修改。
第二,模块化程序设计个人认为是编程的核心所在,即便现在有了“面向对象”的编程,可以面向对象的编程在某种程度上也是对模块化的一种延伸,使得程序的组织结构更加富有层次感,立体感和降低程序的耦合度!
第三,几乎所有商用程序都必须使用模块化程序设计理念!
这里很想使用“全部”代替“几乎”,因为真的很难想像没有模块化的商用软件!
模块化的程序设计很大程度上,有利编程者的浏览和纠错,大大节省工作时间,提高工作效率。
硬件实现采用的是PD-32E实验箱的硬件搭建,利用12位A/D转换器AD574A、4*4非编码键盘、三色LED显示器及等硬件部分。
其具体硬件电路如下图所示:
1、AD574A是一种高性能的12位逐次逼近式A/D转换器,转换时间约为25
,线性误差为
,内部有时钟脉冲源和基准电压源。
端口连线a.A0接地(低电平)。
b.12/8接+5V。
c.CS接任意地址译码输出端。
d.STS不接,采用延时等待A/D转换完毕。
e.其余端口实验箱上已接好。
不再需要连线。
f.10VIN输入端接实验箱上+-5V可调电压输出端。
2、三色LED显示器,用来交替显示四回路的实时数值。
3、4*4非编码键盘,用来设定四回路上、下限值,还包括三个特殊功能键:
A键——确认,D键——消除,F键——跳出。
四、基本功能的实现
4.1初始化和设置显示
主要由8255初始化、数据输入的初始化和LED显示的初始化。
数据的输入包括:
四回路上、下限值的设定;三色LED交替显示四回路的实时值。
4.2四回路的分配
用字母A表示温度、字母B表示压力、字母C表示位移、字母D表示加速度。
四个监测对象的上、下限值视具体使用情况而设定。
具体字母对应的上、下限值如下表所示:
A1
温度下限
A2
温度上限
B1
压力下限
B2
压力上限
C1
位移下限
C2
位移上限
D1
加速度下限
D2
加速度上限
4.3键盘扫描
键盘扫描主要用于初试四回路上、下限值设定。
数字用于数值的设定,特殊功能键:
A键有确认的功能,D键有消除错误输入的功能,F键有跳出蜂鸣程序。
4.4超限报警
初始完成四回路的上、下限值设定后,在程序运行过程中,当监测到有数值超出上、下限值的时候,发光二极管会常亮,蜂鸣器会鸣叫,提示有数值不在监测范围之内。
五、软硬件设计
5.1、软件设计
根据所需的功能,软件主要分为主程序、键盘扫描子程序、设置上、下限值子程序、A/D转换、均值滤波子程序、标度变换子程序、超出限值报警子程序、显示过程中拆分子程序、测量值与限值比较子程序、显示设置值子程序、16进制到10进制转换子程序等。
5.2、硬件接口设置
硬件部分要完成数据的输入及输出等操作,采用硬件实验箱完成硬件电路的搭建,具体的端口连线如下:
AD574A端口连线
a.A0接地(低电平)。
b.12/8接+5V。
c.CS接3C0地址译码输出端。
d.STS不接,采用延时等待A/D转换完毕。
e.其余端口实验箱上已接好。
不再需要连线。
f.10VIN输入端接实验箱上+-5V可调电压输出端。
第5片8255端口连线
A口的A0~A3——键盘的行控制信号P0~P3;
B口的B0接发光二极管,B1接蜂鸣器
C口的C0~C3——键盘的列控制信号Q0~Q3
第5片8255的CS与300连接;
AD574A端口连线表格
AD574A接线端口
A0
GND
12/8
+5V
CS
3C0
10VIN
+-5V可调电压输出
第5片8255端口连线表格
8255连线端口
A0
P0
A1
P1
A2
P2
A3
P3
B0
发光二极管
B1
蜂鸣器
C0
Q0
C1
Q1
C2
Q2
C3
Q3
CS
300
六、程序流程图
6.1、主程序流程图
6、2键盘扫描子程序流程图
6、3A/D转换,模拟测量子程序流程图
6、4设定上、下限值子程序流程图
七、设计总结
通过谈论和分析、软件设计、硬件设计和最终调试等步骤,整个系统最终实现了:
4回路数据监测的合理分配,分别模拟了0—300温度、0—100MPa压力、0—200mm位移、0—800
.能够通过键盘分别为其设定各自的上、下限报警值,并能通过LED交替显示4个测量值,超限时能够通过发光二极管和蜂鸣器进行声、光超限报警。
八、设计心得体会
本次的计算机控制技术基础课程设计,老师让我们以分组的形式完成,所以,在程序编写方面我们小组也进行了明确的分工,我的主要编写任务是上下限值的输入和显示。
计算机控制技术使我们上一个学期学的课程,这一个课程瞳计算机硬件基础使用的是同一种语言,即汇编语言,由于先前我们已经做过了计算机硬件基础的课程设计,所以虽然我们离学习汇编语言已经过去了一个学期,但是对于基本语法的使用已经基本熟悉了一遍,在编程序是也更省力气了。
上下限值的显示使用的是四片8255控制的8个8段三色led数码管,上下限值的输入是依靠4x4键盘,通过键盘将三位数值输入,然后放入给定的缓冲区内。
第五片8255的c口控制列信号,a口控制行信号,当从键盘中读到有按键按下时,将按键的数值而不是键值依据次序放入给定的缓冲区内,即xianzhi内。
通过这次的课程设计,让我进一步熟悉了汇编语言,在编程时,思路变得更清晰,虽然在编程的过程中也遇到了一些问题,比如一些语法上的错误,但这些错误只会让我以后更加小心,更会提高我的水平。
在本次的计算机控制技术基础课程设计中,我所担当的任务是主程序、键盘扫描子程序以及整个程序的调试工作。
我们在大三上学期学习了计算机硬件技术课程,那时候可能是老师讲的仔细或者是学习的内容比较基础,所以并不觉得计算机硬件很难。
但是当课程设计题目发下来时,才发现没有了头绪,也感到非常的吃力。
于是我们组的成员决定先复习课本和实验教材的知识再来讨论方案。
经过复习发现其实有很多子程序在实验教材上都是有的,然后大家一起讨论了方案,设计了流程图并分配好了工作。
在编写程序的过程中问题遇到的还是相当的多,例如在读、接键盘子程序以及显示子程序中,虽然教材上有现成的子程序,但是为了达到课程设计的要求,还需要在LED上显示数字,需要加一些自己的程序在里面,但是开始的时候不能显示出数字或者显示出的是乱码,但是单步运行时是可以显示出来的,最后通过全组人的讨论以及班上的其他硬件比较好的同学的帮助终于解决了显示的问题。
通过本次的课程设计,将硬件的知识做了很好的梳理和回顾,并且提高了应用的能力以及加强了硬件使用能力,在和同组的同学协同配合下也加强了团队工作能力,这当中不仅有专业知识的运用还有一些新奇以及小聪明的想法出现,无论是知识还是能力方面,真的是收获良多,相信一定会对我今后的学习和工作有所帮助。
通过本次计算机控制技术基础课程设计,我们在整个设计过程中,学到了很多的东西。
首先是我们的基本技能得到的有效的提高,对于团队的协作也有了更深的理解;其次在整个过程中组员之间的沟通是很重要的一个环节,它直接影响到整体的工作效率;再次有效的调动各组员的积极性也很重要。
在程序编写方面,我们组员承担不同的任务。
我主要负责的是,报告的撰写、测量值与限值比较的子程序和蜂鸣器、二极管声光报警子程序等。
尽管计算机硬件基础是大三上学期的时候学得,但当真正编写程序时,还是遇到了不少问题,尤其是在个程序衔接的时候,经常出现问题。
随着科技的发展,人们对于各种数据的监测也同时提高的监测标准,数据监测的精度和准确性也越来越高,由抽样监测到实时监测。
同时监测的手段也越来越多样、智能化。
在日常生活中,我们能发现大量的监测系统。
数据监测的重要性也变得尤为突出。
因此人们对于这方面的发展,也越来越重视。
本次的计算机控制技术基础课程设计,老师让我们以分组的形式完成。
在程序编写方面我们小组进行了明确的分工,我的主要任务是数模转换、标度变换以及四通道的循环显示。
本次设计过程中,我们使用了AD574进行数模转换。
AD574是一种高性能的12位逐次逼近时A/D转换器,转换时间约为25us,线性误差为正负0.5LSB,内部有时钟脉冲源和基准电压源。
而且,AD574转换器的模拟输入可以是单极性的,也可以是双极性的。
我们选择了量程为10V的双极性输入方式。
在微型计算机控制系统中,由于被控对象所处的环境比较恶劣,常存在各种干扰源,它们的频谱较广、影响复杂,会使测量信号偏离真实值,降低微型计算机的数据采集精度,不能如实地反映被测对象的真实情况。
为了进行准确的测量和控制,我采用了算术平均值滤波的方法,来提高数值的准确性。
通过这次的课程设计,让我进一步熟悉了汇编语言。
在编程过程中,我更好的掌握了乘、除的使用方法,并对循环显示的控制有了更深的了解。
此外,我还更好地理解了数字滤波的使用方法和作用。
九、参考文献
《计算机硬件技术基础实验教程》黄勤等编著重庆大学出版社
《半片微型计算机机与接口技术》李群芳等编著电子工业出版社
《计算机控制技术》王建华等编著高等教育出版社
附录
程序清单
.486
DATASEGMENTAT0200HUSE16
SDATASEGMENTAT0300HUSE16STACK
DB500DUP(?
)
SDATAENDS
CODESEGMENTUSE16
ASSUMECS:
CODE,DS:
DATA,SS:
SDATA
ORG4000H
BEG:
JMPMAIN
fee1db00h;设置值个位
fee1sdb00h;设置值个位缓存
fee2db00h;设置值十位和百位
fee2sdb01h;设置值十位和百位的缓存
mess1db0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H,88H,83H,0C6H,0A1H,0bfH,8eH;三色字型码不带小数点
keydb0ffh;按键缓存
anjiantzdb0eeh,0edh,0ebh,0e7h,0deh,0ddh,0dbh,0d7h,0beh,0bdh,0bbh,0b7h,7eh,7dh,7bh,77h;键盘特征值
xianzhidw?
?
?
?
?
?
?
?
;输入上下限值缓存
SXADW?
;温度下限值
XXADW?
;温度上限值
SXBDW?
;压力下限值
XXBDW?
;压力上限值
SXCDW?
;位移下限值
XXCDW?
;位移上限值
SXDDW?
;加速度下限值
XXDDW?
;加速度上限值
shijiandw?
danjiadb0a0h;显示输入哪个设定值
ADDATADW?
;一次AD转换的值
SUM_ADDATADW?
;16次累加和
AD_RESULTDW?
;均值滤波后的AD值
BDBH_RESULTADW?
;标度变换后温度的值
BDBH_RESULTBDW?
;标度变换后压力的值
BDBH_RESULTCDW?
;标度变换后位移的值
BDBH_RESULTDDW?
;标度变换后加速度的值
DISP_CODE_BUFADB?
?
?
88H;显示缓冲区A
DISP_CODE_BUFBDB?
?
?
83H;显示缓冲区B
DISP_CODE_BUFCDB?
?
?
0C6H;显示缓冲区C
DISP_CODE_BUFDDB?
?
?
0A1H;显示缓冲区D
MAIN:
movdx,30ch;第5片8255初始化
moval,90h;A口输入,B口、C口输出
outdx,al
movdx,304h
moval,0ffh
outdx,al
movdx,20ch;4片8255初始化
moveax,80808080h
outdx,eax
movdx,208h
moveax,0f0f0f0fh
outdx,eax
;判断开始键
ss1:
callsetsaomiao
callkeyup
moval,key
cmpal,0ah;A键位开始键
jnzss1
movdx,200h;3色led显示横杠
moveax,0bfbfbfbfh
outdx,eax
movdx,204h
moveax,0bfbfbfbfh
outdx,eax
movdx,208h;设置值显示黄光,
moveax,0a0f0000h
outdx,eax
ss3:
movdx,208h;第3片8255显示横杆
moveax,0a050000h
outdx,eax
moval,0bfh
movdx,202h
outdx,al
movdx,206h
outdx,al
moval,0eeh
movfee1,al
movfee2,al
leasi,xianzhi
movcl,04h
xiage0:
movbl,02h
xiage:
cmpbl,00h
jzgo1
decbl
moval,danjia
addal,01h
movdanjia,al
callxianfee
callinput
incsi
incsi
moval,0eeh
movfee1,al
movfee2,al
callxianfee
jmpxiage
go1:
moval,danjia
andal,0f0h
addal,10h
movdanjia,al
loopxiage0
moval,0a0h
movdanjia,al
leasi,xianzhi
movax,[si];存放温度设置的限值
MOVSXA,AX
INCSI
INCSI
movax,[si]
MOVXXA,AX
INCSI
INCSI
movax,[si];存放压力设置的限值
MOVSXB,AX
INCSI
INCSI
movax,[si]
MOVXXB,AX
INCSI
INCSI
movax,[si];存放位移设置的限值
MOVSXC,AX
INCSI
INCSI
movax,[si]
MOVXXC,AX
INCSI
INCSI
movax,[si];存放加速度设置的限值
MOVSXD,AX
INCSI
INCSI
movax,[si]
MOVXXD,AX
jmpstart
START:
movdx,304h
moval,0ffh
outdx,al
jmpXIANSHI
;显示预处理
XIANSHI:
MOVshijian,0FFH
DELAYGa:
callkaishi
callbaojing
movDX,bdbh_resultA
LEASI,DISP_code_BUFA
CALLchaifen
LEASI,DISP_CODE_BUFA
CALLDISP
movcx,shijian
deccx
movshijian,cx
jnzDELAYGa
PRE_dispB:
MOVshijian,0FFH
DELAYGb:
callkaishi
callbaojing
movdx,bdbh_resultB
LEASI,DISP_code_BUFB
CALLchaifen
LEASI,DISP_CODE_BUFB
CALLDISP
movcx,shijian
deccx
movshijian,cx
jnzDELAYGb
PRE_dispC:
MOVshijian,0FFH
DELAYGc:
callkaishi
callbaojing
movdx,bdbh_resultC
LEASI,DISP_code_BUFC
CALLchaifen
LEASI,DISP_code_BUFC
CALLDISP
movcx,shijian
deccx
movshijian,cx
jnzDELAYGc
PRE_dispD:
MOVshijian,0FFH
DELAYGd:
callkaishi
callbaojing
movdx,bdbh_resultD
LEASI,DISP_code_BUFD
CALLchaifen
LEASI,DISP_CODE_BUFD
CALLDISP
movcx,shijian
deccx
movshijian,cx
jnzDELAYgd
jmpxianshi
baojingprocnear;显示值与上下限值比较程序
pusha
movDX,bdbh_resultA;温度比较
callkunshan
CMPDX,SXA;与下限值比较
JBEALARMA
CMPDX,XXA;与上限值比较
JAEALARMA
movdx,bdbh_resultB;比较压力
callkunshan
CMPDX,SXB
JBEALARMB
CMPDX,XXB
JAEALARMB
movdx,bdbh_resultC;比较位移
callkunshan
CMPDX,SXC
JBEALARMC
CMPDX,XXC
JAEALARMC
movdx,bdbh_resultD;比较加速度
callkunshan
CMPDX,SXD
JBEALARMD
CMPDX,XXD
JAEALARMD
popa
ret
baojingendp
kaishiprocnear;开始子程序
MOVAX,DATA
MOVDS,AX
LEASI,DISP_CODE_BUFA
MOVAh,88H
MOV[SI+3],Ah
LEASI,DISP_CODE_BUFB
MOVAh,83H
MOV[SI+3],Ah
LEASI,DISP_CODE_BUFC
MOVAh,0C6H
MOV[SI+3],Ah
LEASI,DISP_CODE_BUFD
MOVAh,0A1H
MOV[SI+3],Ah
CALLJUNZHI
CALLBDBH
ret
kaishiendp
;均值滤波子程序
JUNZHIPROCNEAR
PUSHA
moVADDATA,0
MOVSUM_ADDATA,0
MOVcX,16;取16次转换结果来累加
AD:
CALLad_zhuanhuan
MOVAX,SUM_ADDATA
ADDAX,AD
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 回路 数据 监测 系统 设计 报告