Programmable Peripheral Interface DevicesSupport chips: 8155, 8255, 8279, 8254, DMA Controller, Interrupt Controller, USART Programmable Interface Devices used to interface a I/O device to the microprocessor System Bus 8085 Programmable I/O Interface I/O Devices 8155 – A multipurpose programmable interface Designed to be compatible with 8085 It includes 256 bytes of Read/Write memory Three I/O ports Port A Port B Port C A 14-bit timer Block Diagram - 8155 RESET AD0-7 IO/M 8 Port A 256 X 8 Static RAM A 8 Port B PA0-7 I/O Devices 8085 RD WR ALE CE Timer CLK TIMER OUT B 8 Port C PB0-7 Timer C 6 PC0-5 Vcc (+5 V) Vss (0 V) Application design with 8155 Objectives Interfacing 8155 with 8085 Programming 8155 Interfacing 8085 with 8155 RESET AD0-7 A15 IO/M RD WR ALE Port C 8 CE Port A 256 X 8 Static RAM 8085 A 8 Port B B 8 Timer 8155 C 6 8085 Programming 8155 8155 is a Programmable Peripheral Interface 8085 can send data to 8155 using data bus This data can be For I/O devices connected to 8155 Timer registers of 8155 Instruction/Command word for 8155 Commands for 8155 are stored in a 8-bit Control Register inside 8155 What type of Commands can be given to 8155? To configure the I/O ports as Input or Output To start/stop timer etc. To use handshake mode or not Control word for 8155 A command/instruction for 8155 is also called control word This control word is written to control register of 8155 Control word of 8155 is of 8-bits Control Word Definition for 8155 D0 Port A D1 Port B D2 D3 Port C 0, Input D3 D2 PORT C 1, Output 0 0 1 1 0 1 0 1 ALT1 ALT2 ALT3 ALT4 D4 Interrupt Enable Port A D5 Interrupt Enable Port B D6 D7 Timer 0, Disable 1, Enable D7 D6 Timer 0 0 0 1 1 0 1 0 NOP Stop Stop after TC Start I/O functions of Port C ALT D3 D2 PC5 PC4 PC3 PC2 PC1 PC0 0 I 1 O 0 O 1 STBB ALT1 0 ALT2 0 ALT3 1 ALT4 1 I O O BFB I O O I O I O I O INTRA INTRA STBA BFA INTRB STBA BFA I = Input STB = Strobe O = Output BF = Buffer Full INTR = Interrupt Request Design an interfacing circuit to read data from an A/D converter using the 8155A in the peripheral mapped I/O. AD0-AD7 8085 IO/M ALE RD WR RESET CE A15 A14 A13 A12 A11 8155 P o r t A P o r t B P o r t C Digital Input A/D Converter PC5 BFA STBA SOC OE EOC O2 O 0 E2 O7 E1 A2 A1 A0 3-to-8 Decoder LED Display Analog Input Port Addresses of 8155 Chip Selection A7 A6 A5 A4 A3 A2 A1 A0 Port 0 0 0 0 0 0 1 1 0 1 0 1 Control/Status Register Port A Port B Port C 0 0 0 1 0 = 10H = 11H = 12H = 13H = 14H = 15H 1 1 0 0 0 1 LSB Timer MSB Timer Application Programming Logic 1. Configure 8155 2. 8085 sends SOC command to ADC 3. 8085 communicates with ADC using PortC in handshake mode 4. 8085 reads 8-bit temperature value from port A 5. 8085 displays the temperature value on the LED display 1. Configure 8155 I/O Ports Port A as INPUT port Port B as OUTPUT port Port C in ALT3 mode ALT D3 D2 ALT3 1 0 PC5 O PC4 PC3 O O PC2 PC1 PC0 STBA BFA INTRA SOC EOC OE Control Word for configuration D0 D1 D2 D3 D4 D5 D6 D7 0 1 0 1 0 0 0 0 Timer 1 0 Port C Port A Port B 0, Input D3 D2 PORT C 0 0 1 1 0 1 0 1 ALT1 ALT2 ALT3 ALT4 1, Output IE Port A IE Port B 0, Disable 1, Enable D7 D6 Timer 0 0 0 1 1 0 NOP Stop Stop after TC Start Program Instructions for configuration Data Control word : 0AH Address of Control register : 10H Port Address Instructions MVI A, 0AH OUT 10H 2. 8085 sends SOC command to ADC A small duration pulse on SOC input of ADC will start conversion process SOC input of ADC is connected to port pin PC5 of Port C (Port address 13H) Data Data value 20H followed by 00H PC5 O 1 SOC ALT D3 D2 0 PC4 PC3 O 0 O 0 PC2 PC1 PC0 STBA BFA INTRA ALT3 1 0 0 0 Instructions Start: MVI A, 20H OUT 13H MVI A, 00H OUT 13H 3. 8085 communicates with ADC using Port C in handshake mode Port A used to input 8-bit data from ADC Port C used for handshaking ALT D3 D2 ALT3 1 0 PC5 O PC4 PC3 O O PC2 PC1 PC0 STBA BFA INTRA EOC OE ADC resets EOC to LOW at end of conversion 8155 sets BF to 1 to enable ADC output latch 8085 is waiting for BF to be SET to 1 and Reads port A by making RD signal active (0) At the end of read cycle RD goes HIGH (1) This resets BF signal to 0. 8085 waits for BF signal to be RESET and starts conversion process again 8085 is waiting for BF To know the status of BF signal 8085 reads status register of 8155 D7 D6 D5 D4 D3 D2 D1 D0 X Timer INTEB BFB INTRB INTEA BFA INTRA Status Word Definition Status register shares same address as control register Program Instructions 8085 reads status register Address of status register : 10H Reads port A if BFA = 1 Output temperature on port B Status: IN 10H ANI 02H JZ Status IN 11H ;Step -4 Reads temperature value OUT 12H ; Step –5 display on LED’s 8085 reads status register Address of status register : 10H Starts conversion again if BFA = 0 Again: IN 10H ANI 02H JNZ Again JMP Start Complete Program MVI A, 0AH OUT 10H Start: MVI A, 20H OUT 13H MVI A, 00H OUT 13H Configure 8155 Start Conversion Status: IN 10H ANI 02H JZ Status IN 11H OUT 12H Again: IN 10H ANI 02H JNZ Again JMP Start Read Status register Wait till BFA = 1 Read temperature value Display on LED Read status register Wait till BFA = 0 Start Conversion again