📄 io.h
字号:
/************************************************************************************
* Copyright (c), 2004-2007,西安铭朗电子科技有限责任公司
* All rights reserved.
*
* Http: www.mlarm.com
* Email: mlarm@mlarm.com
*
* File name: IO.h
* Project : ML-F020ICB
* Processor: C8051F020
* Compiler : Keil C51 Compiler
*
* Author: 李林利
* Version: 1.20
* Date: 2007.6.1
* Email: GavinLi@126.com
*
* Description: 本文件是16路IO端口硬件驱动程序头文件;
*
* Others: none;
*
* Function List:
* 1. void IO_Init(void)
* 2. void IO_SetDir(unsigned int val)
* 3. void IOx_SetDir(unsigned char chx, unsigned char val)
* 4. void IO_PutVal(unsigned int val)
* 5. void IOx_PutVal(unsigned char chx, unsigned char val)
* 6. unsigned int IO_GetVal(void)
* 7. unsigned char IOx_GetVal(unsigned char chx)
*
* History:
* 1. Author: 李林利
* Version: 1.10
* Date: 2007.3.12
* Modification: none
*
* 2. Author: 李林利
* Version: 1.00
* Date: 2004.11.24
* Modification: 建立文件
*
*************************************************************************************/
/*************************************************************************************
* IO函数使用说明
*
* 1. 第1步, 必须先调用函数IO_Init(),本函数只允许调用一次;
* 2. 第2步, 调用IO_SetDir或IOx_SetDir等函数设置IO端口输出属性;如果IO端口只用作输出
* 方式, 如外部无上拉电阻则应设置为推挽输出;如果IO端口只用作输入方式,则应设置为
* 漏极开路输出;如果IO端口即作输入又作输出方式,则应设置为漏极开路输出,且外部加上拉电阻;
* 3. 第3步,要同时操作16路输入输出端口请优先使用函数IO_GetVal()和IO_PutVal();
* 要单独操作1路输入输出端口请优先使用函数IOx_GetVal()和IOx_PutVal();
* 4. 其它细节详见具体函数说明;
*
*************************************************************************************/
/************************************************************************************/
// 常量及全局变量定义
/************************************************************************************/
/*************************************************************************************/
//
// IO端口函数外部引用声明
//
/*************************************************************************************/
/***********************************************************************************
* Function: IO_Init;
*
* Description: IO初始化函数, 16路IO口设置为漏极开路输出, 输出低电平;
*
* Input: none;
*
* Output: none;
*
* Return: none;
*
* Note: none;
************************************************************************************/
void IO_Init(void);
/***********************************************************************************
* Function: IO_SetDir;
*
* Description: 配置16路IO端口输出属性;
*
* Input: val, 设置IO属性数据, 每位定义如下:
* bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
* IO16 IO15 IO14 IO13 IO12 IO11 IO10 IO9 IO8 IO7 IO6 IO5 IO4 IO3 IO2 IO1
* bitx = 0, IO口为漏极开路输出; bitx = 1, IO口为推挽输出;
*
* Output: none;
*
* Return: none;
*
* Note: none;
************************************************************************************/
void IO_SetDir(unsigned int val);
/***********************************************************************************
* Function: IOx_SetDir;
*
* Description: 配置1路IO端口输出属性;
*
* Input: val=0: IO口为漏极开路输出, val=1: IO口为推挽输出; val范围0到1;
* chx, IO输出数据通道, 范围: 1~16;
*
* Output: none;
*
* Return: none;
*
* Note: 如果chx<1或chx>16则设置无效;val必须是0或1;
************************************************************************************/
void IOx_SetDir(unsigned char chx, unsigned char val);
/***********************************************************************************
* Function: IO_PutVal;
*
* Description: 输出16路IO输出数据函数;
*
* Input: val, 输出的数据, 每位定义如下:
* bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
* IO16 IO15 IO14 IO13 IO12 IO11 IO10 IO9 IO8 IO7 IO6 IO5 IO4 IO3 IO2 IO1
* bitx = 0, 输出低电平(IOx = 0); bitx = 1, 输出高电平(IOx = 1);
*
* Output: none;
*
* Return: none;
*
* Note: none;
************************************************************************************/
void IO_PutVal(unsigned int val);
/***********************************************************************************
* Function: IOx_PutVal;
*
* Description: 输出1路IO数据;
*
* Input: val, 输出数据, 范围0到1; val=0, 输出低电平; val=1, 输出高电平;
* chx, IO输出数据通道, 范围: 1~16;
*
* Output: none;
*
* Return: none;
*
* Note: 如果chx<1或chx>16则输出保持不变; val必须是0或1;
************************************************************************************/
void IOx_PutVal(unsigned char chx, unsigned char val);
/***********************************************************************************
* Function: IO_GetVal;
*
* Description: 读取16路IO输入数据;
*
* Input: none;
*
* Output: none;
*
* Return: 16路IO输入数据, 每位定义如下:
* bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
* IO16 IO15 IO14 IO13 IO12 IO11 IO10 IO9 IO8 IO7 IO6 IO5 IO4 IO3 IO2 IO1
* bitx = 0,外部低电平输入(IOx = 0); bitx = 1,外部高电平输入(IOx = 1);
*
* Note: none;
************************************************************************************/
unsigned int IO_GetVal(void);
/***********************************************************************************
* Function: IOx_GetVal;
*
* Description: 读取1路IO输入数据
*
* Input: chx,IO输入数据通道,范围:1~16;
*
* Output: none;
*
* Return: 1路IO输入数据; 0,外部低电平输入; 1,外部高电平输入;
*
* Note: 如果chx<1或chx>16则返回0xff;
************************************************************************************/
unsigned char IOx_GetVal(unsigned char chx);
/***********************************************************************************/
// 文件结束
/***********************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -