0% found this document useful (0 votes)
64 views

Engineering 4862 Microprocessors: Cheng Li

The document discusses the 8253/8254 programmable interval timer (PIT), which contains three independent counters that can divide an input clock signal. It describes the ports, registers, and modes used to program each counter. The modes include interrupting on terminal count, one-shot pulses, rate generation, and software/hardware triggered strobes. Programming examples are provided to set up counter 0 to divide the clock by a binary value.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
64 views

Engineering 4862 Microprocessors: Cheng Li

The document discusses the 8253/8254 programmable interval timer (PIT), which contains three independent counters that can divide an input clock signal. It describes the ports, registers, and modes used to program each counter. The modes include interrupting on terminal count, one-shot pulses, rate generation, and software/hardware triggered strobes. Programming examples are provided to set up counter 0 to divide the clock by a binary value.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 14

Engineering 4862 Microprocessors

Lecture 27

Cheng Li
EN-4012
[email protected]
8253 / 8254 Timer
• A.k.a. PIT (programmable Interval Timer), used
to bring down the frequency to the desired level
• Three counters inside 8253/8254. Each works
independently and is programmed separately to
divide the input frequency by a number from 1
to 65536
• There are 4 port address needed for a single
8253/8254, given by A0, A1, and CS
CS A1 A0 Select
0 0 0 Counter 0
0 0 1 Counter 1
0 1 0 Counter 2
0 1 1 Control Reg.
Engr 4862 Microprocessors
8253 / 8254 Timer

Engr 4862 Microprocessors


8253 / 8254 Timer

Engr 4862 Microprocessors


8253 / 8254 Timer
• Each of the three counter has 3 pins associated
– CLK: input clock frequency
• A square wave of 33% duty cycle
• 8253: 0 ~ 2 MHz, 8254: 0 ~ 8 MHz
– OUT: can be square wave, or one shot
– GATE: Enable (high) or disable (low) the counter
• Data Pins: (D0 ~ D7)
– Allow the CPU to access various registers inside the
8253/54 for both read and write operations. RD and
WR are connected to IOR and IOW of control bus.
Engr 4862 Microprocessors
8253 / 8254 Timer
• Each of the three counters must be programmed
separately
• Control byte must be first written into the
control register. The 8253/54 must be initialized
before use
• The programmer can not only write the value of
the divisor into the 8253/54, but read the content
of the counter at any given time as well
• All counters are down counters.
Engr 4862 Microprocessors
8253 / 8254 Timer
• To program a given counter to divide the CLK
input frequency, one must send the divisor to
that specific counter’s register.
• Although all three counters share the same
control register, the divisor registers are separate
for each counter
• Example: given the port addresses for 8253/54:
Counter 0: 94H Counter 1: 95H
Counter 2: 96H Control Reg: 97H
Engr 4862 Microprocessors
8253 / 8254 Timer
• Task1: program counter 0 for binary counter for
mode 3 to divide CLK0 by number 4282 (BCD)
MOV AL, 0011 0111B
OUT 97H, AL
MOV AX, 4282H (BCD needs H)
OUT 94H, AL (Low Byte)
MOV AL, AH
OUT 94H, AL (High Byte)
• OUT0 = CLK0 / 4282
Engr 4862 Microprocessors
Shape of the 8253/54 Output
• Given CLK = 1.193 MHz, the clock period of
input frequency is 838 ns
• If the number N loaded into the counter is even,
both high and low pulse are the same length,
which is N/2 * 838 ns
• If the number N loaded into the counter is odd,
the high pulse is (N+1)/2 * 838 ns and the low
pulse is (N–1)/2 * 838 ns
 If N is odd, the high portion of the output
square wave is slightly wider than the low portion
Engr 4862 Microprocessors
8253/54 Operation Modes
• Mode 0: Interrupt on terminal count
– The output is initially low, and remain low for the
duration of the count if GATE=1. When the terminal
count is reached, the output will go high and remain
high until a new control word or new count number
is loaded
• Width of low pulse = N * T, where T is clock period
– Example: GATE=1 and CLK = 1 MHz
Clock count N = 1000

Engr 4862 Microprocessors


8253/54 Operation Modes
• Mode 0: Interrupt on terminal count
– If GATE becomes low at the middle of the count, the
count will stop and the output will be low. The count
resumes when the GATE becomes high again  This
in effect adds to the total time the output is low.
• Mode 1: HW triggered / programmable one shot
– The triggering must be done through the GATE input
by sending a 0-to-1 pulse to it.
– Steps: 1) Load the count register
2) A 0-to-1 pulse must be sent to the GATE
input to trigger the count
Engr 4862 Microprocessors
8253/54 Operation Modes
• Mode 1: HW triggered / programmable one shot
– In Mode 1, after sending the 0-to-1 pulse to GATE,
OUT becomes low and stays low for a duration of
N*T, then becomes high and stays high until the
GATE is triggered again
– If during the activation, a retriggered happened, then
restart the down counting
• Mode 2: Rate Generator (Divide-by-N counter)
– In Mode2, if GATE=1, OUT will be high for N*T,
goes low only for one clock pulse, then counter is
reloaded automatically, and the process continues
indefinitely.  Whole period: (N+1) * T
Engr 4862 Microprocessors
8253/54 Operation Modes
• Mode 3: Square wave rate generator
– Most commonly used
• Mode 4: Software triggered strobe
– Similar to Mode2, except that the counter is not
reloaded automatically
– In Mode4, if GATE=1, the output will go high when
loading the count, it will stay high for duration N*T.
After the count reaches zero, it becomes low for one
clock pulse, then goes high again and stays high until
a new command word or new count is loaded
– To repeat the strobe, the count must be reloaded
Engr 4862 Microprocessors
8253/54 Operation Modes
• Mode 5: Hardware triggered strobe
– Similar to Mode4, except that the triggering must be
done with the GATE input
– The count starts only when a 0-to-1 pulse is sent to the
GATE input
– If GATE retriggered during the counting, it will
restart the down counting

Engr 4862 Microprocessors

You might also like