微机原理 实验报告十一月整理(15页)

来源:工作范文网 时间:2020-11-24 10:03:30

PAGE

PAGE 1

微机原理与接口技术

实验指导书

班级

学号 099074

姓名

安徽工业大学计算机学院

实验一存贮器读写实验

一、实验内容

对指定地址区间的RAM(4000H~4FFH)先进行写数据55AAH,然后将其内容读出再写到5000H~5FFH中。

二、实验步骤

l、将实验系统与PC机连接;

2、在PC机上启功DJ-8086k软件,实验系统进入联机状态;

3、在DJ-8086k软件环境下编辑、调试程序,将程序调试、编译通过;

4、运行程序。

5、稍后按RST键退出,用存贮器读方法检查4000H~43FFH中的内容和5000~53FFH中的内容应都是55AA。

三、实验程序清单

CODE SEGMENT ;RAM.ASM

ASSUMECS:CODE

PAEQU0FF20H ;字位口

PBEQU0FF21H ;字形口

PCEQU0FF22H ;键入口

ORG1850h

START:JMPSTART0

BUFDB?,?,?,?,?,?

data1:

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

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

START0:MOVAX,0H

MOVDS,AX

MOVBX,4000H

MOVAX,55AAH

MOVCX,0200H

RAMW1: MOVDS:[BX],AX

ADDBX,0002H

LOOPRAMW1

MOVAX,4000H

MOVSI,AX

MOVAX,5000H

MOVDI,AX

MOVCX,0400H

CLD

REPMOVSB

callbuf1

movcx,0ffh

con1:pushcx

calldisp

popcx

loopcon1

callbuf2

con2:calldisp

jmpcon2

DISP:MOVAL,0FFH ;00H

MOVDX,PA

OUTDX,AL

MOVCL,0DFH ;20H;显示子程序,5ms

MOVBX,OFFSETBUF

DIS1: MOVAL,[BX]

MOVAH,00H

PUSHBX

MOVBX,OFFSETDATA1

ADDBX,AX

MOVAL,[BX]

POPBX

MOVDX,PB

OUTDX,AL

MOVAL,CL

MOVDX,PA

OUTDX,AL

PUSHCX

DIS2: MOVCX,00A0H

LOOP$

POPCX

CMPCL,0FEH ;01H

JZLX1

INCBX

RORCL,1 ;SHRCL,1

JMPDIS1

LX1: MOVAL,0FFH

MOVDX,PB

OUTDX,AL

RET

BUF1: MOVBUF,06H

MOVBUF+1,02H

MOVBUF+2,02H

MOVBUF+3,05H

MOVBUF+4,06H

MOVBUF+5,17H

RET

BUF2: MOVBUF,17H

MOVBUF+1,17H

MOVBUF+2,09H

MOVBUF+3,00H

MOVBUF+4,00H

MOVBUF+5,0dH

RET

CODEENDS

ENDSTART

四、实验总结

通过该实验让我们了解了如何对存储器进行读写,写入存储器后,如何通过机器检查存储单元内的内容,通过该实验让我对计算机的存储器有了更进一步的认识。

实验二8259单级中断控制器实验

一、实验内容

利用8259实现对外部中断的响应和处理,要求程序对每次中断进行计数,并将计数结果送数码显示。

二、实验步骤

1、按实验原理图连好实验线路图。

⑴8259的INT连8088的INTR;⑵8259的INTA连8088的INTA;⑶“”插孔和8259的3号中断IR7插孔相连,“”端初始为低电平;⑷8259的CS端接FF80H孔。

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

三、程序清单

CODE SEGMENT ;

ASSUME CS: CODE

INTPORT1EQU0FF80H

INTPORT2EQU0FF81H

INTQ3 EQUINTREEUP3

INTQ7 EQUINTREEUP7

PAEQU0FF20H ;字位口

PBEQU0FF21H ;字形口

PCEQU0FF22H ;键入口

ORG12D0H

START: JMPSTART0

BUF DB?,?,?,?,?,?

intcnt db?

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

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

START0: CLD

CALLBUF1

CALLWRINTVER ;WRITEINTRRUPT

MOVAL,13H

MOVDX,INTPORT1

OUTDX,AL

MOVAL,08H

MOVDX,INTPORT2

OUTDX,AL

MOVAL,09H

OUTDX,AL

MOVAL,0DFH

OUTDX,AL

MOVintcnt,01H ;TIME=1

STI

WATING: CALLDISP ;DISP8259-1

JMPWATING

WRINTVER: MOVAX,0H

MOVES,AX

MOVDI,0034H

LEAAX,INTQ3

STOSW

MOVAX,0000h

STOSW

MOVDI,003CH

LEAAX,INTQ7

STOSW

MOVAX,0000h

STOSW

RET

INTREEUP3: CLI

pushax

pushbx

pushcx

pushdx

MOVAL,INTCNT

CALLCONVERS

MOVBX,OFFSETBUF ;077BH

MOVAL,10H

MOVCX,05H

INTRE0: MOV[BX],AL

INCBX

LOOPINTRE0

MOVAL,20H

MOVDX,INTPORT1

OUTDX,AL

ADDINTCNT,01H

CMPINTCNT,06H

JNAINTRE2

CALLBUF2 ;DISP:good

INTRE1: CALLDISP

JMPINTRE1

CONVERS: ANDAL,0FH

MOVBX,offsetbuf ;077AH

MOV[BX+5],AL

RET

INTRE2: MOVAL,20H

MOVDX,INTPORT1

OUTDX,AL

popdx

popcx

popbx

popax

STI

IRET

INTREEUP7: CLI

MOVAL,20H

MOVDX,INTPORT1

OUTDX,AL

callbuf3 ;disp:err

INTRE3: CALLDISP

JMPINTRE3

DISP: MOVAL,0FFH ;00H

MOVDX,PA

OUTDX,AL

MOVCL,0DFH ;20H;显示子程序,5ms

MOVBX,OFFSETBUF

DIS1: MOVAL,[BX]

MOVAH,00H

PUSHBX

MOVBX,OFFSETDATA1

ADDBX,AX

MOVAL,[BX]

POPBX

MOVDX,PB

OUTDX,AL

MOVAL,CL

MOVDX,PA

OUTDX,AL

PUSHCX

DIS2: MOVCX,00A0H

LOOP$

POPCX

CMPCL,0FEH ;01H

JZLX1

INCBX

RORCL,1 ;SHRCL,1

JMPDIS1

LX1: MOVAL,0FFH

MOVDX,PB

OUTDX,AL

RET

CODEENDS

ENDSTART

四、实验小结

通过8259单级中断控制器实验,让我对8259中断控制器的接口方法和8259中断控制器的应用编程有了一定的了解。

实验三8255A并行口实验

一、实验内容

用8255做输出口,控制十二个发光管亮灭,模拟交通灯管理。

二、实验步骤

⒈ 在系统显示监控提示符“P.”时,按SCAL键。

⒉ 按实验原理图连好实验线路

8255A:PB4-PB7对应红灯,PC0-PC3对应绿灯,PC4-PC7对应黄灯

⒊ 在“P.”态时,输入11E0后,按EXEC键;系统显示执行符“┌”,同时Ll-Ll5发光二极管模拟交通灯显示。

三、实验程序清单

CODE SEGMENT ;H8255-2.ASM

ASSUME CS:CODE

IOCONPTEQU0FF2BH

IOAPT EQU0FF28H

IOBPT EQU0FF29H

IOCPT EQU0FF2AH

ORG11e0H

START: MOVAL,82H

MOVDX,IOCONPT

OUTDX,AL

MOVDX,IOBPT

INAL,DX

MOVBYTEPTRDS:[0601H],AL

MOVDX,IOCONPT

MOVAL,80H

OUTDX,AL

MOVDX,IOBPT

MOVAL,DS:[0601H]

ORAL,0F0H

OUTDX,AL

MOVDX,IOCPT

MOVAL,0F0H

OUTDX,AL

CALLDELAY1

IOLED0: MOVAL

MOVDX,IOCPT

OUTDX,AL

CALLDELAY1

CALLDELAY1

ORAL,0F0H

OUTDX,AL

MOVCX,8H

IOLED1: MOVDX,IOBPT

MOVAL,DS:[0601H]

ANDAL

OUTDX,AL

CALLDELAY2

ORAL

OUTDX,AL

CALLDELAY2

LOOPIOLED1

MOVDX,IOCPT

MOVAL,0F0H

OUTDX,AL

CALLDELAY2

MOVAL

OUTDX,AL

CALLDELAY1

CALLDELAY1

ORAL,0F0H

OUTDX,AL

MOVCX,8H

IOLED2: MOVDX,IOBPT

MOVAL,DS:[0601H]

ANDAL

OUTDX,AL

CALLDELAY2

ORAL

OUTDX,AL

CALLDELAY2

LOOPIOLED2

MOVDX,IOCPT

MOVAL,0F0H

OUTDX,AL

CALLDELAY2

JMPIOLED0

DELAY1: PUSHAX

PUSHCX

MOVCX,0030H

DELY2: CALLDELAY2

LOOPDELY2

POPCX

POPAX

RET

DELAY2: PUSHCX

MOVCX,8000H

DELA1: LOOPDELA1

POPCX

RET

CODEENDS

ENDSTART

四、实验小结

通过该实验,让我掌握了如何通过8255控制发光二级管,以及发光二级管的工作原理。

实验四8250串口实验

一、实验内容

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

二、实验步骤

1.用扁平线连JX0(BUS)到JX3(D0~D7),连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

PAEQU 0FF20H ;字位口

PBEQU 0FF21H ;字形口

PCEQU 0FF22H ;键入口

ORG29A0H

START: JMPSTART0

BUF DB?,?,?,?,?,?

data1:

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

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

START0: MOVAL,80H ;DLAB=1

MOVDX,LINE

OUTDX,AL

MOVAL,0cH ;BTS=9600

MOVDX,DATA ;ff80H

OUTDX,AL

MOVDX,MSB

MOVAL,00

OUTDX,AL

;

MOVAL,06H 7-BIT,2-STOP

MOVDX,LINE

OUTDX,AL

;

MOVAL,00 ;NO-INT

MOVDX,MSB ;8001H

OUTDX,AL

MOVAH,10H

MOVBX,4000H

MAIN: CALLTXD

CALLRCV

MOV[BX],AL

INCBX

INCAH

CMPAH,00H

JNZMAIN

CALLBUF1

MOVCX,00FFH

S3: PUSHCX

CALLDISP

POPCX

LOOPS3

CALLBUF3

S1: CALLDISP

JMPS1

TXD: MOVDX,LSTAT

WAIT1: INAL,DX

TESTAL,20H

JZWAIT1

MOVAL,AH

MOVDX,DATA

OUTDX,AL

RET

RCV: MOVDX,LSTAT

WAIT2: INAL,DX

TESTAL,01H

JZWAIT2

TESTAL,0EH

JNZERR

MOVDX,DATA

INAL,DX

RET

ERR: CALLBUF2

S2: CALLDISP

JMPS2

;

DISP: MOVAL,0FFH ;00H

MOVDX,PA

OUTDX,AL

MOVCL,0DFH ;20H;显示子程序,5ms

MOVBX,OFFSETBUF

DIS1: MOVAL,[BX]

MOVAH,00H

PUSHBX

MOVBX,OFFSETDATA1

ADDBX,AX

MOVAL,[BX]

POPBX

MOVDX,PB

OUTDX,AL

MOVAL,CL

MOVDX,PA

OUTDX,AL

PUSHCX

DIS2: MOVCX,00A0H

DELAY: LOOPDELAY

POPCX

CMPCL,0FEH ;01H

JZLX1

INCBX

RORCL,1 ;SHRCL,1

JMPDIS1

LX1: MOVAL,0FFH

MOVDX,PB

OUTDX,AL

RET

CODEENDS

ENDSTART

四、实验小结

通过该实验让我对系统扩展以8250为核心的可编程串行异步通讯接口芯片有了一定了了解,实现了对扩展的串行通讯接口实现自发自收。该实验让我对8250有了更深一步的认识。

实验五A/D转换实验

一、实验内容

利用实验系统上电位器提供的可调电压作为0809模拟信号的输入,编制程序,将模拟量转换为数字量,通过数码管显示出来。

二、实验步骤

①将0809CS4插孔连到译码输出FF80H插孔。

②将通道0模拟量输入端IN0连电位器W1的中心插头AOUT1(0-5V)插孔,8MHZ→T。

③运行实验程序,系统上显示“0809XX”。“XX”表示输入模拟量转换后的数字量。

④调节电位器Wl,显示器上会不断显示新的转换结果。

模拟量和数字量对应关系的典型值为:

0V→00H +2.5V→80H +5V→FFH

⑤按RST键退出。

三、实验程序清单

CODE SEGMENT ;

ASSUME CS:CODE

ADPORTEQU0FF80h

PAEQU0FF20H ;字位口

PBEQU0FF21H ;字形口

PCEQU0FF22H ;键入口

ORG1000H

START: JMPSTART0

BUF DB?,?,?,?,?,?

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

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

START0: CALLBUF1

ADCON: MOVAX,00

MOVDX,ADPORT

OUTDX,AL

MOVCX,0500H

;DELAY: LOOPDELAY

MOVDX,ADPORT

INAL,DX

CALLCONVERS

CALLDISP

JMPADCON

CONVERS: MOVAH,AL

ANDAL,0FH

MOVBX,OFFSETBUF

MOV[BX+5],AL

MOVAL,AH

ANDAL,0F0H

MOVCL,04H

SHRAL,CL

MOV[BX+4],AL

RET

DISP: MOVAL,0FFH

MOVDX,PA

OUTDX,AL

MOVCL,0DFH

MOVBX,OFFSETBUF

DIS1: MOVAL,[BX]

MOVAH,00H

PUSHBX

MOVBX,OFFSETDATA1

ADDBX,AX

MOVAL,[BX]

POPBX

MOVDX,PB

OUTDX,AL

MOVAL,CL

MOVDX,PA

OUTDX,AL

PUSHCX

DIS2: MOVCX,00A0H

LOOP$

POPCX

CMPCL,0FEH

JZLX1

INCBX

RORCL,1

JMPDIS1

LX1: MOVAL,0FFH

MOVDX,PB

OUTDX,AL

RET

BUF1: MOVBUF,00H

MOVBUF+1,08H

MOVBUF+2,00H

MOVBUF+3,09H

MOVBUF+4,00H

MOVBUF+5,00H

RET

CODEENDS

ENDSTART

  • 下载文档
  • 收藏
  • 0