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

📄 sl811hs.h

📁 SL811HS USB CHIP 使用及控制程序
💻 H
字号:
//****************************************************************************************************
//SL811HS.h
sbit P34=P3^4;
#define WriteAddressEN P34=0  //SL811HS-->A0=0
#define WriteDataEN P34=1     //SL811HA-->A0=1
bit FlagDataType=0;           //0=data0  1=data1
U8 data USBAddress = 0;
U8 data ENP_LEN=0x40;
//===================================================================
//VENDER PRODUCT ID
#define VenderID            0x0638  //avision  
#define ProductID_A600G	    0x0a7d  //A600 Green
#define ProductID_A6G	    0x0a7e  //A6 Green
#define ProductID_A6PlusG	0x0a7f  //A6 Plus Green 

#define ProductID_FB2100G	0x0a8c  //FB2100 GREEN
#define ProductID_FB1880G	0x0a8d  //FB1880 GREEN
#define ProductID_DSeriesG	0x0a8e  //D Series GREEN

#define ProductID_FB2400UG	0x0a8f  //FB2400U GREEN
#define ProductID_FB1200G	0x0ad0  //FB1200 GREEN
//STRING ID
U8 code ASICStringID[]={"USB2.0 Scanner"};
//===================================================================
#define DATA0           0
#define DATA1           1
#define FALSE           0
#define TRUE            1
#define ep0             0
#define ep1             1
#define ep2             2
#define USB_CS   XBYTE[0x0000]     //USB CHIP ADDRESS
#define MemStart        0x40     //BUFFER OF SCANLOG MEMORY START POSITION
#define MemEND          0xff
//====================================================================
//               USB Controller - SCANLOGIC Registers
//====================================================================
#define EP0Control      0x00     //USB_A Control Register
#define EP0Address      0x01     //USB_A Base Address
#define EP0XferLen      0x02     //USB_A Base Length
#define EP0Status       0x03     //USB_A PID,Device Endpoint(write)/USB Status(read)
#define EP0Counter      0x04     //USB_A Device Address(write)/Transfer Count(read)
//-----------------------------------------------------------------------------------
#define EP1Control      0x08     //USB_B Control Register
#define EP1Address      0x09     //USB_B Base Address
#define EP1XferLen      0x0a     //USB_B Base Length
#define EP1Status       0x0b     //USB_B PID,Device Endpoint(write)/USB Status(read)
#define EP1Counter      0x0c     //USB_B Device Address(write)/Transfer Count(read)
//------------------------------------------------------------------------------------
#define CtrlReg         0x05     //Control Register1
#define IntEna          0x06     //Interrupt Enable Register
#define IntStatus       0x0d     //Status register
#define DATASet         0x0e     //SOF Counter Low(write)/HW Revision Register(read)
#define CSOFcnt         0x0f     //SOF Counter High and Control Register2
//====================================================================
//               PID TYPE
//====================================================================
#define PID_SETUP       0xd0     
#define PID_IN          0x90     
#define PID_OUT         0x10     
#define PID_SOF         0x50     
#define PID_DATA0       0x30     
#define PID_DATA1       0xb0     
#define PID_ACK         0x20     
#define PID_NAK         0xa0     
#define PID_STALL       0xe0 
//-------------------------------------------------------------------------
//USB COMMAND
U8 code StrGetDeviceType[]={0x80,0x06,0x00,0x01,0x00,0x00,0x40,0x00};
U8 code StrGetDeviceType1[]={0x80,0x06,0x00,0x01,0x00,0x00,0x12,0x00};
U8 code StrSetAddress[]={0x00,0x05,0x02,0x00,0x00,0x00,0x00,0x00};
U8 code StrGetConfiguration[]={0x80,0x06,0x00,0x02,0x00,0x00,0xff,0x00};
U8 code StrGetConfiguration1[]={0x80,0x06,0x00,0x02,0x00,0x00,0x09,0x00};
U8 code StrGetConfiguration2[]={0x80,0x06,0x00,0x02,0x00,0x00,0x27,0x00};
U8 code StrGetDeviceString[]={0x80,0x06,0x00,0x03,0x00,0x00,0xff,0x00};
U8 code StrGetDeviceString1[]={0x80,0x06,0x02,0x03,0x09,0x04,0xff,0x00};
U8 code StrSetConfigure[]={0x00,0x09,0x01,0x00,0x00,0x00,0x00,0x00}; 
//-------------------------------------------------------------------------
void SL811HSWrite(U8 addr,U8 cData);
U8 SL811HSRead(U8 addr);
void SL811HSBulkRead(U8 addr,U8 *buffer,U16 cLen);
void SL811HSBulkWrite(U8 addr,U8 *buffer,U16 cLen);
void USBInitial(void);
void USBRWTest(void);
void USBXfer(U8 USBaddress,U8 EndPoint,U8 pid,U8 *Buffer,U32 DataLeng);
void VendorCmd(U8 USBaddress,U8 cEndPoint,U8 *setup,U8 *CBuffer,U16 DataLengh);
void GetDescriptor(U8 *Setup);
void SetAddress(void);
void GetConfiguration(U8 *Setup);
void SetConfigure(void);
void CheckUsbID(void);
void CheckASICStringID(void);

⌨️ 快捷键说明

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