计算机硬件课程设计报告文档格式.docx
- 文档编号:17341941
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:16
- 大小:135.20KB
计算机硬件课程设计报告文档格式.docx
《计算机硬件课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《计算机硬件课程设计报告文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
8255、AD/DA器件相关端口
IOY0
3000H
8255C口
IOY0+08H
IOY1
3040H
8255控制口
IOY0+0CH
IOY2
3080H
IN0(ADC0809)
8255A口
IN1(ADC0809)
IOY1+04H
8255B口
IOY0+04H
CS_DA(DAC0832)
8253相关端口
IOY3
30C0H
8253计数器0
8253计数器1
IOY3+04H
8253计数器3
IOY3+08H
8253控制端口
IOY3+0CH
四、程序框图
五、实验总结
1、实验结果
一、完成全部电路连接与程序调试后,编译、连接,运行相应可执行exe文件,此时转动电位器旋钮,通过ADC0809的通道0(IN0)采集电位器的值。
IN0采集到的数据在LED上以十进制实时动态显示,精确到小数点后两位,显示范围为0.00~5.00V。
二、IN0采集到的数据经ADC0809处理后,通过DAC0832输出至ADC0809的通道1(IN1)。
IN1采集到的数据在CRT上以十进制实时动态显示,精确到小数点后两位。
当IN0小于2.5V时CRT上动态显示0.00V、0.01V和0.03V等不定值,理论值应为0.00V;
当电位值大于或等于2.5V时,CRT上显示5.00V,理论值应为5.00V。
2、实验体会
一、在实验的预编程阶段,我们遇到了各个芯片的片选地址的确定问题。
刚开始时,我们准备使用74LS138译码器为各个芯片提供地址信息。
但是,在我们仔细研究了之前所做的实验程序、连线和试验系统的系统总线及系统说明后,我们最终没有选择使用74LS138译码器来提供片选信号,而是选择了更方便的IOY0—IOY3作为片选地址。
最终实验证明,其效果很好。
二、编程过程中,IN0和IN1采集的数据经ADC0809转换后所得的十六进制数需要转换成十进制数。
实验中,我们得到00H对应0V,FFH对应5V,从而可以得到,33H对应1V。
因此,将AD转换后的十六进制数字量除以33H,商便是个位,而余数乘以10,在除以33H,商便是十分位,以此类推可以得到百分位,千分位……(本实验中,我们精确到小数点后两位,即百分位),最终将各位数值依次存储后在数码管或CRT上显示。
三、十六进制数转换成十进制数工程中,我们选择精确到百分位,因此,对千分位采取四舍五入的原则,当千分位大于19H(33H对应1V,19H对应0.5V),百分位自加1;
否则省略。
而且,由于在实际过程中,经过AD和DA转换,会存在一些误差,因此在CRT上显示的IN1采集的电压值稍有误差。
四、由于IN0采集到的数据在LED上以十进制实时动态显示,精确到小数点后两位,显示范围为0.00~5.00V。
因此,我们使用三个数码管显示,运用了位控和段控,从而达到显示精确到小数点后两位的数的目的。
由于8255的PA0已在前期编程中用于8253的输出OUT0的判断,因而我们选则PB口作段控,PC口作位控。
同时对显示时间和刷新频率进行微调,最终达到了比较好的显示效果。
3、实验建议
1、本次课程设计,我们班的时间安排太过匆忙,希望下次时间安排能更合理。
2、有些TD-PIT++实验平台的部分端口,如8255的PA口等,有损坏,希望实验室加强维护,为学生提供更优质的实验学习环境。
3、建议实验室平时注意维护实验计算机,查杀病毒,因为中毒的计算机有时会严重影响实验的进行,甚至导致实验的失败。
程序清单
IOY0EQU3000H
IOY1EQU3040H
IOY2EQU3080H
IOY3EQU30C0H
T8255AEQUIOY0;
8255的A口地址
T8255BEQUIOY0+04H;
8255的B口地址
T8255CEQUIOY0+08H;
8255的C口地址
T8255DEQUIOY0+0CH;
8255的控制端口地址
IN0EQUIOY1;
ADC0809的IN0地址
IN1EQUIOY1+04H;
ADC0809的IN1地址
CS_DAEQUIOY2;
DAC0832的片选地址
TIMER0EQUIOY3
TIMER1EQUIOY3+04H
TIMER2EQUIOY3+08H
TCTLEQUIOY3+0CH
DATASEGMENT;
定义数据段
D1DB?
NUM1DB?
NUM2DB?
NUM3DB?
NUM11DB?
NUM22DB?
NUM33DB?
D2DB?
DCTBLDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H;
数码管的段码值
MESDB'
****************************************************'
0DH,0AH
DB'
*************Press1forBegin!
********'
0DH,0AH
*************PressEscforreturntoDOS!
************************************************'
0DH,0DH,0AH,'
$'
MES1DB0DH,0AH,'
*********************************************'
********NOW,START!
********PressEscforreturntomainmenu!
********************************************'
DATAENDS
STACK1SEGMENTPARASTACK'
STACK'
;
定义堆栈段
DB100DUP(?
)
STACK1ENDS
CODESEGMENT;
定义代码段
ASSUMECS:
CODE,DS:
DATA,SS:
STACK1
START:
MOVAX,DATA;
数据段段址
MOVDS,AX
MOVDX,OFFSETMES;
9号功能调用显示提示语
MOVAH,09H
INT21H
LOOP1:
MOVDL,0FFH;
6号功能调用读键盘输入
MOVAH,6
CMPAL,31H;
判断输入是否为“1”
JZBEGIN
CMPAL,1BH;
判断输入是否为“ESC”
JZEXIT
JMPLOOP1
EXIT:
返回DOS功能调用
MOVAH,4CH
INT21H
BEGIN:
9号功能调用输出提示语
MOVDX,OFFSETMES1
ADC0809:
MOVDX,T8255D;
写8255控制字,A口输入,B口、C口输出,均工作在方式0下
MOVAL,90H
OUTDX,AL
MOVDX,IN0;
启动ADC0809通道IN0
OUTDX,AL
MOVDX,TCTL;
8253初始化
MOVAL,31H
OUTDX,AL
MOVDX,TIMER0;
定时
MOVAX,375H
MOVAL,AH
MOVDX,T8255A
WAIT0:
INAL,DX
TESTAL,01H
JZWAIT0;
未转换完成,循环判断
转换完成,读入IN0结果
INAL,DX
MOVD1,AL;
将IN0的AD转换结果存入D1单元
CMPAL,80H;
判断IN0电压是否大于2.5V
JNBABOVE;
IN0≥2.5V,转移
MOVAL,0;
IN0<
2.5V,则AL清零
JMPDAC0832
ABOVE:
MOVAL,0FFH
DAC0832:
MOVDX,CS_DA;
选通DAC0832
MOVDX,IN1;
启动ADC0809通道IN1
WAIT1:
JZWAIT1;
转换完成,读入IN1结果
MOVD2,AL;
将IN1的AD转换结果存入D2单元
CALLCONIN0;
将IN0通道AD转换结果转换为十进制
CALLDISPBCD;
数码管显示子程序
CALLCONIN1;
将IN1通道AD转换结果转换为十进制
CALLDISPCRT;
CRT显示子程序
判断输入是否为“ESC”
JNZADC0809;
不是,则等待INO输入
JMPSTART;
是,则返回提示信息
CONIN0PROC;
IN0通道AD转换结果转换为十进制子程序
PUSHAX;
保护现场
PUSHDX
MOVAL,D1;
取IN0通道转换结果
MOVAH,0
MOVDX,33H;
FFH对应的模拟量为5V,33H对应1V
DIVDL;
AX除以51,商→AL,余数→AH
MOVNUM1,AL;
将AL结果存于NUM1,即存入个位存储单元
MOVAL,AH
MOVAH,0
MOVDX,0AH
MULDL;
余数乘以10
MOVDX,33H
再除以51,商→AL,余数→AH
MOVNUM2,AL;
将AL结果存于NUM2,即存入十分位存储单元
MOVDX,0AH
MOVDX,33H
MOVNUM3,AL;
将AL结果存于NUM3,即存入百分位存储单元
CMPAX,19H;
判断余数是否大于25
JBCEND;
余数<
25,则舍去
INCNUM3;
余数>
25,则商加1
CEND:
恢复现场
POPDX
POPAX
RET
CONIN0ENDP
CONIN1PROC;
IN1通道AD转换结果转换为十进制子程序
MOVAL,D2;
取IN1通道转换结果
MOVNUM11,AL;
将AL结果存于NUM11,即存入个位存储单元
MOVNUM22,AL;
将AL结果存于NUM22,即存入十分位存储单元
MOVNUM33,AL;
将AL结果存于NUM33,即存入百分位存储单元
JBCEND1;
INCNUM33;
CEND1:
CONIN1ENDP
DISPCRTPROC;
CRT显示子程序
PUSHAX;
保护现场
PUSHDX
PUSHCX
MOVAH,2
MOVDL,08H
INT21H
INT21H
ADDNUM11,30H;
2号功能调用,显示器输出个位内容
MOVDL,NUM11
MOVAH,02H
MOVDL,2EH;
2号功能调用,显示器输出小数点
ADDNUM22,30H;
2号功能调用,显示器输出十分位
MOVDL,NUM22
ADDNUM33,30H;
2号功能调用,显示器输出百分位
MOVDL,NUM33
EXITY:
POPCX
POPDX
POPAX
RET
DISPCRTENDP
DISPBCDPROC;
数码管显示子程序
PUSHDS;
PUSHAX
PUSHBX
DIS3:
个位及小数点显示
MOVDX,T8255D
MOVAL,80H;
写8255控制字
OUTDX,AL
MOVAL,NUM1;
将个位内容→AL
LEABX,DCTBL
XLAT;
查表显示
ADDAL,80H;
加小数点
MOVDX,T8255B
OUTDX,AL;
8255的B口作为段控
MOVDX,T8255C;
8255的C口作为位控
MOVAL,01H
CALLDELAY
DIS2:
十分位显示
MOVAL,NUM2;
将十分位内容→AL
LEABX,DCTBL
查表显示
8255的B口作为段控
8255的C口作为位控
MOVAL,02H
CALLDELAY
DIS1:
百分位显示
MOVAL,NUM3;
将百分位内容→AL
MOVAL,04H
POPBX;
POPAX
POPDS
DISPBCDENDP
DELAYPROCNEAR;
延时子程序
PUSHCX
MOVBX,0040H
DEL1:
MOVCX,0FFFFH
LOOP$
DECBX
JNZDEL1
POPCX
DELAYENDP
CODEENDS
ENDSTART
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机硬件 课程设计 报告