Timers. The 8254 Programmable Interval Timer 3 independent 16-bit programmable counters Counting in...
-
Upload
garry-brooks -
Category
Documents
-
view
217 -
download
0
Transcript of Timers. The 8254 Programmable Interval Timer 3 independent 16-bit programmable counters Counting in...
Timers
The 8254 Programmable Interval Timer
• 3 independent 16-bit programmable counters
• Counting in binary/BCD
• Applications– Real-time clock– Event counter
8254 I/O• D7-D0: System data bus• CLK0: Clock for counter 0• Gate0: Gate for counter 0• CLK1: Clock for counter 1• Gate1: Gate for counter 1• CLK2: Clock for counter 2• Gate2: Gate for counter 2• A1-A0: Address select
– 00: Counter 0– 01: Counter 1– 10: Counter 2– 11: Control Register
• Vcc: Power (+5V) • Ground: • RD: Read enable• WR: Write enable• CS: Chip select signal• OUT0: Output of counter0• OUT1: Output of counter1• OUT2: Output of counter2
8254 Block Diagram
Control Register
Programming the 8254• Each counter is programmed individually by writing
– A control word– The initial count
• Control word selects– Counter– Mode of operation– Type of operation (read/write)– Type of count (binary/BCD)
• Program sequence 1:– PROGRAM CONTROL WORD 1– PROGRAM CONTROL WORD 2– PROGRAM LSB 1– PROGRAM LSB 2– PROGRAM MSB 1– PROGRAM MSB 2
• Program sequence 2:– PROGRAM CONTROL WORD 1– PROGRAM LSB 1– PROGRAM MSB 1– PROGRAM CONTROL WORD 2– PROGRAM LSB 2– PROGRAM MSB 2
8254 Modes of Operation
• Mode 0: Events counter. • Mode 1: One shot pulse• Mode 2: Continuous pulses, one clock
pulse wide• Mode 3: Continuous square-wave as long
as Gate is 1• Mode 4: Software triggered one-shot pulse• Mode 5: Hardware triggered one-shot
pulse
Modes of Operation
• Mode 0: Events counter
(used for system time)
• Mode 1: One shot pulse
Modes of Operation
• Mode 2: Continuous pulses
• Mode 3: Continuous square-wave
Modes of Operation
• Mode 4: Software triggered one-shot pulse
• Mode 5: Hardware triggered one-shot pulse
Example
• Connect an 8254 in a 8088 processor system so that it occupies the address range 4CH-4FH
• Program counter 0 in mode 0 with a count of ABCD12H and counter 1 in mode 3 and a count of 345678H
• Program counter 0 to generate an interrupt every 10 ms using a 10MHz oscillator– Write an interrupt service routine that calls a sleep
function every 1 min• Program counter 1 to produce a 1.25 MHz clock
output with 50% duty cycle
Example 2
• Connect an 8254 in a 8088 processor system so that it occupies the address range 4CH-4FH through a PIC in the address range 6EH-6FH at IRQ1
• Configure the PIC for vector 43H and unmask IRQ1 masking all others
• Configure the timer to use one counter to count events on Gate0 and another to count time.
• Write an ISR at vector 43H that reads the values of the two timers each time there is an interrupt.