Download presentation
1
Timers
2
The 8254 Programmable Interval Timer
3 independent 16-bit programmable counters Counting in binary/BCD Applications Real-time clock Event counter
3
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
4
8254 Block Diagram
5
Control Register
6
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:
7
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
8
Modes of Operation Mode 0: Events counter (used for system time)
Mode 1: One shot pulse
9
Modes of Operation Mode 2: Continuous pulses
Mode 3: Continuous square-wave
10
Modes of Operation Mode 4: Software triggered one-shot pulse
Mode 5: Hardware triggered one-shot pulse
11
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 H 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
12
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.
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.