微机综合实验 微机原理与接口技术.docx

上传人:b****8 文档编号:29821345 上传时间:2023-07-27 格式:DOCX 页数:16 大小:951.44KB
下载 相关 举报
微机综合实验 微机原理与接口技术.docx_第1页
第1页 / 共16页
微机综合实验 微机原理与接口技术.docx_第2页
第2页 / 共16页
微机综合实验 微机原理与接口技术.docx_第3页
第3页 / 共16页
微机综合实验 微机原理与接口技术.docx_第4页
第4页 / 共16页
微机综合实验 微机原理与接口技术.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

微机综合实验 微机原理与接口技术.docx

《微机综合实验 微机原理与接口技术.docx》由会员分享,可在线阅读,更多相关《微机综合实验 微机原理与接口技术.docx(16页珍藏版)》请在冰豆网上搜索。

微机综合实验 微机原理与接口技术.docx

微机综合实验微机原理与接口技术

淮海工学院计算机科学系

实验报告书

课程名:

《微机原理与接口技术》

题目:

综合实验

班级:

学号:

姓名:

 

一、目的与要求

1、进一步掌握并行接口芯片8255A和微机接口的连接及其编程方法;

2、进一步熟悉DAC0832数模转换器的特性和接口方法,掌握D/A输出程序的设计和调试方法;

3、掌握汇编语言程序设计方法;

4、掌握接口芯片的应用,提高综合运用所学知识解决实际问题的基本方法;

5、提高硬软件调试的方法。

二、实验内容

(1)8255A相关部分

实验原理与8255A相关部分如图11.4所示,PC口8位仅使用PC0,PC1两位接2个开关K1、K2,PB口8位接2个发光二极管(L1、L2),从PC口读入2位开关量送PB口显示。

拨动K1、K2,PB口上接的2个发光二极管L1、L2对应显示K1、K2的状态。

此外,随着PC0、PC1输入的四种开关状态(00、01、10、11)的改变,实时改变:

1.2个发光二极管(L1、L2)的显示;2.8个LED数码管的显示(显示要求:

0832――0x)x为0、1、2、3中的1个数;3.DAC0832的输出波形。

具体要求:

00-输出方波;01-输出锯齿波;10-输出三角波;11-输出正弦波。

图11.4实验线路

图11.5实验线路

(2)DAC0832相关部分

实验原理如图11.5所示,由于DAC0832有数据锁存器、选片、读、写控制信号线,故可与8088CPU总线直接接口。

图中是只有一路模拟量输出,且为单极型电压输出。

DAC0832工作于单缓冲方式,它的ILE接+5V,CS#和XFER#相接后作为0832芯片的片选0832CS。

这样,对DAC0832执行一次写操作就把一个数据直接写入DAC寄存器、模拟量输出随之而变化。

实验框图

 

三、实验步骤与源程序

1.按图11.4、11.5连好线路(共6根线);

2.使用示波器,检测DAC0832的电压输出;

3.使用DVCC86H调试软件,选择新建源文件或者在某个源文件基础上修改;

4.完成源文件输入后,选择编译->编译连接传送;定位程序起始地址选择默认的1000H;

5.编译错误,修改源程序;

6.调试程序,拨动K1、K2,观察L1、L2显示、数码管显示、示波器波形;

7.纪录各种波形的周期、幅值。

(2)源程序:

CODESEGMENT

ASSUMECS:

CODE

DAPORTEQU0070H;DAC0832端口

CONTPORTEQU00DFH;8279控制口

DATAPORTEQU00DEH;8279数据口

IOCONPTEQU0063H;8255A的控制口

IOCPTEQU0062H;8255A的PC口(输入)

IOBPTEQU0061H;8255A的PB口(输出)

DATAEQU0500H;显示RAM偏移地址,8位段码存放在CS:

[500H]~CS:

[507H]

JUMPEQU0600H;判断转移偏移量

VALEQU0604H;数据量

START:

JMPDACONTORL

SINDB0,2,4,7,9,11,13,16,18,20;0-9

DB22,24,27,29,31,33,35,37,39,42;10-19

DB44,46,48,50,52,54,56,58,60,62;20-29

DB64,66,68,69,71,73,75,77,78,80;30-39

DB82,84,85,87,89,90,92,93,95,96;40-49

DB98,99,100,102,103,104,106,107,108,109;50-59

DB110,112,113,114,115,116,116,117,118,119;60-69

DB120,121,121,122,123,123,124,124,125,125;70-79

DB126,126,126,127,127,127,127,127,127,127,127,127;80-89+90

DACONTORL:

CALLFORMAT

CALLLEDDISP

CALLINIT

LOOPk:

MOVDX,IOCPT

INAL,DX

ANDAL,03H

MOVDS:

[0600H],AL

MOVDX,IOBPT

NOTAL

OUTDX,AL

MOVDX,DAPORT

MOVAL,DS:

[0600H]

CMPAL,0

JEL0

CMPAL,1

JEL1

CMPAL,2

JEL2

CMPAL,3;SIN处理=3

JEL3

JMPLOOPk

L0:

;方波处理

MOVBYTEPTRDS:

[0500H],3FH

CALLLEDDISP

CALLSQUARE;方波处理

JMPLOOPk

L1:

;锯齿波处理

MOVBYTEPTRDS:

[0500H],06H

CALLLEDDISP

CALLhackle;锯齿波处理

JMPLOOPk

L2:

;三角波处理

MOVBYTEPTRDS:

[0500H],5BH

CALLLEDDISP

CALLtrigonal;三角波处理

JMPLOOPk

L3:

;正弦函数处理

MOVBYTEPTRDS:

[0500H],4FH

CALLLEDDISP

CALLsinusoid;正弦函数处理

JMPLOOPk

ERROR:

MOVBYTEPTRDS:

[VAL],0

JMPSQUARE1

SQUARE:

;方波处理

MOVAL,DS:

[VAL]

CMPAL,0

JNECHECK

JMPSQUARE1

CHECK:

CMPAL,0FFH

JNEERROR

SQUARE1:

MOVCX,DS:

[0602H];取度数

CMPCX,180

JAESQUARE2

MOVAL,DS:

[VAL]

OUTDX,AL

INCCX

MOVDS:

[0602H],CX

RET

SQUARE2:

MOVWORDPTRDS:

[0602H],0

MOVAL,DS:

[VAL]

NOTAL

MOVDS:

[VAL],AL

RET

hackle:

;锯齿波处理

MOVAL,DS:

[VAL]

OUTDX,AL

INCAL

MOVDS:

[VAL],AL

RET

trigonal:

;三角波处理

MOVCX,DS:

[0602H];取度数0-255*2

CMPCX,256

JAEtrigonal1

MOVAL,DS:

[VAL]

OUTDX,AL

INCAL

MOVDS:

[VAL],AL

INCCX

MOVDS:

[0602H],CX

RET

trigonal1:

CMPCX,512

JAEtrigonal2

MOVAL,DS:

[VAL]

DECAL

OUTDX,AL

MOVDS:

[VAL],AL

INCCX

MOVDS:

[0602H],CX

RET

trigonal2:

MOVBYTEPTRDS:

[VAL],0

MOVWORDPTRDS:

[0602H],0

RET

sinusoid:

;正弦函数处理

MOVCX,DS:

[0602H];取度数

CMPCX,90

JAquadrant2

MOVSI,DI

ADDSI,CX

MOVAL,[SI]

ADDAL,127

OUTDX,AL

INCCX

MOVDS:

[0602H],CX

RET

quadrant2:

MOVCX,DS:

[0602H];取度数

CMPCX,180

JAquadrant3

MOVSI,DI

ADDSI,180

SUBSI,CX

MOVAL,[SI]

ADDAL,127

OUTDX,AL

INCCX

MOVDS:

[0602H],CX

RET

quadrant3:

MOVCX,DS:

[0602H];取度数

CMPCX,270

JAquadrant4

MOVSI,DI

ADDSI,CX

SUBSI,180

MOVBL,[SI]

MOVAL,127

SUBAL,BL

OUTDX,AL

INCCX

MOVDS:

[0602H],CX

RET

quadrant4:

MOVCX,DS:

[0602H];取度数

CMPCX,360

JAEquadrant5

MOVSI,DI

ADDSI,360

SUBSI,CX

MOVBL,[SI]

MOVAL,127

SUBAL,BL

OUTDX,AL

INCCX

MOVDS:

[0602H],CX

RET

quadrant5:

MOVWORDPTRDS:

[0602H],0

RET

INIT:

MOVAL,89H

MOVDX,IOCONPT

OUTDX,AL

MOVBYTEPTRDS:

[JUMP],3;SIN

MOVBYTEPTRDS:

[VAL],0

MOVWORDPTRDS:

[0602H],0

MOVSI,OFFSETSIN

ADDSI,1000H

MOVDI,SI

MOVDX,DAPORT

RET

DELE:

PUSHCX

MOVCX,60H

DACON2:

LOOPDACON2

POPCX

RET

LEDDISP:

PUSHDX

PUSHAX

PUSHBX

MOVAL,90H

MOVDX,CONTPORT

OUTDX,AL

MOVBX,0

LED1:

CMPBX,7

JALED2

MOVAL,DS:

[BX+DATA]

MOVDX,DATAPORT

OUTDX,AL

INCBX

JMPLED1

LED2:

POPBX

POPAX

POPDX

RET

FORMAT:

MOVBX,0

MOVWORDPTRDS:

[BX+0500H],3F06H;显示01

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],4040H;显示--

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],4F5BH;显示32

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],3F7FH;显示08

ADDBX,2

RET

CODEENDS

ENDSTART

四、实验结果(可以抓图粘贴)

(一)开关状态为00时,其截图如下:

图一:

数码管显示截图图二:

两个灯的状态,此时不亮

图三:

显示的方波

(二)开关状态为01时,其截图如下:

图一:

数码管显示截图

图二:

显示的锯齿波

图三:

两个灯的状态,此时,1号不亮,2号亮

(三)开关状态为10时,其截图如下:

图一:

数码管显示截图

图二:

显示的三角波

图三:

两个灯的状态,此时,2号不亮,1号亮

(四)开关状态为11时,其截图如下:

图一:

数码管显示截图

图二:

显示的正弦波

图三:

两个灯的状态,此时,两个灯均亮

五、结果分析与实验体会

这次实验是微机这门课程的最后一次实验,是一个综合实验也是比较难的一个实验,这次实验把我们前几次的实验综合起来写一个程序,一开始我自己有了大概的想法后就开始写程序,可是到自己写程序的时候就会遇到好多问题,这个程序用的最多的就是跳转语句,在用跳转语句编译的时候会出现超出范围这样的语句我又不知道怎么改的后来参考同学的程序才知道自己哪里错了,在跳转语句里加一个call语句访问比较长的代码段就不会出现这样的问题了,然后继续改自己的程序最后终于可以编译成功了,可是连接的时候.exe文件很难生成的,最后老师告诉我们怎么生成,虽然能运行了但是离理想的结果相差还是有点远的,经过我不断的修改最后终于可以成功运行了,得出了自己想要的结果了。

通过这次实验,我们进一步掌握并行接口芯片8255A和微机接口的连接及其编程方法,熟悉了DAC0832数模转换器的特性和接口方法以及D/A输出程序的设计和调试方法,更加深一步地掌握汇编语言程序设计方法,掌握了接口芯片的应用,提高综合运用所学知识解决实际问题的基本方法以及提高硬软件调试的方法。

总的来说,这次实验让我对于课上所学的知识了解得更加深刻了,为以后的学习打下了一定基础,每次实验都能让我学到好多。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1