南京航空航天大学计算机硬件技术基础课程设计课设数据采集系统Word文件下载.docx
- 文档编号:21245228
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:20
- 大小:291.56KB
南京航空航天大学计算机硬件技术基础课程设计课设数据采集系统Word文件下载.docx
《南京航空航天大学计算机硬件技术基础课程设计课设数据采集系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《南京航空航天大学计算机硬件技术基础课程设计课设数据采集系统Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
-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)
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
转换过程
输入2
启动8253定时
定时结束
启动ADC0809
进行IN0转换
查询8255
PC.7
送OFF倒0832
除33H
INCDI
调
调用
输入ESC
C劝0
调用2号功能输出
的第到个单向
输出到DI指向
"
的第二个单元
调用十六进制转十进制子程序
TRANSF
BC显示子程序
DISPBCD
CR显示子程序
DISPCER
•的第到个单向
启动0832
数模转换
系统6号功能输出
提示信息
余数乘10
2、
程序见附件
取出DI指向
单元中数据
查表
取出DI指向单元中数据
1«
——
1—
—"
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
存放IN1转换结杲
NUM1
DB3DUP⑺
存放IN0转换个位,十分位,百分位
NUM2
存放IN1转换的个位,十分位,百分位
TAB1
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;
定义数码管断码表
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H
MES
DB'
DB
Interface'
0DH,0AHPress1totransfrom!
Press2toEndProgro0DH,0DH,0AH,'
$'
'
0DH,0AH
m!
'
MES1
DB0DH,0AH,0DH,0AH
ENDS
START!
0DH,0DH,0AH,'
STACK1
100DUP⑺
PARASTACK'
STACK'
定义堆栈段
CODESEGMENT
定义代码段
ASSUMEDS:
C0DE,DS:
DATA,SS:
START:
MOVAX,DATA;
标准序
MOVDS,AX
MOVDX,OFFSETMES;
输出提示信息
MOVAH,09H
INT21H
LOOP1:
MOVDL,0FFH
MOVAH,6
调用系统6号功能输入数据
CMPAL,31H
判断输入是否为1
JZBEGIN
为1转到开始程序
CMPAL,32H
JZEXIT
为2结束,返回DOS
JMPLOOP1
EXIT:
MOVAH,4CH;
返回DOS
BEGIN:
MOVDX,OFFSETMES1
ADC0809:
MOVDX,T8255D
MOVAL,88H
OUTDX,AL
MOVDX,IN0OUTDX,AL
MOVDX,TC
MOVAL,31H
OUTDX,AL
MOVDX,T0
MOVAX,75HOUTDX,AL
MOVAL,AH
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
MOVDX,IN1
MOVDX,TC;
初始化8253
MOVDX,T0;
取定时器0,并赋初值
MOVAX,75H
MOVDX,T8255C;
8255C端口地址
WAIT1:
等待转换结束
IN
AL,DX
TEST
AL,80H;
查询转换是否结束
JZ
WAIT1
MOV
DX,IN1
DATA2,AL
把转换结果存在
DATA2中该句为提问句4)
AL,DATA1
取IN0通道转换结果
MOVDI‘OFFSETNUM1;
CALLTRNSF;
调用数码管转换程序
MOVDI,OFFSETNUM1;
CALLDISP;
调用数码管显示子程序
MOVAL,DATA2;
取IN1通道转换结果
MOVDI,OFFSETNUM2;
NUM2地址送入DI
调用转换程序
CALL
DISPCRT
调用CRT显示子程序
DL,0FFH
调用系统6号功能进行从键盘输入
AH,6
INT
21H
CMP
AL,1BH
当输入ESC时还回系统DOS
JNZ
ADC0809
JMP
START
不满足返回时,从新开始
TRNSFPROC
AD转换结果转换为十进制子程序
PUSH
AX
保护现场
DX
AH,0
DX,33H
FFH对应的模拟量为5V,33H对应1V
DIV
DL
AX除以51,商tAL,余数tAH
[DI],AL
将AL结果存于NUM1,即存入个位存储单兀
AL,AH
DX,0AH
MUL
余数乘以10
再除以51,商tAL,余数tAH
[DI],AL;
将十分位存于NUM1的第二个单兀
再除以51,
商tAL,余数tAH
INC
DI
将百分位存于NUM1
第三个单元
恢复现场
CEND:
POPDX
POPAX
RET
TRNSFENDP
AL,[DI]
将个位内容tAL
LEA
BX,TBL1
XLAT
查表显示
ADD
AL,80H
加小数点
DX,T8255A
OUT
DX,AL
8255的A口作为段控
AL,01H
DELAY
MOVCX,02H
INC[DI];
十分位,百分位显示
AL,[DI]
将十分位内容tal
8255的B口作为段控
DX,T8255C
8255的C口作为位控
MOVAL,02HOUTDX,ALCALLDELAY
COMCX,00H
LOOP1
POP
BX
DS
PROC
NEAR
CX
BX,0040H
DEL1:
CX,0FFFFH
LOOP
$
DEC
DEL1
ENDP
CODE
DISPBCDENDP
ENDSTART
延时子程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南京航空航天 大学 计算机硬件 技术 基础 课程设计 数据 采集 系统