Home

8255a – study card - Electro Systems Associates

image

Contents

1. ao UD O D 8255A STUDY CARD USER MANUAL 53 6C DEMONSTRATION PROGRAMS FOR ESA 86 88 E TRAINER KIT Example 1 Configure 8255A such that PORT A amp PORT B as an output Execute the program at 2000H ADDRESS OPCODE LABLE MNEMONICS COMMENTS ORG 2000 0000 2003 BO 80 MOV AL 80 As output 0000 2005 EE OUT AL DX 0000 2006 BO 55 MOV AL 55 0000 2008 BA CO FF MOV DX FFCO 0000 2008 EB RPT Sur AL DX Output data at Port A 0000 200C F6 DO NOT AL invert th d ta ana 0000 200E BA C2 FF MOV DX FFC2 2 0000 2011 EE OUT AL DX output this value at port 0000 2012 E2 FE LOOP 2012 B 0000 2014 E2 FE LOOP 2014 0000 2016 E9 EF FF JMP RPT Introduce delay And repeat Example 2 Configure 8255A such that PORT A as an output amp PORT B as an input Execute the program at 2000H This program reads data from Port B and outputs the inverted value on Port A ADDRESS OPCODE LABLE MNEMONICS COMMENTS Org 2000H 0000 2000 BA C6 FF MOVW DX 0FFC6 Initialize 8255 0000 2003 BO 82 MOVB AL 82 Sorta aS oj 0000 2005 EE OUTB DX Port B as I P 0000 2006 BA C2 FF LOOP MOVW DX 40FFC2 0000 2009 EC INB DX 0000 200A F6 DO NOTB AL D a RES 0000 200C BA CO FF MOVW DX OFFCO And output this value 0000 200F EE OUTB DX AL 0000 2010 E9 F3 FF JMP LOOP At Port A Repeat process Example 3 Configure 8255A such that PORT A as an Input amp PORT B as an Output Execute the program at
2. 0000 211C 8D 16 03 21 LEA DX 2103 0000 2120 8B C2 MOVW AX DX Display routine 0000 2122 9A 55 1B 00 FE CALLS FE00 1B55 Read from 0000 2127 A8 00 80 MOVW Dx 0080 PortB 0000 212A EC INB DX Display in both 0000 212B BA 82 00 MOVW DX 0082 Serial mode 0000 212E EE OUTB DX and 0000 212F 9A 64 1B 00 FE CALLS FE00 1B64 Data field of 0000 2134 9A OA OB 00 FF CALLS FF00 0B0A singe 0000 2139 BO OD MOVB AL 0D 0000 213B 9A 50 1B 00 FE CALLS FE00 1B50 0000 2140 CF IRET ao UD O D 8255A STUDY CARD USER MANUAL 40 Example 6 The following program initializes 8255 Port B as Input in mode 1 asn Port A as on output in Mode 0 Reading through Port B and Output to Port A as well as data field of the trainer display The program is in the continuous loop I f you change the Input the same thing will be repeated at port B LEDs as well as data field of the trainer display Press S1 Switch to simulate STB signal Note Put the jumper at PCO Address Opcode Label Mnemonics Comments 0000 2000 BC 00 30 INIT MOVW SP 3000 0000 2003 BO 86 MOVB AL 86 Initialize 8255 0000 2005 BA 86 00 MOVW DX 0086 PortB in Model 0000 2008 EE OUTB DX AL Tipu 0000 2009 BO 05 MOVB AL 05 PortA in Mode0 0000 200B BA 86 00 MOVW DX 0086 Output pu 0000 200E EE OUTB DX AL Set INTE B 0000 200F C7 06 24 01 00 21 MOVW 0124 2100 In BSR mode 0000 2015 C7 06 26 01 00 00 MOVW 0126 0000 0000 201B BA F4 FF MOVW DX FFF4
3. 8005 FO MOVX DPTR A O P PORT B 8006 90 F1 81 MOV DPTR F181 AS I P 8009 EO MOVX A DPTR 800A 15 82 DEC 82 800C FO MOVX DPTR A DPL 82 800D 80 F7 SJMP 8006 Example 3 Configure 8255A such that Port A as an Input amp Port B as an Output Execute the Program at 8000H ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 90 F1 83 MOV DPTR F183 PORT A AS 8003 74 90 MOV A 90 I P PORT B 8005 FO MOVX DPTR A AS O P 8006 90 F1 80 MOV DPTR F180 8009 EO MOVX A DPTR 800A A3 INC DPTR 800B FO MOVX DPTR A 800C 80 F8 SJMP 8006 Example 4 PROGRAM OF BSR MODE SINGLE BIT SET RESET FEATURE Any of the eight bits of Port C can be set or reset using a single OUT instruction But before that user will have to initialize 8255 in an output mode because by reset the 8255 ports will be input condition EXAMPLE PROGRAMS FOR BSR MODE Write a BSR control word to set bits PC7 and reset them after certain delay This is a continuous loop PC7 will set and reset continuously ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 74 80 MOV A 80 8002 90 F1 83 MOV DPTR 0F183 8005 FO MOVX DPTR A 8006 74 OF MOV A 0F 8008 FO MOVX DPTR A 8009 12 80 13 LCALL 8013 CALL DELAY 800c 14 DEC A 800D FO MOVX DPTR A 800E 12 80 13 LCALL 8013 8011 80 YY SIMP 8006 CALL DELAY 8013 7F FF MOV R7 40FF 8015 7E FF MOV R6 40FF DELAY SUB 8017 DE FE DJNZ R6 8017 RUTINE DF FA DJNZ R7 8015 32 RET From
4. IN 80 READ DIP SWITCH2 POSITION 9002 D3 81 OUT 81 AND DISPLAY IT ON THE DATA 9004 06 00 MVI B 00 FIELD OF THE TRAINER AND ON 9006 32 75 FE STA FE75 THE PORT B LEDs 9009 CD 78 05 CALL 0578 900C 3E FO MVI A FO SHOW FO ON PORT A LEDS 900E D3 80 OUT 80 AFTER PUTING DIPSWITCH 1 IN 9010 C3 00 90 JMP UP OFF POSITION AND THEN PRESSING AND HOLDING S3 FOLLOWING PROCEDURE SHOULD BE FOLLOWED FOR USING ABOVE PROGRAM IN MODE 2 1 KEEP DIP SWITCH 1 IN ON POSITION AND DIP SWITCH 2 IN POSITION CORRESPONDING TO THE DATA WHICH U WANT TO SEND AS IN PUT FROM PORT A 2 INTERRUPT 7 5 3 KEEP DIP SWITCH1 IN OFF POSITION D L ao UD 8255A STUDY CARD USER MANUAL 22 4 PRESS S3 AND HOLD IT THE CORRESPONDING PORT A LEDs WILL SHOW F0 THIS DISPLAY CAN BE CHANGED BY CHANGING THE OPERAND OF MVI A INSTRUCTION AT MEMORY LOCATION 900C IN ABOVE PROGRAM NOTE DON T PRESS S1 OR S2 SWITCH AFTER PUTTING DIP SWITCH 1 IN OFF POSITION WHILE PRESSING AND HOLDING S3 YOU CAN SEE THAT THE PORT A WORKING AS OUTPUT PORT 5 DEMONSTRATION PROGRAMS FOR 8051 SERIES KIT 5A EXAMPLE PROGRAM FOR ESA 31 TRAINER KIT Configuration and Setting details For interfacing the study cards with ESA 31 trainers study card adapter is provided with the study cards Connect by using 50 pin FRC from Study card adapter to ESA 31 kit J5 connector Connect by using two 26 pin FRC between J3 and J4 of study card adapter with the st
5. 00 LJMP 9000 9000 90 F1 80 MOV DPTR F180 9003 EO MOVX A DPTR 9004 90 F1 81 MOV DPTR F181 9007 FO MOVX DPTR A 9008 80 F6 SJMP 9000 ao UD O D 8255A STUDY CARD USER MANUAL 34 Example 6 The following program initializes 8255 Port B as Input in Mode 1 Reading through Port B and Output to Port A the program is in a continuous loop Press S1 switch to simulate STB signal Note Put the jumper at PC0 Connect external interrupt from J4 of pin 7 i e INT 1 to the J5 of interface ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 90 F1 83 MOV DPTR F183H Initialize 8255 8003 74 86 MOV A 86H Port B as input 8005 FO MOVX DPTR A in model 8006 74 05 MOV A 05 8008 FO MOVX DPTR A Set INTEB 8009 75 A8 84 MOV 0A8 84 Enable interrupt 800c 80 FE SJMP 800C FFF3 02 90 00 LJMP 9000 9000 90 F1 81 MOV DPTR F181 9003 EO MOVX A DPTR 9004 90 F1 80 MOV DPTR F180 9007 FO MOVX DPTR A 9008 80 F6 SJMP 9000 Example 7 The following program initializes Port A as output port in Mode 1 and writes the Data 55H to PortA upon giving ACK signal it will interrupt the processor Press S3 switch to simulate ACK signal Then it will write Data AAH to port A Note Put the jumper at PC3 Connect external interrupt from J4 of pin 7 i e INT 1 to the J5 of interface ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 90 F1 83 MOV DPTR F183 Initialize 8255 8003 74 A0 MOV A 0A0 Por
6. A amp B 8005 FO MOVX DPTR A AS OUTPUT 8006 90 F1 80 MOV DPTR F180 PORTS 8009 74 55 MOV A 455 800B FO MOVX DPTR A 800C 74 66 MOV A 66 800E A3 INC DPTR 800F FO MOVX DPTR A 8010 80 FE SJMP 8010 Example 2 Configure 8255A such that Port A as an Output amp Port B as an Input Execute the Program at 8000H ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 90 F1 83 MOV DPTR F183 8003 74 82 MOV A 482 PORT A AS 8005 FO MOVX DPTR A O P PORT B 8006 90 F1 81 MOV DPTR F181 AS I P 8009 EO MOVX A DPTR 800A 15 82 DEC DPL 800C FO MOVX DPTR A DPL 82 800D 80 F7 SJMP 8006 Example 3 Configure 8255A such that Port A as an Input amp Port B as an Output Execute the Program at 8000H ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 90 F1 83 MOV DPTR F183 8003 74 90 MOV A 90 PORT A AS 8005 FO MOVX DPTR A I P PORT B 8006 90 F1 80 MOV DPTR F180 AS O P 8009 EO MOVX A DPTR 800A A3 INC DPTR 800B FO MOVX DPTR A 800C 80 F8 SJMP 8006 Example 4 PROGRAM OF BSR MODE SINGLE BIT SET RESET FEATURE Rap 8255A STUDY CARD USER MANUAL 33 Any of the eight bits of Port C can be set or reset using a single OUT instruction But before that user will have to initialize 8255 in an out put mode Because during the reset condition 8255 port lines will be input mode EXAMPLE PROGRAMS FOR BSR MODE Write a BSR control word to set bits PC7 and reset them after certain delay This is a continuous loop PC
7. AL 0000 2010 E9 F3 FF JMP LOOP Example 3 Configure 8255A such that PORT A as an Input amp PORT B as an Output Execute the program at 2000H ADDRESS OPCODE LABLE MNEMONICS COMMENTS 0000 2000 BA 86 00 MOVW Dx 0086 PORT A AS 0000 2003 BO 90 MOVB AL 90 OUTPUT 0000 2005 EE LOOP OUTB DX PORT B AS 0000 2006 BA 80 00 MOVW DX 0080 INPUT 0000 2009 EC INB DX 0000 200A F6 DO NOTB AL 0000 200C BA 82 00 MOVW DX 0082 0000 200F EE OUTB DX AL 0000 2010 E9 F3 FF JMP LOOP EXAMPLE 4 PROGRAM FOR BSR MODE The following program initializes the 8255 ports and then it write a BSR control word to set bit PC7 and reset it after certain delay MOV AL 0FH MOV DX 0086H AD 38 HAD 8255A STUDY CARD USER MANUAL OUT DX AL CALL DELAY MOV AL 0EH MOV DX 0086H OUT DX AL INT 3 DELAY PUSH AX PUSH CX MOV CX 0030H L2 MOV AX 0FFFH L1 DEC AX JNZ L1 LOOP L2 POP CX POP AX RET From the analysis of the routine the following points can be noted 1 To Set Reset bits in port C a control word is written in the control register and not in port C 2 BSR control word affects only one bit in port C 3 The BSR control word does not effect the I O mode B 8255A STUDY CARD USER MANUAL ao UD EXAMPLE 5 PROGRAMS FOR 8255A MODE 1 CONFIGURATION NOTE For testing the Mode 1 and Mode 2 operation Connect Buffered external interrupt to J5 of the interface 1 The following program initiali
8. Buffer Full F F The OBF output will go low to indicate that the CPU has written data out to the specified port The OBF F F will be set by the rising edge of the WR input and reset by ACK input being low ACK Acknowledge input A low on this input informs the 8255A that the data from port A or port B has been accepted In essence a response from the peripheral device indicating that it has received the data output by the CPU INTR Interrupt Request A high on this output can be used to interrupt the CPU when an output device has accepted data transmitted by the CPU INTR is set when ACK is a one OBF is a one It is reset by the falling edge of WR INTE A Controlled by bit set reset of PC INTE B Controlled by bit set reset of PC MODE 2 Strobed Bi directional Bus I O This functional configuration provides a means for communicating with a peripheral device or structure on a single 8 bit bus for both transmitting and receiving data bi directional bus I O Handshaking signals are provided to maintain proper bus flow discipline in a similar manner to MODE 1 Interrupt generation and enable disable functions are also available MODE 2 Basic Functional Definitions Used in Group A only One 8 bit bi directional bus Port Port A and a 5 bit control Port Port C Both inputs and outputs are latched The 5 bit control port Port C is used for control and status for the 8 bit bi directional b
9. Interrupt vector 0000 201E BO 13 MOVB AL 13 table 0000 2020 EE OUTB DX AL 0000 2021 BA F6 FF MOVW DX FFF6 Initialize 8259 0000 2024 BO 48 MOVB AL 48 0000 2026 EE OUTB DX AL 0000 2027 BO 03 MOVB AL 03 0000 2029 EE OUTB DX AL 0000 202A BO FD MOVB AL FD Automatic end 0000 202C EE OUTB DX AL Of conversion 0000 202D FB STI 0000 202E E9 FC FF WI JMP WI ORG 2100H 0000 2100 E9 11 00 JMP ISR 0000 2103 OA OA DB OAH 0AH 0000 2105 0D MES DB ODH 0000 2106 50 6F 72 74 DB 50H 6FH 72H 74H 0000 210A 20 56 61 6C 75 20H 56H 61H 6CH 75H 0000 210F 65 20 3D 20 65H 20H 3DH 20H 0000 2113 00 00H 0000 2114 B8 00 00 MOVW Ax 0000 0000 2117 8E CO MOVW ES AX 0000 2119 8E C8 ISR MOVW CS AX 0000 211B 2E cs 0000 211C 8D 16 03 21 LEA DxX 2103 Display routine 0000 2120 8B C2 MOVW AX DX Read from 0000 2122 9A 55 1B 00 FE CALLS FE00 1B55 PortB 0000 2127 BA 82 00 MOVW Dx 0082 Display in both 0000 212A EC INB AL DX Serial mode and 0000 212B BA 80 00 MOVW DX 0080 Data field of 0000 212E EE OUTB DX AL raies 0000 212F 9A 64 1B 00 FE CALLS FE00 1B64 0000 2134 9A OA 0B 00 FF CALLS FF00 0B0A 0000 2139 BO OD MOVB AL 0D 0000 213B 9A 50 1B 00 FE CALLS FE00 1B50 IRET D 8255A STUDY CARD USER MANUAL 41 ao UD Example 7 he following program initializes the 8255A in Input in Mode 2 and Port B as output in Mode 0 Press S2 switch to simulate STB Address Opco
10. MVI A 90 Port A as Input and Port B as 8002 D3 83 OUT 83 Output 8004 DB 80 IN 80 Read the Dipswitches through 8006 D3 81 OUT 81 PortB 8008 DF RST 3 Output to Port B Stop the Program SINGLE BIT SET RESET FEATURE Any of the eight bits of Port C can be set or reset using a single OUT instruction But before that user will have to initialize 8255 in an out put mode because during reset condition the 8255 ports will be in input mode Example 4 PROGRAMS FOR BSR MODE Write a BSR control word to set bits PC7 and reset them after certain delay ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E 80 MVI A 80H 8002 D3 83 OUT 83 8004 3E OF MVIA 0FH 8006 D3 83 OUT 83 SET PC7 8008 CD 10 80 CALL DELAY SOME DELAY 800B 3E OE MVI A 0EH 800D D3 83 OUT 83H RESET PC7 800F 76 HLT 8010 3E FF DELAY avr a OFFH 8012 OE FF L2 MVI C OFFH 8014 OD L1 DCR C 8015 C2 14 80 JNZ L1 8018 3D DCR A 8019 12 80 JNZ L2 c RET From the analysis of the routine the following points can be noted 1 To Set Reset bits in port C a control word is written in the control register and not in port C 2 BSR control word affects only one bit in port C 3 The BSR control word does not affect the I O mode Example 5 PROGRAMS FOR MODE 1 NOTE For testing the Mode 1 and Mode 2 operation connect buffered external interrupt to J5 of the interface 1 The following program initializes 8255A Port A as on Input in
11. USING ABOVE PROGRAM IN MODE 2 e ADJUST DIP SWITCH 1 IN ON POSITION AND DIP SWITCH 2 IN POSITION CORRESPONDING TO THE DATA WHICH U WANT TO SEND AS IN PUT FROM PORT A e INTERRUPT 7 5 e ADJUST DIP SWITCH1 IN OFF POSITION e PRESS S3 AND HOLD IT THE CORRESPONDING PORT A LEDs WILL SHOW F0 THIS DISPLAY CAN BE CHANGED BY CHANGING THE OPERAND OF MVI A INSTRUCTION AT MEMORY LOCATION 900C IN ABOVE PROGRAM NOTE DON T PRESS S1 OR S2 SWITCH AFTER PUTTING DIP SWITCH 1 IN OFF POSITION WHILE PRESSING AND HOLDING S3 YOU CAN SEE THAT THE PORT A WORKING AS OUTPUT PORT 5B DEMONSTRATION PROGRAMS FOR ESA 51 TRAINER KIT EXAMPLE PROGRAMS FOR ESA 51 TRAINERS IN MODE 0 Example 1 Configure 8255A such that Port A amp Port B as an Output Port Execute the Program at 8000H PORT A F180H PORT B F181H PORT C F182H CTRL REG F183H ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 90 F1 83 MOV DPTR F183 8003 74 80 MOV A 80 PORT A amp B 8005 FO MOVX DPTR A AS OUTPUT 8006 90 F1 80 MOV DPTR 4F180 PORTS 8009 74 55 MOV A 455 800B FO MOVX DPTR A 800C 74 66 MOV A 66 800E A3 INC DPTR 800F FO MOVX DPTR A 8010 80 FE SJMP 8010 Example 2 Configure 8255A such that Port A as an Output amp Port B as an Input Execute the Program at 8000H ADDRESS OPCODE LABLE MNEMONIC COMMENTS Rap 8255A STUDY CARD USER MANUAL 8000 90 F1 83 MOV DPTR F183 8003 74 82 MOV A 82 PORT A AS
12. interrupt to J5 of the interface Example 5 The following program initializes 8255 Port A as Input configuration in Mode 1 Reading through the Port A Input output to the Port B If you change the input the same thing will be repeated Press S2 switch To simulate STB signal NOTE Put the jumper at PC3 INTERRUPT ENABLE REGISTER ADDRESS IS 0A8 ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 90 F1 83 MOV DPTR F183 INITIALIZE 8003 74 BO MOV A 40B0 8255 PORT A AS 8005 FO MOVX DPTR A INPUT IN MODE1 8006 74 09 MOV A 09 SET INTEA 8008 FO MOVX DPTR A 8009 75 A8 84 MOV 0A8 484 ENABLE 800C 80 FE SJMP 800C INTERRUPT ma 02 90 00 LJMP 9000 90 F1 80 MOV DPTR F180 9000 EO MOVX A CDPTR 9003 90 F1 81 MOV DPTR 4F181 9004 FO MOVX DPTR A 9007 02 90 00 SJMP 9000 9008 Example 6 The following program initializes 8255 Port B as Input configuration in Mode 1 Reading through Port B and Output to Port A If you change the input the same thing will be repeated at Port A LEDs Press S1 switch to simulate STB signal Note Put the jumper at PCO INTERRUPT ENABLE REGISTER ADDRESS IS 0A8 ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8003 74 86 MOV A 86 B as input in model 8005 FO MOVX DPTR A 8006 74 05 MOV A 05 RTS 8008 FO MOVX DPTR A 8009 75 A8 84 MOV 0A8 484 A 800c 80 FE SJMP 800C aka Rap 8255A STUDY CARD USER MANUAL 7 FFF3 02 90 00 LJMP 9000 9000 90 F1 80 M
13. or Mode 1 8255A Modes D7 D6 D5 D4 D3 D2 D1 DO 0 1 BSR Mode J 1 0 Mode Bit Set Reset For Port C Mode 0 Mode 1 Mode 2 Simple I O handshake Bi directional No effect on For ports TO for Data bus for port A 1 0 Mode A B amp C Ports A amp B Port C bits Port B either are used for in Mode 0 or 1 handshake Port C bits are used for handshake FIG 1 HAD 3 abo 8255A STUDY CARD USER MANUAL The BSR Mode is used to set or reset the bits in port C The I O mode is further divided into three modes Mode 0 Mode 1 and Mode 2 In Mode 0 all ports functions as simple I O ports Mode 1 is a Handshake mode where by ports A amp B use bits from port C as Handshake signals BLOCK DIAGRAM OF THE 8255A POWER gt 45V SUPPLIES GNP Group PA A T 0 Control 8 bit internal BI DIRECTIONA Data data bus DATA BUS Bus D7 Do lt Buffer WR Read 1 i A Eg Control vO Ag Control PB PB Logic RESET CS FIG 2 The block diagram shows two 8 bit ports A amp B and two 4 bit ports Cy and C the data bus buffer and control logic CONTROL LOGIC The control section has six lines Their functions and connections are as follows RD Read This control signal enables the Read operation When the signal is low the CPU reads data from a selected I O port of the 8255A WR Write This control signal enables the write operation When the signal goes low the CPU writes into a selected I O port or
14. the program at 2000H ADDRESS OPCODE LABLE MNEMONICS COMMENTS 0000 2000 BA 86 00 MOVW DX 0086 PORT A AS 0000 2003 BO 90 MOVB AL 90 OUTPUT 0000 2005 EE OUTB DX PORT B AS INPUT 0000 2006 BA 80 00 LOOP MOVW DX 40080 0000 2009 EC INB DX 0000 200A F6 DO NOTB AL 0000 200C BA 82 00 MOVW Dx 0082 0000 200F EE OUTB DX AL 0000 2010 E9 F3 FF JMP LOOP D 8255A STUDY CARD USER MANUAL 46 ao UD Example 4 PROGRAM FOR BSR MODE The following program initializes the 8255 ports and then it write a BSR control word to set bit PC7 and reset it after certain delay MOV AL OFH MOV DX 0086H OUT DX AL CALL DELAY MOV AL OEH MOV DX 0086H OUT DX AL INT 3 DELAY PUSH AX PUSH CX MOV CX 0030H L2 MOV AX OFFFH L1 DEC AX JNZ L1 LOOP L2 POP CX POP AX RET From the analysis of the routine the following points can be noted 4 To Set Reset bits in port C a control word is written in the control register and not in port C 5 BSR control word affects only one bit in port C 6 The BSR control word does not effect the I O mode ao GD 8255A STUDY CARD USER MANUAL 47 EXAMPLE PROGRAMS FOR 8255A IN MODE1 OPERATION NOTE For testing the Mode 1 and Mode 2 opertation Connect Buffered external interrupt to J5 of the interface Example 5 The following program initializes the 8255 Port A as Input in model and Port B as on output in Mode 0 Read through input port A and ouptut to Port B the same
15. thing will be displayed on the data field of the trainer display Press S2 switch to simulate STB signal Note Put the jumper at PC3 Address Opcode Label Mnemonics Comments 0000 2000 BC 00 30 INIT MOVW SP 3000 Initialize 0000 2003 BO BO MOVB AL 0BO 8255 0000 2005 BA 86 00 MOVW DX 0086 PortA in 0000 2008 EE OUTB DX AL Model 0000 2009 BO 09 MOVB AL 09 Input 0000 200B BA 86 00 MOVW DX 0086 Port Bin 0000 200E EE OUTB DX AL Mode0 0000 200F C7 06 24 01 00 21 MOVW 0124 42100 Output 0000 2015 C7 06 26 01 00 00 MOVW 0126 0000 Set 0000 201B BA F4 FF MOVW DX FFF4 INTE A 0000 201E BO 13 MOVB AL 13 In BSR mode 0000 2020 EE OUTB DX AL Interrupt 0000 2021 BA F6 FF MOVW DX FFF6 vector 0000 2024 BO 48 MOVB AL 48 table 0000 2026 EE OUTB DX AL 0000 2027 BO 03 MOVB AL 03 Initialize 0000 2029 EE OUTB DX AL 8259 0000 202A BO FD MOVB AL FD 0000 202C EE OUTB DX AL 0000 202D FB STI 0000 202E E9 FC FF WI JMP WI ORG 2100H Automatic 0000 2100 E9 11 00 JMP ISR end 0000 2103 OA OA DB OAH OAH Of 0000 2105 OD DB ODH conversion 0000 2106 50 6F 72 74 DB 50H 6FH 72H 74H 0000 210A 20 56 61 6C 75 20H 56H 61H 6CH 75H 0000 210F 65 20 3D 20 MES 65H 20H 3DH 20H 0000 2113 00 00H 0000 2114 B8 00 00 MOVW AX 40000 0000 2117 8E CO ISR MOVW ES AX 0000 2119 8E C8 k MOVW CS AX 0000 211B 2E cs 0000 211C 8D 16 03 21 LEA DX 2103 Display 0000 2120 8B C2 MOVW AX DX routine 0000 2122 9A 13 00 00 FE CALLS FE00 0013 Read from 0000 2127
16. trainer 0000 212E EE OUTB DX AL 0000 212F 9A 64 1B 00 FE CALLS FE00 1B64 0000 2134 9A OA OB OO FF CALLS FF00 0BOA 0000 2139 BO OD MOVB AL 0D 0000 213B 9A 50 1B 00 FE CALLS FE00 1B50 0000 2140 CF IRET ao UD O D 8255A STUDY CARD USER MANUAL 42 Example 8 The following program initializes 8255A port B as output in Model press S1 switch to simulate ACKg Note Put the jumper at PCO to connect external interrupt INT1 signal to J5 of interface Address Opcode Label Mnemonics Comments 0000 2000 BC 00 30 Init MOVW SP 3000 Initializes 8255 0000 2003 BO 84 MOVB AL 84 with Port B in 0000 2005 BA 86 00 MOVW DX 0086 mode 1 0 p 0000 2008 EE OUTB DX AL 0000 2009 B0 05 MOVB AL 05 0000 200B BA 86 00 MOVW DX 0086 Re Bym 0000 200E EE OUTB DX AL Interrupt Vector 0000 200F BE 24 01 MOVW SI 0124 0000 2012 B8 00 21 MOVW AX 2100 table 0000 2015 89 04 MOVW SI AX 0000 2017 46 INCW SI 0000 2018 46 INCW SI 0000 2019 B8 00 00 MOVW Ax 0000 0000 201C 89 04 MOVW SI AX 0000 201E BA F4 FF MOVW DX FFF4 0000 2021 BO 13 MOVB AL 413 Initializes 8259 0000 2023 EE OUTB DX 0000 2024 BA F6 FF MOVW DX FFF6 0000 2027 BO 48 MOVB AL 48 0000 2029 EE OUTB DX 0000 202A BO 03 MOVB AL 03 Automatic end oF 0000 202C EE OUTB DX dise 0000 202D BO FD MOVB AL FD 0000 202F EE OUTB DX AL 0000 2030 FB WI STI 0000 2031 E9 FC FF JMP WI ORG 2100 0000 2100 BA 80 00 MOVW Dx 0080 0000 2103 B8
17. trainer display 900C C3 00 90 JMP UP Example 13 The following program initializes 8255A Port B as an Input in Model and Port A as an output in Mode 0 Press S1 switch to simulate STB Note Put the jumper at PCO connect external interrupt from JP10 of trainer RST 7 5 signal to J5 of interface ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E 86 MVI A 86 PortB as an input in Model 8002 D3 83 OUT 83 8004 3E 05 MVI A 05 Set INTE 8006 D3 83 OUT 83 8008 3E 1B MVI A 1B Enable RST 7 5 800A 30 SIM OAD UULI 8255A STUDY CARD USER MANUAL 21 800B 800C FE12 9000 9002 9004 9006 9009 900C c3 0C 80 c3 00 90 Loop UP EI JMP Loop 9000 IN 81 OUT 80 B 00 FE75 0578 STA CALL Read through Port B amp Output to Port A amp display it on datafield of the trainer display 8255A MODE2 Bi directional Input Output Example 14 The following program initializes 8255 in Mode 2 Press S3 switch to simulate ACK Note Put the jumper at PC3 Connect external interrupt from JP10 i e RST 7 5 to J5 of interface ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E CO MVI A CO PortA as an output in Mode2 8002 D3 83 OUT 83 8004 3E OD MVI A OD Set INTE 8006 D3 83 OUT 83 8008 3E 1B MVI A 1B 800A 30 SIM Enable RST 7 5 800B FB EI 800C c3 0C 80 Loop JMP Loop FE12 c3 00 90 JMP 9000 9000 DB 80 UP
18. 0 2000H This program reads the data from Port A and Output the same data on PortB ADDRESS OPCODE LABLE MNEMONICS COMMENTS 0000 2000 BA C6 FF MOVW DX 0FFC6 Initialize 8255 0000 2003 BO 90 MOVB AL 90 PortB as o p 0000 2005 EE LOOP OUTB DX Port A as I P 0000 2006 BA CO FF MOVW DX 0FFCO 0000 2009 EC INB DX R lue from PortA 0000 200A F6 DO NOTB AL aS R R ort 0000 200C BA C2 FF MOVW DX 0FFC2 Anai lina Sao 0000 200F EE OUTB DX AL ee coe tam 0000 2010 E9 F3 FF JMP LOOP or Repeat process ao UD O D 8255A STUDY CARD USER MANUAL 54 Example 4 PROGRAM FOR BSR MODE The following program initializes the 8255 ports and then it write a BSR control word to set bit PC7 and reset it after certain delay Address Opcode Label Mnemonics Comments 0000 2000 BO 80 MOV AL 80 Initialize 8255 0000 2002 BA C6 FF MOV DX FFC6 Port A B amp C 0000 2005 EE OUT AL DX As ouptut 0000 2006 BO OF RPT MOV AL OF 0000 2008 BA C6 FF MOV DX FFC6 Set PC7 using Bit 0000 200B EE OUT AL DX Set Reset mode 0000 200C E8 OB 00 CALL DELAY 0000 200F BO OE MOV AL OE 0000 2011 BA C6 FF MOV DX FFC6 Reset PC7 0000 2014 EE OUT AL DX 0000 2015 E8 02 00 CALL DELAY 0000 2018 E2 EC LOOP RPT 0000 201A 50 DELAY PUSH AX Delay Routine 0000 201B 51 PUSH CX 0000 201C B9 30 00 MOV CX 0030 0000 201F B8 FF OF MOV AX OF FF 0000 2022 48 DEC AX 0000 2023 75 FD JNE 2022 0000 2025 E2 F8 LOOP 201F 0000 2027 59
19. 0 DB 80 UP IN 80 Read through Port A and 9002 D3 81 OUT 81 Output to port B 9004 06 00 MVI B 00 6 9006 32 F1 8F STA 8FF1 display it on data field 9009 CD 4C 04 CALL 044C of the trainer display 900C c3 00 90 JMP UP Example 6 The following program initializes 8255 Port B as Input in Mode 1 and Port A as on Output in Mode 0 Read through Port B and Output to Port A as well as data field of the trainer display the program is in a continuous loop If you change the Input the same thing will be repeated at Port B LEDs as well as data field of the trainer display Press S1 switch to simulate STB signal Note Put the jumper at PC Connect external interrupt from J4 of pin 7 i e RST 5 5 to J5 of interface ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E 86 MVI A 86 PortB as an input in Model 6 8002 D3 83 OUT 83 Port A as an output in Mode0 8004 3E 05 MVI A 05 Set INTE 8006 D3 83 OUT 83 8008 3E 0E MVI A 0E Enable RST 5 5 800A 30 SIM 800B FB EI 800C c3 0C 80 Loop JMP Loop 8FB3 c3 00 90 JMP 9000 9000 DB 81 UP IN 81 Read through Port B and 9002 D3 80 OUT 80 output to Port A and display 9004 06 00 MVI B 00 it on data field of the 9006 32 Fl 8F STA 8FF1 the trainer display 9009 CD 4C 04 CALL 044C 900C c3 00 90 JMP UP Example 7 The following program initializes 8255 Port A as an Input in Model and Port B as an Output in Mode 0 Read through Input and Output to the data field o
20. 0 DB 81 UP IN 81 Read through portB 6 9002 D3 80 OUT 80 output through portA 9004 06 00 MVI B 00 6 9006 32 F1 8F STA 8FF1 display it on datafield 9009 CD 4C 04 CALL 044C of 900C C3 00 90 JMP UP the trainer display Example 9 The following program initializes 8255 Port A as an Input in Mode 2 and Port B as Output in Mode 0 press S2 switch Note Put the jumper at PC connect external interrupt RST 6 5 signal to J5 of interface S2 switch to simulate STB ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E DO MVI A DO PortA as on input in Mode2 amp 8002 D3 83 OUT 83 portB as on output in Mode 0 8004 3E 09 MVI A 09 Set INTE 8006 D3 83 OUT 83 8008 3E 0D MVI A 0D Enable RST 6 5 800A 30 SIM Ha 8255A STUDY CARD USER MANUAL l 800B FB EI 800C C3 0C 80 Loop JMP Loop 8FB9 c3 00 90 JMP 9000 9000 DB 80 UP IN 80 Read through port A 6 9002 D3 81 OUT 81 output through port B 9004 06 00 MVI B 00 6 9006 32 F1 8F STA 8FF1 display it on data field of 9009 CD 4C 04 CALL 044C the trainer display 900C c3 00 90 JMP UP Example 10 The following program initializes 8255A Port B as an Output in Model press S1 switch to simulate ACK3 Note Put the jumper at PC and connect external interrupt RST 7 5 signal to J5 of interface ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E A4 MVI A A4 Port B an output in Mode 8002 D3 83 OUT 83 1 8004
21. 3E 05 MVI A 05 8006 D3 83 OUT 83 Set INTEa 8008 3E 1B MVI A 1B 800A 30 SIM Enable RST 7 5 800B FB EI 800C C3 OC 80 Loop JMP Loop 8FBF c3 00 90 JMP 9000 9000 3E 55 MVI A 55 9002 06 00 MVI B 00 Load Accumulator with 55 9004 32 F1 8F UP STA 8FF1 amp display it on datafield 9006 CD 4C 04 CALL 044C of the trainer display 6 9009 D3 81 OUT 81 On the corresponding LEDs 900B c3 00 90 JMP UP of port B Example 11 The following program initializes 8255A Port A as on Output in Model Use RST 7 5 as an interrupt signal press switch to simulate ACK Note Put the jumper at PC and connect external interrupt RST 7 5 signal to J5 of interface ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E AO MVI A AO PortA as an output in 8002 D3 83 OUT 83 Model 8004 3E OD MVI A OD 8006 D3 83 OUT 83 Set INTE 8008 3E 1B MVI A 1B HAD 8255A STUDY CARD USER MANUAL 13 800A 30 SIM Enable RST 7 5 800B FB EI 800C c3 0C 80 Loop JMP Loop 8FBF c3 00 90 JMP 9000 9000 3E 55 UP MVI A 55 9002 06 00 MVI B 00 Load Accumulator with 55 9004 32 F1 8F STA 8FF1 amp display it on datafield 9006 CD 4C 04 CALL 044C of the trainer display amp 9009 D3 80 OUT 80 On the corresponding LEDs 900B c3 00 90 JMP UP of port A Example 12 The following program initializes 8255A Port A as an Input in Model and Port B as an output in Mode 0 Press S2 switch to simulate STB 4 Note P
22. 55 00 MOVW AX 40055 0000 2106 BB 10 00 MOVW BX 40010 0000 2109 F6 DO NOTB AL Count Value 0000 210B EE OUTB DX AL 0000 210C B9 FF FF BACK MOVWCX FFFF 0000 210F E2 FE LOOP 210F 0000 2111 4B DECW BX 0000 2112 75 F5 JNE BACK 0000 2114 CF IRET HAD 8255A STUDY CARD USER MANUAL 43 Example 9 The following program initializes 8255A port A an an output in Model press S3 switch to simulate ACK Note Put the jumper at PC3 to connect external interrupt INT1 signal to J5 of interface Address Opcode Label Mnemonics Comments 0000 2000 BC 00 30 Init MOVW SP 3000 Initializes 8255 0000 2003 BO AO MOVB AL A0 with 0000 2005 BA 86 00 MOVW DX 0086 Port JA in mode 0000 2008 EE OUTB DX AL 1 0 p 0000 2009 BO OD MOVB AL 0D Set INTE A in 0000 200B BA 86 00 MOVW DX 0086 BSR mode 0000 200E EE OUTB DX AL Interrupt Vector 0000 200F BE 24 01 MOVW SI 0124 0000 2012 B8 00 21 MOVW AX 42100 table 0000 2015 89 04 MOVW SI AX 0000 2017 46 INCW SI 0000 2018 46 INCW SI 0000 2019 B8 00 00 MOVW AX 40000 0000 201C 89 04 MOVW SI AX 0000 201E BA F4 FF MOVW DX 4FFF4 0000 2021 BO 13 MOVB AL 413 Initializes 8259 0000 2023 EE OUTB DX 0000 2024 BA F6 FF MOVW DX FFF6 0000 2027 BO 48 MOVB AL 48 0000 2029 EE OUTB DX 0000 202A BO 03 MOVB AL 03 Automatic end oF 0000 202C EE OUTB DX dise 0000 202D BO FD MOVB AL FD 0000 202F EE WI OUTB DX AL 0000 2030 FB STI 0000 2031 E9 FC FF JMP WI ORG 2100 0000 2100 BA 82 00 MOVW Dx 0082 0000 2103 B8 55 00
23. 6 EE OUTB DX AL 0000 2027 BO 03 MOVB AL 03 0000 2029 EE OUTB DX AL Automatic end 0000 202A BO FD MOVB AL FD Of conversion 0000 202C EE OUTB DX AL 0000 202D FB STI 0000 202E E9 FC FF WI JMP WI ORG 2100H 0000 2100 E9 11 00 JMP ISR 0000 2103 OA OA DB OAH 0AH 0000 2105 OD MES DB ODH 0000 2106 50 6F 72 74 DB 50H 6FH 72H 74H 0000 210A 20 56 61 6C 75 20H 56H 61H 6CH 75H 0000 210F 65 20 3D 20 65H 20H 3DH 20H 0000 2113 00 00H 0000 2114 B8 00 00 MOVW Ax 0000 0000 2117 8E CO MOVW ES AX 0000 2119 8E C8 ISR MOVW CS AX 0000 211B 2E cs 0000 211C 8D 16 03 21 LEA DX 2103 Display routine 0000 2120 8B C2 MOVW AX DX Read from 0000 2122 9A 13 00 00 FE CALLS FE00 0013 PortB 0000 2127 BA 82 00 MOVW DX 0082 Display in 0000 212A EC INB AL DX Serial mode OR 0000 212B BA 80 00 MOVW DX 0080 Data field of 0000 212E EE OUTB DX AL nec 0000 212F 9A 52 00 00 FE CALLS FE00 0052 0000 2134 BO OD MOVB AL 0D 0000 2136 9A 00 00 00 FE CALLS FF00 0000 0000 213B CF IRET HD 8255A STUDY CARD USER MANUAL 49 O Example 7 The following program initializes the 8255A in Input in Mode 2 and Port B as output in Mode 0 Press S2 switch to simulate STB Address Opcode Label Mnemonics Comments 0000 2000 BC 00 30 INIT MOVW SP 3000 Initialize 8255 0000 2005 BA 86 00 MOVW DX 0086 Input 0000 2008 EE OUTB DX AL Port Bin Mode0 0000 2009 BO 09 MOVB AL 05 Output 0000 200
24. 7 will set and reset continuously ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 74 80 MOV A 80 8002 90 F1 83 MOV DPTR 0F183 8005 FO MOVX DPTR A 8006 74 OF MOV A 0F 8008 FO MOVX DPTR A 8009 12 80 13 LCALL 8013 CALL DELAY 800c 14 DEC A 800D FO MOVX DPTR A 800E 12 80 13 LCALL 8013 8011 80 YY SIMP 8006 CALL DELAY 8013 7F FF MOV R7 40FF 8015 7E FF MOV R6 0FF DELAY SUB 8017 DE FE DJNZ R6 8017 RUTINE DF FA DJNZ R7 8015 32 RET From the analysis of the routine the following points can be noted 1 To Set Reset bits in port C a control word is written in the control register and not in port C 2 BSR control word affects only one bit in port C 3 The BSR control word does not affect the I O mode EXAMPLE PROGRAMS FOR MODE 1 NOTE For testing the Mode 1 and Mode 2 operation Connect buffered external interrupt to J5 of the interface Example 5 The following program initializes 8255 Port A as Input in Mode 1 Reading through the Port A Input output to the Port B Press S2 switch to simulate STB signal Note Put the jumper at PC3 Connect external interrupt from J4 of pin 7 i e INT 1 to the J5 of interface ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 90 F1 83 MOV DPTR F183 Initialize 8255 8003 74 BO MOV A 0BO Port A as input 8005 FO MOVX DPTR A in model 8006 74 09 MOV A 09 Set INTEA 8008 FO MOVX DPTR A 8009 75 A8 84 MOV 0A8 84 Enable interrupt 800c 80 FE SJMP 800C FFF3 02 90
25. 8003 74 84 MOV A 084 A as input in model 8005 FO MOVX DPTR A 8006 74 05 MOV A 05 Set INTEA 8008 FO MOVX DPTR A 8009 74 55 MOV A 55 800B 90 F1 81 MOV DPTR F181 800E FO MOVX GDPTR A 800F 75 A8 84 MOV 0A8 484 z 8012 80 FE SJMP 8012 Enable interrupt FFF3 02 90 00 LJMP 9000 9000 74 AA MOV A AA 9002 90 F1 81 MOV DPTR F181 9005 FO MOVX DPTR A 9006 80 F8 SJMP 9000 Example 9 The following program initializes 8255A in Mode 2 Press S3 switch To simulate STB signal Note Put the jumper at PC3 Connect external interrupt from J4 of pin 7 i e INT 1 to the J5 of interface ADDRESS OPCODE LABL MNEMONIC COMMENTS E 8000 90 F1 83 MOV Initialize 8255 Port A 8003 74 CO DPTR F183 as input in mode2 8005 FO MOV A 0C0 8006 74 OD MOVX DPTR A Set INTEA 8008 FO MOV A 0D 8009 75 A8 84 MOVX DPTR A Enable interrupt 800c 80 FE MOV 0A8 84 SJMP 800C FFF3 02 90 00 LJMP 9000 9000 90 F1 80 READ DIP SWITCH2 9003 EO MOV POSITION AND DISPLAY 9004 A3 DPTR F180 IT ON THE DATA FIELD 9005 FO MOVX A DPTR OF THE TRAINER AND ON 9006 75 60 INC DPTR THE PORT B LEDs 9008 12 01 9B MOVX DPTR A 900B 74 FO MOV 60 A SHOW F0 ON PORT A LEDS 900D 15 82 LCALL 019B AFTER PUTING 900F FO MOV A 0FO DIPSWITCH 1 IN OFF 2020 POr EE DECS POSITION AND THEN MOVX DPTR A PRESSING AND HOLDING SJMP 9000 S3 D L ao QO 8255A STUDY CARD USER MANUAL 27 FOLLOWING PROCEDURE SHOULD BE FOLLOWED FOR
26. 8006 D3 83 OUT 83 SET PC7 8008 CD 10 80 CALL DELAY SOME DELAY 800B 3E OF MVI A 0EH 800D D3 83 OUT 83H RESET PC7 800F 76 HLT 8010 3E FF DELAY MVI A OFFH 8012 OE FF L2 MVI C OFFH 8014 OD L1 DCR C 8015 C2 14 80 JNZ L1 8018 3D DCR A 8019 12 80 JNZ L2 c RET From the analysis of the routine the following points can be noted 1 To Set Reset bits in port C a control word is written in the control register and not in port C 2 BSR control word affects only one bit in port C 3 The BSR control word does not affect the I O mode EXAMPLE 5 PROGRAMS FOR MODE 1 NOTE For testing the Mode 1 and Mode 2 operation connect buffered external interrupt to J5 of the interface 1 The following program initializes 8255A Port A as on Input in Mode 1 and Port B as an Output in Mode 0 Read through Input amp Output to the data field of the trainer display If you change the Input and the same will be repeated at data field amp Port B Press S2 switch to simulate STB signal Note Put the jumper at PC connect External interrupt from J4 of pin 7 i e RST 5 5 to J5 of interface D 8255A STUDY CARD USER MANUAL 10 ao UD ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E BO MVI A BO PortA as input in Model 8002 D3 83 OUT 83 8004 3E 09 MVI A 09 Set INTE 8006 D3 83 OUT 83 8008 3E 0E MVI A OE Enable RST 5 5 800A 30 SIM 800B FB EI 800C C3 0C 80 Loop JMP Loop 8FB3 C3 00 90 JMP 9000 900
27. 8255A STUDY CARD 1 INTRODUCTION Electro Systems Associates Private Limited ESA manufactures trainers for most of the popular microprocessors viz 8085 Z 80 8031 8086 88 68000 and 80196 ESA offers a variety of modules which can be interfaced to these trainers These modules can be effectively used for teaching training in the Laboratories The 8255A PPI card incorporates Intel s 8255A This Interface is designed to explain all the facilities available in 8255A Functional description of 8255A implementation of the circuit and some simple software programs are presented in this manual 2 DESCRIPTION OF THE CIRCUIT The interface has 4 Dipswitches mentioned as SW1 SW2 SW3 and SW4 The 8255A port A and port B can be configured in software as output by using the control word and keeping the switches SW1 and SW3 in O P position and switches SW2 and SW4 will have no effect Configure 8255A port A as input in software while keeping SW1 in I P position After executing the program it reads the status of SW2 position Similarly for port B configure 8255A port B as input in software while keeping SW3 in I P position After executing the program it reads the status of SW4 position 8 RED LEDs are provided to read the status of port A and 8 GREEN LEDs are provided to read the status of port B and YELLOW LEDs are provided to read the signal status mentioned on the interface Switches S1 S2 and S3 are provided to simulate STB or ACK sign
28. A8 00 80 MOVW DX 40080 portB 0000 212A EC INB DX Display In 0000 212B BA 82 00 MOVW DX 0082 Serial mode 0000 212D EE OUTB DX OR 0000 212E 9A 52 00 00 FE CALLS FE00 0052 Data field 0000 2133 BO OD MOVB AL 0D of trainer 0000 2135 9A 00 00 00 FE CALLS FF00 0000 0000 213A CF IRET ao UD O D 8255A STUDY CARD USER MANUAL 48 Example 6 The following program initializes 8255 Port B as Input in mode 1 as Port A as on output in Mode 0 Reading through Port B and Output to Port A as well as data field of the trainer display The program is in the continuous loop I f you change the Input the same thing will be repeated at port B LEDs as well as data field of the trainer display Press S1 Switch to simulate STBp signal Note Put the jumper at PC0 Address Opcode Label Mnemonics Comments 0000 2000 BC 00 30 INIT MOVW SP 3000 Initialize 8255 0000 2003 BO 86 MOVB AL 86 PortB in Model 0000 2005 BA 86 00 MOVW DX 40086 Input 0000 2008 EE OUTB DX AL PortA in Mode0 0000 2009 BO 05 MOVB AL 05 Output 0000 200B BA 86 00 MOVW DX 0086 Set INTE B 0000 200E EE OUTB DX AL In BSR mode 0000 200F C7 06 24 01 00 21 MOVW 0124 2100 0000 2015 C7 06 26 01 00 00 MOVW 0126 0000 Interrupt vector 0000 201B BA F4 FF MOVW DX FFF4 table 0000 201E BO 13 MOVB AL 13 0000 2020 EE OUTB DX AL Initialize 8259 0000 2021 BA F6 FF MOVW DX FFF6 0000 2024 BO 48 MOVB AL 48 0000 202
29. B BA 86 00 MOVW DX 0086 Set INTEA 0000 200E EE OUTB DX AL In BSR mode 0000 200F C7 06 24 01 00 21 MOVW 0124 2100 Interrupt vector 0000 2015 C7 06 26 01 00 00 MOVW 0126 0000 0000 201B BA F4 FF MOVW DX FFF4 table 0000 201E BO 13 MOVB AL 13 0000 2020 EE OUTB DX AL Initialize 8259 0000 2021 BA F6 FF MOVW DX FFF6 0000 2024 BO 48 MOVB AL 48 0000 2026 EE OUTB DX AL 0000 2027 BO 03 MOVB AL 03 0000 2029 EE OUTB DX AL Automatic end 0000 202A BO FD MOVB AL FD Of conversion 0000 202C EE OUTB DX AL 0000 202D FB WI STI 0000 202E E9 FC FF JMP WI ORG 2100H 0000 2100 E9 11 00 JMP ISR 0000 2103 OA OA DB OAH 0AH 0000 2105 OD DB ODH 0000 2106 50 6F 72 74 DB 50H 6FH 72H 74H 0000 210A 20 56 61 6C 75 MES 20H 56H 61H 6CH 75H 0000 210F 65 20 3D 20 65H 20H 3DH 20H 0000 2113 00 00H 0000 2114 B8 00 00 MOVW AX 40000 0000 2117 8E CO MOVW ES AX 0000 2119 8E C8 MOVW CS AX 0000 211B 2E cs 0000 211C 8D 16 03 21 ISR LEA DX 2103 Display routine 0000 2120 8B C2 MOVW AX DX Read from portB 0000 2122 9A 13 00 00 FE CALLS FE00 0013 Display in Serial 0000 2127 A8 00 80 MOVW Dx 0082 mode OR 0000 212A EC INB AL DX Data field of 0000 212B BA 82 00 MOVW DX 0080 trainer 0000 212E EE OUTB DX AL 0000 212F 9A 52 00 00 FE CALLS FE00 0052 0000 2134 BO OD MOVB AL 0D 0000 2136 9A 00 00 OO FE CALLS FF00 0000 0000 213B CF IRET D 8255A STUDY CARD USER MANUAL 50 ao UD O
30. DX 0080 0000 2103 B8 55 00 MOVW AxX 0055 0000 2106 BB 10 00 MOVW BX 0010 0000 2109 F6 DO NOTB AL 0000 210B EE OUTB DX AL Count Value 0000 210C B9 FF FF BACK movwcx FFFF 0000 210F E2 FE LOOP 210F 0000 2111 4B DECW BX 0000 2112 75 F5 JNE BACK 0000 2114 CF IRET D 8255A STUDY CARD USER MANUAL 45 ao UD 6B DEMONSTRATION PROGRAMS FOR ESA 86 88 3 TRAINER KIT Example 1 Configure 8255A such that PORT A amp PORT B as an output Execute the program at 2000H ADDRESS OPCODE LABLE MNEMONICS COMMENTS ORG 2000 0000 2000 BO 80 MOVB AL 80 PORTA amp BAS 0000 2002 BA 86 00 MOVW DX 0086 OUTPUT PORTS 0000 2005 EE OUTB DX 0000 2006 BO 55 LOOP MOVB AL 455 0000 2008 BA 80 00 MOVW DX 0080 0000 200B EE OUTB DX 0000 200C BO AA MOVB AL AA 0000 200E BA 82 00 MOVW DX 0082 0000 2011 EE OUTB DX AL 0000 2012 E9 Fl FF JMP LOOP Example 2 Configure 8255A such that PORT A as an output amp PORT B as an input Execute the program at 2000H ADDRESS OPCODE LABLE MNEMONICS COMMENTS 0000 2000 BA 86 00 MOVW DX 0086 PORT A AS 0000 2003 BO 82 MOVB AL 82 OUTPUT 0000 2005 EE OUTB DX PORT B AS 0000 2006 BA 82 00 LOOP MOVW DX 0082 INPUT 0000 2009 EC INB DX 0000 200A F6 DO NOTB AL 0000 200C BA 80 00 MOVW Dx 0080 0000 200F EE OUTB DX AL 0000 2010 E9 F3 FF JMP LOOP Example 3 Configure 8255A such that PORT A as an Input amp PORT B as an Output Execute
31. Example 8 The following program initializes 8255A port B as an output in Model Press S1 switch to simulate ACKg Note Put the jumper at PCO to connect external interrupt INT1 signal to J5 of interface Address Opcode Label Mnemonics Comments 0000 2000 BC 00 30 Init MOVW SP 3000 Initializes 8255 0000 2003 BO 84 MOVB AL 84 with Port B in 0000 2005 BA 86 00 MOVW DX 0086 mode 1 0 p 0000 2008 EE OUTB DX AL 0000 2009 B0 05 MOVB AL 05 0000 200B BA 86 00 MOVW DX 0086 Re Bym 0000 200E EE OUTB DX AL Interrupt Vector 0000 200F BE 24 01 MOVW SI 0124 0000 2012 B8 00 21 MOVW AX 2100 table 0000 2015 89 04 MOVW SI AX 0000 2017 46 INCW SI 0000 2018 46 INCW SI 0000 2019 B8 00 00 MOVW Ax 0000 0000 201C 89 04 MOVW SI AX 0000 201E BA F4 FF MOVW DX FFF4 0000 2021 BO 13 MOVB AL 413 Initializes 8259 0000 2023 EE OUTB DX 0000 2024 BA F6 FF MOVW DX FFF6 0000 2027 BO 48 MOVB AL 48 0000 2029 EE OUTB DX 0000 202A BO 03 MOVB AL 03 Automatic end oF 0000 202C EE OUTB DX dise 0000 202D BO FD MOVB AL FD 0000 202F EE WI OUTB DX AL 0000 2030 FB STI 0000 2031 E9 FC FF JMP WI ORG 2100 0000 2100 BA 80 00 MOVW Dx 0080 0000 2103 B8 55 00 MOVW AX 40055 0000 2106 BB 10 00 MOVW BX 40010 0000 2109 F6 DO NOTB AL Count Value 0000 210B EE OUTB DX AL 0000 210C B9 FF FF BACK MOVWCX FFFF 0000 210F E2 FE LOOP 210F 0000 2111 4B DECW BX 0000 2112 75 F5 JNE BACK 0000 2114 CF IRET HAD 8255A STUDY CARD USER MANUAL 51
32. Example 9 The following program initializes 8255A port A an output in Model press S3 switch to simulate ACK Note Put the jumper at PC3 to connect external interrupt INT1 signal to J5 of interface Address Opcode Label Mnemonics Comments 0000 2000 BC 00 30 Init MOVW SP 3000 Initializes 8255 0000 2003 BO A0 MOVB AL A0 with 0000 2005 BA 86 00 MOVW DX 0086 Port As die hode 0000 2008 EE OUTB DX AL 1 o p 0000 2009 BO OD MOVB AL 0D Set INTE A in 0000 200B BA 86 00 MOVW DX 0086 BSR mode 0000 200E EE OUTB DX AL Interrupt Vector 0000 200F BE 24 01 MOVW SI 0124 0000 2012 B8 00 21 MOVW AX 42100 table 0000 2015 89 04 MOVW SI AX 0000 2017 46 INCW SI 0000 2018 46 INCW SI 0000 2019 B8 00 00 MOVW AX 40000 0000 201C 89 04 MOVW SI AX 0000 201E BA F4 FF MOVW DX HFFF4 0000 2021 BO 13 MOVB AL 413 Initializes 8259 0000 2023 EE OUTB DX 0000 2024 BA F6 FF MOVW DX FFF6 0000 2027 BO 48 MOVB AL 48 0000 2029 EE OUTB DX 0000 202A BO 03 MOVB AL 03 Automatic end of 0000 202C EE OUTB DX inversion 0000 202D BO FD MOVB AL FD 0000 202F EE WI OUTB DX AL 0000 2030 FB STI 0000 2031 E9 FC FF JMP WI ORG 2100 0000 2100 BA 82 00 MOVW Dx 0082 0000 2103 B8 55 00 MOVW AX 40055 0000 2106 BB 10 00 MOVW BX 40010 0000 2109 F6 DO NOTB AL Count Value 0000 210B EE OUTB DX AL 0000 210C B9 FF FF BACK MOVWCX FFFF 0000 210F E2 FE LOOP 210F 0000 2111 4B DECW BX 0000 2112 75 F5 JNE BACK 0000 2114 CF IRET D 8255A STUDY CARD USER
33. LOCATION 900C IN ABOVE PROGRAM NOTE DON T PRESS S1 OR S2 SWITCH AFTER PUTTING DIP SWITCH 1 IN OFF POSITION WHILE PRESSING AND HOLDING S3 YOU CAN SEE THAT THE PORT A WORKING AS OUTPUT PORT 4B DEMONSTRATION PROGRAMS FOR ESA 85 2 TRAINER KIT RAM addresses for Interrupts RST 5 5 gt FE06H RST 65 gt FE0CH Example 1 Configure 8255A such that Port A X Port B as an Output Port Execute the program at 8000H Port A EQU 80H Port B EQU 81H Control Register EQU 83H ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E 80 MVI A 80 Port A and Port B as 8002 D3 83 OUT 83 an Output Port 8004 3E 55 BACK MVI A 55 Output 55 to Port A 8006 D3 80 OUT 80 Corresponding LEDs 8008 3E AA MVI A AA glows 800A D3 81 OUT 81 Output AA to Port B 800C C3 04 80 JMP BACK Corresponding LEDs glows Repeat the same Example 2 Configure 8255A such that Port A as on Output and Port B as an Input Execute the program at 8000H ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E 82 MVI A 82 PortB as Input and PortA as 8002 D3 83 OUT 83 Out put Read the Dip Switches 8004 DB 81 IN 81 through port B Output to 8006 D3 80 OUT 80 Port A Stop the Program 8008 DF RST 3 HD 8255A STUDY CARD USER MANUAL 16 O Example 3 Configure 8255A such that Port A as an Input and Port B as an Output Execute the program at 8000H ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E 90
34. MANUAL 52 ao UD Example 10 The following program initializes 8255A in Mode2 This program simulates output operation of mode2 Press S3 switch to simulate ACK Note Put the jumper at PC3 to connect external interrupt INT1 signal to J5 of interface Address Opcode Label Mnemonics Comments ORG 2000 0000 2000 BC 00 30 Init MOVW SP 3000 Initializes 8255A 0000 2003 BO CO MOVB AL CO Mode 2 0000 2005 BA 86 00 MOVW DX 0086 0000 2008 EE OUTB DX AL 0000 2009 BO OD MOVB AL 0D 0000 200B BA 86 00 MOVW DX 0086 se L An 0000 200E EE OUTB DX AL 0000 200F BE 24 01 MOVW SI 0124 0000 2012 B8 00 21 MOVW AX 42100 Interrupt Vector 0000 2015 89 04 MOVW SI AX table 0000 2017 46 INCW SI 0000 2018 46 INCW SI 0000 2019 B8 00 00 MOVW AX 40000 0000 201C 89 04 MOVW SI AX 0000 201E BA F4 FF MOVW DX FFF4 0000 2021 BO 13 MOVB AL 13 0000 2023 EE OUTB DX Initializes 8259 0000 2024 BA F6 FF MOVW DX FFF6 0000 2027 BO 48 MOVB AL 448 0000 2029 EE OUTB DX 0000 202A BO 03 MOVB AL 03 0000 202C EE OUTB DX Automatic end of 0000 202D BO FD MOVB AL FD conversion 0000 202F EE WI OUTB DX AL 0000 2030 FB STI 0000 2031 E9 FC FF JMP WI ORG 2100 0000 2100 BA 80 00 MOVW DX 40080 0000 2103 B8 55 00 MOVW AX 0055 0000 2106 BB 10 00 MOVW BX 0010 0000 2109 F6 DO NOTB AL 0000 210B EE OUTB DX AL Count Value 0000 210C B9 FF FF BACK MOVW CX FFFF 0000 210F E2 FE LOOP 210F 0000 2111 4B DECW BX 0000 2112 75 F5 JNE BACK 0000 2114 CF IRET
35. MOV A 90 PORT A AS 8005 FO MOVX DPTR A I P PORT B 8006 90 F1 80 MOV DPTR F180 AS O P 8009 EO MOVX A DPTR 800A A3 INC DPTR 800B FO MOVX DPTR A 800C 80 F8 SJMP 8006 EXAMPLE PROGRAM OF BSR MODE SINGLE BIT SET RESET FEATURE Any of the eight bits of Port C can be set or reset using a single OUT instruction But before that programmer will have to initialize 8255 in any input out put mode Example 4 PROGRAMS FOR BSR MODE Write a BSR control word to set bits PC7 and reset them after certain delay This is a continuous loop PC7 will set and reset continuously ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 74 80 MOV A 80 8002 90 F1 83 MOV DPTR 0F183 8005 FO MOVX DPTR A 8006 74 OF MOV A 0F 8008 FO MOVX DPTR A 8009 12 80 13 LCALL 8013 ATLAS 800c 14 DEC A 800D FO MOVX DPTR A 800E 12 80 13 LCALL 8013 8011 80 80 06 SIMP 8006 CALL DELAY 8013 7F FF MOV R7 0F F 8015 7E FF MOV R6 0FF DELAY SUB 8017 DE FE DJNZ R6 8017 RUTINE DF FA DJNZ R7 8015 32 RET From the analysis of the routine the following points can be noted 1 To Set Reset bits in port C a control word is written in the control register and not in port C 2 BSR control word affects only one bit in port C D 8255A STUDY CARD USER MANUAL 24 ao UD 3 The BSR control word does not affect the I O mode EXAMPLE PROGRAMS FOR MODE 1 NOTE For testing the Mode 1 and Mode 2 operation Connect buffered external
36. MOVW AX 40055 0000 2106 BB 10 00 MOVW BX 0010 0000 2109 F6 DO NOTB AL Count Value 0000 210B EE BACK OUTB DX AL 0000 210C B9 FF FF MOVWCX FFFF 0000 210F E2 FE LOOP 210F 0000 2111 4B DECW BX 0000 2112 75 F5 JNE BACK 0000 2114 CF IRET D 8255A STUDY CARD USER MANUAL 44 ao UD Example 10 The following program initializes 8255A in Mode2 This program simulates output operation of mode2 Press S3 switch to simulate ACK Note Put the jumper at PC3 to connect external interrupt INT1 signal to J5 of interface Address Opcode Label Mnemonics Comments 0000 2000 BC 00 30 Init MOVW SP 3000 Initializes 8255A 0000 2003 BO CO MOVB AL CO Mode 2 0000 2005 BA 86 00 MOVW DX 40086 0000 2008 EE OUTB DX AL 0000 2009 BO OD MOVB AL 0D p 0000 200B BA 86 00 MOVW DX 40086 Re ee a 0000 200E EE OUTB DX AL 0000 200F BE 24 01 MOVW SI 40124 0000 2012 B8 00 21 MOVW AX 42100 Interrupt Vector 0000 2015 89 04 MOVW SI AX table 0000 2017 46 INCW SI 0000 2018 46 INCW SI 0000 2019 B8 00 00 MOVW Ax 0000 0000 201C 89 04 MOVW SI AX 0000 201E BA F4 FF MOVW DX FFF4 0000 2021 BO 13 MOVB AL 13 0000 2023 EE OUTB DX Initializes 8259 0000 2024 BA F6 FF MOVW DX FFF6 0000 2027 BO 48 MOVB AL 48 0000 2029 EE OUTB DX 0000 202A BO 03 MOVB AL 03 0000 202C EE OUTB DX Automatic end of 0000 202D BO FD MOVB AL FD c nversi n 0000 202F EE OUTB DX AL 0000 2030 FB WI STI 0000 2031 E9 FC FF JMP WI ORG 2100 0000 2100 BA 80 00 MOVW
37. Mode 1 and Port B as an Output in Mode 0 Read through Input amp Output to the data field of the trainer display If you change the Input and the same will be repeated at data field amp Port B Press S2 switch to simulate STB signal Note Put the jumper at PC connect External interrupt from JP12 of trainer i e RST 5 5 to J5 of interface ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E BO MVI A BO PortA as input in Model 8002 D3 83 OUT 83 8004 3E 09 MVI A 09 Set INTE 8006 D3 83 OUT 83 HAD 8255A STUDY CARD USER MANUAL 17 8008 3E OE MVI A OE Enable RST 5 5 800A 30 SIM 800B FB EI 800C c3 0C 80 Loop JMP Loop FE06 c3 00 90 JMP 9000 9000 DB 80 UP IN 80 Read through Port A and 9002 D3 81 OUT 81 Output to port B 9004 06 00 MVI B 00 6 9006 32 75 FE STA FE75 display it on datafield of 9009 CD 78 05 CALL 0578 the trainer display 900C C3 00 90 JMP UP Example 6 The following program initializes 8255 Port B as Input in Mode 1 and Port A as on Output in Mode 0 Read through Port B and Output to Port A as well as data field of the trainer display the program is in a continuous loop If you change the Input the same thing will be repeated at Port B LEDs as well as data field of the trainer display Press S1 switch to simulate STB signal Note Put the jumper at PCy Connect external interrupt from JP12 of trainer i e RST 5 5 to JS of interface ADDRESS
38. OAD 19 UULI 8255A STUDY CARD USER MANUAL 8008 3E 0D MVI A 0D Enable RST 6 5 800A 30 SIM 800B FB EI 800C c3 0C 80 Loop JMP Loop FEOC C3 00 90 JMP 9000 9000 DB 80 UP IN 80 Read through port A amp 9002 D3 81 OUT 81 Output through port B 9004 06 00 MVI B 00 6 9006 32 75 FE STA FE75 display it on datafield of 9009 CD 78 05 CALL 0578 the trainer display 900C c3 00 90 JMP UP Example 10 The following program initializes 8255A Port B as an Output in Model press S1 switch to simulate ACKp Note Put the jumper at PC and connect external interrupt from JP10 of trainer i e RST 7 5 signal to J5 of interface ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E A4 MVI A A4 Port B an output in Mode 1 8002 D3 83 OUT 83 8004 3E 05 MVI A 05 Set INTE 8006 D3 83 OUT 83 8008 3E 1B MVI A 1B Enable RST 7 5 800A 30 SIM 800B FB EI 800C C3 0C 80 Loop JMP Loop FE12 c3 00 90 JMP 9000 9000 3E 55 UP MVI A 55 Load Accumulator with 55 9002 06 00 MVI B 00 amp display it on datafield of 9004 32 75 FE STA FE75 the trainer display amp On the 9006 CD 78 05 CALL 0578 corresponding LEDs of port B 9009 D3 81 Out 81 900B c3 00 90 JMP UP Example 11 The following program initializes 8255A Port A as on Output in Model Use RST 7 5 as an interrupt signal press switch S3 to simulate ACK Note Put the jumper at PC and connect external interrupt from JP10 of traine
39. OPCODE LABLE MNEMONIC COMMENTS 8000 3E 86 MVI A 86 PortB as an input in Model 6 8002 D3 83 OUT 83 Port A as an output in Mode0 8004 3E 05 MVI A 05 Set INTE 8006 D3 83 OUT 83 8008 3E 0E MVI A 0E Enable RST 5 5 800A 30 SIM 800B FB EI 800C c3 0C 80 Loop JMP Loop FE06 C3 00 90 JMP 9000 9000 DB 81 UP IN 81 Read through Port B and 9002 D3 80 OUT 80 output to Port A and display 9004 06 00 MVI B 00 it on data field of the 9006 32 75 FE STA FE75 the trainer display 9009 CD 78 05 CALL 0578 900C c3 00 90 JMP UP Example 7 The following program initializes 8255 Port A as an Input in Model and Port B as an Output in Mode 0 Read through Input and Output to the data field of the trainer display Press S2 switch to simulate STB Note Put the jumper at PC3 Connect external interrupt from JP11 of trainer i e Bufferd RST 6 5 to J5 of interface ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E BO MVI A BO PortA as an input in Model amp 8002 D3 83 OUT 83 PortB as an output in Mode 0 8004 3E 09 MVI A 09 Set INTE 8006 D3 83 OUT 83 8008 3E OD MVI A OD Enable RST 6 5 OAD 18 abo 8255A STUDY CARD USER MANUAL 800A 30 SIM 800B FB EI 800C C3 0C 80 Loop JMP Loop FEOC C3 00 90 JMP 9000 9000 DB 80 UP IN 80 Read through Port A 6 9002 D3 81 OUT 81 output to port B 9004 06 00 MVI B 00 6 9006 32 75 FE STA FE75 display it on data field of 9009 CD 78 05 CALL 0578
40. OV DPTR F181 9003 EO MOVX A DPTR 9004 90 F1 81 MOV DPTR F180 9007 FO MOVX DPTR A 9008 80 F6 SJMP 9000 Example 7 The following program initializes Port A as output port in Mode 1 and writes the Data 55H to Port A upon giving ACK signal it will interrupt the processor Press S3 switch to simulate ACK signal Then it will write Data AAH to port A Note Put the jumper at PC3 INTERRUPT ENABLE REGISTER ADDRESS IS 0A8 ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 90 F1 83 MOV DPTR F183 Initialize 8255 Port 8003 74 AO MOV A 0A0 A as input in model 8005 FO MOVX DPTR A 8006 74 OD MOV A 0D Set INTEA 8008 FO MOVX DPTR A 8009 74 55 MOV A 55 800B 90 F1 80 MOV DPTR F180 800E FO MOVX DPTR A 800F 75 A8 84 MOV 0A8 484 8012 80 FE SJMP 8012 Enable interrupt FFF3 02 90 00 LJMP 9000 Interrupt 9000 74 AA MOV A AA routine 9002 90 F1 80 MOV DPTR F180 9005 FO MOVX DPTR A 9006 80 F8 SJMP 9000 Example 8 The following program initializes Port B as output port in Mode 1 and writes the Data 55H to Port B upon giving ACK signal it will interrupt the processor Press S1 switch to simulate ACKg signal Then it will write Data AAH to port B Note Put the jumper at PCO INTERRUPT ENABLE REGISTER ADDRESS IS 0A8 ADDRESS OPCODE LABLE MNEMONIC COMMENTS D 8255A STUDY CARD USER MANUAL 26 ao UD 8000 90 F1 83 MOV DPTR F183 Initialize 8255 Port
41. PLAY 9004 A3 DPTR F180 IT ON THE DATA FIELD 9005 FO MOVX A DPTR OF THE TRAINER AND ON 9006 75 60 INC DPTR THE PORT B LEDs 9008 12 01 9B MOVX DPTR A 900B 74 FO MOV 60 A SHOW F0 ON PORT A LEDS 900D 15 82 LCALL 019B g AFTER PUTING 900F FO MOV A 0FO DIPSWITCH 1 IN OFF 9010 80 EE DEC 82 POSITION AND THEN MOVX DPTR A PRESSING AND HOLDING SJMP 9000 S3 FOLLOWING PROCEDURE SHOULD BE FOLLOWED FOR USING ABOVE PROGRAM IN MODE 2 e ADJUST DIP SWITCH 1 IN ON POSITION AND DIP SWITCH 2 IN POSITION CORRESPONDING TO THE DATA WHICH U WANT TO SEND AS IN PUT FROM PORT A INTERRUPT 7 5 e ADJUST DIP SWITCH1 IN OFF POSITION PRESS S3 AND HOLD IT THE CORRESPONDING PORT A LEDs WILL SHOW F0 THIS DISPLAY CAN BE CHANGED BY CHANGING THE OPERAND OF MVI A INSTRUCTION AT MEMORY LOCATION 900C IN ABOVE PROGRAM NOTE DON T PRESS S1 OR S2 SWITCH AFTER PUTTING DIP SWITCH 1 IN OFF POSITION WHILE PRESSING AND HOLDING S3 YOU CAN SEE THAT THE PORT A WORKING AS OUTPUT PORT SC DEMONSTRATION PROGRAMS FOR ESA 51E ESA 51E VER 4 00 TRAINER KIT EXAMPLE PROGRAMS FOR ESA 51E TRAINERS IN MODE 0 Example 1 Configure 8255A such that Port A amp Port B as an Output Port Execute the Program at 8000H Ha 8255A STUDY CARD USER MANUAL PORT A F180H PORT B F181H PORT C F182H CTRL REG F183H ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 90 F1 83 MOV DPTR F183 8003 74 80 MOV A 80 PORT
42. POP CX 0000 2028 58 POP AX 0000 2029 c9 RET From the analysis of the routine the following points can be noted e To Set Reset bits in port C a control word is written in the control register and not in port C e BSR control word affects only one bit in port C e The BSR control word does not affect the I O mode D 8255A STUDY CARD USER MANUAL 55 ao UD 1 Gye a amp ao 2 8 L l 90511 h 005141 tN Q 2 90S1 4 on oost SA I i 31V10S1 30 9 S dY Oda did AVM 8 AS 80511 LA 0 P 1 P HIGH LOW VER No NZ B k 5 6 7 T D 8255A STUDY CARD USER MANUAL 56 ao UD Azas i Inti INT ELECTRO SYSTENS ASSOCIATES PYT LTD Rap 8255A STUDY CARD USER MANUAL 7
43. PORT 6 DEMONSTRATION PROGRAMS FOR 8086 SERIES KITS 6A DEMONSTRATION PROGRAMS FOR ESA 86 88 2 TRAINER KIT For Interfacing Study cards with ESA 86 2 trainer kit study card adapter is required Study card adapter contains two 50 pin Male Connectors namely J1 and J2 and two 26 pin Male Connectors namely J3 and J4 Connectors J1 and J2 of ESA 86 2 must be connected with J1 and J2 connectors of adapter using two 50 pin FRC Connectors J3 and J4 of adapter must be with J3 and J4 connectors of study card using two 26 pin FRC Example 1 PROGRAMS FOR 8255 MODE 0 CONFIGURATION ADDRESS OPCODE LABLE MNEMONICS COMMENTS ORG 2000 0000 2000 BO 80 MOVB AL 80 PORT A amp BAS 0000 2002 BA 86 00 MOVW DX 0086 OUTPUT PORTS 0000 2005 EE OUTB DX 0000 2006 BO 55 MOVB AL 55 0000 2008 BA 80 00 MOVW Dx 0080 0000 200B EE OUTB DX 0000 200C BO AA MOVB AL AA 0000 200E BA 82 00 MOVW Dx 0082 0000 2011 EE OUTB DX AL Rap 8255A STUDY CARD USER MANUAL 37 0000 2012 E9 F1 FF JMP Example 2 Configure 8255A such that PORT A as an output amp PORT B as an input Execute the program at 2000H ADDRESS OPCODE LABLE MNEMONICS COMMENTS 0000 2000 BA 86 00 MOVW DX 40086 PORTA AS 0000 2003 BO 82 MOVB AL 82 OUTPUT 0000 2005 EE LOOP OUTB DX PORTB AS 0000 2006 BA 82 00 MOVW Dx 0082 INPUT 0000 2009 EC INB DX 0000 200A F6 DO NOTB AL 0000 200C BA 80 00 MOVW DX 40080 0000 200F EE OUTB DX
44. als in Mode 1 and in Mode 2 Provision is made for connecting buffered external interrupt RST 7 5 etc to J5 and keeping the jumper JP2 at PCy or PC depending on the type of Mode The interface has got 4 connectors named as J2 J3 J4 and P1 J3 and J4 are reserved for MPS85 2 trainer and P1 is reserved for ESA85 2 trainer All the 24 I O lines are brought out to the J2 connector But port C lines are used as handshake signals so user cannot use those lines Only port A and port B lines are available to user B 8255A STUDY CARD USER MANUAL 1 ao UD 3 0 INSTALLATION AND CONFIGURATION The Connector details for connecting the Study Card to different Trainers are mentioned below CONNECTORS ON TRAINER CONNECTORS ON STUDY CARD CONNECTORS ON TRAINER ADAPTER STUDY CARD J3 26 PIN No Adapter reguired J3 26 PIN MPS 85 3 J4 26 PIN J4 26 PIN No Adapter reguired ESA 85 2 P1 50 PIN P1 50 PIN J1 50 PIN J3 26 J1 50 PIN PIN J3 26 PIN ESA 86 88 2 3 J2 50 PIN J2 50 PIN J4 26 J4 26 PIN PIN J6 26 PIN No Adapter required J3 26 PIN ESA 86E J7 26 PIN J4 26 PIN J1 50 PIN J3 26 J3 26 PIN ESA 31 51 J5 50 PIN PIN J4 26 PIN J4 26 PIN P3 50 PIN P1 26 PIN J3 26 PIN ESA51E VER 3 J4 50 PIN P2 26 J4 26 PIN PIN J4 26 PIN No Adapter reguired J3 26 PIN ESA 51E VER 4 J6 26 PIN J4 26 PIN External Study Card Adapter is reguired to connect t
45. de Label_ Mnemonics Comments 0000 2000 BC 00 30 INIT MOVW SP 3000 Initialize 8255 0000 2005 BA 86 00 MOVW DX 0086 Input 0000 2008 EE OUTB DX AL Port Bin Mode0 0000 2009 BO 09 MOVB AL 05 Output 0000 200B BA 86 00 MOVW DX 0086 Set INTE A 0000 200E EE OUTB DX AL In BSR mode 0000 200F C7 06 24 01 00 21 MOVW 0124 2100 Tnterrust vector 0000 2015 C7 06 26 01 00 00 MOVW 0126 0000 P 0000 201B BA F4 FF MOVW DX FFF4 table 0000 201E BO 13 MOVB AL 13 N 0000 2020 EE OUTB DX AL Initialize 8259 0000 2021 BA F6 FF MOVW DX FFF6 0000 2024 BO 48 MOVB AL 48 0000 2026 EE OUTB DX AL 0000 2027 BO 03 MOVB AL 03 0000 2029 EE OUTB DX AL Automatic end 0000 202A BO FD MOVB AL FD Of conversion 0000 202C EE OUTB DX AL 0000 202D FB STI 0000 202E E9 FC FF WI JMP WI ORG 2100H 0000 2100 E9 11 00 JMP ISR 0000 2103 OA OA DB OAH 0AH 0000 2105 OD DB ODH 0000 2106 50 6F 72 74 DB 50H 6FH 72H 74H 0000 210A 20 56 61 6C 75 20H 56H 61H 6CH 75H 0000 210F 65 20 3D 20 MES 65H 20H 3DH 20H 0000 2113 00 00H 0000 2114 B8 00 00 MOVW AX 40000 0000 2117 8E CO MOVW ES AX 0000 2119 8E C8 MOVW CS AX 0000 211B 2E cs 0000 211C 8D 16 03 21 LEA DX 2103 Display routine 0000 2120 8B C2 MOVW AX DX Read from portB 0000 2122 9A 55 1B 00 FE ISR CALLS FE00 1B55 Display in both 0000 2127 A8 00 80 MOVW Dx 0082 Serial mode and 0000 212A EC INB AL DX Data field of 0000 212B BA 82 00 MOVW Dx 0080
46. f the trainer display Press S2 switch to simulate STB Note Put the jumper at PC3 Connect external interrupt from pin 3 of J3 i e Buffered RST 6 5 to J5 of interface ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E BO MVI A BO PortA as an input in Model 8002 D3 83 OUT 83 amp Bap 8255A STUDY CARD USER MANUAL 11 8004 3E 09 MVI A 09 PortB as an output in Mode 8006 D3 83 OUT 83 0 8008 3E OD MVI A OD Set INTE 800A 30 SIM 800B FB EI Enable RST 6 5 800C C3 0C 80 Loop JMP Loop 8FB9 C3 00 90 JMP 9000 9000 DB 80 UP IN 80 Read through Port A 6 9002 D3 81 OUT 81 output to port B 9004 06 00 MVI B 00 6 9006 32 F1 8F STA 8FF1 display it on data field of 9009 CD 4C 04 CALL 044C the trainer display 900C c3 00 90 JMP UP Example 8 The following program initializes 8255A Port B as Input in Mode 1 and Port A as an Output in Mode 0 Read through Port B and Output to Port A as well as data field of the trainer display press S1 switch to simulate STBp signal Note Put the jumper at PCO Connect external interrupt from pin3 of J3 i e RST6 5 to J5 of interface ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E 86 MVI A 86 PortB as an input amp 8002 D3 83 OUT 83 PortA as an output 8004 3E 05 MVI A 05 Set INTE 8006 D3 83 OUT 83 8008 3E 0D MVI A OD Enable RST 6 5 800A 30 SIM 800B FB EI 800C c3 0C 80 Loop JMP Loop 8FB9 c3 00 90 JMP 9000 900
47. he Study Card with the Trainer Connect the Study Card by following the above mentioned connectors with FRCs respectively Switch Off Power to the Trainer while connecting the Study Card Press Reset after giving power to the Trainer ao QO B 8255A STUDY CARD USER MANUAL 8255A PROGRAMMABLE PERIPHERAL INTERFACE The Intel 8255A is a general purpose programmable parallel I O device designed for use with Intel Microprocessor It can be programmed to transfer data under various conditions from simple I O to Interrupt I O The 8255A has 24 I O PINS that can be grouped primarily in two 8 Bit parallel ports A amp B with the remaining 8 bits as port C The 8 bits of port can be used as individual bits or be grouped in two 4bit ports C upper and C tower The functions of these ports are defined by writing a control word in the control register Figure 1 shows all the functions of 8255A classified according to two modes the Bit Set Reset BSR mode and the I O mode The I O mode is further divided into three modes Mode 0 Mode 1 and Mode 2 In mode 0 all ports function as simple I O ports Mode 1 is a handshake mode whereby ports A and or B use bits from port C as handshake signals In the handshake mode two types of I O data transfer can be implemented status checks and interrupt In Mode 2 port A can be set up for bi directional data transfer using handshake signals from port C and port B can be set up either in Mode 0
48. initializes Port B as output port in Mode 1 and writes the Data 55H to Port B upon giving ACK signal it will interrupt the processor Press S1 switch to simulate ACK signal Then it will write Data AAH to port B Note Put the jumper at PC0 Connect external interrupt from J4 of pin 7 i e INT 1 to the J5 of interface ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 90 F1 83 MOV DPTR F183 Initialize 8255 8003 74 84 MOV A 084 Port B as out 8005 FO MOVX DPTR A put in model 8006 74 05 MOV A 05 Set INTEB 8008 FO MOVX DPTR A 8009 74 55 MOV A 55 800B 90 F1 81 MOV DPTR F181 800E FO MOVX DPTR A 800F 75 A8 84 MOV 0A8 84 Enable 8012 80 FE SJMP 8012 interrupt FFF3 02 90 00 LJMP 9000 9000 74 AA MOV A AA 9002 90 F1 81 MOV DPTR F181 9005 FO MOVX DPTR A 9006 80 F8 SJMP 9000 Example 9 The following program initializes 8255A in Mode 2 Press S3 switch To simulate STB signal D 8255A STUDY CARD USER MANUAL 31 ao UD Note Put the jumper at PC3 Connect external interrupt from J4 of pin 7 i e INT 1 to the J5 of interface ADDRESS OPCODE LABL MNEMONIC COMMENTS E 8000 90 F1 83 MOV Initialize 8255 Port A 8003 74 CO DPTR F183 as input in mode2 8005 FO MOV A 0CO 8006 74 OD MOVX DPTR A Set INTEA 8008 FO MOV A 0D 8009 75 A8 84 MOVX DPTR A Enable interrupt 800c 80 FE MOV 0A8 84 SJMP 800C FFF3 02 90 00 LJMP 9000 9000 90 F1 80 READ DIP SWITCH2 9003 EO MOV POSITION AND DIS
49. nterrupt from J4 of pin 7 i e INT 1 to the J5 of interface ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 90 F1 83 MOV DPTR F183 Initialize 8255 Port 8003 74 86 MOV A 86 B as input in model 8005 FO MOVX DPTR A 8006 74 05 MOV A 05 Set INTEB 8008 FO MOVX DPTR A 8009 75 A8 84 MOV 0A8 484 800c 80 FE SJMP 800C Priable intermit FFF3 02 90 00 LJMP 9000 9000 90 F1 80 MOV DPTR F181 9003 EO MOVX A DPTR 9004 90 F1 81 MOV DPTR F180 9007 FO MOVX DPTR A 9008 80 F6 SJMP 9000 Example 7 The following program initializes Port A as output port in Mode 1 and writes the Data 55H to Port A upon giving ACK signal it will interrupt the processor Press S3 switch to simulate ACK signal Then it will write Data AAH to port A Note Put the jumper at PC3 Connect external interrupt from J4 of pin 7 i e INT 1 to the J5 of interface Rap 8255A STUDY CARD USER MANUAL R ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 90 F1 83 MOV DPTR F183H Initialize 8255 Port 8003 74 AO MOV A 0A0H A as Out Put in 8005 FO MOVX DPTR A model 8006 74 OD MOV A 0D 8008 FO MOVX DPTR A Set INTEA 8009 74 55 MOV A 55 800B 90 F1 80 MOV DPTR F180 800E FO MOVX DPTR A 800F 75 A8 84 MOV 0A8 84 8012 80 FE SJMP 8012 k Enable interrupt FFF3 02 90 00 LJMP 9000 9000 74 AA MOV A AA 9002 90 F1 80 MOV DPTR F180 aaa 9005 FO MOVX GDPTR A SUB 9006 80 F8 SJMP 9000 Routine Example 8 The following program
50. om J4 of pin 7 i e INT 1 to the J5 of interface ADDRESS OPCODE LABL MNEMONIC COMMENTS E 8000 90 F1 83 MOV Initialize 8255 Port A 8003 74 CO DPTR F183 as input in mode2 8005 FO MOV A 0CO 8006 74 OD MOVX DPTR A Set INTEA 8008 FO MOV A 0D 8009 75 A8 84 MOVX DPTR A Enable interrupt 800c 80 FE MOV 0A8 84 SJMP 800C FFF3 02 90 00 LJMP 9000 9000 90 F1 80 READ DIP SWITCH2 9003 EO MOV POSITION AND DISPLAY 9004 A3 DPTR F180 IT ON THE DATA FIELD 9005 FO MOVX A DPTR OF THE TRAINER AND ON 9006 75 60 INC DPTR THE PORT B LEDs 9008 12 01 9B MOVX DPTR A 900B 74 FO MOV 60 A SHOW F0 ON PORT A LEDS 900D 15 82 LCALL 019B 7 AFTER PUTING 900F FO MOV A 0FO DIPSWITCH 1 IN OFF 2010 oo an DEC 82 POSITION AND THEN MOVX DPTR A PRESSING AND HOLDING SJMP 9000 S3 FOLLOWING PROCEDURE SHOULD BE FOLLOWED FOR USING ABOVE PROGRAM IN MODE D 8255A STUDY CARD USER MANUAL 36 ao UD 5 ADJUST DIP SWITCH 1 IN ON POSITION AND DIP SWITCH 2 IN POSITION CORRESPONDING TO THE DATA WHICH U WANT TO SEND AS IN PUT FROM PORT A 6 INTERRUPT 7 5 7 ADJUST DIP SWITCH1 IN OFF POSITION 8 PRESS S3 AND HOLD IT THE CORRESPONDING PORT A LEDs WILL SHOW F0 THIS DISPLAY CAN BE CHANGED BY CHANGING THE OPERAND OF MVI A INSTRUCTION AT MEMORY LOCATION 900C IN ABOVE PROGRAM NOTE DON T PRESS S1 OR S2 SWITCH AFTER PUTTING DIP SWITCH 1 IN OFF POSITION WHILE PRESSING AND HOLDING S3 YOU CAN SEE THAT THE PORT A WORKING AS OUTPUT
51. onding LEDs 8008 3E AA MVI A AA glows 800A D3 81 OUT 81 Output AA to Port B 800C c3 04 80 JMP BACK Corresponding LEDs glows Repeat the same Example 2 Configure 8255A such that Port A as on Output and Port B as an Input Execute the program at 8000H ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E 82 MVI A 82 PortB as Input and 8002 D3 83 OUT 83 PortA as Output 8004 DB 81 IN 81 ReadtheDipSwitchesthr 8006 D3 80 OUT 80 oughportB 8008 EF RST 5 Output to Port A Stop the Program Example 3 Configure 8255A such that Port A as an Input and Port B as an Output Execute the program at 8000H ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E 90 MVI A 90 Port A as Input and Port B as 8002 D3 83 OUT 83 Output 8004 DB 80 IN 80 Read the Dipswitches through 8006 D3 81 OUT 81 Port B 8008 EF RST 5 Output to Port B Stop the Program SINGLE BIT SET RESET FEATURE Bap 8255A STUDY CARD USER MANUAL 2 Important Note Any of the eight bits of Port C can be set or reset using a single OUT instruction But before that user will have to initialize 8255 in an out put mode because during reset condition 8255 ports are in input mode EXAMPLE 4 PROGRAMS FOR BSR MODE Write a BSR control word to set bits PC7 and reset them after certain delay ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E 80 MYVI A 80H 8002 D3 83 OUT 83 8004 3E OF MVI A 0FH
52. play 900C c3 00 90 JMP UP 8255A MODE 2 Bi directional Input Output Example 14 The following program initializes 8255 in Mode 2 Press S3 switch to simulate ACK Note Put the jumper at PC3 Connect external interrupt from JP10 i e RST 7 5 to J5 of interface ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E CO MVI A CO PortA as an output in Mode2 8002 D3 83 OUT 83 8004 3E 0D MVI A OD Set INTE 8006 D3 83 OUT 83 8008 3E 1B MVI A 1B 800A 30 SIM Enable RST 7 5 800B FB EI 800C c3 0C 80 Loop JMP Loop FE12 C3 00 90 JMP 9000 9000 DB 80 UP IN 80 READ DIP SWITCH2 POSITION 9002 D3 81 OUT 81 AND DISPLAY IT ON THE DATA 9004 06 00 MVI B 00 FIELD OF THE TRAINER AND ON 9006 32 75 FE STA FE75 THE PORT B LEDs 9009 CD 78 05 CALL 0578 900C 3E FO MVI A FO SHOW FO ON PORT A LEDS 900E D3 80 OUT 80 AFTER PUTINGING DIPSWITCH 1 9010 C3 00 90 JMP UP IN OFF POSITION AND THEN PRESSING AND HOLDING S3 FOLLOWING PROCEDURE SHOULD BE FOLLOWED FOR USING THIS PROGRAM IN MODE 2 KEEP DIP SWITCH 1 IN ON POSITION AND DIP SWITCH 2 IN POSITION CORRESPONDING TO THE DATA WHICH U WANT TO SEND AS IN PUT FROM PORT A 1 INTERRUPT 7 5 Pa KEEP DIP SWITCH1 IN OFF POSITION D g255A STUDY CARD USER MANUAL 15 ao QO oO 4 PRESS S3 AND HOLD IT THE CORRESPONDING PORT A LEDs WILL SHOW F0 THIS DISPLAY CAN BE CHANGED BY CHANGING THE OPERAND OF MVI A INSTRUCTION AT MEMORY
53. r i e RST 7 5 signal to J5 of interface ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E AO MVI A AO PortA as an output in Model 8002 D3 83 OUT 83 8004 3E 0D MVI A OD Set INTE 8006 D3 83 OUT 83 8008 3E 1B MVI A 1B Enable RST 7 5 800A 30 SIM 800B FB EI Ha 8255A STUDY CARD USER MANUAL a 800C FE12 9000 9002 9004 9006 9009 900B c3 0C 80 c3 00 90 3E 55 32 75 FE CD 78 05 c3 00 90 Loop UP JMP Loop JMP 9000 MVI A 55 MVI B 00 STA FE75 CALL 0578 OUT 80 JMP UP Load Accumulator with 55 6 display it on datafield of the trainer display 6 On the corresponding LEDs of port A Example 12 The following program initializes 8255A Port A as an Input in Model and Port B as an output in Mode 0 Press S2 switch to simulate STB Note Put the jumper at PC3 connect external interrupt from JP10 of trainer i e RST 7 5 signal to J5 of interface ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E BO MVI A BO PortA as an input in Model 8002 D3 83 OUT 83 8004 3E 09 MVI A 09 Set INTE 8006 D3 83 OUT 83 8008 3E 1B MVI A 1B Enable RST 7 5 800A 30 SIM 800B FB EI 800C C3 0C 80 Loop JMP Loop FE12 c3 00 90 JMP 9000 9000 DB 80 UP IN 80 Read through Port A amp 9002 D3 81 OUT 81 output to Port B 9004 06 00 MVI B 00 6 9006 32 75 FE STA FE75 display it on at data field 9009 CD 78 05 CALL 0578 of the
54. t A as input 8005 FO MOVX DPTR A in model 8006 74 OD MOV A 0D Set INTEA 8008 FO MOVX DPTR A 8009 74 55 MOV A 455 800B 90 F1 80 MOV DPTR F180 800E FO MOVX DPTR A 800F 75 A8 84 MOV 0A8 84 Enable interrupt 8012 80 FE SJMP 8012 FFF3 02 90 00 LJMP 9000 9000 74 AA MOV A AA Interrupt 9002 90 F1 80 MOV DPTR F180 routine 9005 FO MOVX DPTR A 9006 80 F8 SJMP 9000 Example 8 The following program initializes Port B as output port in Mode 1 and writes the Data 55H to PortB upon giving ACK signal it will interrupt the processor Press S1 switch to simulate ACKp signal Then it will write Data AAH to port B Note Put the jumper at PCO Connect external interrupt from J4 of pin 7 i e INT 1 to the J5 of interface Rap 8255A STUDY CARD USER MANUAL gt ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 90 F1 83 MOV DPTR F183 8003 74 84 MOV A 84 8005 FO MOVX DPTR A Initialize 8255 8006 74 05 MOV A 405 Port B as input 8008 FO MOVX DPTR A in model 8009 74 55 MOV A 55 Set INTEB 800B 90 F1 81 MOV DPTR F181 800E FO MOVX DPTR A Enable interrupt 800F 75 A8 84 MOV 0A8 484 8012 80 FE SJMP 8012 FFF3 02 90 00 LJMP 9000 9000 74 AA MOV A AA 9002 90 F1 81 MOV DPTR F181 9005 FO MOVX DPTR A 9006 80 F8 SJMP 9000 Example 9 The following program initializes 8255A in Mode 2 Press S3 switch To simulate STB signal Note Put the jumper at PC3 Connect external interrupt fr
55. the analysis of the routine the following points can be noted 1 To Set Reset bits in port C a control word is written in the control register and not in port C 2 BSR control word affects only one bit in port C 3 The BSR control word does not affect the I O mode EXAMPLE PROGRAMS FOR IN MODE 1 D 8255A STUDY CARD USER MANUAL 29 ao UD NOTE For testing the Mode 1 and Mode 2 operation Connect buffered external interrupt to J5 of the interface Example 5 The following program initializes 8255 Port A as Input in Mode 1 Reading through the Port A Input output to the Port B Press S2 switch to simulate STB signal Note Put the jumper at PC3 Connect external interrupt from J4 of pin 7 i e INT 1 to the J5 of interface ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 90 F1 83 MOV DPTR F183 Initialize 8003 74 BO MOV A 0BO 8255 Port A as 8005 FO MOVX DPTR A input in model 8006 74 09 MOV A 09 Set INTEA 8008 FO MOVX DPTR A Enable 8009 75 A8 84 MOV 0A8 84 interrupt 800c 80 FE SJMP 800C FFF3 02 90 00 LJMP 9000 9000 90 F1 80 MOV DPTR F180 9003 EO MOVX A DPTR 9004 90 F1 81 MOV DPTR F181 9007 FO MOVX DPTR A 9008 80 F6 SJMP 9000 Example 6 The following program initializes 8255 Port B as Input in Mode 1 Reading through Port B and Output to PortA the program is in a continuous loop Press S1 switch to simulate STB signal Note Put the jumper at PCO Connect external i
56. the control register Bap 8255A STUDY CARD USER MANUAL L RESET Reset This is an active high signal it clears the control register and sets all ports in the input mode CS A and A1 These are device select signals CS is connected to a decoded address and A0 amp Al are generally connected to CPU address lines A amp Al respectively The 8255A BASIC operation is given in table 1 Control word Format Figure 3 shows a register called the control register The contents of this register called the Control word specify an I O function for each port This register can be accessed to write a control word when A0 and Al are at logic 1 as mentioned previously The register is not accessible for a Read operation Bit D7 of the control register specifies either the I O function or the Bit Set Reset function as classified in Figure 3 If bit D7 1 bits D6 DO determine I O functions in various modes as shown in Figure fig 3 If bit D7 0 port C operates in the Bit Set Reset BSR mode The BSR control word does not affect the functions of ports A and B the BSR mode will be described later To communicate with peripherals through the 8255A three steps are necessary Determine the addresses of ports A B and C and of the control register according to the Chip Select logic and address lines AO and A1 Write a control word in the control register Write I O instructions to communicate with peripherals through ports A B and C Con
57. the trainer display 900C C3 00 90 JMP UP Example 8 The following program initializes 8255A Port B as Input in Mode 1 and Port A as an Output in Mode 0 Read through Port B and Output to Port A as well as data field of the trainer display press S1 switch to simulate STB signal Note Put the jumper at PCO Connect external interrupt from JP11 of trainer i e RST 6 5 to JS of interface ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E 86 MVI A 86 PortB as an input amp 8002 D3 83 OUT 83 PortA as an output 8004 3E 05 MVI A 05 Set INTE 8006 D3 83 OUT 83 8008 3E 0D MVI A OD Enable RST 6 5 800A 30 SIM 800B FB EI 800C C3 0C 80 Loop JMP Loop FEOC c3 00 90 JMP 9000 9000 DB 81 UP IN 81 Read through port B amp 9002 D3 80 OUT 80 output through port A 9004 06 00 MVI B 00 6 9006 32 75 FE STA FE75 display it on data field 9009 CD 78 05 CALL 0578 of 900C C3 00 90 JMP UP the trainer display Example 9 The following program initializes 8255 Port A as an Input in Mode 2 and Port B as Output in Mode 0 Note Put the jumper at PC connect external interrupt from JP11 of trainer i e RST 6 5 signal to J5 of interface Press S2 switch to simulate STB ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E DO MVI A DO PortA as on input in Mode2 6 8002 D3 83 OUT 83 PortB as on output in Mode 0 8004 3E 09 MVI A 09 Set INTE 8006 D3 83 OUT 83
58. tional configuration provides a means for transferring I O data to or from a specified Port in conjunction with strobes or handshaking signals In mode 1 Port A and Port B use the lines on Port C to generate or accept these handshaking signals Mode 1 Basic Functional Definitions Two Groups Group A and Group B Each group contains one 8 bit data port and one 4 bit control data port The 8 bit data port can be either input or output Both inputs and outputs are latched The 4 bit port is used for control and status of the 8 bit data port Input Control Signal Definition STB Strobe Input A low on this input loads data into the input latch ao QO B 8255A STUDY CARD USER MANUAL 6 IBF Input Buffer Full F F A high on this output indicates that the data has been loaded into the input latch in essence an acknowledgement IBF is set by STB input being low and is reset by the rising edge of the RD Input INTR Interrupt Request A high on this output can be used to interrupt the CPU when an input device is requesting service INTR is set by the STB is a one IBF is a one and INTE is a one It is reset by the falling edge of RD This procedure allows an input device to request service from the CPU by simply strobing its data into the port INTE A Controlled by bit set reset of PC4 INTE B Controlled by bit set reset of PC Output Control Signal Definition OBF Output
59. trol word D7 D6 D5 D4 D3 D2 D1 DO Group B Port C Lower PC3 PCO 1 Input 0 Output Port B gt 1 Input 0 Output Mode Selection 0 Mode 0 1 Mode 1 Group A Port C Upper PC7 PC4 1 Input 0 Output Port A 1 Input 0 Output SSS Mode Selection B 8255A STUDY CARD USER MANUAL 5 ao UD 00 Mode 0 01 Mode 1 1X Mode 2 1 I O Mode 0 BSR Mode FIG 3 8255A BASIC OPERATION Ay Ao RD WR CS INPUT OPERATION READ 0 0 0 1 0 PORT A gt DATA BUS 0 1 0 1 0 PORT B gt DATA BUS 1 0 0 1 0 PORT C gt DATA BUS OUTPUT OPERATION WRITE 0 0 1 0 0 DATA BUS gt PORT A 0 1 1 0 0 DATA BUS gt PORT B 1 0 1 0 0 DATA BUS gt PORT C 1 1 1 0 0 DATA BUS gt CONTROL DISABLE FUNCTION X X X X 1 DATA BUS gt 3 STATE 1 1 0 1 0 ILLEGAL CONDITION X X 1 1 0 DATA BUS gt 3 STATE 8255A OPERATIONAL DESCRIPTION Mode 0 Basic Input Output This functional configuration provides simple Input and Output operations for each of the three ports No handshaking is required MODE 0 Basic Functional Definitions Two 8 bit ports and two 4 bit ports Any port can be input or output Outputs are latched Inputs are not latched 16 different Input Output configurations are possible in this Mode MODE 1 Strobed Input Output This func
60. udy card respectively Connector J2 of 8255A Study Card can be interfaced with any ESA Interfaces e g Logic Controller The interface derives its power via system connector No external power supply is required Provision is made for external power supply also EXAMPLE PROGRAMS FOR ESA 31 TRAINERS IN MODE 0 Example 1 Configure 8255A such that Port A amp Port B as an Output Port Execute the Program at 8000H PORT A F180H PORTB F181H PORTC F182H CTRL REG F183H ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 90 F1 83 MOV DPTR F183 8003 74 80 MOV A 80 PORT A amp B 8005 FO MOVX DPTR A AS OUTPUT 8006 90 F1 80 MOV DPTR F180 PORTS 8009 74 55 MOV A 55 800B FO MOVX DPTR A 800C 74 66 MOV A 66 800E A3 INC DPTR 800F FO MOVX DPTR A 8010 80 FE SJMP 8010 Example 2 Configure 8255A such that Port A as an Output amp Port B as an Input Execute the Program at 8000H ADDRESS OPCODE LABLE MNEMONIC COMMENTS Bap 8255A STUDY CARD USER MANUAL 8000 90 F1 83 MOV DPTR F183 8003 74 82 MOV A 82 PORT A AS 8005 FO MOVX DPTR A O P PORT B 8006 90 F1 81 MOV DPTR F181 AS I P 8009 EO MOVX A DPTR 800A 15 82 DEC 82 800C FO MOVX DPTR A DPL 82 800D 80 F7 SJMP 8006 Example 3 Configure 8255A such that Port A as an Input amp Port B as an Output Execute the Program at 8000H ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 90 F1 83 MOV DPTR F183 8003 74 90
61. us port Port A Control Signal Definition Bi directional Bus O INTR Interrupt Request A high on this output can be used to interrupt the CPU for both input or output operations Output Operations Rap 8255A STUDY CARD USER MANUAL OBF Output Buffer Full The OBF output will go low to indicate that the CPU has written data out to port A ACK Acknowledge A low on this input enables the tri state output buffer of port A to send out the data Otherwise the output buffer will be in the high impedance state INTE 1 The INTE Flip Flop Associated with OBF Controlled by bit set reset of PC Input Operations STB Strobe Input STB Strobe input A low on this input loads data into the input latch IBF Input Buffer Full F F A high on this output indicates that data has been loaded into the input latch INTE 2 The INTE Flip Flop Associated with IBF Controlled by bit set reset of PC4 B 8255A STUDY CARD USER MANUAL 8 ao UD 4 DEMONSTRATION PROGRAMS FOR 8085 SERIES KIT 4A DEMONSTRATION PROGRAMS FOR MPS 85 3 TRAINERKIT Example 1 Configure 8255A such that Port A amp Port B as an Output Port Execute the program at 8000H Port A EQU 80H Port B EQU 81H Control RegisterEQU 83H ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E 80 MVI A 80 Port A and Port B as 8002 D3 83 OUT 83 an Output Port 8004 3E 55 BACK MVI A 55 Output 55 to Port A 8006 D3 80 OUT 80 Corresp
62. ut the jumper at PCO connect external interrupt RST 7 5 signal to J5 of interface ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E BO MVI A BO PortA as an input in Model 8002 D3 83 OUT 83 PortB as an output in 8004 3E 09 MVI A 09 Mode0 Set INTE 8006 D3 83 OUT 83 8008 3E 1B MVI A 1B Enable RST 7 5 800A 30 SIM 800B FB EI 800C c3 0C 80 Loop JMP Loop 8FBF c3 00 90 JMP 9000 9000 DB 80 UP IN 80 Read through Port A 6 9002 D3 81 OUT 81 output to Port B 9004 06 00 MVI B 00 6 9006 32 F1 8F STA 8FF1 display it on at data 9009 CD 4C 04 CALL 044C field of the trainer 900C C3 00 90 JMP UP display Example 13 The following program initializes 8255A Port B as an Input in Model and Port A as an output in Mode 0 Press S1 switch to simulate STBg Note Put the jumper at PCO connect external interrupt RST 7 5 signal to J5 of interface ADDRESS OPCODE LABLE MNEMONIC COMMENTS 8000 3E 86 MVI A 86 PortB as an input in 8002 D3 83 OUT 83 Model PortA as an output 8004 3E 05 MVI A 05 in Mode0 Set INTE 8006 D3 83 OUT 83 8008 3E 1B MVI A 1B Enable RST 7 5 800A 30 SIM HAD 8255A STUDY CARD USER MANUAL 14 800B FB EI 800C C3 0C 80 Loop JMP Loop 8FBF C3 00 90 JMP 9000 9000 DB 81 UP IN 81 Read through Port B amp 9002 D3 80 OUT 80 Output to Port A 9004 06 00 MVI B 00 6 9006 32 F1 8F STA 8FF1 display it on datafield 9009 CD 4C 04 CALL 044C of the trainer dis
63. zes the 8255 Port A as Input in model and Port B as on output in Mode 0 Read through input port A and ouptut to Port B the same thing will displayed on the data field of the trainer display Press S2 switch to simulate STB signal Note Put the jumper at PC3 Address Opcode Label Mnemonics Comments 0000 2000 BC 00 30 INIT MOVW SP 3000 Initialize 8255 0000 2003 BO BO MOVB AL 0B0 PortA in 0000 2005 BA 86 00 MOVW DX 0086 Model 0000 2008 EE OUTB DX AL Input 0000 2009 BO 09 MOVB AL 09 Port Bin 0000 200B BA 86 00 MOVW DX 0086 Mode0 0000 200E EE OUTB DX AL Output 0000 200F C7 06 24 01 00 21 MOVW 0124 2100 Set INTE A 0000 2015 C7 06 26 01 00 00 MOVW 0126 0000 In BSR mod 0000 201B BA F4 FF MOVW DX FFF4 n moge 0000 201E BO 13 MOVB AL 13 Interrupt 0000 2020 EE OUTB DX AL vector table 0000 2021 BA F6 FF MOVW DX FFF6 0000 2024 BO 48 MOVB AL 48 Initialize 8259 0000 2026 EE OUTB DX AL 0000 2027 BO 03 MOVB AL 03 0000 2029 EE OUTB DX AL 0000 202A BO FD MOVB AL FD 0000 202C EE OUTB DX AL Automatic end 0000 202D FB STI Of conversion 0000 202E E9 FC FF WI JMP WI ORG 2100H 0000 2100 E9 11 00 JMP ISR 0000 2103 OA OA DB OAH 0AH 0000 2105 OD DB ODH 0000 2106 50 6F 72 74 DB 50H 6FH 72H 74H 0000 210A 20 56 61 6C 75 MES 20H 56H 61H 6CH 75H 0000 210F 65 20 3D 20 65H 20H 3DH 20H 0000 2113 00 00H 0000 2114 B8 00 00 MOVW Ax 0000 0000 2117 8E CO ISR MOVW ES AX 0000 2119 8E C8 MOVW CS AX 0000 211B 2E cs

Download Pdf Manuals

image

Related Search

Related Contents

コンタクトクリップクランポン取扱説明書  Jenn-Air W10272061 User's Manual  BESTOOL−KANON カノンノギス取扱説明書  installation instructions single circuit kit  LACA NITRO BLANCA BRILLANTE  Symmetricom XL-GPS GPS Receiver User Manual  APC Netbotz Amp Detector 1-20 (for NEMA 5-20)  Service Parts List - TPi Klimatimport AB  Toshiba 46UL863 LED TV  

Copyright © All rights reserved.
Failed to retrieve file