📄 ch375interface.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 + -