查看文章 |
1.8253芯片:(1).有如下接口原理图,如图一所示。要求发光二极管L0亮4秒后就熄灭;L1在K1启动后亮3秒后就熄灭;L2亮1秒熄灭1秒交替进行。写出源程序片段(段定义语句可以省略)。 由译码电路分析可知,8253芯片计数器1、计数器2、计数器3及控制端口的地址分别为90H,92H,94H,96H。根据接口图及题目要求,8253的计数器0应该工作在方式0,计数初值N0=8000;计数器1应工作在方式1,N1=6000;计数器2应工作在方式3,N2=4000。 根据以上分析,可以编写出8253初始化程序。 8253初始化程序片段如下: ;初始化计数器0 MOV AL,21H OUT 96H,AL MOV AL,80H OUT 90H,AL ;初始化计数器1 MOV AL,63H OUT 96H,AL MOV AL,60H OUT 92H,AL ;初始化计数器2 MOV AL, OUT 96H,AL MOV AL,40H OUT 94H,AL (2).有如下接口原理图,如图一所示。要求发光二极管L0在K1启动后亮20秒后就熄灭;L1亮4秒熄灭4秒交替进行。要求:1、写出8253的端口地址(3分);2、写出每个计数器的计数初值(3分);3、写出每个计数器的工作方式(3分);4、写出8253初始化程序(6分)。 1、8253地址分别为9CH、9DH、9EH、9FH 2、N0=20000;N1*N2=8000000 3、0#方式1,1#方式2,2#方式3 4、MOV AL ,00110010B OUT 9FH,AL MOV AL,20H OUT 9CH,AL MOV AL,4EH OUT 9CHH,AL
MOV AL,01100101B OUT 9FH,AL MOV AL,20H OUT 9DH,AL
MOV AL,10100111B OUT 9FH,AL MOV AL ,40H OUT 9EH,AL 2.8255芯片:(1).方式0下工作:有如下接口原理图,如图二所示。设:8255AA口地址为80H,B口地址为81H,C口地址为82H,控制端口地址为83H。输入机启动信号为高电平,打印机启动信号为正脉冲,Ready为输入机就绪信号;BUSY为打印机"忙"信号。要求编写出从输入机连续输入30个数据并存入存储器中,再由打印机打出该30个数据的简化汇编源程序。 解 .MODEL SMALL .DATA BLOCK DB 30 DUP(?) .CODE .STARTUP MOV AL,10010001B OUT 83H,AL MOV CX,30 LEA BX,BLOCK X:MOV AL,00001101B OUT 83H,AL W1:IN AL,82H TEST AL,02H JZ W1 IN AL,80H MOV [BX],AL INC BX MOV AL,00001100B OUT 83H,AL LOOP X MOV CX,30 LEA BX,BLOCK W2:IN AL,82H TEST AL,01H JNZ W2 MOV AL,[BX] OUT 81H,AL INC BX MOV AL,00001111B OUT 83H,AL MOV AL,00001110B OUT 83H,AL LOOP W2 .EXIT END (2).方式1下工作:有如下接口原理图,如图二所示。设:8255A的A口地址为70H,B口地址为71H,C口地址为72H,控制端口地址为73H。要求编写出从输入机连续输入30个数据并存入以BUFF1开始的存储器单元中,再由打印机打出该30个数据的汇编源程序。 BUFF1 DB 30 DUP(?) MOV OUT 73H, AL MOV DI, OFFSET BUFF1 MOV CX,30 LOP1: IN AL,72H TEST JZ LOP1 IN AL ,70H MOV [DI].AL INC DI MOV DI, OFFSET BUFF1 MOV CX,30 LOP2: MOV AL,[DI] OUT 71H,AL LOP3: IN AL,72H TEST JZ LOP3 INC DI .EXIT END
|