ch375interface.c

来自「用atmega64+ch375(usb控制器)制成的板子用来读取USB中的数据的」· C语言 代码 · 共 61 行

C
61
字号
#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 + =
减小字号Ctrl + -
显示快捷键?