第八章 可编程接口芯片及应用【微机原理】1

简介: 第八章 可编程接口芯片及应用【微机原理】1

前言

以下内容源自微型计算机原理(第四版)王忠民主编

来源于教学PPT

仅供学习交流使用

请您阅读文章声明,默认同意该声明

第8章可编程接口芯片及应用

8.1 可编程定时器/计数器芯片 8253/8254

微机系统中很多地方都要用到定时功能。例如第六章介绍的DRAM,系统中就是采用定时器来触发启动动态刷新。过程控制领域则大量需要计数功能。不论是定时还是计数,都是通过对时钟脉冲计数来完成的。当对标称方波进行脉冲计数,就可以完成定时。


定时和计数的产生

(1)定时控制在微机系统中具有极为重要的作用

(2)计数是许多过程控制领域常用的功能

(3)定时和计数之间的关系

定时器通过记录高精度晶振脉冲信号的个数从而输出准确的时间间隔。

计数器记录反映外设某种状态的具有一定随机性的脉冲信号。

8.1.1 8253的结构与功能

1. 8253的引脚

8253的外部引脚

24引脚双列直插式芯片

3个独立的16位计数器通道

每个计数器通道有6种工作方式

按二进制或十进制(BCD码)计数


2. 8253 的内部结构

1.计数通道


8253内部计数器的结构

8253内部有3个独立工作的16位计数通道

CR:16位初值寄存器

CE:减1计数器

OL:输出锁存器

2.数据总线缓冲器

3.读写控制逻辑

8253的端口地址及内部操作

4.控制字寄存器

计数通道的选择

读写方式的确定

工作方式的确定

计数方式的确定

8.1.2 8253的编程

1. 8253的控制字格式


2. 8253的初始化编程

  1. 确认端口地址
  2. 确定工作方式与计数初值
  3. 确定控制字
  4. 写计数器的控制字与计数器计数初值,完成初始化编程

设8253的端口地址为0040H0043H,已知时钟端CLK2输入信号的频率为2 MHz。使用8253计数器2产生频率为40 kHz的方波,初始化8253,完成所需功能。

1、确认端口地址

地址范围40H~43H
0#计数器端口地址:40H
1#计数器端口地址:41H
2#计数器端口地址:42H
控制寄存器端口地址:43H

2、确定工作方式与计数初值

工作于方式3,输出方波
计数初值=输入频率/输出频率
                =2000000Hz /40000Hz
                =50
                =0032H

3、确定控制字


4、初始化程序

MOV  AL,10110110B
OUT  43H,AL             ;送控制字
MOV  AL,32H
OUT  42H,AL             ;送低8位
XOR  AL,AL
OUT  42H,AL             ;送高8位

在计数过程中读8253的计数值

  1. 给控制字寄存器写入锁存命令
  2. 从锁存器中读出计数值,若是16位,则分别读出
  3. 不影响计数通道正常计数

在前例的基础上,读出2#计数器当前计数值的程序段:

   MOV  AL, 10000000B
  OUT  43H,AL
   IN    AL,42H     ;读低8位
   MOV  CL,AL
   IN    AL,42H     ;读高8位
   MOV  CH,AL   ;CX中是当前计数值

8.1.3 8253的工作方式

计数结束产生中断方式

可编程单次脉冲

分频工作方式

方波发生器

软件触发选通

硬件触发选通

1.开始计数:

硬件触发还是软件触发

写入方式字OUT引脚电平

2.计数中:

计数中OUT输出波形

计数过程中门控信号GATE对计数操作的影响

3.计数结束:

是否重复计数

计数初值写入初值寄存器后,在门控有效的前提下,要经过一个CLK输入后才开始计数

计数器在CLK的下降沿使计数值减1

1. 方式0 —计数结束产生中断方式

门控失效则暂停计数。(门控有效后继续计数)




2. 方式1 —可编程单次脉冲


3. 方式2 —分频工作方式

Gate失效会暂停计数,(有效后重新开始计数)


4. 方式3 —方波发生器

GATE电平对波形的影响与方式2一致

5. 方式4 —软件触发选通

不能自动重复计数,每次启动计数都要靠重新写入计数值,所以称为“软件触发选通”,改变初值可以方便地发出选通信号的延迟时间


6. 方式5—硬件触发选通




相关文章
|
Go 数据库
Golang 语言编写 gRPC 实战项目
Golang 语言编写 gRPC 实战项目
309 0
|
SQL 前端开发 druid
5-TDengine集成SpringBoot,MyBatis,MyBatisPlus
5-TDengine集成SpringBoot,MyBatis,MyBatisPlus
4999 0
5-TDengine集成SpringBoot,MyBatis,MyBatisPlus
|
机器学习/深度学习
基于RBF-PID控制器的风力发电系统simulink建模与仿真
本研究基于MATLAB2022a,使用Simulink对风力发电系统进行了建模与仿真,旨在对比PID与RBF-PID控制器的性能。RBF-PID控制器通过引入径向基函数神经网络,实现了PID参数的在线自适应调整,显著提升了对非线性风电系统的控制效果。仿真结果显示,相较于传统PID,RBF-PID能更有效地应对系统不确定性和参数变化,提高系统的鲁棒性和稳定性。
|
9月前
|
城市大脑 安全 计算机视觉
课时13:城市数据大脑介绍
阿里云与杭州市合作打造的城市数据大脑,通过智能调控红绿灯、实时视频分析交通事件,提升了道路通行效率。如今,城市大脑不仅能主动发现并处理交通事故,还能为救护车规划最优路线,从被动接警转变为积极应对,使城市交通更加顺畅和安全。交警们希望通过这一系统,让杭州变得更加美好,实现更愉快的出行体验。
484 0
|
存储 缓存 监控
托管内存(Managed Memory)
托管内存(Managed Memory)
|
iOS开发
Xcode9之后打开Object Library组件库
Xcode9之后打开Object Library组件库
463 1
|
存储 前端开发
Flutter Provider状态管理---MVVM架构实战
Flutter Provider状态管理—MVVM架构实战 在Flutter中,状态管理是一个非常重要的概念。Flutter Provider是一种状态管理的解决方案,它提供了一种简单,灵活和高效的方法来管理Flutter应用程序中的状态。本文将详细介绍Flutter Provider的使用,以及如何在MVVM架构中使用它。
808 0
|
机器学习/深度学习 人工智能 自然语言处理
生成式人工智能(AIGC,Generative AI)
生成式人工智能(AIGC,Generative AI)
1015 3
|
JavaScript API
vue3【详解】vue3 比 vue2 升级了哪些重要的功能?
vue3【详解】vue3 比 vue2 升级了哪些重要的功能?
197 0
|
存储 Linux C语言
stm32cubeMX学习、USB DFU(Download Firmware Update)固件更新
stm32cubeMX学习、USB DFU(Download Firmware Update)固件更新
1644 1