微机原理上机作业.docx
《微机原理上机作业.docx》由会员分享,可在线阅读,更多相关《微机原理上机作业.docx(28页珍藏版)》请在冰豆网上搜索。
微机原理上机作业
实验一简单的I/O试验
(一)实验目的
掌握简单并行接口的工作原理及使用方法。
(二)实验内容,简单并行接口输出。
1)简单的并行输出接口电路:
将JS4的I/O端口地址(280~287)连接到DRV模块的JS6,然后将锁存器的输出(74LS273)Q0~Q7通过JS5一一对应连接到LED显示电路的JS2上。
然后在DOS方式下运行DEBUG调试程序。
进入DEBUG后,用输出命令“O”验证其正确性。
格式为:
O280FF(00)编程:
从键盘输入一个字符或数字,将其该字符或数字的ASIIC码通过该输出接口电路输出到LED,通过发光二极管的“亮”或“灭”验证其正确性。
2)简单的并行输入接口电路:
将JS4的I/O端口地址(280~287)连接到DRV模块的JS8,然后将驱动器(74LS245)的输入B0~B7通过JS7一一对应连接到JS3的K0—K7。
然后在DOS方式下运行DEBUG调试程序。
进入DEBUG后,用输入命令“I”验证其正确性。
格式为:
I280编程:
通过逻辑电平开关预置某字符或数字的ASIIC码值。
通过该输入接口电路将其对应的字母显示在计算机屏幕上。
(3)下图是简单并行输入接口试验电路,选择I/O地址(JS4)连接到模块DRV的JS8插线孔,用于74LS245的选通,74LS245共有8个数据输入端JS7分别接逻辑电平开关输出端JS3的K0—K7,8个数据输出端易于数据总线相连。
74ls245
D021811
D131722
D241633
D351544
D461455
D571366
Js8AJs8D681277
11D791188
1219
11
IOR13
GNDDIR
(4)用逻辑电平开关预置某个字母的ASIIC码,编程输入这个程序代码,并将其对应的字幕在屏幕上显示。
(三)程序实现
(1)利用ls273读取数据并将其输出到LED上具体程序如下:
codesegment
assumecs:
code
start:
movah,2
movdl,0dh
int21h//输出dl
movah,1
int21h//将键盘输入的字符放到al中
cmpal,27
jeexit//如果键盘输入为esc则推出
movdx,280h
outdx,al
jmpstart
exit:
movah,4ch
int21h
codeends
end
实验结果:
当在开关输入00110001的时候,在发光二极管上输出地结果为亮、亮、灭、灭、亮、亮、亮、灭。
符合实验实际情况。
(2)利用LS245读取并将其输出到显示器
codesegment
assumecs:
code
start:
movdx,280h
inal,dx
movdl,al//读入
movah,2
int21h//显示输出
movdl,0dh
int21h
movdl,0ah
int21h
movah,1
int16h
jestart
exit:
movah,4ch
int21h
codeends
end
结果:
当灯的状态为亮、亮、灭、灭、亮、灭、亮、亮
显示器上显示的数据是34
实验二并行接口8255实验
一.可编程并行接口电路-8255
(一)简介
8255是一个通过可编程并行接口电路,他具有A,B,C三个8位并行接口。
其中C口也可以作为A,B口的联络信号即中断申请信号。
通过编程,他可以被置为基本输入输出和选通输入输出以及双向传输方式。
对C口还具有按位清0和置1的功能。
8255为40线的双列直插器件。
其中,8255与CPU之间的连线有:
D0~D78位数据线
RDWR读写信号
RESET复位信号,高电平有效
CS片选信号
A1,A0地址信号
根据片选端A0,A1两条地址线,可产生四个端口的地址,这四个端口的含义如表所示
A1A0
端口
00
A口端寄存器
01
B口端寄存器
10
C口端寄存器
11
控制寄存器
8255与外部的连线三个并行口A,B,C的数据总线。
当A口或B口定义为选通输入输出即A口定义为双向方式时,C口的某些线为联络信号或中断申请信号。
(二)工作方式和编程
8255的编程通过向控制口寄存器写入方式控制字,8255可设定为基本输入输出方式,选通输入输出方式和双向传送方式。
8255的方式控制字其格式如图所示。
D0:
C口低四位1=输入0=输出
D1:
B口1:
输入0:
输出
D2:
方式选择1:
方式10:
方式0
D3C口高四位1:
输入0:
输出
D4A口1:
输入0:
输出
D5、D6方式选择00――方式001-方式11X-方式2
D7设定工作方式标志
此控制字的D7位为1,他是设定工作方式标志,把此控制写入控制口即设定了工作方式。
8255的C口具有位操作功能,只要把一个置/复位控制字写入控制口即可,置/复位控制字格式如下图所示此控制字的D7位为0,为置/复位标志。
D7
D6
D5
D4
D3
D2
D1
D0
D3、D2、D1~PC0---PC7
D0置0置1
D7置复位
8255采用高电平复位。
在复位后,其控制寄存器内容被清除,A、B、C三个口均置为输入方式。
方式控制字中的方式0之基本输入输出方式,相当于无条件传送方式。
对于基本输入方式,其数据不锁存,对于基本输出方式,其数据锁存。
8255的A口、C口的高半字节,B口、C口的低半字节均可设置为基本输入输出方式。
A口及C口的高半字节设置为基本输入输出方式时,其控制字格式为:
1
0
0
1/0
1/0
X
X
X
B口及C口的低半字节设置为基本输入输出方式时的控制字格式为:
1
X
X
X
X
0
1/0
1/0
当A、B、C三个口都设置为此方式时,根据控制字的D4、D3、D1、D0位的组合,其输入和输出共有16种可能输入方式。
方式控制字中的方式1指选通输入输出方式。
在选通输入方式时,STB为选通输入信号,在低电平时有效。
其下降沿将数据存入输入锁存器,并将输入缓冲满标记,IBF置1当CPU从输入锁存器读取数据时,IBF变低,当数据存入输入锁存器且INTE置1时,通过INTR向CPU申请中断。
A口的STB为PC4,IBF为PC5,INTR为PC3,INTEA由PC4的置/复位来控制。
当A口置为选通输入时,其控制字格式为
1
0
1
0
1/0
X
X
X
此时,PC4、PC5仍为基本输入输出,有控制字符的D3为来决定器输入与输出。
B口之为选通输出时的控制字格式为:
1
X
X
X
X
1
0
X
方式控制字中的方式2指带选通的双向方式,有控制字符的D3来决定输入输出的组合。
此时,IBF为PC5,STB为PC4,OBF为PC7,ACK为PC,INTR为PC3,INTR1
及INTE2由PC6PC4的置复位来控制。
当A口置为方式2时,B口可仍工作于方式0或方式1。
当B口位方式0时,PC0-PC2基本输入输出当B口为方式样,PC0-PC2为B口的联络信号。
A口置为代选通的双向方式时其格式如下
1
1
X
X
X
1/0
1/0
1/0
再设定为方式1或方式2时,C口作为联络信号,此时,可双C口读入数据。
以了解外部设备的状态,当设置为方式1的时候,其格式如下:
1/0
1/0
IBFA
INTEA
INTRA
INTEB
IBFB
INTRB
设置为方式1输出时,其格式如下:
OBFA
INTEA
1/0
1/0
INTRA
INTEB
OBFB
INTRB
设置为方式2时。
其格式如下:
OBFA
INTEA
IBFA
INTE2
INTRA
X
X
X
(三)实现步骤
目的:
(1)熟练掌握8255并行接口芯片的基本功能及工作原理。
(2)掌握8255的三种工作方式及其初始化编程的方法。
(3)学会利用8255来构成实用的并行接口电路的方法。
◆实验内容:
(1)将8255端口B的PB0—PB7(JS13)做为输入,连接到逻辑电平开关K0—K7(JS3)上,将8255端口A的PA0—PA7(JS12)做为输出连接到发光二极管的L1--L8(JS2)。
编程要求:
当输入不是全“0”时,输出与输入保持一致。
当输入为全“0”时,A口输出发光二极管闪烁告警信号。
(2)使用8255并行接口芯片,实现十字路口交通灯的模拟控制。
将8255端口C(JS14)的PC7、PC6、PC5与南北方向(S—S18、N—JS16)的红、黄、绿三个发光二极管分别相连。
将PC2、PC1、PC0与东西方向(E—JS17、W—JS15)的红、黄、绿三个发光二极管分别相连。
编程使东西和南北方向的红、黄、绿三个指示灯的亮、灭按十字路口交通灯的变化规律进行。
注:
十字路口交通灯的变化规律及控制时序:
①南北路口的绿灯、东西路口的红灯同时亮20秒左右。
②南北路口的黄灯闪烁大约4秒钟,同时东西路口的红灯继续亮。
③南北路口的红灯、东西路口的绿灯同时亮20秒左右。
④南北路口的红灯继续亮,同时东西路口的黄灯闪烁大约4秒钟。
⑤转①重复。
实现程序如下:
stacksegment
db100dup(?
)
stackends
codesegment
mainprocfar
assumecs:
code,ss:
stack
delayprocnear
pushcx
movcx,0
delay1:
deccx
movbx,1000h
delay2:
decbx
jnzdelay2
loopdelay1
popcx
ret
delayendp
start:
moval,10001010b
movdx,283h
outdx,al
test1:
movdx,281h
inal,dx
cmpal,00h
jeflash
movdx,280h
outdx,al
jmptest1
flash:
movdx,280h
moval,0ffh
outdx,al
calldelay
moval,00h
outdx,al
calldelay
jmptest1
mainendp
codeends
endstart
实验结果:
实验结果完全符合试验的要求。
(2).使用8255的A口和B口模拟十字路口交通灯的闪烁情况。