8253是在單片機系統常用的定時/計數器接口芯片,他能擴展幾個定時/計數器,而不占用單片機的cpu時間,而且在pc機的應用很很廣。
下面介紹8253引腳圖和內部結構及引腳定義等。
8253由以下幾個部分組成:
(1) 數據總線緩沖器(8位、三態、雙向);
(2) 讀/寫控制邏輯;
CS:片選信號,低電平有效;
RD:讀信號,低電平有效;
WR:寫信號,低電平有效
A1A0:端口選擇信號
(3) 三個通道( 0 ~ 2);
(4) 一個控制寄存器;
當A1A0分別為00 01 10 11時分別選中三個通道和控制字寄存器在8088系統中,8088的A1A0分別與8253的A1A0相連在8086系統中,通常將8253的8位數據線與8086的低8位相連,即使用偶地址,所以8086的A2A1分別與8253的A1A0相連
Intel 8253是一片具有三個獨立的16位計數器通道的可編程定時器/計數器芯片。每個通道都可以編程設定6種工作方式之一種;
由于8253的讀/寫操作對系統時鐘沒有特殊的要求,因此它幾乎可以應用與由任何一種微處理器組成的系統中,可作為可編程的方波頻率發生器、分頻器、實時時鐘、事件計數器和單脈沖發生器等。
表8-4 控制功能表
CS |
RD |
WR |
A1A0 |
功 能 |
0 |
1 |
0 |
0 0 |
寫計數器0 |
0 |
1 |
0 |
0 1 |
寫計數器1 |
0 |
1 |
0 |
1 0 |
寫計數器2 |
0 |
1 |
0 |
1 1 |
寫控制字寄存器 |
0 |
0 |
1 |
0 0 |
讀計數器0 |
0 |
0 |
1 |
0 1 |
讀計數器1 |
0 |
0 |
1 |
1 0 |
讀計數器2 |
0 |
0 |
1 |
1 1 |
無操作 |
1 |
X |
X |
X X |
禁止使用 |
0 |
1 |
1 |
X X |
無操作 |
每個通道: |
CLK |
計數脈沖或標準脈沖輸入端 |
|
OUT |
計數值為0時輸出一個脈沖 |
|
GATE |
允許端,當GATE=1時允許計數 |
8253在 PC機中的應用
例8.5.2: 設計一個程序,使揚聲器發出600Hz頻率的聲音,按下任意鍵聲音停止。PC機的發聲系統以計數器2為核心。CLK2的輸入頻率1.19MHz,改變計數器初值可以由OUT2得到不同頻率的方波輸出對于600Hz,計數初值1.19MHz/600Hz=1938,發聲系統受8255芯片B口的兩個輸出端線PB0、PB1的控制。PB0為1,使GATE2為1,計數器2能正常計數。PB1為1,打開輸出控制門。
CODE SEGMENT
ASSUME CS:CODE
START:IN AL, 61H //8253端口
OR AL, 03H
OUT 61H, AL
MOV AX, 1983
OUT 42H, AL
MOV AL, AH
OUT 42, AL
MOV AH, 01H
INT 21H
IN Al, 61H
AND AL, 0FCH
OUT 61H, AL
MOV AH, 4CH
INT 21H
CODE ENDS
END START