請(qǐng)問(wèn)375用avr mage128 i/o 直接用控制行嗎?

請(qǐng)問(wèn)375用avr mage128 i/o 直接用控制行嗎? 我為啥又試布道。難到是樣品有問(wèn)題。 請(qǐng)答復(fù)我們,急用中。。。。。

你掛在總線上還是用IO口模擬總線? 以下是模擬總線: /* 單片機(jī)的引腳 CH375芯片的引腳 PINB.4 INT# PORTB.3 A0 PORTB.2 CS# PORTB.1 WR# PORTB.0 RD# PORTA(8位端口) D7-D0 */

void mDelay1uS( ) /* 至少延時(shí)1uS,根據(jù)單片機(jī)主頻調(diào)整 */ { UINT8 i; for ( i = 5; i != 0; i -- ); }

void CH375_PORT_INIT( ) /* 由于使用通用I/O模塊并口讀寫時(shí)序,所以進(jìn)行初始化 */ { DDRA = 0x00; /* 設(shè)置8位并口為輸入 */ PORTB = 0x07; /* 設(shè)置CS,WR,RD默認(rèn)為高電平 */ DDRB = 0x0F; /* 設(shè)置CS,WR,RD,A0為輸出,設(shè)置INT#為輸入 */ }

void xWriteCH375Cmd( UINT8 mCmd ) /* 外部定義的被CH375程序庫(kù)調(diào)用的子程序,向CH375寫命令 */ { mDelay1uS( ); mDelay1uS( ); /* 至少延時(shí)1uS */ /* *(volatile unsigned char *)CH375_CMD_PORT_ADDR = mCmd; 通過(guò)并口直接讀寫CH375而非普通I/O模擬 */ PORTB |= 0x08; /* 輸出A0=1 */ PORTA = mCmd; /* 向CH375的并口輸出數(shù)據(jù) */ DDRA = 0xFF; /* 并口D0-D7輸出 */ PORTB &= 0xF9; /* 輸出有效寫控制信號(hào), 寫CH375芯片的命令端口, A0=1; CS=0; WR=0; RD=1; */ DDRA = 0xFF; /* 該操作無(wú)意義,僅作延時(shí),CH375要求讀寫脈沖寬度大于100nS */ PORTB |= 0x07; /* 輸出無(wú)效的控制信號(hào), 完成操作CH375芯片, A0=1; CS=1; WR=1; RD=1; */ DDRA = 0x00; /* 禁止數(shù)據(jù)輸出 */ PORTB &= 0xF7; /* 輸出A0=0; 可選操作 */ mDelay1uS( ); mDelay1uS( ); /* 至少延時(shí)2uS */ }

void xWriteCH375Data( UINT8 mData ) /* 外部定義的被CH375程序庫(kù)調(diào)用的子程序,向CH375寫數(shù)據(jù) */ { /* *(volatile unsigned char *)CH375_DAT_PORT_ADDR = mData; 通過(guò)并口直接讀寫CH375而非普通I/O模擬 */ PORTA = mData; /* 向CH375的并口輸出數(shù)據(jù) */ DDRA = 0xFF; /* 并口D0-D7輸出 */ PORTB &= 0xF1; /* 輸出有效寫控制信號(hào), 寫CH375芯片的數(shù)據(jù)端口, A0=0; CS=0; WR=0; RD=1; */ DDRA = 0xFF; /* 該操作無(wú)意義,僅作延時(shí),CH375要求讀寫脈沖寬度大于100nS */ PORTB |= 0x07; /* 輸出無(wú)效的控制信號(hào), 完成操作CH375芯片, A0=0; CS=1; WR=1; RD=1; */ DDRA = 0x00; /* 禁止數(shù)據(jù)輸出 */ mDelay1uS( ); /* 至少延時(shí)1.2uS */ }

UINT8 xReadCH375Data( void ) /* 外部定義的被CH375程序庫(kù)調(diào)用的子程序,從CH375讀數(shù)據(jù) */ { UINT8 mData; /* mData = *(volatile unsigned char *)CH375_DAT_PORT_ADDR; 通過(guò)并口直接讀寫CH375而非普通I/O模擬 */ mDelay1uS( ); /* 至少延時(shí)1.2uS */ DDRA = 0x00; /* 數(shù)據(jù)輸入 */ PORTB &= 0xF2; /* 輸出有效讀控制信號(hào), 讀CH375芯片的數(shù)據(jù)端口, A0=0; CS=0; WR=1; RD=0; */ DDRA = 0x00; /* 該操作無(wú)意義,僅作延時(shí),CH375要求讀寫脈沖寬度大于100nS */ mData = PINA; /* 從CH375的并口PA輸入數(shù)據(jù) */ PORTB |= 0x07; /* 輸出無(wú)效的控制信號(hào), 完成操作CH375芯片, A0=0; CS=1; WR=1; RD=1; */ return( mData ); } 總線方式: //define mappings void mapping_init(void) { asm( ".area memory(abs)\n" ".org 0xBDF1\n" " _CH375_CMD_PORT:: .blkb 1\n" ".org 0xBCF0\n" " _CH375_DAT_PORT:: .blkb 1\n" ".text\n" ); }


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频