微机原理 实验报告十一月整理(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