微机原理与接口技术之8255A和8253/8254 必考的编程题

在这里插入图片描述
关注公众号,回复“微机编程题”,免费获取文件版资源,方便打印,方便随时阅读。

可编程并行通信接口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


在这里插入图片描述
关注公众号,回复“微机编程题”,免费获取文件版资源,方便打印,方便随时阅读。

微机原理1.1 进制转换及计算 1.2 码元及转换 习题 第2章 微机硬件基础 2.1 计算机系统概述 2.2 微机发展概况 2.3 8086/88 CPU的编程结构 2.4 内存地址组织及存放次序 2.5 接口、端口、端口地址 习题 第3章 寻址方式及指令系统 3.1 基本概念 3.2 寻址方式 3.3 指令系统 3.4 常用DOS系统功能调用BIOS中断调用 习题 第4章 MASM汇编语言 4.1 汇编语句格式 4.2 表达式 4.3 伪指令 4.4 完整汇编源程序的上机过程 习题 第5章 汇编程序设计 5.1 程序结构 5.2 顺序程序设计 5.3 分支程序设计 5.4 循环程序设计 5.5 子程序设计 5.6 综合应用举例 习题第二部分 微机原理 第6章 Intel 8086/88微处理器 6.1 8086/88 CPU的内部结构 6.2 8086/88引脚及其功能 6.3 8086/88 CPU子系统的基本配置 6.4 总线工作时序 习题 第7章 内存组成、原理接口 7.1 微机存储系统概述 7.2 半导体存储器结构原理 7.3 典型的半导体存储器芯片 7.4 内存组成及其系统总线的连接 7.5 PC系列微机的内存组织 习题 第8章 输入输出(I/O)系统 8.1 接口技术概述 8.2 I/O端口读写技术 8.3 I/O设备数据传送控制方式 8.4 简单的输入/输出接口芯片 习题 第9章 中断技术 9.1 中断的基本原理 9.2 8086/88的中断系统 9.3 可编程中断控制器8259A(PIC) 9.4 8259A在微机系统中的应用 9.5 中断接口技术 习题第三部分 接口技术10章 可编程接口芯片及其应用 10.1 可编程并行接口芯片8255A 10.2 可编程的定时/计数器芯片8253 10.3 可编程串行接口芯片Intel 8251A 10.4 数据采集系统接口技术 10.5 可编程接口芯片的综合应用 习题 第11章 总线技术 11.1 概述 11.2 系统总线概述 11.3 ISA总线 11.4 EISAVESA总线 11.5 PCI总线 11.6 第三代总线3GIO介绍 11.7 AGP总线 11.8 AMR、CNR、ACR总线 11.9 IEEE-488总线 习题 第12章 键盘接口 12.1 概述 12.2 非编码键盘接口及其控制 12.3 IBM PC的键盘接口 习题 第13章 显示接口 13.1 LED显示器件及其接口 13.2 液晶显示器(LCD)及其接口 13.3 CRT显示器及其接口 习题 第14章 打印机及并口通信技术 14.1 打印机的主要类型工作原理 14.2 打印机并行接口 14.3 并行打钱机适配器 14.4 并行打印机接口转换成GPIB-488接口 习题 第15章 串行通信技术 15.1 概述 15.2 RS-232串行接口技术 15.3 USB接口技术 习题第四部分 微机技术新发展及附录 第16章 微机最新发展概述 16.1 微处理器 16.2 主板芯片16.3 内存 16.4 显卡附录A DOS功能调用附录B BIOS中断附录C 汇编错误信息中英文对照表附录D DEBUG命令格式附录E 标准ASCII码表附录F CMOS参数特征附录G P4相对8086/88新增指令系统参考文献作者介绍 进行详细习题讲解
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值