logo资料库

微机原理与接口技术之8255A和8253_8254 必须掌握的编程题.pdf

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
可编程并行通信接口8255A
计数器与定时器8253/5254的应用举例
可编程并行通信接口8255A 1.如下图所示:现将8255A的B口作为传送字符的通道,工作于方式0,输出方式,A端口未用,端口C也 工作于方式0,PC0作为BUSY信号的输入端,PC7作为STB信号输出端,负脉冲时外设才能接收一个数 据。设8255A的端口地址为: C0H-C6H,试对8255A进行初始化编程,并写出通过查询方式把CL中内 容向打印机传送一次数据的程序段。(15分) MOV     AL,     81H                           OUT     0C6H,   AL                             MOV     AL,     00001111B   ;                 OUT     0C6H,   AL                             LPST: IN     AL,     0C4H ;查询                   TEST   AL,     01H ;                         JNZ     LPST                                   MOV     AL,     CL   ;数据                       OUT     0C2H,   AL                             MOV     AL,     00001110B ;启动脉冲           OUT     0C6H,   AL                             INC     AL                                       OUT     0C6H,   AL              
2.CPU通过8255A的B口(采用简单I/O工作方式)向打印机传送100个字符,这些字符在内存中的起始 地址为0100:1000H,共100个字节。8255A的端口地址为400~403H,连接示意图如图所示: mov dx, 403H               (1分) mov al, 10000001b(或者81h)   (1分) out dx, al ;初始化8255A的方式选择控制字,设定工作模式 mov al, 00001101b(或者0DH)   (1分) out dx, al ;向STB引脚发送高电平 mov ax, 0100H               (0.5分) mov ds, ax mov si, 1000H               (0.5分) mov cx, 100 lp: mov dx,   402H                 (1分) in   al, dx ;读取PC3的状态 and al, 08H               (1分) jnz lp     ;如果PC3为高电平,表示打印机还未处理完毕,需等待 mov dx, 401H               (1分) mov al, [si] out dx, al ;将要打印的字符内容通过B口输出至打印机 mov dx, 403H               (1分) mov al, 00001100b(或者0CH) (1分) out dx, al           nop nop mov al, 00001101b(或者0DH)   (1分) out dx, al ;在PC6上发出一个负脉冲后,然后回到高电平状态 inc si dec cx jnz lp 计数器与定时器8253/5254的应用举例
1.设8253的端口地址为60H~63H。要求通道0工作在方式3,计数初值0166H。试编制初始化程序。 (5分) MOV AL,00110110B ;36H OUT 63H,AL                         MOV AL,66H     ;初值 OUT 60H,,AL MOV AL,01H OUT   60H,AL 2.设8253端口地址为340H~343H,CLK0、CLK1的时钟频率均为2MHz,要求OUT0每20ms向CPU发 出一中断请求信号,OUT1输出频率为1000Hz的方波,请编写初始化程序。 (10分) MOV DX,343H MOV AL,00110000B ;30H OUT DX,AL                         MOV DX,340H MOV AX,40000   ;初值 OUT DX,AL MOV AL,AH OUT DX,AL                       MOV DX,343H MOV AL,01110110B ;76H OUT DX,AL                       MOV DX,341H MOV AL,2000     ;初值 OUT DX,AL MOV AL,AH OUT DX,AL            
3.计数器/定时器8253,振荡器(频率为1MHZ)连线如下图所示,其中振荡器的脉冲输出端接通道0的 计数输入端CLK0,设8253的端口地址为180H~186H。 请完成以下任务: (1)该电路中通道0的OUT0输出2KHZ连续方波,通道0的计数初值为多少(写出计算式)?GATE0应 接何电位?在图上画出。 (2)若要8253的OUT1端,能产生周期为1秒的连续方波,该如何解决?在图上画出。 (3)写出实现上述功能的8253初始化程序。 (1)N0=1MHZ/2KHZ=500,GATE0接高电平,+5V;           2分 (2)可将OUT0与CLK1相连,作为输入时钟脉冲;           3分 (3)N1=2KHZ/2HZ=1000                                   2分 计数器0:MOV DX,186H     MOV AL,00110111B                             2分     OUT DX,AL     MOV DX,180H     MOV AL,00H                                   1分     OUT DX,AL     MOV AL,05H     OUT DX,AL                                     1分 计数器1:MOV DX,186H MOV AL,01110111B                             2分 OUT DX,AL MOV DX,182H MOV AL,00H                                   1分 OUT DX,AL MOV AL,10H OUT DX,AL                                     1分 4.设8253的选通地址为240H~243H,采用BCD计数,计数器2输出用于申请中断。如果计数器2的输 入时钟频率为20KHz,输出信号每秒引起100次中断。要求 (1) 算出计数初值,(2) 编写初始化程序。(20 分) (1) 初值为20KHZ/100=200或C8H (2) 编程: MOV DX,243H MOV AL,10110001B(或B1H) OUT DX,AL ; MOV DX,242H MOV AL,8CH OUT DX,AL ; MOV AL,00H (该句也可以为:XOR AL,AL) OUT DX,AL ;
5.已知芯片8253的端口地址为4F0H~4F3H,设计数器1工作在方式1,计数器初值为3060H,采用二进 制计数,请设计实现上述功能的8253初始化程序。 因为计数器初值为3060H,即为16位的,所以读/写格式为11 因此控制字为:01110010 =72 控制字: MOV AL, 72H OUT 4F3H, AL 低8位: MOV AL, 60H OUT 4F1H, AL 高8位: MOV AL, 30H OUT 4F1H, AL  
分享到:
收藏