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

📄 upsd3200.c

📁 税控收款机源码:拼音输入法,LCD,VFD驱动,IC卡驱动,税控国标
💻 C
字号:
/****************************************************************** 
** 文件名:	UPSD3200.C

** Copyright (c)  昊元科技技术开发部 

** 创建人:		马	亮

** 日 期:		2005/04/5

** 修改人: 		
** 日 期: 

** 描 述:		对upsd3200的 PA---PD口进行位操作的函数

** 版 本: 		
******************************************************************/ 
#include "include.h"


/**************************************************************************
*函数名称: InitalIoPort()
*输入参数: void
*输出参数: void
*函数功能: 对upsd3200 PA--PD端口初始化
**************************************************************************/
#if 0
void InitalIoPort()
{
	/*********设置PB口属性**************/
	PSD8xx_reg.DATAIN_B = 0x00;
	PSD8xx_reg.DATAOUT_B = 0x00;
	
	PSD8xx_reg.CONTROL_B = 0x00;  // 普通IO
	
	PSD8xx_reg.DIRECTION_B = 0xdf; // PB5为输入
	
	PSD8xx_reg.DRIVE_B = 0x00; // 脚配置成CMOS方式
}

/****************对位控制的函数********************/
/**************************************************************************
*函数名称: BitOn(U8 volatile *target, U8 scr)
*输入参数: U8 *target --- 要操作数据指针
*           U8 scr --- 要操作的数据位
*输出参数: void
*函数功能: 对输入的数据指针的值的相应位置 1
**************************************************************************/
void BitOn(U8 volatile *target, U8 scr)
{
	(*target) |= scr;	
}

/**************************************************************************
*函数名称: BitOff(U8 volatile *target, U8 scr)
*输入参数: U8 *target --- 要操作数据指针
*           U8 scr --- 要操作的数据位
*输出参数: void
*函数功能: 对输入的数据指针的值的相应位置 0
**************************************************************************/
void BitOff(U8 volatile *target, U8 scr)
{
    (*target) &= (~scr);

}
#endif

/**************************************************************************
*函数名称: BitReverse(U8 volatile *target, U8 scr)
*输入参数: U8 *target --- 要操作数据指针
*           U8 scr --- 要操作的数据位
*输出参数: void
*函数功能: 对输入的数据指针的值的相应位 取反
**************************************************************************/
#if 0
void BitReverse(U8 volatile *target, U8 scr)
{
    (*target) ^= scr;
}
/**************************************************************************
*函数名称: RdBit(U8 volatile *target, U8 scr)
*输入参数: U8 *target --- 要操作数据指针
*           U8 scr --- 要操作的数据位
*输出参数: 0   输入的数据指针的值的相应位 为 0
            1   输入的数据指针的值的相应位 为 1
*函数功能: 返回输入的数据指针的值的相应位的逻辑
**************************************************************************/
U8 RdBit(U8 volatile *target, U8 scr)
{
	U8 rDataStatus;
	rDataStatus = *target;
    rDataStatus &= scr;

	
    if(rDataStatus)
    	rDataStatus = 1;
    else
    	rDataStatus = 0;
    return  rDataStatus;
}
#endif

/**************************************************************************
*函数名称: SetupPortB()
*输入参数: U8 EnableBit --- 输入引脚名称
*           logic --- 输入逻辑
*                   0 对应引脚置0
*                   1 对应引脚置1
*输出参数: void
*函数功能: 对Pb端口进行位操作
**************************************************************************/
void SetupPortB(U8 EnableBit, U8 logic)
{
	PSD8xx_reg.DIRECTION_B |= EnableBit;//设置B端口对应位的方向为输出
	
	if(logic)
		PSD8xx_reg.DATAOUT_B |= EnableBit;
	else
		PSD8xx_reg.DATAOUT_B &= (~EnableBit);
}

/**************************************************************************
*函数名称: ReadPortB()
*输入参数: U8 EnableBit --- 输入引脚名称
*输出参数: 
*                   0 对应引脚状态为 0
*                   1 对应引脚状态为 1
*函数功能: 返回端口B对应位的逻辑
**************************************************************************/
U8 ReadPortB(U8 EnableBit)
{
	U8 PinStatus;
	
	PSD8xx_reg.DIRECTION_B &= ~EnableBit; //设置b端口对应位的方向为输入
	
//	PinStatus = RdBit(&PSD8xx_reg.DATAIN_B, EnableBit);

	PinStatus =	PSD8xx_reg.DATAIN_B&EnableBit;
	
	return PinStatus;
}

/**************************************************************************
*函数名称: SetupPortA()
*输入参数: U8 EnableBit --- 输入引脚名称
*           logic --- 输入逻辑
*                   0 对应引脚置0
*                   1 对应引脚置1
*输出参数: void
*函数功能: 对PA端口进行位操作
**************************************************************************/
void SetupPortA(U8 EnableBit, U8 logic)
{
	PSD8xx_reg.DIRECTION_A |= EnableBit;//设置B端口对应位的方向为输出
	
	if(logic)
		PSD8xx_reg.DATAOUT_A |= EnableBit;
	
	else
		PSD8xx_reg.DATAOUT_A &= (~EnableBit);
	
}


/**************************************************************************
*函数名称: SetupPortA()
*输入参数: U8 EnableBit --- 输入引脚名称
*           logic --- 输入逻辑
*                   0 对应引脚置0
*                   1 对应引脚置1
*输出参数: void
*函数功能: 对PA端口进行位操作
**************************************************************************/
void SetupPortD(U8 EnableBit, U8 logic)
{
	PSD8xx_reg.DIRECTION_D |= EnableBit;//设置B端口对应位的方向为输出
	
	if(logic)
		PSD8xx_reg.DATAOUT_D |= EnableBit;
	
	else
		PSD8xx_reg.DATAOUT_D &= (~EnableBit);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -