User`s manual

ENDAT-D2550 USERS MANUAL
UNICORN COMPUTER CORP.
21
Sample code for input (using Turbo C/C++ 3.0)
#define input_port 0x4f // Digital input data port
Unsigned char read_data;
outportb(0x4e,0x87); //Unlock register
outportb(0x4e,0x87); //Unlock register
outportb(0x4e,0x07); //set Logic Device number pointer
outportb(0x4f,0x07); //set Logic Device number
outportb(0x4e,0x2A); //set GOIP Function
outportb(0x4f,0xFC); //set GP10~GP17
outportb(0x4e,0x30); //set Device Active
outportb(0x4f,0x01); // set Bit 1 = Active; 0=Disable
outportb(0x4e,0xF0); // set GPIO Output / Input Port
outportb(0x4f,0xC3); // 0=Output/ 1=Input
//Bit 2~5 DIO-O4~ DIO-O7.
//Bit 0,1,6,7 DIO-I4~DIO-I7.
outportb(0x4e,0xF1); //Read DIO-Input register.
outportb(0x4f,0xnm); //Bit 2~5 DIO-O4~ DIO-O7.
//Bit 0,1,6,7 DIO-I4~DIO-I7..(Read Only)
read_data=inportb(input_port); // Read digital input data
printf("DIO-Input=%02X\n",read_data); //Show digital input data on screen
Sample code for input (using Turbo C/C++ 3.0):
bit No 7 6 5 4 3 2 1 0
Map
NA NA DIO-O7 DIO-O6 DIO-O5 DIO-O4 NA NA
Sample code for output (using Turbo C/C++ 3.0)
outportb(0x4e,0x87); //Unlock register
outportb(0x4e,0x87); //Unlock register
outportb(0x4e,0x07); //set Logic Device number pointer
outportb(0x4f,0x07); //set Logic Device number
outportb(0x4e,0x2A); //set GOIP Function
outportb(0x4f,0xFC); //set GP10~GP17
outportb(0x4e,0x30); //set Device Active
outportb(0x4f,0x01); // set Bit 1 = Active; 0=Disable
outportb(0x4e,0xF0); // set GPIO Output / Input Port
outportb(0x4f,0xC3); // 0=Output/ 1=Input
//Bit 2~5 DIO-O4~ DIO-O7.
//Bit 0,1,6,7 DIO-I4~DIO-I7.
outportb(0x4e,0xF1); //Read DIO-Input register.
outportb(0x4f,0xnm); // Bit 2~5 DIO-O4~ DIO-O7.
//Bit 0,1,6,7 DIO-I4~DIO-I7..(Read Only)