微型计算机技术实用知识点编程应用题
本文由发表于6年前 | 硬件知识 | 评论数 1 |  被围观 6,854 views+

1.设8251A为异步方式,1个停止位,偶校验,7个数据位,波特率因子为16,请写出其方式字。若发送使能,接收使能,DTR端输出低电平,TXD端发送空白字符,RTS端输出低电平,内部不复位,出错标志复位,请写出控制字;并编写程序完成其初始化设置。

方式字=01111010B
控制字=00111111B
关于控制字的格式可参考这篇文章:8251A查询法收发数据的通信程序
设端口地址为 40H、42H

MOV  AL,01111010B
OUT  42H,AL
MOV  AL,00111111B
OUT  42H,AL
2.要求计数器0工作于方式3,输出方波的重复频率为2KHZ,计数脉冲输入为2.5MHZ,采用BCD计数,试写出初始化程序段。

8253计数器的计数初值=分频系数=fclk/fout=时钟脉冲/输出频率=(波特率*波特率因子)/输出频率
计算计数初始值 TC=2.5MHz/2KHz=1250
方式控制字为00110111=37H,即计数器0,写16位,方式3,BCD计数。
设8253的端口地址为80H,81H,82H,83H。
则初始化程序段为

MOV AL,37H             ;写入方式控制字
OUT 83H,AL
MOV AL,50H             ;写入计数初始值低8位
OUT 80H,AL
MOV AL,12H             ;写入计数初始值高8位
OUT 80H,AL
3.某系统中8253芯片的通道0~2和控制端口地址分别为FFF0H~FFF3H。定义通道0工作在方式2,CLK0=2MHz,要求输出OUT0为1kHz的速率波;定义通道l工作在方式0,其CLKl输入外部计数事件,每计满100个向CPU发出中断请求。试写出8253通道1,0和通道1的初始化程序。

通道0的计数值为:2MHz/1kHz = 2000
8253初始化程序如下:

MOV	AL,00110100B     ;计数器0,先读/写低8位,再读/写高8位,模式2,二进制
MOV	DX,0FFF3H
OUT	DX,AL
MOV	AX,2000
MOV	DX,0FFFOH
OUT	DX,AL
MOV	AL,AH
OUT	DX,AL
MOV	DX,0FFF3H
MOV	AL,01110000B        ;计数器1,先读/写低8位,再读/写高8位,模式0,二进制
OUT	DX,AL
MOV     DX,0FFF1H
MOV	AX,100
OUT	DX,AL
MOV	AL,AH
OUT	DX,AL
4.让8253计数器0用1ms脉冲信号源作CLK0,且工作在方式3定时1分钟,用8255的PC6提供GATE0,在定时期间,由PC7控制的灯亮(PC7=1,亮),对OUT0的检测通过PC0进行,定时结束灯灭,先画出脉冲信号源、8253、8255的连接关系图,再编写程序段(8253,8255的端口地址为60H~63H,40H~43H)。
8253-8255

8253-8255

MOV	AL,81H		;8255方式字
	OUT	43H,AL
        MOV     AL,00001101B   ;将PC6置位
        OUT     43H,AL
        MOV     AL,00001111B   ;将PC7置位
        OUT     43H,AL
	MOV	AL,00110110B		;8253计数器0初始化
	OUT	63H,AL
	MOV	AX,60000
	OUT	60H,AL
	MOV	AL,AH
	OUT	60H,AL
        MOV     AL,00001110B    ;将PC7复位
        OUT     43H,AL

 

	MOV	AL,0DH		;GATE0 = 1
	OUT	43H,AL
	MOV	AL,OFH		;灯亮
	OUT     43H,AL
LOP1:
	IN	AL,62H		;等待半分高电平结束
	SHR	AL,1
	JNC	LOP1
LOP2:
	IN	AL,42H		;等待半分低电平结束
	SHR	AL,1
	JNC	LOP2
	MOV	AL,0EH		;灯灭
	OUT	43H,AL
	HLT
5.试用8253-5计数器1输出一个1ms的连续脉冲,启动某一数字系统。
设:(1)CLK1为5MHZ
(2)端口地址为208H~20BH
(3)工作方式选择方式4,BCD计数
要求设计有关初始化程序。

初始值 Tc=5MkHz/1000Hz=5000
控制字:0111 1001
控制口的地址为20BH 计时器1的地址是209H

MOV DX,20BH
MOV AL,01111001B
OUT DX,AL
MOV DX,209H
MOV AX,5000H
OUT DX,AL
MOV AL,AH
OUT DX,AL
6.在8255A中,一个采用查询传送的输入接口由两个端口组成,一个是数据端口,地址为120H,一个是状态端口,地址为121H,用D7位表示就绪位,外设工作时,已启动外设。利用上述接口电路从输入设备上输入1000个字节的数据送存储器中BUFFER缓冲区,编写控制程序段。
LEA SI , BUFFER
MOV CX , 1000    ;1000个字节
LOP:  MOV DX , 121H
LOP1: IN AL,DX     ;从数据口读入数据
      SHL AL,1
      JNC LOP1
      DEC DX
IN  AL,DX
MOV [SI],AL
INC SI
LOOP LOP
HLT
7.某8086系统中使用8237完成从存储器到外设端口的数据传送任务,若已知通道0的地址寄存器、字节计数器、方式寄存器端口地址分别为EEE0H,EEE1H和EEE8H,要求通过通道0将存储器中偏移地址为1000H~10FFH的内容传送到显示器输出,试编写初始化程序。
MOV	DX,0EEEDH
	OUT DX,AL
	MOV DX,0EEEBH
	MOV AL,68H
	OUT DX,AL
	MOV DX,0EEECH
	OUT DX,AL
	MOV DX,0EEE0H
	MOV AX,1000H
	OUT DX,AL
	MOV AL,AH
	OUT DX,AL
	MOV DX,0EEECH
	OUT DX,AL
	MOV DX,0EEE1H
	MOV AL,0FFH
        OUT DX,AL
        XOR AL,AL
        OUT DX,AL
        MOV DX,0EEE8H
        MOV AL,0C0H
        OUT DX,AL
8.8251A工作于异步方式,波特率为1200b/s,收发时钟 = ,频率为76.8KHz,异步字符格式为:数据位7位,采用偶校验,两位终止位,CPU从8251A读入100个字符,存入变量INARY,8251A的端口地址为80H与81H。试对其进行初始化编程和数据输入程序段。


程序分为两部分:

(1)初始化——写方式指令字,命令指令字。
(2)读入数据——按传输数据流程编写。

计算波特率因子:

K=76.8K/1200=64

方式指令字设置:

S2 S1 EP PEN L2 L1 B2 B1

1              1              1              1            1              0             1             1
2位终止位   偶校 用奇偶校  字符7位   波特率因子64
方式指令字用FBH。


命令指令字设置:

EH IR RTS ER SBRE RXE DTR TXEN

0                0            1          1               0             1            0            1
不搜索同 内部  RTS(低电平)  复位出 正常  允许  DTR(低电平)  允许
步字符 不复位 有效    错标志 工作  接收  无效      发送
命令指令字为35H。

初始化程序及数据输入程序如下:

  MOV   AL,OFBH   ;写方式指令字
  OUT    81H,AL
  MOV   AL,35H   ;写命令指令字
  OUT   81H,AL
  MOV   BX,0
  MOV   CX,100
  POLL:   IN   AL,8lH
           TEST AL,02H
           JZ   POLL   ;等待输入
           IN   AL,80H            ;输入
           MOV  INARY[BX],AL   ;存内存
           INC  BX
  IN    AL,8lH
  TESI  AL,38H          ;检测出错标志
        JNZ  ERROR   ;出错,转出错处理
        POLL
9.设计一个采用异步通信方式输出字符的程序,波特率因子为64,7个数据位位,1个停止位,偶校验,端口地址为40H,42H,缓冲区为2000H~3000H。

模式字为:01111011B=7BH。控制字为:00110101B=35H。

MOV      AL,0                   ;为发复位命令作准备
OUT      42H,AL
OUT      42H,AL
OUT      42H,AL
MOV      AL,40H        ; 发复位命令
OUT      42H,AL
MOV      AL,7BH              ;设置模式字,异步方式,规定波特率因子为64
                              ;7个数据位,1个停止位,偶校验
OUT      42H,AL
MOV      AL,35H        ;设置控制字,使发送器和接收器启动,并清除
                        ;出错标志
OUT      42H,AL
PUSH     DS
MOV      BX,2000H           ;DS:BX指向输出缓冲区首址
MOV      DS,BX
MOV      BX,3000H           ;缓冲区指针初始化
MOV      CX,100H            ;发送100H个字节
BEGIN:   IN          AL,42H        ;读取状态字,测试TxRDY是否为1
TEST     AL,01H
JZ       BEGIN                  ;为0表示外设还未取走字符
MOV      AL,[BX]             ;从输出缓冲区取数
OUT      40H,AL        ;发送字符
INC      BX                        ;修改缓冲区指针
LOOP     BEGIN                  ;则再发送下一个字符
POP      DS
                  ┆
10.有一8086中断电路如下图所示,请回答下列问题:
(1)根据图中给出条件,写出五种内部中断1、2、3、4、5的名称;
(2)写出8086三条引脚6、7、8的符号及名称;
(3)写出芯片9的名称,并简述其功能。
8086

8086

(1)①单步中断 ②溢出中断 ③除法中断 ④INT n指令中断 ⑤断点中断
(2)⑥NMI(非屏蔽中断申请信号)
⑦INTR(可屏蔽中断申请信号)
⑧INTA(低电平有效,可屏蔽中断响应信号)

(3)⑨8259A,它是一种可编程的中断控制器,其功能有:

a、可管理8级优先权中断,通过级联最多可管理64级优先权的中断
b、每一个中断源都可以单独屏蔽
c、能向CPU提供可编程的中断类型号
d、多种中断优先权管理方式:完全嵌套方式、自动循环方式、特殊循环方式、特殊屏蔽方式、查询方式
11利用8251A实现与外设串行通信的控制程序如下,其中8251A的控制/状态口地址为2F9H,数据口地址为2F8H,41H为字符A的ASCII码,要求:
(1)阅读此程序,加上适当注释并说明程序实现的功能;
(2)指出CPU与8251A见数据传送的控制方式。
   START: MOV DX,2F9H
  MOV AL,74H
  OUT DX,AL
  MOV AL,11H
  OUT DX,AL
  L1: MOV DX,2F9H
  IN AL,DX
  AND AL,01H
  JZ L1
  MOV DX,2F8H
  MOV AL,41H
  OUT DX,AL
  HLT
12.某微机系统的8253通道2接有一发光二极管,要使发光二极管以点亮1秒,熄灭1秒的间隔工作,其电路如图所示,试编写初始化程序。
8253

8253

除了文章中有特别说明,均为IT宅原创文章,转载请以链接形式注明出处。
本文链接:http://www.itzhai.com/micro-computer-technology-and-practical-application-of-knowledge-point-programming-problems.html
关键字: , , , , , ,
arthinking Java技术交流群:280755654,入门群:428693174 more
分享到:
 
2011 6/30
文章评论
    一条评论
  1. 简亦阳光 2013年06月08日10:03:48  #-49楼 回复 回复

    求帮忙:
    若8251A的收、发时钟的频率为38.4KHz,它的RTS和CTS引脚相连,试完成满足以下要求的初始化程序:(8251A的地址为02C0H和02C1H) 。
    (1)半双工异步通信,每个字符的数据位数是7,停止位为1位,偶校验,波特率为600B/s,发送允许。
    (2)半双工同步通信,每个字符的数据位数是8,无校验,内同步方式,双同步字符,同步字符为16H,接收允许。

给我留言

有人回复时邮件通知我
硬件知识的相关文章
随机文章 本月热门 热评
1 Java基础笔记 – 抽象类与接口 2011/10/26
2 任何不以学习知识为目的的考试都是耍流氓-软件工程导论试题 2011/7/4
3 Strut2中Filter过滤器的编写和注册 2011/9/16
4 JavaScript设计模式笔记 – 享元模式 代理模式 2012/11/21
5 Java基础笔记 – 数组 二维数组 三维数组 Arrays类 2011/10/29
6 ExtJS在树TreePanel之间拖放结点 2011/4/11
友情推荐 更多
破博客 文官洗碗安天下,武将打怪定乾坤。多么美好的年代,思之令人泪落。
Mr.5's Life 白天是一名程序员,晚上就是个有抱负的探索者
行知-追寻技术之美 关注大数据,分布式系统
我爱编程 编程成长轨迹
Cynthia's Blog 学习笔记 知识总结 思考感悟
 
猜您喜欢
欢迎关注我的公众号 IT宅
关于IT宅 文章归档

IT宅中的文章除了标题注明转载或有特别说明的文章,均为IT宅的技术知识总结,学习笔记或随笔。如果喜欢,请使用文章下面提供的分享组件。转载请注明出处并加入文章的原链接。 感谢大家的支持。

联系我们:admin@itzhai.com

Theme by arthinking. Copyright © 2011-2015 IT宅.com 保留所有权利.