CH375程序.doc
上传人:sy****28 上传时间:2024-09-14 格式:DOC 页数:8 大小:41KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

CH375程序.doc

CH375程序.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

CH375作为USB主机接口的程序示例******************************************USB1.1HostExamplesforCH375****KC7.0@MCS-51*******************************************//*CH375作为USB主机接口的程序示例*//*MCS-51单片机C语言的示例程序,U盘数据读写*/#include"common.h"unsignedcharvolatilexdataCH375_CMD_PORT_at_0xBDF1;/*CH375命令端口的I/O地址*/unsignedcharvolatilexdataCH375_DAT_PORT_at_0xBCF0;/*CH375数据端口的I/O地址*/externunsignedcharxdataDBUF[BUFFER_LENGTH];//sbitLED_OUT=0x90^4;/*P1.4低电平驱动LED显示,用于监控演示程序的进度*/sbitCH375_INT_WIRE=0xB0^2;/*P3.2,INT0,连接CH375的INT#引脚,用于查询中断状态*/#definemDelay1uS()/*对于MCS51单片机,通常不需要1uS延时*//*延时2微秒,请根据单片机速度*///voidmDelay1uS()//{//unsignedchari;//for(i=1;i!=0;i--);//}/*延时2微秒,请根据单片机速度*/voidmDelay2uS(){unsignedchari;for(i=2;i!=0;i--);}/*向CH375命令端口写命令数据*/voidCH375_CMD_PORT_d_out(INT8d_out){mDelay1uS();CH375_CMD_PORT=d_out;mDelay2uS();/*至少延时2uS*/}/*向CH375数据端口写数据*/voidCH375_DAT_PORT_d_out(INT8d_out){CH375_DAT_PORT=d_out;mDelay1uS();}/*从CH375命令端口读数据*/INT8CH375_DAT_PORT_in(){mDelay1uS();return(CH375_DAT_PORT);}/*延时毫秒,不精确*/voidDelayMs(unsignedcharnFactor){unsignedchari;unsignedintj;for(i=0;i<nFactor;i++)for(j=0;j<1000;j++)j=j;}/*等待CH375中断并获取状态*/unsignedcharmWaitInterrupt(){unsignedcharc;while(CH375_INT_WIRE);/*如果CH375的中断引脚输出高电平则等待*/CH375_CMD_PORT_d_out(CMD_GET_STATUS);/*获取当前中断状态*/c=CH375_DAT_PORT_in();/*返回中断状态*//*if(c==USB_INT_DISCONNECT)/*检测到USB设备断开事件*//*elseif(c==USB_INT_CONNECT)/*检测到USB设备连接事件*/return(c);}/*设置CH375为USB主机方式*/unsignedcharmCH375Init(){unsignedchari;#ifdefTEST_CH375_PORTunsignedcharc;CH375_CMD_PORT_d_out(CMD_CHECK_EXIST);/*测试工作状态*/CH375_DAT_PORT_d_out(0x55);/*测试数据*/c=CH375_DAT_PORT_in();/*返回数据应该是测试数据取反*/if(c!=0xaa){/*CH375出错*/for(i=100;i!=0;i--){/*强制数据同步*/CH375_CMD_PORT_d_out(CMD_RESET_ALL);/*CH375执行硬件复位*/c=CH375_DAT_PORT_in();/*延时*/}DelayMs(50);/*延时至少30mS*/}#endifCH375_CMD_PORT_d_out(CMD_SET_USB_MODE);/*设置USB工作模式*/CH375_DAT_PORT_d_out(6);/*模式代码,自动检测USB设备连接*/for(i=0xff;i!=0;i--){/*等待操作成功,通常需要等待10uS-20uS*/if(CH375_DAT_PORT_in()==CMD_RET_SUCCESS)break;/*操作成功*/}if(i!=0)return(0);