计算机输入输出系统接口实验报告.docx
- 文档编号:28119169
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:31
- 大小:319.06KB
计算机输入输出系统接口实验报告.docx
《计算机输入输出系统接口实验报告.docx》由会员分享,可在线阅读,更多相关《计算机输入输出系统接口实验报告.docx(31页珍藏版)》请在冰豆网上搜索。
计算机输入输出系统接口实验报告
计算机输入输出系统
接口实验报告
姓名:
学号:
东南大学计算机科学与工程学院、软件学院
SchoolofComputerScience&Engineering
CollegeofSoftwareEngineering
SoutheastUniversity
二016年6月
实验一环境熟悉与I/O地址译码
一、实验目的
掌握I/O地址译码电路的工作原理。
二、实验内容
将接口实验包中所带的EX-138.DSN文件用ISIS7打开。
改变A9~A3的接线方法,从而得到Y0;388H~38FH;Y1:
398H~39FH;……;Y7:
3F8H~3FFH。
并修改上一问的程序,以同样使得Y4#有效。
1)源程序
.8086
.MODELSMALL
.stack
.data
addressword3c8h
.code
start:
movax,@data
movds,ax
movdx,address
moval,0
outdx,al
jmp$
ENDstart
2)电路原理图(138译码部分)
3)运行结果贴图(138译码及上面两个273的输出)
实验二可编程中断控制器8259
一、实验目的
1.掌握8259的基本工作原理和编程方法。
2.深入了解中断的概念和实地址模式下中断处理程序的编写方法。
二、实验内容
将接口实验包中所带的EX-8259.DSN文件用ISIS7打开。
按手册接线并执行。
运行结果贴图(执行三次中断,每次中断后的8086寄存器的截图)
……
实验三可编程定时器计数器8253
一、实验目的
掌握8253的基本工作原理、编程方法及其应用。
二、实验内容
一)研究定时计数器(选)
1)源程序
.8086
.MODELSMALL
.DATA
.CODE
START:
MOVAX,@DATA
MOVDS,AX
MOVDX,226H
MOVAL,00010000B;T/C0,leastsignificantbyteonly,mode0,Binary
OUTDX,AL
MOVAL,5;Initialcount=5
MOVDX,220H
OUTDX,AL
MOVAH,4CH
INT21H
ENDSTART
2)讨论题
如果把方式0改成方式1,电路不动,则按下BUTTON后,计数器值会否减1?
为什么?
不会,因为方式1下GATE=1或0没有影响,只有GATE的上升沿才会触发计数器开始计数,而该电路中GATE时钟为1,所以计数器不会减1.
二)信号发生器
1)源程序
.8086
.MODELSMALL
.DATA
.CODE
START:
MOVAX,@DATA
MOVDS,AX
;InitailizeT/C0
MOVDX,226H
MOVAL,00110110B;T/C0,leastsignificantbytefirst,mode3,binary
OUTDX,AL
MOVDX,220H
MOVAX,1000;Initialcount=1000
OUTDX,AL
MOVAL,AH
OUTDX,AL
;InitializeT/C1
MOVDX,226H
MOVAL,01110110B;T/C1,leastsignificantbytefirst,mode3,binary
OUTDX,AL
MOVDX,222H
MOVAX,1000;Initialcount=1000
OUTDX,AL
MOVAL,AH
OUTDX,AL
;InitializeT/C2
MOVDX,226H
MOVAL,10010110B;T/C2,leastsignificantbyteonly,mode3,binary
OUTDX,AL
MOVDX,224H
MOVAL,5;Initialcount=5
OUTDX,AL
MOVAH,4CH
INT21H
ENDSTART
2)接线原理图
3)编程与调试心得(遇到的问题和解决的办法,以及获得的收获)
(1)1秒为周期,占空比1:
2的方波,现将1MHz的方波输入CLK0,设C/T0计数值为1000
工作方式为方式3,则OUT0输出的信号为1KHz,占空比1:
2的方波,再将OUT0输入CLK1,设C/T1计数值为1000,工作方式为方式3,则OUT1输出的信号为1Hz,占空比1:
2的方波。
(2)产生5秒为周期,占空比为2:
5的方波时,如果只将OUT1输入CLK2,C/T2计数初始值为5,工作方式为方式3,则OUT2输出的信号为5秒为周期,占空比为3:
5的方波,要产生占空比为2:
5的方波,还需要在OUT2上加一个非门。
(3)产生5秒为周期的波形,其中前2秒频率为1KHz的方波,后3秒为低电平,该波形可以看出5秒为周期,占空比为2:
5的方波和1KHz的方波的叠加,因此只需将OUT0和OUT2#相与即可。
实验五七段数码管实验
一、实验目的
掌握数码管显示数字的原理,进一步复习8255的应用。
二、实验内容
1.静态显示(选)。
1)源程序
.8086
.MODELSMALL
.DATA
BUFFBYTE3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
.CODE
START:
MOVAX,@DATA
MOVDS,AX
MOVDX,206H
MOVAL,10001001B
OUTDX,AL
AGAIN:
MOVDX,204H
INAL,DX
NOTAL
MOVBX,OFFSETBUFF
XLAT
MOVDX,200H
OUTDX,AL
JMPAGAIN
ENDSTART
2)接线原理图
3)运行结果截图
2.动态显示。
1)源程序
.8086
.MODELSMALL
.DATA
VARBYTE?
BUFFBYTE3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
.CODE
START:
MOVAX,@DATA
MOVDS,AX
MOVDX,206H;Addressof82C55is200H,202H,204H,206H
MOVAL,10001001B;PortAinmode0,ouput,PortBinmode0,output,Port
OUTDX,AL;Cinmode0,input
AGAIN:
MOVDX,204H;GetthesetofswitchfromportC
INAL,DX
NOTAL
MOVVAR,AL;Storethesetofswitchin'VAR'
MOVDX,202H
MOVAL,02H;SetS1=1,outputtensdigit
OUTDX,AL
MOVCL,4
MOVAL,VAR;shiftAL4-bitleft
SHRAL,CL
MOVBX,OFFSETBUFF
XLAT
MOVDX,200H
OUTDX,AL
MOVCX,64H
LOOP$;Causeadelaybeforedisplayunitsdigit
MOVDX,202H
MOVAL,01H;SetS2=1,outputunitsdigit
OUTDX,AL
MOVAL,VAR
ANDAL,0FH
MOVBX,OFFSETBUFF
XLAT
MOVDX,200H
OUTDX,AL
MOVCX,64H
LOOP$;Causeadelaybeforethecirculation
JMPAGAIN
ENDSTART
2)接线原理图
3)运行结果截图
4)编程与调试心得(遇到的问题和解决的办法,以及获得的收获)
编程心得:
输出十位数段码与输出个位数段码之间需要产生延迟,在程序中可以通过MOVCX,64HLOOP$来实现。
XLAT是查表指令:
以DS:
[BX+AL]为地址,提取存储器中的一个字节再送入AL。
将寄存器左移或者右移时,移动的位数要存在CL寄存器中
实验六交通灯控制实验
一)实验目的
通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用和中断的使用。
二)交通灯变化规律
十字路口交通灯的变化规律要求
1)南北路口的绿灯、东西路口的红灯同时亮10秒,然后
2)南北路口的黄灯闪烁2次(闪烁周期2秒),同时东西路口的红灯继续亮,然后
3)南北路口的红灯、东西路口的绿灯同时亮10秒,然后
4)南北路口的红灯继续亮,同时东西路口的黄灯2次(闪烁周期2秒),然后
5)转1重复。
三)实验内容
1.红黄绿三色交通灯控制。
将接口实验包中所带的EX-825X-1.DSN文件用ISIS7打开,将D6、D5、D4作为南北路口的交通灯与PA7、PA6、PA5相连;D3、D2、D1作为东西路口的交通灯与PA2、PA1、PA0相连(方式0)。
利用8253产生1秒的中断信号(系统已经为CLK0提供了一个1MHz的时钟输入),在中断处理程序中用程序处理10秒延迟和两次黄灯闪烁的问题。
编程使六个灯按交通灯变化规律燃灭。
1)源程序
.8086
.MODELSMALL
.DATA
COUNTBYTE10
STATEBYTE1
.CODE
START:
MOVAX,@DATA
MOVDS,AX
;Initialize8259A
MOVAL,13H;ICW1,Edgetriggered,single,ICW4isneeded
MOVDX,210H
OUTDX,AL
MOVAL,60H;ICW2,theinterruptvectoris60H
MOVDX,212H
OUTDX,AL
MOVAL,00000001H;ICW4
OUTDX,AL
;Initialize8253A
MOVAL,00110110B;T/C0,leastsignificantbytefirst,mode3,Binary
MOVDX,226H
OUTDX,AL
MOVAX,1000;conut0=1000
MOVDX,220H
OUTDX,AL
MOVAL,AH
OUTDX,AL
MOVAL,01110110B;T/C1,leastsignificantbytefirst,mode3,Binary
MOVDX,226H
OUTDX,AL
MOVAX,1000;count1=1000
MOVDX,222H
OUTDX,AL
MOVAL,AH
OUTDX,AL
;Initialize82C55
MOVAL,10000000B
MOVDX,206H
OUTDX,AL
;InitailizeInterruptVectorTable
MOVAX,@DATA
MOVDS,AX
CLI
MOVAX,0
MOVES,AX
MOVSI,0
MOVCX,255
l:
MOVAX,OFFSETSERVICE
MOVES:
[SI],AX
MOVAX,SEGSERVICE
MOVES:
[SI+2],AX
ADDSI,4
LOOPl
MOVAX,OFFSETSERVICE
MOVES:
[SI],AX
MOVAX,SEGSERVICE
MOVES:
[SI+2],AX
STI
JMP$
SERVICEPROC;Interrupterhandler
PUSHAX
PUSHDX
PUSHDS
STI
MOVAX,@DATA
MOVDS,AX
MOVAL,STATE
NEXT3:
CMPAL,1;StateS1
JNZNEXT
MOVDX,200H
MOVAL,10000001B;Northandsouthdirectionofgreenlight
OUTDX,AL;Westandeastdirectionofredlight
MOVAL,COUNT
DECAL
MOVCOUNT,AL
CMPAL,0
MOVCOUNT,AL;IfCOUNT=0,COUNT=4,STATE=2
JNZEXIT
MOVAL,4
MOVCOUNT,AL
MOVAL,2
MOVSTATE,AL
JMPEXIT
NEXT:
CMPAL,2;StateS2
JNZNEXT1
MOVAL,COUNT
TESTAL,01H;Northandsouthdirectionofyellowlightflashing
JZYELLOW1;Westandeastdirectionofredlight
MOVDX,200H
MOVAL,00000001B
OUTDX,AL
JMPRESUME1
YELLOW1:
MOVDX,200H
MOVAL,01000001B
OUTDX,AL
RESUME1:
MOVAL,COUNT
DECAL
MOVCOUNT,AL
CMPAL,0;IfCOUNT=0,COUNT=10,STATE=3
JNZEXIT
MOVAL,10
MOVCOUNT,AL
MOVAL,3
MOVSTATE,AL
JMPEXIT
NEXT1:
CMPAL,3;StateS3
JNZNEXT2
MOVDX,200H
MOVAL,00100100B;Northandsouthdirectionofredlight
OUTDX,AL;Westandeastdirectionofgreenlight
MOVAL,COUNT
DECAL
MOVCOUNT,AL
CMPAL,0;IfCOUNT=0,COUNT=4,STATE=4
JNZEXIT
MOVAL,4
MOVCOUNT,AL
MOVAL,4
MOVSTATE,AL
JMPEXIT
NEXT2:
CMPAL,4;StateS4
JNZNEXT3
MOVAL,COUNT
TESTAL,01H
JZYELLOW2;Northandsouthdirectionofredlight
MOVDX,200H;Westandeastdirectionofyellowlightflashing
MOVAL,00100000B
OUTDX,AL
JMPRESUME2
YELLOW2:
MOVDX,200H
MOVAL,00100010B
OUTDX,AL
RESUME2:
MOVAL,COUNT
DECAL
MOVCOUNT,AL
CMPAL,0;IfCOUNT=0,COUNT=10,STATE=1
JNZEXIT
MOVAL,10
MOVCOUNT,AL
MOVAL,1
MOVSTATE,AL
EXIT:
CLI
MOVAL,20H;SendEOI
MOVDX,210H
OUTDX,AL
POPDS
POPDX
POPAX
IRET
SERVICEENDP
ENDSTART
2)接线原理图
3)运行结果截图
4)编程与调试心得(遇到的问题和解决的办法,以及获得的收获)
编程心得:
在实现S2和S4的黄灯闪烁时,在每次调用中断处理程序时通过判断COUNT的奇偶性,如果COUNT是偶数,则使黄灯点亮,如果COUNT是奇数,则使黄灯熄灭
2.带倒计时的交通灯控制(选):
将接口实验包中所带的EX-825X-2.DSN文件用ISIS7打开,将D6、D5、D4作为南北路口的交通灯与PA7、PA6、PA5相连;D3、D2、D1作为东西路口的交通灯与PA2、PA1、PA0相连(方式0)。
PC口的PC0~PC6作为输出口(方式0输出)连接7段数码管的段码,PB0、PB1连接数码管的S1,S2来选择显示的位。
利用8253产生1秒的中断信号,在中断处理程序中用程序处理10秒延迟和两次黄灯闪烁的问题。
编程使六个灯按交通灯变化规律燃灭,同时数码管显示倒计时的值(10~0,4~0)。
1)源程序
.8086
.MODELSMALL
.DATA
COUNTBYTE11
STATEBYTE1
VARBYTE?
BUFFBYTE3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,3FH
.CODE
START:
MOVAX,@DATA
MOVDS,AX
;Initialize8259A
MOVAL,13H;ICW1,Edgetriggered,single,ICW4isneeded
MOVDX,210H
OUTDX,AL
JMPSHORT$+2
MOVAL,60H;ICW2,theinterruptvectoris60H
MOVDX,212H
OUTDX,AL
JMPSHORT$+2
MOVAL,00000001H;ICW4
OUTDX,AL
JMPSHORT$+2
;Initialize8253A
MOVAL,00110110B;T/C0,leastsignificantbytefirst,mode3,Binary
MOVDX,226H
OUTDX,AL
JMPSHORT$+2
MOVAX,1000;conut0=1000
MOVDX,220H
OUTDX,AL
JMPSHORT$+2
MOVAL,AH
OUTDX,AL
JMPSHORT$+2
MOVAL,01110110B;T/C1,leastsignificantbytefirst,mode3,Binary
MOVDX,226H
OUTDX,AL
JMPSHORT$+2
MOVAX,1000;count1=1000
MOVDX,222H
OUTDX,AL
JMPSHORT$+2
MOVAL,AH
OUTDX,AL
JMPSHORT$+2
;Initialize82C55
MOVAL,10000000B
MOVDX,206H
OUTDX,AL
JMPSHORT$+2
;InitailizeInterruptVectorTable
MOVAX,@DATA
MOVDS,AX
CLI
MOVAX,0
MOVES,AX
MOVSI,0
MOVCX,255
l:
MOVAX,OFFSETSERVICE
MOVES:
[SI],AX
MOVAX,SEGSERVICE
MOVES:
[SI+2],AX
ADDSI,4
LOOPl
MOVAX,OFFSETSERVICE
MOVES:
[SI],AX
MOVAX,SEGSERVICE
MOVES:
[SI+2],AX
STI
JMP$
SERVICEPROC
PUSHAX
PUSHDX
PUSHDS
STI
MOVAX,@DATA
MOVDS,AX
MOVAL,STATE
NEXT3:
CMPAL,1
JNZNEXT
MOVDX,200H
MOVAL,10000001B
OUTDX,AL
JMPSHORT$+2
CALLDISPLAY
MOVAL,COUNT
DECAL
MOVCOUNT,AL
CMPAL,0
MOVCOUNT,AL
JNZEXIT
MOVAL,5
MOVCOUNT,AL
MOVAL,2
MOVSTATE,AL
JMPEXIT
NEXT:
CMPAL,2
JNZNEXT1
MOVAL,COUNT
TESTAL,01H
JZYELLOW1
MOVDX,200H
MOVAL,00000001B
OUTDX,AL
JMPSHORT$+2
JMPRESUME1
YELLOW1:
MOVDX,200H
MOVAL,01000001B
OUTDX,AL
JMPSHORT$+2
RESUME1:
CALLDISPLAY
MOVAL,COUNT
DECAL
MOVCOUNT,AL
CMPAL,0
JNZEXIT
MOVAL,11
MOVCOUNT,AL
MOVAL,3
MOVSTATE,AL
JMPEXIT
NEXT1:
CMPAL,3
JNZNEXT2
MOVDX,200H
MOVAL,00100100B
OUTDX,AL
JMPSHORT$+2
CALLDISPLAY
MOVAL,COUNT
DECAL
MOVCOUNT,AL
CMPAL,0
JNZEXIT
MOVAL,5
MOVCOUNT,AL
MOVAL,4
MOVSTATE,AL
JMPEXIT
NEXT2:
CMPAL,4
JNZNEXT3
MOVAL,COUNT
TESTAL,01H
JZYELLOW2
MOVDX,200H
MOVAL,00100000B
OUTDX,AL
JMPSHORT$+2
JMPRESUME2
YELLOW2:
MOVDX,200H
MOVAL,00100010B
OUTDX,AL
JMPSHORT$+2
RESUME2:
CALLDISPLAY
MOVAL,COUNT
DECA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 输入输出 系统 接口 实验 报告