- 總結微機原理課學習的若干芯片
- 教材——《微機原理與接口技術》
文章目錄
〇、思維導圖
- 導圖使用mindmaster繪製
- 下載地址
一、定時/計數 概述
- 實際應用中,經常用到定時或計數控制,如定時中斷、定時檢測、定時掃描、各種計數等。
- 實現定時控制的三種基本方法
- intel的8253/8254是微機系統中應用較多的定時計數器,8253工作頻率最高2.6MHz;8254工作頻率爲10~12MHz,二者除了頻率和少數幾處不同外幾乎沒有差別。
二、8253/8254 內部結構及引腳信號
- 8254具有3個功能相同又相互獨立的16位減法計數器,每一個計數器可以進行二進制計數和BCD碼計數,每個計數通道具有6鍾功能各異的工作方式。
1. 主要功能
2. 內部結構和外部引腳
(1)結構圖
(2)組成
-
數據總線緩衝器:
- 通用可編程接口芯片的共有部分,用來和系統數據總線相連的8位雙向三態驅動器,8253/8254可以通過他讀寫總線數據
-
讀寫邏輯
- 通用可編程接口芯片的共有部分,接受cpu發來的控制信號、片選信號或命令選擇信號等,再通過它產生對內部各部件的讀寫
- 相關引腳
-
控制寄存器
- 用於存放CPU發來的控制字,以確定計數器的工作方式
-
3個計數器
- 計數器0/1/2是相互獨立的16位減法計數器。既可進行二進制計數,又能進行十進制(BCD)計數,這由控制字決定。
- 計數器引腳
三、8253/8254的工作方式
1. 方式0:中斷信號發生器
- 寫完初值N,經過N+1個CLK脈衝後,OUT變化
- 計數器不會自動重裝初值,也不會重新計數
2. 方式1:單穩負脈衝信號發生器
- 初始值設爲N,產生N個clk寬度的負脈衝
- 計數器不會自動重裝初值,也不會重新計數
3. 方式2:速率信號發生器
- 初始值設爲N,產生N個clk寬度的連續波信號
- 自動重裝並重新計數
4. 方式3: 方波信號發生器
-
初始值設爲N,產生週期爲N倍時鐘週期的方波信號(佔空比等於或約等於1:1)
-
自動重裝並重新計數
5. 方式4:軟件觸發的選通信號發生器
- 在N個clk的延時後生成一個clk寬度的負脈衝(選通信號)
- 不自動重裝,不計數
6. 方式5:硬件觸發的選通信號發生器
- 在N個clk的延時後生成一個clk寬度的負脈衝(選通信號)
- 不自動重裝,不計數(和方式4的區別僅在於觸發方式不同)
四、8253/8254編程方法
1. 控制字
2. 初始化
3. 示例
- 題目:
- 分析:
- 計數初值分析
- 控制字
(1)OUT0(計數器0)輸出方波(方式3),計數值80(低8位寫80,二進制計數):0001 0110B
(2)OUT1(計數器1)輸出連續脈衝(方式2),計數值4000(16位寫4000,二進制計數):0111 0100B
(3)OUT2(計數器2)輸出單個脈衝(方式1),計數值0(16位寫0,二進制計數):1011 0010B
- 計數初值分析
- 代碼:
五、8253應用(典型PC機應用實例)
(1)示例1:
-
8088微機中使用了一片8253,用OUT0產生時鐘信號,OUT1產生DMA通道0用於DRAM刷新控制信號,OUT2產生方波信號,通過驅動和濾波器後推動揚聲器,相關原理圖如下,編寫8253初始化程序
-
分析:
- OUT0產生時鐘信號,就是方波,工作方式爲3。GATE恆高電平滿足。要求55ms產生一次中斷,即每秒約18.206次,又fclk輸入爲1.19318MHz,所以計數值爲
1.19318*10^6/18.206 = 65536
,所有計數初值寫0,用16位長二進制計數 - OUT1產生連續脈衝,工作方式爲2。GATE恆高電平滿足。要求每15.08us啓動刷新DRAM,計數初值爲
1.19318*15.08 = 18
,低8位二進制計數即可 - OUT2產生1KHz方波,工作方式爲3。GATE恆高電平,即8255PB0輸出高電平發聲,輸出低電平靜音。計數初值
1.19318M/1K = 1193
,16位二進制計數
- OUT0產生時鐘信號,就是方波,工作方式爲3。GATE恆高電平滿足。要求55ms產生一次中斷,即每秒約18.206次,又fclk輸入爲1.19318MHz,所以計數值爲
-
示例代碼:
(2)示例2: