以下是我上網(wǎng)找的一個(gè)程序說(shuō)已經(jīng)通過(guò)測(cè)試,但是我怎么嘗試都不行呢,用DEBUG372.exe調(diào)試過(guò)了,硬件連接好像沒(méi)有問(wèn)題,就是沒(méi)有發(fā)現(xiàn)ch372的設(shè)備,哪位好心人幫我看看程序啊,急?。。?!多謝,多謝了。 以下是我的程序:
/****************************** CH375測(cè)試程序 Mega16 模擬總線(xiàn)
控制端口定義: A0 -- PC0 RD -- PC1 WR -- PC6 CS -- PC7 數(shù)據(jù)端口定義: PORTA ******************************/ #include #include
#define A0 PC0 //定義引腳 #define RD PC1 #define WR PC6 #define CS PC7 #define NOP asm("nop") //定義一個(gè)空操作語(yǔ)句
#define CHECK_375 0x06 //測(cè)試375命令(CH375手冊(cè)中有詳細(xì)的命令列表)
/******************************************* 函數(shù)原型聲明區(qū) ********************************************/
unsigned char RD_data_ch375(void); void WR_CMD_ch375(unsigned char cmd); void CONT_PORT_init(void); void WR_DAT_ch375(unsigned char dat); unsigned char RD_data_ch375(void);
/******************************************* 向CH375寫(xiě)數(shù)據(jù)函數(shù) ********************************************/ void WR_DAT_ch375(unsigned char dat) { PORTC &= ~(1 << A0); //A0 = Low 選擇輸出是數(shù)據(jù) PORTC &= ~(1 << WR); //WR = Low 選擇寫(xiě) DDRA = 0xFF; NOP; NOP; PORTA = dat; //端口寫(xiě)數(shù)據(jù)(0x55) } /******************************************* 寫(xiě)命令函數(shù) ********************************************/ void WR_CMD_ch375(unsigned char cmd) { PORTC &= ~(1 << WR); //WR = Low 選擇寫(xiě) PORTC |= (1 << A0) | (1 << RD); //A0 = High 寫(xiě)命令 DDRA = 0xFF; NOP; NOP; PORTA =cmd; //發(fā)送數(shù)據(jù) } /******************************************* 讀CH375數(shù)據(jù)函數(shù) ********************************************/ unsigned char RD_data_ch375(void) { unsigned char data; PORTC |= (1 << WR); PORTC &= ~(1 << RD); //RD = Low 選擇讀 PORTC &= ~(1 << A0); DDRA = 0x00; PORTA = 0xFF; //初始化端口上拉(實(shí)際使用 NOP; NOP; data = PINA; //讀端口數(shù)據(jù)并返回 return data; } /******************************************* 控制線(xiàn)初始化函數(shù) ********************************************/ void CONT_PORT_init(void) { PORTC |= (1 << A0) | (1 << RD) | (1 << WR) | (1 << CS); PORTC &= ~(1 << CS); DDRC = 0xFF; //控制端口初始化為輸出 } /******************************************* 主函數(shù) ********************************************/ int main() { unsigned char testret; DDRB = 0xFF; PORTB = 0x00; CONT_PORT_init(); WR_CMD_ch375(CHECK_375); //向CH375寫(xiě)命令(測(cè)試0x06) WR_DAT_ch375(0x55); testret = RD_data_ch375(); while(1); return 0; }