当前位置:文档之家› Protues8255实验报告Word版

Protues8255实验报告Word版

华北电力大学实验报告||实验名称8255应用实验课程名称微机原理及应用老师| 专业班级姓名学号一.实验要求1、当K0为高电平时,LED由高到低循环亮灭;当K0为低电平时,LED由低到高循环亮灭;当K1为高电平时,LED全灭且程序结束(扩展:当K1为高电平时,LED全灭但程序不结束,等K1再次为低电平时灯又开始循环)。

2、在8259的IR2端输入中断请求信号,该信号由8253的方波信号产生(频率1Hz)。

每来一个上升沿,申请中断一次,CPU响应后通过8255 PA口使发光二极管亮,第1次中断,LED0亮,第2次中断,LED1亮,……第8次中断,LED7亮,中断8次后结束。

3、在8259的IR2端输入中断请求信号,该信号由8253的方波信号产生(频率1Hz)。

每来一个上升沿,申请中断一次,CPU响应后通过8255 PA口使7段数码管亮,第1次中断,显示0,第2次中断,显示1,…… 第10次中断,显示9,程序结束。

【8255的片选地址为8000H,8259的片选地址为9000H,8253的片选地址为A000H】二思路1.硬件(1)74HC138译码电路如图所示,A15为1,E2、E3接地保证74HC138正常工作,此时Y0、Y1、Y2对应地址分别为8000H、9000H、0A000H. 此芯片实验1.2.3都需用到(2)8259的片选地址为9000H,所以CS接Y18086有16位数据总线,其低8位作为偶存储体来传输数据,8086的A0要一直为0,所以8259的A0要接8086的A1IR2端输入中断请求信号,该信号由8253的方波信号产生(频率1Hz),所以8259的IR2端与8253的OUT1端相连。

此芯片实验2,3要用到(3)8253的片选地址为A000H,所以CS接Y2。

CLK0接入1MHz信号,GATE0与GATE1同时接电源,OUT0输入到CLK1,OUT1经分频输出1HZ的信号。

此芯片实验2,3要用到(4)对于实验1,8255的连接如下图8255的片选地址为8000H,所以CS接Y0。

端口A中的两个端口接开关,作为输入(开关弹起时为高电平,按下时为低电平);端口B中的全部端口作为输出显示。

(5)对于实验2,8255的连接如下图端口A中的全部端口作为输出显示(6)对于实验3,8255的连接如下图端口A中的全部端口连接一二级数码管,且该数码管为共阴极连接。

二.软件(1)实验1流程图(2)实验2,3流程图(3)8255初始化(实验1.2.3都需要)方式选择控制字,对于实验1:A口方式0输入,B口方式0输出(10010000B=90H)对于实验2,3:A口方式0输出 (10000000B=80H) 程序如下:实验1:MOV DX,8006H ;控制器地址为8006HMOV AL,90H ;A口方式0输入,B口方式0输出(10010000B=90H)OUT DX,AL实验2,3:MOV DX,8006H ;控制器地址为8006HMOV AL,80H ;A口方式0输出(10000000B=80H)OUT DX,AL(4)8253及8259的初始化(实验2,3需要)关于8253及8259的设置与前面的两个实验均相同,其程序如下所示;8253A初始化MOV DX,0A006H ;控制器地址0A006HMOV AL,37H ;计数器0选用工作方式3(方波) OUT DX,AL ;写计数器0工作方式MOV DX,0A000H ;计数器0地址0A000HMOV AL,00H ;计数器0预置值为1000HOUT DX,ALMOV AL,10HOUT DX,ALMOV DX,0A006H ;控制器地址0A006HMOV AL,75H ;计数器1选用工作方式2(分频) OUT DX,AL ;写计数器1工作方式MOV DX,0A002H ;计数器1地址0A002HMOV AL,00H ;计数器1预置值1000HOUT DX,ALMOV AL,10HOUT DX,AL;8259A初始化MOV DX,9000H ;ICW1=13H(0001 0011B) MOV AL,13HOUT DX,ALMOV DX,9002H ;ICW2=80H(1000 0000B) MOV AL,80HOUT DX,ALMOV DX,9002H ;ICW3=01H(0000 0001B) MOV AL,01HOUT DX,AL(5)关于实验1的设置读A口信息,判断K0K1若K1=1,则灯全灭若K0K1=00,则灯由低到高循环亮灭若K0K1=10,则灯由高到低循环亮灭其中还需要两个延时子程序程序如下MOV BL,01HMOV DX,8000H ;A口地址为8000HIN AL,DX ;读A口中的数据AND AL,03H ;AL=AL&00000011BCMP AL,02HJAE MIE ;K1=1转到MIECMP AL,01HJE NEXT1 ;K1K0=01B转HL,K1K0=00B做LHNEXT1:MOV DX,8002H ;B口地址为8002HMOV AL,BLOUT DX,ALCALL DELAY1ROL BL,1JMP NEXT1NEXT2:MOV DX,8002H ;B口地址为8002HMOV AL,BLOUT DX,ALCALL DELAY2ROR BL,1JMP NEXT2MIE:MOV DX,8002H ;B口地址为8002HMOV AL,00H ;LED全灭OUT DX,ALMOV DX,8000H ;A口地址为8000H IN AL,DX ;读A口中的数据AND AL,03H ;AL=AL&00000011BCMP AL,01HJE NEXT2 ;K1K0=01B转到NEXT2 CMP AL,00HJE NEXT1 ;K1K0=00B转到NEXT1 JMP MIE延时子程序如下:DELAY1 PROC NEARMOV CX,0A000HL2: MOV DX,8000H ;A口地址为8000H IN AL,DX ;读A口中的数据AND AL,03H ;AL=AL&00000011BCMP AL,02HJAE MIE ;K1=1转到MIECMP AL,01HJE NEXT2 ;K1K0=01B转到NEXT2LOOP L2RETDELAY1 ENDPDELAY2 PROC NEARMOV CX,0A000HL4: MOV DX,8000H ;A口地址为8000HIN AL,DX ;读A口中的数据AND AL,03H ;AL=AL&00000011BCMP AL,02HJAE MIE ;K1=1转到MIECMP AL,00HJE NEXT1 ;K1K0=00B转到NEXT1LOOP L4RETDELAY2 ENDP(6)关于中断的设置(实验2,3需要)(其中红色字体为实验2和实验3不同的部份)【需注意,对于实验3要编写数据段,为了能直接调用共阴极数码管段码表】程序如下:DATA SEGMENT ;"DATA"逻辑段开始TABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;共阴极数码管段码表[0-9];非规范装入中断向量MOV AX,0MOV DS,AXMOV BX,82H*4MOV AX,OFFSET INTPMOV [BX],AXINC BXINC BXMOV AX,SEG INTPMOV [BX],AXMOV DX,9002H ;允许IRQ2中断IN AL,DXAND AL,0FBHOUT DX,AL;主程序(高电平点灯)MOV DX,8000HMOV AL,00H ;LED灯初始化全灭OUT DX,ALMOV BL,1 ;第一次中断后LED0亮【MOV AX,DATAMOV DS,AXLEA SI,TABLE ;第一次中断的状态:显示'0'】MOV CX,8 ;设置中断次数为8【实验3设置的中断次数为10】STIL1:MOV AL,82H ; Proteus中8086模型有问题,它取得的中断号是最后发到总线上的数据,并不是由8259发出的中断号MOV DX,0B000HOUT DX,AL ;所以造成了要在这里执行EOI 的假相,地址使用没有用过的,如b000h,8259的地址是9000h CMP CX,0JZ QUITJMP L1 ;等待中断QUIT:CLI ;关中断MOV DX,9002H ;禁止IRQ2中断IN AL,DXOR AL,4OUT DX,ALSTI ;开中断MOV CX,0FFFFHL: LOOP L ;为看到第8次中断结束后LED灯亮,需用延时MOV DX,8000HMOV AL,00H ;8次中断结束,LED灯全灭OUT DX,ALJMP $INTP PROC ;中断服务子程序MOV AL,BL [ MOV AL,[SI]]MOV DX,8000HOUT DX,ALROL BL,1 [INC SI]DEC CXMOV DX,9000HMOV AL,20H ;发中断结束命令EOIOUT DX,ALIRET ;中断返回三.运行结果实验1:当K1高电平时,LED灯都不亮。

当K1低电平,K0高电平时,LED灯按如下次序亮当K1为高电平,K0为低电平时,LED灯按如下顺序亮实验2. 第1次中断,LED0亮。

以后每来一个上升沿,LED灯依次亮灭,直到计数到8为止。

最后LED灯全灭。

实验3:第一次中断数码管上显示数字“0”,以后每次中断,数码管上依次显示数字“1”—“9”。

最后数码管全灭说明:实验3在LAB6000的硬件试验箱上连接时,由于没有进行位选,数码管显示是六个数码管全部同时显示从“0”—“9”的变化,然后全部同时灭掉的(注:可编辑下载,若有不当之处,请指正,谢谢!)。

相关主题