📄 do_8255_test.c
字号:
/*****************************************************************************
;Institue of Automation, Chinese Academy of Sciences
;www.hyesco.com
;Description: 8255 driver on Linux for NJWKM;
;Date: 2007-01-05
;Author:
;E_mail:
*****************************************************************************/
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/ioctl.h>
int main()
{
//Channel取值为0~2,分别对应8255的PA1、PB1、PC1;
//PA1---> RELAY0~RELAY7;
//PB1---> RELAY8~RELAY15;
//PC1---> USRLED0~USRLED7;
//PA1、PB1、PC1(U1800)用于输出,从这些端口读入数据无意义;
unsigned char Channel;
//IO_data为8255的输入/输出数据缓冲区,用于存放输入/输出的数据;
unsigned char IO_data;
unsigned int rev;
static int fd=-1;
unsigned char ch;
//以可读、写的方式打开设备文件;
if((fd=open("/dev/DO_8255",O_RDWR))==-1)
{
perror("\r\nOpen DO_8255 error!\r\n");
exit(1);
}
//选择PA1口;
Channel=0;
rev = ioctl(fd,1,Channel);
//向PA1口输出全高电平;
IO_data=0xff;
rev = write(fd,&IO_data,sizeof(unsigned char));
printf("\r\nPA1 are high-level! \r\n");
printf("\r\nPress any key to continue...! \r\n");
ch = getchar();
//向PA1口输出全低电平;
IO_data=0x00;
rev = write(fd,&IO_data,sizeof(unsigned char));
printf("\r\nPA1 are low-level! \r\n");
printf("\r\nPress any key to continue...! \r\n");
ch = getchar();
//选择PB1口;
Channel=1;
rev = ioctl(fd,1,Channel);
//向PB1口输出全高电平;
IO_data=0xff;
rev = write(fd,&IO_data,sizeof(unsigned char));
printf("\r\nPB1 are high-level! \r\n");
printf("\r\nPress any key to continue...! \r\n");
ch = getchar();
//向PB1口输出全低电平;
IO_data=0x00;
rev = write(fd,&IO_data,sizeof(unsigned char));
printf("\r\nPB1 are low-level! \r\n");
printf("\r\nPress any key to continue...! \r\n");
ch = getchar();
//选择PC1口;
Channel=2;
rev = ioctl(fd,1,Channel);
//向PC1口输出全高电平;
IO_data=0xff;
rev = write(fd,&IO_data,sizeof(unsigned char));
printf("\r\nPC1 are high-level! \r\n");
printf("\r\nPress any key to continue...! \r\n");
ch = getchar();
//向PC1口输出全低电平;
IO_data=0x00;
rev = write(fd,&IO_data,sizeof(unsigned char));
printf("\r\nPC1 are low-level! \r\n");
printf("\r\nPress any key to continue...! \r\n");
ch = getchar();
//关闭备文件;
close(fd);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -