微机原理 || 8253 芯片 (详细讲解 + 经典例题)一点点看!一定可以看懂!考试没有问题的!加油前面知识写的详细,看不懂可以先看典例,回头来梳理就明白了【典例就是常考的题】


目录

Part 1: 芯片知识总结 

(一)8253 芯片特点

(二) 8253芯片引脚功能      知道才好编程

(三) 8253编程

(1)8253 初始化

① 工作方式控制字 

② 计数初始值

③ 初始化流程

  (四) 单位转换

Part 2 : 经典考题典例

Part 1: 芯片知识总结 

(一)8253 芯片特点

1. 可编程的逻辑器件
2. 
8位并行接口,但内容计数寄存器是16位
3. 非通道型的接口,控制型的即具有特定功能(
计数、定时等)
4. 工作方式:

   减法计数: 计数值减为0时输出相应控制系统
   输出控制系统的形式可通过
软件设置(工作方式) 


(二) 8253芯片引脚功能      知道才好编程

 


(三) 8253编程

(1)8253 初始化
       ① 工作方式控制字 

上述解释补充:

二进制计数: 为0000H~FFFFH,其中0000H为最大值,代表65536; (默认)
十进制(BCD码): 计数为0000~9999,其中0000为最大值,代表10000

② 计数初始值
计数初始值 写入对应计数器的计数初值寄存器CR;
1. 计数初值为8位 — 控制字中的RL1、RL0应取01 — 初值只写入CR的低8位,
                                                                                  高8位会自动置0;
2. 计数初值16位,低8位是0 — RL1、RL0应取10 — 初值高8位写入CR的高8位,
                                                                               CR的 低8位会自动置0;
3. 若是一般16位初值,则RL1, RL0应取11, 应分两次写入初值,先写低8位、再写入高8位(此顺序不能反)

计数初值 = OUT周期/ CLK周期
               = CLK频率*OUT周期
               = CLK频率/OUT频率
③ 初始化流程


  (四) 单位转换

1kHz = 1000Hz  3

1MHz = 1000 000Hz   6

1GHz = 1000 000 000GHz    9

1s = 1000ms = 1000 000μs = 1000 000 000ns

Part 2 : 经典考题典例

考题1难,后面基础方便理解

【考题1】

 每个CNT编程:

1.选定控制寄存器地址,为控制寄存器写控制字(查功能8位)选定该CNT,并将控制字输出至I/O端口(OUT)

2.选定CNT地址,算出该CNT的计数初值,并将初值输出至I/O端口 (OUT) 

 
  1. START: MOV AX,DATA

  2. MOV DS,AX

  3. CLI

  4. ;CNT0

  5. MOV DX,0203H ;CNT0初始化编程 ,产生方波信号 ,周期为10ms

  6. MOV AL,36H ;CNT0方式3控制字 , 0011 0110

  7. OUT DX,AL ;控制字CPU传入8253

  8. MOV DX,0200H

  9. MOV AL,0C4H

  10. OUT DX,AL ;写入低字节计数值

  11. MOV AL,09H

  12. OUT DX,AL ;写入高字节计数值

  13. ;CNT1

  14. MOV DX,0203H ;CNT1初始化编程 , 产生周期性负脉冲信号 ,周期为1s

  15. MOV AL,74H ;CNT1方式2控制字 , 0111 0100

  16. OUT DX,AL

  17. MOV DX,0201H

  18. MOV AL,064H

  19. OUT DX,AL ;写入低字节计数值

  20. MOV AL,00H

  21. OUT DX,AL ;写入高字节计数值


1. 已知,某外设需要8253提供频率为1Hz方波,现8253的CLK0输入频率为2MHZ,其
端口地址为40H-43H试给出实现方案,并编写相关程序段。

输入频率:   2MHZ=2000 000HZ

输出频率:  1HZ

CLK0:40H

CLK1:41H

CLK2:42H

寄存器地址:43H


2. 设8253的端口地址为40~43H,选择计数器1工作于方式2,计数初值为1024,二进制计数方式,试编写其初始化编程:


 3.已知芯片8253的端口地址为4F0H 4F3H,设计数器1工作在方式1,计数器初值为3060H,
采用二进制计数,请设计实现上述功能的8253初始化程序。



 


 

        

          

  • 29
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要构建一个“CPU+8255+8253”的微型计算机系统,你需要以下组件: 1. CPU:可以选择包括Intel 8086、8088、80186和80286等CPU。 2. 内存:至少需要64KB的RAM。 3. 8255:一个可编程的并行接口芯片,可以用于连接输入和输出设备。 4. 8253:一个可编程的定时/计数器芯片,可以用于控制CPU的时钟频率和计数外部事件。 下面是一个简单的构建步骤: 1. 首先,将CPU插入主板上的CPU插槽中,并将内存插入主板上的内存插槽中。 2. 将8255芯片连接到CPU和外部设备之间,以允许CPU对外部设备进行输入/输出操作。 3. 将8253芯片连接到CPU和外部设备之间,以允许CPU控制时钟频率或计数外部事件。 4. 连接其他必要的外部设备,例如键盘、显示器和存储设备。 为了使用8253芯片使CPU处于定时工作状态或对外部过程进行计数,你需要编相应的程序代码,并将其加载到计算机系统中。下面是一个简单的示例代码: ``` MOV AL, 00110110b ; 设置8253芯片为定时器模式 OUT 43h, AL ; 将指令8253的控制寄存器中 MOV AX, 0FFFFh ; 设置计数器的初值 OUT 40h, AL ; 将低8位入计数器0中 MOV AL, AH ; 将高8位入计数器0中 OUT 40h, AL WAIT: ; 等待计数器到达0 IN AL, 40h TEST AL, 1 JZ WAIT ``` 这段代码将8253芯片设置为定时器模式,将计数器的初值设置为0xFFFF,并在计数器0中入该值。然后,程序会等待计数器到达0,然后重新开始计数,从而保持CPU处于定时工作状态。 如果你想让CPU对外部过程进行计数,可以将外部事件连接到8253芯片的计数输入引脚上,并使用相应的程序代码将计数器设置为计数模式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半岛铁盒★

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值