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

📄 ch375interface.c

📁 用atmega64+ch375(usb控制器)制成的板子用来读取USB中的数据的程序
💻 C
字号:
#include <iom64v.h>
#include <macros.h>

#include "delay.h"
#include "ch375interface.h"

void CH375_PORT_INIT(void)
	{

	    DDRA = 0x00;
	    PORTC = 0x68;		/* 设置CS,WR,RD默认为高电平 */					
	    DDRC = 0x78;		/* 设置CS,WR,RD,A0为输出,设置INT#为输入 */

	}

void xWriteCH375Cmd( unsigned char mCmd )
	{

	  	delay_nus(2);
	
		PORTC |= 0x10; /* 输出A0=1 */
		PORTA = mCmd;  /* 向CH375的并口输出数据 */
		DDRA = 0xFF;  /* 并口D0-D7输出 */
		PORTC &= 0xB7; /* 输出有效写控制信号, 写CH375芯片的命令端口, A0=1; CS=0; WR=0; RD=1; */
		DDRA = 0xFF;  /* 该操作无意义,仅作延时,CH375要求读写脉冲宽度大于100nS */
		PORTC |= 0x68; /* 输出无效的控制信号, 完成操作CH375芯片, A0=1; CS=1; WR=1; RD=1; */
		DDRA = 0x00;  /* 禁止数据输出 */
		PORTC &= 0xEF; /* 输出A0=0; 可选操作 */

		delay_nus(2);

	}
void xWriteCH375Data( unsigned char mData )
	{

	  	PORTA = mData;  /* 向CH375的并口输出数据 */
		DDRA = 0xFF;  /* 并口D0-D7输出 */
		PORTC &= 0xA7;/* 输出有效写控制信号, 写CH375芯片的数据端口, A0=0; CS=0; WR=0; RD=1; */
		DDRA = 0xFF;  /* 该操作无意义,仅作延时,CH375要求读写脉冲宽度大于100nS */
		PORTC |= 0x68; /* 输出无效的控制信号, 完成操作CH375芯片, A0=0; CS=1; WR=1; RD=1; */
		DDRA = 0x00;  /* 禁止数据输出 */

		delay_nus(1);

	}
unsigned char xReadCH375Data( void )
	{

	 	unsigned char mData;

		delay_nus(1);

		DDRA = 0x00;  /* 数据输入 */
		PORTC &= 0xC7; /* 输出有效读控制信号, 读CH375芯片的数据端口, A0=0; CS=0; WR=1; RD=0; */
		DDRA = 0x00;  /* 该操作无意义,仅作延时,CH375要求读写脉冲宽度大于100nS */
		mData = PINA;  /* 从CH375的并口PA输入数据 */
		PORTC |= 0x68; /* 输出无效的控制信号, 完成操作CH375芯片, A0=0; CS=1; WR=1; RD=1; */
		return( mData );
	}

⌨️ 快捷键说明

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