PIT Programming Examples Working with the modes of PIT.

44
PIT Programming Examples Working with the modes of PIT

Transcript of PIT Programming Examples Working with the modes of PIT.

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)