⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 io.h

📁 西安明朗公司开发板ML-F020ICB的全部测试代码
💻 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 + -