微机原理与接口实验报告 联系客服

发布时间 : 星期一 文章微机原理与接口实验报告更新完毕开始阅读84ff19b3c8d376eeafaa311c

⑵ 本实验中使用3号中断源IR3, “

”插孔和IR3相连,中断方式为边沿触发方式,每拨1

次AN开关产生一次中断,满5次中断,显示“good”。如果中断源电平信号不符合规定要求,则自动转到7号中断,显示“Err”。 五、实验程序框图

图6-3 主程序流程 图6-4 IR3中断服务程序流程

IR3中断服务程序: IR7中断服务程序:

图6-5 IR7中断服务流程

六、实验步骤

1、按图6-2连好实验线路图。

⑴8259的INT连8088的INTR;⑵8259的INTA连8088的INTA;⑶“

号中断IR3插孔相连,“

”端初始为低电平;⑷8259的CS端接FF80H孔。

;键入口

”插孔和8259的3

2、输入并运行实验程序,系统显示8259-1。 3、按动AN开关按钮, 按满5次显示good。 七、实验程序清单

CODE

;

INTPORT1 EQU 0FF80H INTPORT2 EQU 0FF81H INTQ3 INTQ7

EQU INTREEUP3 EQU INTREEUP7

;字位口 ;字形口

SEGMENT

ORG 12D0H

START: JMP START0 BUF DB ?,?,?,?,?,? intcnt db ? data1:

db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h db

86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH

ASSUME CS: CODE

PA EQU 0FF20H PB EQU 0FF21H PC EQU 0FF22H

5

START0: CLD CALL BUF1 CALL WRINTVER ;WRITE INTRRUPT MOV CX,05H MOV [BX],AL INC BX LOOP INTRE0 INTRE0: MOV AL,13H MOV DX,INTPORT1 OUT DX,AL MOV AL,08H MOV DX,INTPORT2 OUT DX,AL MOV AL,09H OUT DX,AL MOV AL,0F7H OUT DX,AL MOV intcnt,01H ;TIME=1 STI WATING: CALL DISP ;DISP 8259-1 JMP WATING WRINTVER: MOV AX,0H MOV ES,AX MOV DI,002CH LEA AX,INTQ3 STOSW MOV AX,0000h STOSW MOV DI,003CH LEA AX,INTQ7 STOSW MOV AX,0000h STOSW RET INTREEUP3: CLI MOV AL,INTCNT CALL CONVERS MOV BX,OFFSET BUF ;077BH MOV AL,10H MOV AL,20H MOV DX,INTPORT1 OUT DX,AL ADD INTCNT,01H CMP INTCNT,06H JNA INTRE2 CALL BUF2 ;DISP:good INTRE1: CALL DISP JMP INTRE1 CONVERS: AND AL,0FH MOV BX,offset buf ;077AH MOV [BX+5],AL RET INTRE2: MOV AL,20H MOV DX,INTPORT1 OUT DX,AL pop dx pop cx pop bx pop ax STI IRET INTREEUP7: CLI MOV AL,20H MOV DX,INTPORT1 OUT DX,AL call buf3 ;disp:err INTRE3: CALL DISP JMP INTRE3 DISP: MOV AL,0FFH ;00H MOV DX,PA OUT DX,AL MOV CL,0DFH ;20H ;显示子程序 ,5ms 6

push ax push bx push cx push dx MOV BX,OFFSET BUF DIS1: MOV AL,[BX] MOV AH,00H BUF1: PUSH BX MOV BX,OFFSET DATA1 ADD BX,AX MOV AL,[BX] POP BX MOV DX,PB OUT DX,AL MOV AL,CL MOV DX,PA OUT DX,AL PUSH CX MOV CX,00A0H POP CX CMP CL,0FEH ;01H JZ LX1 INC BX ROR CL,1 JMP DIS1 LX1: MOV AL,0FFH MOV DX,PB 八、思考题:

;SHR CL,1 OUT DX,AL RET MOV BUF,08H MOV BUF+1,02H MOV BUF+2,05H MOV BUF+3,09H MOV BUF+4,17H MOV BUF+5,01H RET BUF2: MOV BUF,09H MOV BUF+1,00H MOV BUF+2,00H MOV BUF+3,0dH MOV BUF+4,10H MOV BUF+5,10H RET BUF3: MOV BUF,0eH MOV BUF+1,18H MOV BUF+2,18H MOV BUF+3,10H MOV BUF+4,10H MOV BUF+5,10H RET CODE ENDS END START DIS2: LOOP $ 若用IR5产生中断,要求修改硬件和软件并调试,修改位置

硬件修改:将连接到8259的IR3线连接到IR5

软件修改:在IR5所对应的中断向量的字段中写入中断程序的入口地址,并修改8259A的OCW1 命

令字指定IR5开放中断。

(1)START0中修改为:

MOV DX,INTPORT2 OUT DX,AL MOV AL,09H OUT DX,AL MOV AL,0DFH OUT DX,AL MOV intcnt,01

......

(2)WRINTVER中修改为: WRINTVER:

.....

MOV DI,0034H LEA AX,INTQ3 ......

7

实验八8250 串口实验

一、实验目的

(1)系统扩展以8250 为核心的可编程串行异步通讯接口芯片。 (2)对扩展的串行通讯接口实现自发自收。 二、实验内容

将寄存器AH 的内容从10H 开始通过8250 发送、接收,每次收发后AH 的内 容自动增1 直到FFH 为止,同时将每次接收到的数据,依次写到内存4000H~ 40EFH 单元中,实现自发自收。 三、编程指南 1、通讯协议

1 个起始位,8 位数据位,1 个停止位,波特率:4800。 2、8250 的内部寄存器的端口地址

* 通讯线控制寄存器第7 位(DLAB)=0 ,** DLAB=1 3、8250 的内部寄存器格式(见课本)

4、波特率除数锁存器的值与波特率的对应关系(16 进制数) 5、8250 的初始化编程 (1)设置波特率 (2)设置通讯数据格式 (3)设置操作方式 (4)设置中断允许寄存器 四、实验接线图 五、实验步骤

1.连FF80H 孔到CS7,连TXD 到RXD(8250 实验区)。 2.编辑、调试、运行程序。

3.当系统显示“8250——good”表示自发自收结束,按RST 键,系统返回 P 态,用内存读写命令检查4000H~40EFH 内容是否为10H~FFH,验证其正确性。 六、参考程序

CODE SEGMENT ;H8250.ASM ASSUME CS: CODE ;H8250.ASM DATA EQU 0ff80H ;BTS-LSB MSB EQU 0ff81H LINE EQU 0ff83H LSTAT EQU 0ff85H PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口 ORG 29A0H;源地址

START: JMP START0;跳转到START0 BUF DB ?,?,?,?,?,?;定义6字节缓冲区 data1: db

MOV DX,DATA ;ff80H OUT DX,AL

MOV DX,MSB;置波特率因子高8位

0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0

c6h,0a1h;定义七段码 db

86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH

START0: MOV AL,80H ;DLAB=1 MOV DX,LINE OUT DX,AL

MOV AL,18H ;BTS=4800;置波特率因子低8

8