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

📄 d12hal.c

📁 菲利普的pdiusb d12芯片和avr mega8的usb通讯试验代码
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                               广州周立功单片机发展有限公司
**                                     研    究    所
**                                        产品一部 
**
**                                 http://www.zlgmcu.com
**
** 文   件   名: D12HAL.c
** 最后修改日期: 2004年11月15日
** 描        述: USB驱动程序软件包: PDIUSBD12 设备端驱动程序 设备控制驱动层
** 版	     本: V5.0
**********************************************************************************************************/

#include "main.h"
#include "D12Config.h"
#define NOP1() asm("nop")
/************************************************************
** 函数名称: void Init_D12Port(void)
** 功能描述: 初始化D12与LPC2200的连接端口
** 输   入: 无
** 输   出: 无
************************************************************/
void Init_D12Port(void)
{
   // MCU_D12CS = 1;		//释放D12
    sbi(DDRC,5);           //设为输出方式
    sbi(PORTC,5);
   //MCU_D12CS = 0;			//选择D12
	cbi(PORTC,5);

}

/************************************************************
** 函数名称: void Rst_D12(void)
** 功能描述: 复位D12
** 输   入: 无
** 输   出: 无
************************************************************/
void Rst_D12(void)
{
    INT16U i;

    for(i = 0; i < 0x100; i++);		//软件延时


}


/************************************************************
** 函数名称: outportb()
** 功能描述: 向D12写入数据
** 输   入: INT16U Addr:	命令地址或数据地址
			 INT8U Data:    命令字节
** 输   出: 无
************************************************************/
void outportb(INT16U Addr, INT8U Data)
{
//	*((INT8U xdata *) Addr) = Data;
    if(Addr == D12_DATA)//send the data
	{
	   DDRD = 0xff;
	   //MCU_A0 = 0;
	   sbi(DDRC,1);    //引脚设为输出
	   cbi(PORTC,1);
	    NOP1();
        NOP1();
	    NOP1();     
	   //MCU_WR = 0;
	   sbi(DDRC,3);
	   cbi(PORTC,3);
	   	NOP1();
        NOP1();
    	NOP1();
	  //DATA_BUS = Data;
	   PORTD = Data;
	    NOP1();
        NOP1();
	    NOP1();
	}
	else//send the command 
	{
	   //MCU_A0 = 1;
	  	DDRD = 0xff;
	   sbi(DDRC,1);
	   sbi(PORTC,1);
	   NOP1();
       NOP1();
       NOP1();
	   //MCU_WR = 0;
	   sbi(DDRC,3);
	   cbi(PORTC,3);

	   	NOP1();
        NOP1();
	    NOP1();
	  // DATA_BUS = Data;
	   PORTD = Data;
	    NOP1();
        NOP1();
	    NOP1();

	}	
    //MCU_WR = 1;
    sbi(PORTC,3);
}

/************************************************************
** 函数名称: inportd()
** 功能描述: 读入数据
** 输   入: INT16U Addr:	数据地址
** 输   出: 读到的数据
*************************************************************/
INT8U inportb(INT16U Addr)
{
   //return *((INT8U xdata *) Addr);
    INT8U i;
    Addr = Addr;   //avoid the warning
   // MCU_RD = 0;

    DDRD = 0x0;
	PORTD=0xff; 
  
   sbi(DDRC,2);
   cbi(PORTC,2);
    NOP1();
    NOP1();
	NOP1();
 // i=DATA_BUS;
    i=PIND;
    NOP1();
	NOP1();
    NOP1();

   // MCU_RD = 1;
    sbi(PORTC,2);
	return i;
}


⌨️ 快捷键说明

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