南京航空航天大学计算机硬件技术基础课程设计课设数据采集系统.docx
- 文档编号:8108975
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:20
- 大小:291.56KB
南京航空航天大学计算机硬件技术基础课程设计课设数据采集系统.docx
《南京航空航天大学计算机硬件技术基础课程设计课设数据采集系统.docx》由会员分享,可在线阅读,更多相关《南京航空航天大学计算机硬件技术基础课程设计课设数据采集系统.docx(20页珍藏版)》请在冰豆网上搜索。
南京航空航天大学计算机硬件技术基础课程设计课设数据采集系统
硬件技术基础课程设计
—数据采集系统
(二)
学生姓名
学号
学校
南京航空航天大学
学院
自动化学院
专业
自动化专业
班级
同实验者
指导老师
2014年6月
实验目的
1.运用PC机和实验装置设计并实现数据采集显示系统
2.掌握微机硬件和软件综合设计方法
二、实验设备
1.微机
2.微机接口实验箱
实验内容
通过ADC0809的通道O(INO)采集电位器的值,并将其处理后通过DAC0832输出,该输出直接连接到ADC0809的通道1(IN1),并将IN0和IN1采集到的数据分别在LED和CRT上显示。
要求:
1、设计简单操作界面,具有开始与结束运行控制的功能
2、IN0采集的电压值在LED上以十进制显示
3、对IN0采集的通道进行如下处理:
(1)如果IN0<2.5V,则送00H到DAC0832如果IN0>2.5V,则送FFH到DAC0832
(2)DAC0832的输出接ADC0809的IN1,同时接示波器
(3)IN1采集的电压值以十进制在CRT上显示
4、ADC0809采用定时方式读取数据。
定时由8253实现,采用查询方式判断定时结束
5、显示须有一定的延时
四、实验总框图
五、实验电路图
1.ADC0809电路图
•
XIOR^
•
.RD
I0Y1二
-CS
DAC0832电路图
XD0-XD7
即_D7
2.
0809
-D7
3.
4.
10Y2
XIOW
8253电路图
xpay)7
XIO%育WR
XIOR*-RD
XA2..A0
XA3..Al
10Y3肯.CS
XDOXD7
XIO备
iy-D7i肯WR;RD
X1OR*
XA2
二AO
XA3-
[OYO
rCS
8255电路图
8255
OKi
丄-
|a■
B••
C**
INO
INI
8432MHZ
XAd
ADJ(电位器)
□UT0(0832)
XA2
XA3
0832
8253
PCO-PC2■
GATFX)
CLK0
OUTO
LI-L3
+5V
盲盲1.8432MHZ
•PC*7(8255)
数码管
德盘单元
5.电路实物图
六、
程序流程图及程序
1、
程序流程图:
初始化
输入1
YES
系统6号功能输出提示信息
NO
输出到DATA中
于2.5V
ES
送00H到0832
转换过程
YES
NO
输入2
启动8253定时
YES
NO
NO
定时结束
启动ADC0809
进行IN0转换
ES
查询8255
PC.7
输出到DATA中
送OFF倒0832
除33H
INCDI
调
调用
NO
输入ESC
INCDI
YES
NO
C劝0
调用2号功能输出
的第到个单向
输出到DI指向
"的第二个单元
调用十六进制转十进制子程序
TRANSF
BC显示子程序
DISPBCD
CR显示子程序
DISPCER
•的第到个单向
启动ADC0809
进行IN0转换
转换过程
启动0832
数模转换
转换过程
调用十六进制转十进制子程序
TRANSF
系统6号功能输出
提示信息
ES
余数乘10
除33H
余数乘10
除33H
2、
程序见附件
取出DI指向
单元中数据
查表
YES
取出DI指向单元中数据
1«——
调用2号功能输出
1—
INCDI
—"cX为0^:
七、实验结果、分析及所提问问题
1.实验结果
通过ADC0809的通道O(INO)采集电位器的值并经AD转换后在LED上以精度为百分位的十进制实时动态显示,通过DAC0832转换后输出到ADC0809在转换,最后输出到CRT
结果如下:
1)第一组:
2)
第二组:
2.实验分析:
1)CRT上显示:
当IN0小于2.5V时CRT理论显示应为0.00V,但由于ADC0809和DAC0832误差,CRT上动态显示0.00V附近的值,比如0.01V,0.02V;由于器件存在零点漂移,所以会存在变动。
当大于或等于2.5V时,CRT上理论显示5.00V,实际也为5.00V没有存在误差。
2)BCD上结果
由于BCD是实时显示的是采样的电位器上的电位。
由于电位器存在比较大的误差,所以会BCD最后一位(百
分位)一直在跳动。
3.提问问题及回答:
(提问时未加批注)
1)MOVAL,88H语句什么意思?
回答:
这个根据控制字写8255控制字,具体为PA、PBPC下C口口作为输出,PC上C口作为输入,其中PA口输出数据岛BCDPB口未用、PC口下C口输出选择工作的工作的BCD,PC.7作为数据定时器的定时查询端
口,以确保转换完成。
2)MOVDX,TC中TC是什么?
回答:
TC是定时器8253控制字的偏移地址,代表定义的常值,当写控制字时必须先写地址,具体为30CCH,
8253芯片偏移地址为30C0H
3)TESTAL,80H为什么是80H
回答:
这条语句用来查询是否定时到时间,由于电路中链接的PC.7对应的PC口的最高位,当定时未到时间时
(默认转换未结束),该位用8253输入的是低电平,而当定时结束时,该位为高电平输入,从而根据PC.7的高低电平实现查询转换是否结束。
4)MOVDATA2,AL语句什么意思?
回答:
把IN1输入的ADC0809转换结果存入预留的DATA2中,以便后面装换,输出。
八、实验总结及建议
1.总结:
遇到的第问题以及解决的办法:
1)8522的端口A地址信号给错,T8255A少打了一个A
解决办法:
把端口A的地址补全(错误书因为把T8255A少打了一个A)。
对这类问题其实还是比较麻烦的,检查一个几百行的代码是一件费时费力的事,不仅需要要足够的耐性,还有有一定的毅力。
不过每次检查出错误会以后都会有很大的成就感
2)数码管一直未未亮,同时CRT上也没显示
解决办法:
在我们小组多次分析电路原理及代码,得出理论无错以后,我们从头到尾把链接的电路检查了5遍,第一遍查
出有一根线接错,在我们改正后,检查了第2、3、4遍,但都没有查出错误,我们初步怀疑硬件硬件存在问题。
但
我们那个时候还不知道怎么查错误,然后我们找到了我班里的大牛华仔(外号)来给我们分析了一遍,他的没有查出错误,原理和代码他也看了一遍也没有问题。
这时我们才肯定是硬件出了问题,然后在华仔的帮助下,通过把BCD
直接接到数据端口,跳过8255芯片,然后BCD也没亮,在把数据线接到LED上,发现也没亮,差不多可以确定CPU应该出了问题。
3)BCD和CRT同步显示
解决办法:
但未能肯定,我们这时直接换了一个实验箱,然后就成功显示了数据,不过不幸的是,这个实验箱依然存在问
题,但IN1口接输入时,BCD和CRT同时为显示0.00V或者5.00V。
IN1不接时BCD和CRT可以同步显示INO的采样值,在检查了2遍链接后,又一次请了大神,大神说了一句我们也出现了这个问题,最后我们换了一个实验箱才
解决的。
这时已经是下午1点多了,无奈,我们也在换端口地址后,从IN2,IN3等输入,依然没有解决,没办法,
我们就换了第二次实验箱。
也许是运气差到一定程度后就变好了,在10多分钟的链接电路后,竟然一次性成功了,
一点问题都没有。
对于以上出现的问题,硬件的出现问题的可能性为95%,但还有5%的可能性是我们没查出问题。
每一次实验,对于我们这些经验不多的新手说,都是一个比较大的挑战,当遇到硬件错误时,更是如此。
其实对于我们来说,最大的挑战无非就是硬件出问题,然后我们慢慢排查,这是一个很提升能力的过程,同时一个很艰难的过程。
总的来说,遇到了很多问题,在解决问题的过程中自己的能力得到很大的提升。
每一次课程设计都能让我的动手能力的到锻炼。
从组装万用表,数电的数字闹钟,自控的倒立摆系统的控制都能明显感觉自己在不断的进步。
2.建议
1)此次课设短短的时间两天内完成根本不可能,就代码就写了2天,而后查错这类的也花了不少时间,如果不是
子啊为开始时就开始准备,那么用两天根本完不成。
所以希望以后课设能有充分的时间准备;
2)实验箱存在的问题比较多,希望下次使用,能确保实验箱的完好,以便
九、参考文献:
南京航空航天大学自编
南京航空航天大学电工电子实验中心自编
《硬件技术基础》万晓东、陈则王、孔德明编著
《微机原理及课程设计指导书》王卫喜编著
十、附件:
附件1:
程序
IOYOEQU3000H;8255端口地址
IOY1EQU3040H;0809端口地址
IOY2EQU3080H;0832端口地址
IOY3EQU30C0H;8253端口地址
T8255A
EQUIOY0
;8255A端口地址
T8255C
EQUIOY0+08H;8255C端口地址
T8255D
EQUIOY0+0CH
;8255控制端口地址
IN0EQUIOY1
;0809IN0选通信号
IN1EQUIOY1+04H;
0809IN1选通信号
CS_DA
EQUIOY2;
0832端口地址
T0EQUIOY3
;8253定时器0选通信号
TCEQUIOY3+0CH
;8253控制端口地址
DATA
SEGMENT
;数据段定义
DATA1
DB?
;存放IN0转换结果
DATA2
DB?
;存放IN1转换结杲
NUM1
DB3DUP⑺
;存放IN0转换个位,十分位,百分位
NUM2
DB3DUP⑺
;存放IN1转换的个位,十分位,百分位
TAB1
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;定义数码管断码表
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H
MES
DB'
DB'
DB'
DB
Interface',0DH,0AHPress1totransfrom!
Press2toEndProgro0DH,0DH,0AH,'$'
;提示信息
',0DH,0AH
m!
',0DH,0AH
MES1
DB0DH,0AH,0DH,0AH
;提示信息
DATA
DB'
DB
ENDS
START!
0DH,0DH,0AH,'$'
',0DH,0AH
STACK1
DB
STACK1
SEGMENT
100DUP⑺
ENDS
PARASTACK'STACK'
;定义堆栈段
CODESEGMENT
;定义代码段
ASSUMEDS:
C0DE,DS:
DATA,SS:
STACK1
START:
MOVAX,DATA;标准序
MOVDS,AX
MOVDX,OFFSETMES;输出提示信息
MOVAH,09H
INT21H
LOOP1:
MOVDL,0FFH
MOVAH,6
;调用系统6号功能输入数据
INT21H
CMPAL,31H
;判断输入是否为1
JZBEGIN
;为1转到开始程序
CMPAL,32H
JZEXIT
;为2结束,返回DOS
JMPLOOP1
EXIT:
MOVAH,4CH;返回DOS
INT21H
BEGIN:
MOVDX,OFFSETMES1
MOVAH,09H
INT21H
ADC0809:
MOVDX,T8255D
MOVAL,88H
OUTDX,AL
MOVDX,IN0OUTDX,AL
MOVDX,TC
MOVAL,31H
OUTDX,AL
MOVDX,T0
MOVAX,75HOUTDX,AL
MOVAL,AH
OUTDX,AL
MOVDX,T8255C
WAIT0:
INAL,DXTESTAL,80HJZWAIT0
MOVDX,IN0
INAL,DX
MOVDATA1,ALCMPAL,80H
MOVAL,0FFH
JNBDAC0832
MOVAL,0
;写8255控制字地址
;写8255控制字
;启动转换IN0端
该句为提问句1)
;写8253控制字地址该句为提问句2)
;写8253初值
;8255C口地址,PC.7于判断定时结束信号输入
;如果PC.7为1,则输入结束该句为提问句3);转换未结束,继续等待
;把IN0口地址压人DS
;输入转换的数据IN0到AL中
;和2.5V进行比较
;小于2.5V时给AL赋0
;DA转换进行选通启动转换
DAC0832:
MOVDX,CS_DA
OUTDX,AL
MOVDX,IN1
OUTDX,AL
MOVDX,TC;初始化8253
MOVAL,31H
OUTDX,AL
MOVDX,T0;取定时器0,并赋初值
MOVAX,75H
OUTDX,AL
MOVAL,AH
OUTDX,AL
MOVDX,T8255C;
8255C端口地址
WAIT1:
;等待转换结束
IN
AL,DX
TEST
AL,80H;
查询转换是否结束
JZ
WAIT1
MOV
DX,IN1
IN
AL,DX
MOV
DATA2,AL
;把转换结果存在
DATA2中该句为提问句4)
MOV
AL,DATA1
;取IN0通道转换结果
MOVDI‘OFFSETNUM1;
CALLTRNSF;调用数码管转换程序
MOVDI,OFFSETNUM1;
CALLDISP;调用数码管显示子程序
MOVAL,DATA2;取IN1通道转换结果
MOVDI,OFFSETNUM2;NUM2地址送入DI
CALLTRNSF;调用转换程序
MOVDI,OFFSETNUM2;NUM2地址送入DI
CALL
DISPCRT
;调用CRT显示子程序
MOV
DL,0FFH
;调用系统6号功能进行从键盘输入
MOV
AH,6
INT
21H
CMP
AL,1BH
;当输入ESC时还回系统DOS
JNZ
ADC0809
JMP
START
;不满足返回时,从新开始
TRNSFPROC
;AD转换结果转换为十进制子程序
PUSH
AX
;保护现场
PUSH
DX
MOV
AH,0
MOV
DX,33H
;FFH对应的模拟量为5V,33H对应1V
DIV
DL
;AX除以51,商tAL,余数tAH
MOV
[DI],AL
;将AL结果存于NUM1,即存入个位存储单兀
MOV
AL,AH
MOV
DX,0AH
MUL
DL
;余数乘以10
MOV
DX,33H
DIV
DL
;再除以51,商tAL,余数tAH
INCDI
MOV
[DI],AL;
;将十分位存于NUM1的第二个单兀
MOV
AL,AH
MOV
DX,0AH
MUL
DL
;余数乘以10
MOV
DX,33H
DIV
DL
;再除以51,
商tAL,余数tAH
INC
DI
MOV
[DI],AL
;将百分位存于NUM1
第三个单元
;恢复现场
CEND:
POPDX
POPAX
RET
TRNSFENDP
MOV
AL,[DI]
;将个位内容tAL
LEA
BX,TBL1
XLAT
;查表显示
ADD
AL,80H
;加小数点
MOV
DX,T8255A
OUT
DX,AL
;8255的A口作为段控
MOV
AL,01H
OUT
DX,AL
CALL
DELAY
MOVCX,02H
LOOP1:
INC[DI];十分位,百分位显示
MOV
AL,[DI]
;将十分位内容tal
LEA
BX,TBL1
XLAT
;查表显示
MOV
DX,T8255A
OUT
DX,AL
;8255的B口作为段控
MOV
DX,T8255C
;8255的C口作为位控
MOVAL,02HOUTDX,ALCALLDELAY
COMCX,00H
JNZ
LOOP1
POP
BX
;恢复现场
POP
AX
POP
DS
RET
DELAY
PROC
PUSH
MOV
NEAR
CX
BX,0040H
DEL1:
MOV
CX,0FFFFH
LOOP
$
DEC
BX
JNZ
DEL1
POP
CX
RET
DELAY
ENDP
CODE
ENDS
DISPBCDENDP
ENDSTART
;延时子程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南京航空航天 大学 计算机硬件 技术 基础 课程设计 数据 采集 系统