#include <iom128v.h>
#include <macros.h>
#include <string.h>
#include <stdio.h>
char title[]= {"\\title.TXT"};
#define LIB_CFG_FILE_IO 1
/* 文件读写的数据的复制方式,0为"外部子程序",1为"内部复制" */
#define LIB_CFG_INT_EN 0
/* CH375的INT#引脚连接方式,0为"查询方式",1为"中断方式" */
/* 单片机的RAM有限,其中CH375子程序用512字节,剩余RAM部分可以用于文件读写缓冲 */
#define FILE_DATA_BUF_LEN 0x0160
/* 外部RAM的文件数据缓冲区,缓冲区长度不小于一次读写的数据长度 */
/* 如果准备使用双缓冲区交替读写,那么不要定义FILE_DATA_BUF_LEN,而是在参数中
指定缓冲区起址,用CH375FileReadX代替CH375FileRead,用CH375FileWriteX代替
CH375FileWrite */
#define CH375_INT_WIRE (PIND&0x08)
/* 单片机的引脚 CH375芯片的引脚
PIND.3 INT#
PORTE.6 A0
PORTE.7 CS#
PORTE.4 WR#
PORTE.5 RD#
PORTA(8位端口) D7-D0 */
#include "e:\USB\CH375HFB.H"
//---------ch375-------ch375-------ch375----------------------------------
void mDelay1uS( ) /* 至少延时1uS,根据单片机主频调整 */
{
UINT8 i;
for ( i = 40; i != 0; i -- )
{}
}
//---------ch375-------ch375-------ch375----------------------------------
void xWriteCH375Cmd( UINT8 mCmd ) /* 外部定义的被CH375程序库调用的子程序,向CH375写命令 */
{
mDelay1uS( ); mDelay1uS( ); /* 至少延时1uS */
PORTE |= 0x40; /* 输出A0=1 */
PORTA = mCmd; /* 向CH375的并口输出数据 */
DDRA = 0xFF; /* 并口D0-D7输出 */
PORTE &= 0x6F; /* 输出有效写控制信号, 写CH375芯片的命令端口, A0=1; CS=0; WR=0; RD=1; */
DDRA = 0xFF; /* 该操作无意义,仅作延时,CH375要求读写脉冲宽度大于100nS */
PORTE |= 0xB0; /* 输出无效的控制信号, 完成操作CH375芯片, A0=1; CS=1; WR=1; RD=1; */
DDRA = 0x00; /* 禁止数据输出 */
PORTE &= 0xBF; /* 输出A0=0; 可选操作 */
mDelay1uS( ); mDelay1uS( ); /* 至少延时2uS */
}
//---------ch375-------ch375-------ch375----------------------------------
void xWriteCH375Data( UINT8 mData ) /* 外部定义的被CH375程序库调用的子程序,向CH375写数据 */
{
PORTA = mData; /* 向CH375的并口输出数据 */
DDRA = 0xFF; /* 并口D0-D7输出 */
PORTE &= 0xBF; /* 输出A0=0 */
PORTE &= 0x6F; /* 输出有效写控制信号, 写CH375芯片的数据端口, A0=0; CS=0; WR=0; RD=1; */
DDRA = 0xFF; /* 该操作无意义,仅作延时,CH375要求读写脉冲宽度大于100nS */
PORTE |= 0xB0; /* 输出无效的控制信号, 完成操作CH375芯片, A0=0; CS=1; WR=1; RD=1; */
DDRA = 0x00; /* 禁止数据输出 */
mDelay1uS( ); /* 至少延时1.2uS */
}
//---------ch375-------ch375-------ch375----------------------------------
UINT8 xReadCH375Data( void ) /* 外部定义的被CH375程序库调用的子程序,从CH375读数据 */
{
UINT8 mData;
mDelay1uS( ); /* 至少延时1.2uS */
DDRA = 0x00; /* 数据输入 */
PORTE &= 0xBF; /* 输出A0=0 */
PORTE &= 0x5F; /* 输出有效读控制信号, 读CH375芯片的数据端口, A0=0; CS=0; WR=1; RD=0; */
DDRA = 0x00; /* 该操作无意义,仅作延时,CH375要求读写脉冲宽度大于100nS */
mData = PINA; /* 从CH375的并口PA输入数据 */
PORTE &= 0xBF; /* 输出A0=0 */
PORTE |= 0xB0; /* 输出无效的控制信号, 完成操作CH375芯片, A0=0; CS=1; WR=1; RD=1; */
return( mData );
}
//---------ch375-------ch375-------ch375----------------------------------
/* 延时指定毫秒时间,根据单片机主频调整,不精确 */
void mDelaymS( UINT8 ms )
{
UINT16 i;
while ( ms -- )
{
for ( i = 5200; i != 0; i -- )
{}
}
}
//---------ch375-------ch375-------ch375----------------------------------
void port_init(void)
{
PORTA = 0x00;
DDRA = 0x00;
PORTB = 0x00;
DDRB = 0x00;
PORTC = 0x00;
DDRC = 0x00;
PORTD = 0x00;
DDRD = 0x00;
PORTE = 0xF0;
DDRE = 0xF0;
PORTF = 0x00;
DDRF = 0x00;
PORTG = 0x00;
DDRG = 0x00;
}
void init_devices(void)
{
CLI(); //disable all interrupts
XDIV = 0x00; //xtal divider
XMCRA = 0x00; //external memory
port_init();
MCUCR = 0x00;
EICRA = 0x00; //extended ext ints
EICRB = 0x00; //extended ext ints
EIMSK = 0x00;
TIMSK = 0x00; //timer interrupt sources
ETIMSK = 0x00; //extended timer interrupt sources
SEI(); //re-enable interrupts
}
//-------------------------------------------------------------
main()
{
char i;
init_devices();
CH375Reset();
CH375LibInit( ); //USB初始化
CH375DiskReady( ); //状态检测
for ( i=0; i<5; i++ )
{ mDelaymS( 100 ); } //等待
strcpy( (char *)mCmdParam.Create.mPathName, title ); //写入文件
CH375FileCreate( );
mCmdParam.Write.mSectorCount=1;
CH375FileWrite( );
i = CH375FileClose( ); //关闭文件
return( i );
while(1)
{}
}
USB.rar_AVR128_USB通信_avr128 usb_usb parallel
版权申诉
123 浏览量
2022-09-21
07:36:31
上传
评论
收藏 125KB RAR 举报
林当时
- 粉丝: 100
- 资源: 1万+
最新资源
- hasp驱动 win10可用,不死机不蓝屏
- 00000000044242851月光摇篮曲.m4a
- 基于JavaScript讲解的数据结构和算法
- python计算机视觉python-computer-vision.rar
- VB+ACCESS计算机等级考试管理系统(源代码+系统+答辩PPT).zip
- python密码python-ciphers.rar
- 2c60fbb3dt9ad50ed8864298eea1484b.MP4
- 基于yolov8+dlib实现视觉识别的安全驾驶监测系统部署到jetson NX平台源码+模型.zip
- Qt框架+OpenCV+动态爱心+编程教学+520
- 基于opencv+yolov8实现目标追踪及驻留时长统计源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈