计算机输入输出系统接口实验报告Word文件下载.docx
《计算机输入输出系统接口实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《计算机输入输出系统接口实验报告Word文件下载.docx(31页珍藏版)》请在冰豆网上搜索。
改变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的基本工作原理、编程方法及其应用。
一)研究定时计数器(选)
.DATA
.CODE
START:
MOVAX,@DATA
MOVDS,AX
MOVDX,226H
MOVAL,00010000B;
T/C0,leastsignificantbyteonly,mode0,Binary
OUTDX,AL
MOVAL,5;
Initialcount=5
MOVDX,220H
MOVAH,4CH
INT21H
ENDSTART
2)讨论题
如果把方式0改成方式1,电路不动,则按下BUTTON后,计数器值会否减1?
为什么?
不会,因为方式1下GATE=1或0没有影响,只有GATE的上升沿才会触发计数器开始计数,而该电路中GATE时钟为1,所以计数器不会减1.
二)信号发生器
;
InitailizeT/C0
MOVDX,226H
MOVAL,00110110B;
T/C0,leastsignificantbytefirst,mode3,binary
MOVAX,1000;
Initialcount=1000
MOVAL,AH
InitializeT/C1
MOVAL,01110110B;
T/C1,leastsignificantbytefirst,mode3,binary
MOVDX,222H
OUTDX,AL
InitializeT/C2
MOVAL,10010110B;
T/C2,leastsignificantbyteonly,mode3,binary
MOVDX,224H
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.静态显示(选)。
BUFFBYTE3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
MOVDX,206H
MOVAL,10001001B
AGAIN:
MOVDX,204H
INAL,DX
NOTAL
MOVBX,OFFSETBUFF
XLAT
MOVDX,200H
JMPAGAIN
3)运行结果截图
2.动态显示。
1)源程序
VARBYTE?
MOVDX,206H;
Addressof82C55is200H,202H,204H,206H
MOVAL,10001001B;
PortAinmode0,ouput,PortBinmode0,output,Port
OUTDX,AL;
Cinmode0,input
MOVDX,204H;
GetthesetofswitchfromportC
INAL,DX
NOTAL
MOVVAR,AL;
Storethesetofswitchin'
VAR'
MOVDX,202H
MOVAL,02H;
SetS1=1,outputtensdigit
MOVCL,4
MOVAL,VAR;
shiftAL4-bitleft
SHRAL,CL
XLAT
MOVCX,64H
LOOP$;
Causeadelaybeforedisplayunitsdigit
MOVDX,202H
MOVAL,01H;
SetS2=1,outputunitsdigit
MOVAL,VAR
ANDAL,0FH
MOVCX,64H
Causeadelaybeforethecirculation
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秒延迟和两次黄灯闪烁的问题。
编程使六个灯按交通灯变化规律燃灭。
COUNTBYTE10
STATEBYTE1
Initialize8259A
MOVAL,13H;
ICW1,Edgetriggered,single,ICW4isneeded
MOVDX,210H
MOVAL,60H;
ICW2,theinterruptvectoris60H
MOVDX,212H
MOVAL,00000001H;
ICW4
Initialize8253A
T/C0,leastsignificantbytefirst,mode3,Binary
conut0=1000
T/C1,leastsignificantbytefirst,mode3,Binary
count1=1000
Initialize82C55