pit programming examples working with the modes of pit

44
PIT Programming Examples Working with the modes of PIT

Upload: marylou-shona-bond

Post on 01-Jan-2016

238 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: PIT Programming Examples Working with the modes of PIT

PIT Programming Examples

Working with the modes of PIT

Page 2: PIT Programming Examples Working with the modes of PIT

The output in this mode is initially low, and will remain low for the duration of the count if GATE = 1.

Width of low pulse = NT

Where N is the the clock count loaded into counter, and T is the clock period of the CLK input.

Mode 0: interrupt on terminal count

Page 3: PIT Programming Examples Working with the modes of PIT

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.

• In this mode, if GATE input 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 0: interrupt on terminal count

Page 4: PIT Programming Examples Working with the modes of PIT
Page 5: PIT Programming Examples Working with the modes of PIT
Page 6: PIT Programming Examples Working with the modes of PIT
Page 7: PIT Programming Examples Working with the modes of PIT

• This mode is also called hardware triggerable one-shot.

• The triggering must be done through the GATE input by sending a 0-to-1 pulse to it.

• The following two steps must be performed:

1. Load the count registers.

2. A 0-to-1 pulse must be sent to the GATE input to trigger the counter.

• Contrast this with mode 0, in which the counter produces the output immediately after the counter is loaded as long as GATE = 1.

• In mode 1 after sending the 0-to-1 pulse to GATE, OUT becomes low and stays low for a duration of NT, then becomes high and stays high until the gate is triggered again.

Mode 1: programmable one-shot

Page 8: PIT Programming Examples Working with the modes of PIT
Page 9: PIT Programming Examples Working with the modes of PIT
Page 10: PIT Programming Examples Working with the modes of PIT

Mode 2 is also called divide-by-N counter.

• In this mode, if GATE = 1, OUT will be high for the NT clock period, goes low for only one clock pulse, then the count is reloaded automatically, and the process continues indefinitely.

Mode 2: rate generator

Page 11: PIT Programming Examples Working with the modes of PIT
Page 12: PIT Programming Examples Working with the modes of PIT

In this mode if GATE = 1, OUT is a square wave where the high pulse is equal to the low pulse if N is an even number.

• In this case the high part and low part of the pulse have the same duration and are equal to (N/2)T (50% duty cycle)

• If N is an odd number, the high pulse is one clock pulse longer.

• This mode is widely used as a frequency divider and audio-tone generator.

Mode 3: square wave rate generator

Page 13: PIT Programming Examples Working with the modes of PIT
Page 14: PIT Programming Examples Working with the modes of PIT
Page 15: PIT Programming Examples Working with the modes of PIT

•In this mode if GATE = 1, the output will go high upon loading the count.

• It will stay high for the duration of NT.

• After the count reaches zero (terminal count), 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 again.

• Mode 4 is similar to mode 2, except that the counter is not reloaded automatically.

• In this mode, the count starts the moment the count is written into the counter.

Mode 4: software trigger strobe

Page 16: PIT Programming Examples Working with the modes of PIT
Page 17: PIT Programming Examples Working with the modes of PIT
Page 18: PIT Programming Examples Working with the modes of PIT

Mode 5: hardware trigger strobe• This mode is similar to mode 4 except that the trigger must be done with the GATE input.

• In this mode after the count is loaded, we must send a low-to-high pulse to the gate to start the counter.

Page 19: PIT Programming Examples Working with the modes of PIT
Page 20: PIT Programming Examples Working with the modes of PIT
Page 21: PIT Programming Examples Working with the modes of PIT

The following method of creating hardware time delays was first implemented in the IBM PC and compatible computers.

• To create a processor independent delay, IBM made PB4 of port 61H toggle every 15.085s.

• CS holds 15.085s in the following codes.

Time delays in 80x86 IBM PC

Page 22: PIT Programming Examples Working with the modes of PIT

Time delays in 80x86 IBM PC

Page 23: PIT Programming Examples Working with the modes of PIT

• Now a time delay of any duration can be created regardless of the CPU frequency as long as it is a 286 and higher PC.

• For example set CX=33144 (3314415.085s=0.5 second)

MOV CX, 33144

CALL WAITF

Time delays in 80x86 IBM PC

Page 24: PIT Programming Examples Working with the modes of PIT

Time delays in 80x86 IBM PC

Page 25: PIT Programming Examples Working with the modes of PIT

Example

Page 26: PIT Programming Examples Working with the modes of PIT

Examples

Page 27: PIT Programming Examples Working with the modes of PIT

• As mentioned earlier, counter 2 is connected to the speaker and it can be programmed to output any frequency that is desired.

• Look at the list of piano notes and their frequencies given in Fig. 5-5.

• Music: frequency and time duration

Generating Music on the IBM PC

Page 28: PIT Programming Examples Working with the modes of PIT
Page 29: PIT Programming Examples Working with the modes of PIT
Page 30: PIT Programming Examples Working with the modes of PIT

A delay of 250 ms

Page 31: PIT Programming Examples Working with the modes of PIT
Page 32: PIT Programming Examples Working with the modes of PIT
Page 33: PIT Programming Examples Working with the modes of PIT
Page 34: PIT Programming Examples Working with the modes of PIT
Page 35: PIT Programming Examples Working with the modes of PIT

Shape of 8253/54 Outputs

Page 36: PIT Programming Examples Working with the modes of PIT

IBM BIOS programmed counter 0 to create mode 3, which is square-wave shape.

• Counter 0 is loaded with the number 65,536 and the clock period of input frequency 838 ns (1/1.193 MHz = 838 ns), so the period of the OUT0 pulse is equal to 65536838 ns = 54.9 ms (18.2 Hz).

• OUT0 continuously sends out square wave pulses.

Out0 pulse shape in IBM BIOS

Page 37: PIT Programming Examples Working with the modes of PIT

IBM BIOS programmed counter 1 in mode 2, rate generator, with the value 18 loaded into the counter.

• OUT1 will be high for a total of 17 838 ns and go low for one pulse of 838 ns

• GATE1 is set to 1 permanently

Out1 pulse shape in the IBM BIOS

Page 38: PIT Programming Examples Working with the modes of PIT

IBM BIOS loads the value 1331 into counter 2.

• Since 1331 is an odd number, the OUT2 pulse is high for a total of (1331+1)/2 = 666 838 ns and is low for a total of (1331-1)/2 = 665 838 ns

OUT2 pulse shape in the IBM BIOS

Page 39: PIT Programming Examples Working with the modes of PIT

Sample Questions

Preparation for Mid-Term Exam

Microprocessors I

Page 40: PIT Programming Examples Working with the modes of PIT

Assembly Language Determine the Value of AX After the following Instructions:

• MOV AX, 2345H• MOV BX, 5432H• ADD AX, BX ;7777H• MOV AL, BH ;7754H

• MOV AX, 2345H• MOV BX,1357H• PUSH AX• PUSH BX• INC SP• POP AX ; 4513

• MOV AX, 2345H• ROR AL,1 ; 23A2• ADC AH,5 ; 29A2

• MOV AX, 9245H• ROR AL,1 ;92A2• RCL AH,1 ;25A2

Page 41: PIT Programming Examples Working with the modes of PIT

Developing Simple Programs

BCD to Hex Conversion SI : BCD Source, DI: Hex Destination, CX: Size

Hex to BCD Conversion SI : Hex Source, DI: BCD Destination, CX: Size

Common Divisor of two natural Numbers IsPrime A^B Arithmetic Operations for Big Natural

Numbers Start Address in SI, Size in CX Operations: +, Difference, *, /, %

Page 42: PIT Programming Examples Working with the modes of PIT

Using Special Interrupts Get a Number from user, find its

divisors, show it to user Write the Term “Hello” in a color

box in the center of the screen with borders. Use edge character codes for borders

Navigate the cursor on screen

Page 43: PIT Programming Examples Working with the modes of PIT

System Design A Minimum System with 64k EPROM and 64K

RAM Peripherals: One 8259 as Master and 3 8259

Slave (Main Addresses: 40H, 60H, 80H, C0H) Three PPI (Main Addresses: 20H, A0H, E0H) ALL PPIs Can Cause Interrupt Through Master First PPI Controls 4 Stepper Motors Second PPI is for Display Controller

Page 44: PIT Programming Examples Working with the modes of PIT

System Programming Develop a Program that drives the

stepper motors with equal rpm Digital Display Driver Interrupt of a timer (Every 10 ms

with a 555)