微機——8253計數器/定時器


寫在前面

微機期末整理重點,復習自用

8253計數器/定時器

內部大致結構同8255,3個通道,A1 ~ A0片選

控制字寄存器

image-20211224192634116

初始化編程步驟

  1. (控制端口)寫入控制字,設置計數通道的工作方式等
  2. (對應的通道端口)設置計數初值

工作方式

  • 方式0 計數結束中斷
image-20211224210154234

OUT計數結束產生一個上升沿,可用來觸發單次中斷

注:觸發中斷后記得先重新填入計數初值再結束中斷

GATE接高電平:允許計數

再使用需要重新設置初值

  • 方式1 可編程單穩態輸出
image-20211224210252438

GATE上升沿:開始計數

OUT產生一個寬度為時鍾脈沖寬度×n的負單脈沖

  • 方式2 比率發生器
image-20211224210306263

在最后一次計數時產生一個短暫的負脈沖

可以連續生成一個一定頻率的負脈沖序列

可以用來定時觸發中斷

  • 方式3 連續方波
image-20211224210320780

n=偶 連續對稱方波

n=奇 基本對稱的連續方波,正脈沖會多一個周期

  • 方式4 軟件觸發選通

  • 方式5 硬件觸發選通

8253應用舉例

  1. 產生各種定時波形

    • 輸出頻率為……的方波(方式3)
    • 產生寬度為……的單脈沖(方式1)
    • 指定方式觸發,給定時間常數(計數初值)
    • ……

    n=時鍾脈沖頻率/輸出頻率=輸出脈沖寬度/時鍾脈沖寬度

    1MHz=106Hz=10-6s=1μs

  2. 通道級聯(這種題一般都是產生連續方波,只是需要分頻,算一下計數初值就好)

單通道的計數范圍達不到要求,所以必須級聯8253使用

就是分頻,假設用兩個通道分頻

總的計數初值=通道0的計數初值×通道1的計數初值

CLK0接時鍾脈沖,OUT0接CLK1,OUT1接輸出外設

讀取計數值

命令字的RL1 RL0兩位為00時是鎖存,發出命令后計數停止可以用IN讀出。

注意:當該通道為同時使用高8位和低8位時,要讀兩次,先讀出低8位,再讀出高8位


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM