微机原理实验报告.docx
《微机原理实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理实验报告.docx(18页珍藏版)》请在冰豆网上搜索。
微机原理实验报告
微机原理与接口技术
实验指导书
班级
学号099074
工业大学计算机学院
实验一存贮器读写实验
一、实验容
对指定地址区间的RAM(4000H~4FFH)先进行写数据55AAH,然后将其容读出再写到5000H~5FFH中。
二、实验步骤
l、将实验系统与PC机连接;
2、在PC机上启功DJ-8086k软件,实验系统进入联机状态;
3、在DJ-8086k软件环境下编辑、调试程序,将程序调试、编译通过;
4、运行程序。
5、稍后按RST键退出,用存贮器读方法检查4000H~43FFH中的容和5000~53FFH中的容应都是55AA。
三、实验程序清单
CODESEGMENT;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。
三、程序清单
CODESEGMENT;
ASSUMECS:
CODE
INTPORT1EQU0FF80H
INTPORT2EQU0FF81H
INTQ3EQUINTREEUP3
INTQ7EQUINTREEUP7
PAEQU0FF20H;字位口
PBEQU0FF21H;字形口
PCEQU0FF22H;键入口
ORG12D0H
START:
JMPSTART0
BUFDB?
?
?
?
?
?
intcntdb?
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发光二极管模拟交通灯显示。
三、实验程序清单
CODESEGMENT;H8255-2.ASM
ASSUMECS:
CODE
IOCONPTEQU0FF2BH
IOAPTEQU0FF28H
IOBPTEQU0FF29H
IOCPTEQU0FF2AH
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,10100101B
MOVDX,IOCPT
OUTDX,AL
CALLDELAY1
CALLDELAY1
ORAL,0F0H
OUTDX,AL
MOVCX,8H
IOLED1:
MOVDX,IOBPT
MOVAL,DS:
[0601H]
ANDAL,10101111B
OUTDX,AL
CALLDELAY2
ORAL,01010000B
OUTDX,AL
CALLDELAY2
LOOPIOLED1
MOVDX,IOCPT
MOVAL,0F0H
OUTDX,AL
CALLDELAY2
MOVAL,01011010B
OUTDX,AL
CALLDELAY1
CALLDELAY1
ORAL,0F0H
OUTDX,AL
MOVCX,8H
IOLED2:
MOVDX,IOBPT
MOVAL,DS:
[0601H]
ANDAL,01011111B
OUTDX,AL
CALLDELAY2
ORAL,10100000B
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,验证其正确性。
三、实验程序清单
CODESEGMENT;H8250.ASM
ASSUMECS:
CODE;H8250.ASM
DATAEQU0ff80H;BTS-LSB
MSBEQU0ff81H
LINEEQU0ff83H
LSTATEQU0ff85H
PAEQU0FF20H;字位口
PBEQU0FF21H;字形口
PCEQU0FF22H;键入口
ORG29A0H
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:
MOVAL,80H;DLAB=1
MOVDX,LINE
OUTDX,AL
MOVAL,0cH;BTS=9600
MOVDX,DATA;ff80H
OUTDX,AL
MOVDX,MSB
MOVAL,00
OUTDX,AL
;-----------------------------------------------------
MOVAL,06H7-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键退出。
三、实验程序清单
CODESEGMENT;
ASSUMECS:
CODE
ADPORTEQU0FF80h
PAEQU0FF20H;字位口
PBEQU0FF21H;字形口
PCEQU0FF22H;键入口
ORG1000H
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:
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