寫在前面
微機期末整理重點,復習自用
8253計數器/定時器
內部大致結構同8255,3個通道,A1 ~ A0片選
控制字寄存器

初始化編程步驟
- (控制端口)寫入控制字,設置計數通道的工作方式等
- (對應的通道端口)設置計數初值
工作方式
- 方式0 計數結束中斷

OUT計數結束產生一個上升沿,可用來觸發單次中斷
注:觸發中斷后記得先重新填入計數初值再結束中斷
GATE接高電平:允許計數
再使用需要重新設置初值
- 方式1 可編程單穩態輸出

GATE上升沿:開始計數
OUT產生一個寬度為時鍾脈沖寬度×n的負單脈沖
- 方式2 比率發生器

在最后一次計數時產生一個短暫的負脈沖
可以連續生成一個一定頻率的負脈沖序列
可以用來定時觸發中斷
- 方式3 連續方波

n=偶 連續對稱方波
n=奇 基本對稱的連續方波,正脈沖會多一個周期
-
方式4 軟件觸發選通
-
方式5 硬件觸發選通
8253應用舉例
-
產生各種定時波形
- 輸出頻率為……的方波(方式3)
- 產生寬度為……的單脈沖(方式1)
- 指定方式觸發,給定時間常數(計數初值)
- ……
n=時鍾脈沖頻率/輸出頻率=輸出脈沖寬度/時鍾脈沖寬度
1MHz=106Hz=10-6s=1μs
-
通道級聯(這種題一般都是產生連續方波,只是需要分頻,算一下計數初值就好)
單通道的計數范圍達不到要求,所以必須級聯8253使用
就是分頻,假設用兩個通道分頻
總的計數初值=通道0的計數初值×通道1的計數初值
CLK0接時鍾脈沖,OUT0接CLK1,OUT1接輸出外設
讀取計數值
命令字的RL1 RL0兩位為00時是鎖存,發出命令后計數停止可以用IN讀出。
注意:當該通道為同時使用高8位和低8位時,要讀兩次,先讀出低8位,再讀出高8位