Appendix C Register-Level Programming
PC-DIO-24/PnP User Manual C-10
©
National Instruments Corporation
Mode 0 Programming Example
The following example shows how to configure the 82C55A for various
combinations of mode 0 input and output. This code is strictly an
example and is not intended to be used without modification in a
practical situation.
Main() {
#define BASE_ADDRESS 0x180 /* Board located at address 180 */
#define PORTAoffset 0x00 /* Offset for port A */
#define PORTBoffset 0x01 /* Offset for port B */
#define PORTCoffset 0x02 /* Offset for port C */
#define CNFGoffset 0x03 /* Offset for CNFG */
unsigned int porta, portb, portc, cnfg;
char valread; /* Variable to store data read from a port */
/* Calculate register addresses */
porta = BASE_ADDRESS + PORTAoffset;
portb = BASE_ADDRESS + PORTBoffset;
portc = BASE_ADDRESS + PORTCoffset;
cnfg = BASE_ADDRESS + CNFGoffset;
/* EXAMPLE 1*/
outp(cnfg,0x80); /* Ports A, B, and C are outputs. */
outp(porta,0x12); /* Write data to port A. */
outp(portb,0x34); /* Write data to port B. */
9 10010001 Input Output Output Input
10 10010010 Input Output Input Output
11 10010011 Input Output Input Input
12 10011000 Input Input Output Output
13 10011001 Input Input Output Input
14 10011010 Input Input Input Output
15 10011011 Input Input Input Input
1 Upper nibble of port C
2 Lower nibble of port C
Table C-3. Mode 0 I/O Configurations (Continued)
Number
Control Word Group A Group B
Bit
76543210 Port A Port C1Port B Port C2