|

超再生無線模塊就是上圖的產(chǎn)品,在淘寶上很便宜,1塊多就可以買一對(duì)。我買了2對(duì),本以為很容易就可以搞定,
編程序?qū)ξ襾碚f并不是難事,誰知道搞了好幾天都沒搞定。
1.首先我是用面包板測(cè)試,在發(fā)送模塊的數(shù)據(jù)輸入端和vcc之間接一個(gè)按鍵模擬輸入,接收模塊的數(shù)據(jù)輸出端接萬用表正極,
每次按下按鍵,按鍵接通,萬用表會(huì)跳動(dòng)一下不超過2V,接著斷開按鍵,萬用表會(huì)跳到3.5V左右的位置,再慢慢回到零。
這說明發(fā)送模塊和接收模塊是能夠通訊的。
2.接下來我換上單片機(jī),接收模塊和單片機(jī)相連,接收模塊的VCC和GND都直接連到單片機(jī)開發(fā)板上的VCC和GND接口,萬用表的正極還是接發(fā)送模塊的數(shù)據(jù)輸出口,負(fù)極接開發(fā)板的GND,發(fā)送模塊還是用面包板,結(jié)果無論怎么按鍵,萬用表指針總是在2V左右擺動(dòng)。我以為是單片機(jī)開發(fā)板的電源問題,
把接收模塊的VCC和GND和一個(gè)單獨(dú)的5V電源連接,5V電源的GND和單片機(jī)的GND相連(是不是要這樣共地?),發(fā)送模塊按鍵后,可以測(cè)得萬用表指針會(huì)跳到3.5V左右再回零。接下來我把接收模塊的數(shù)據(jù)輸出端連接到單片機(jī)的一個(gè)輸入端口,寫了一段代碼測(cè)試端口電平是否變化,結(jié)果不管發(fā)送模塊怎么發(fā)送,單片機(jī)輸入端口都無法測(cè)得有電平變化(除剛開始復(fù)位后運(yùn)行代碼輸入端口會(huì)有變化)。
因?yàn)楸救艘郧笆亲鲕浖模瑒倢W(xué)習(xí)單片機(jī)幾個(gè)月,對(duì)模電數(shù)電知識(shí)懂得不多,不知道上面的接線法是否正確,正確的方法應(yīng)該怎樣做才能接收到信號(hào)?請(qǐng)各位不吝指教,多謝了!
代碼是用ATMEGA128匯編寫的,很簡(jiǎn)單:
.EQU SRG_R_DDR=DDRE
.EQU SRG_R_DDR_DA=DDE2
.EQU SRG_R_PORT = PORTE
.EQU SRG_R_PORT_DA = PORTE2
.EQU SRG_R_PIN = PINE
.EQU SRG_R_PIN_DA = PINE2
.CSEG
.ORG $0000
JMP __RESET__
__RESET__:
;設(shè)置堆棧
LDI R16, LOW(RAMEND)
OUT SPL, R16
LDI R16, HIGH(RAMEND)
OUT SPH, R16
;初始化數(shù)據(jù)輸入端口
CALL SRG_INIT
__RESET__01:
;測(cè)試數(shù)據(jù)輸入端口電平變化
CALL SRG_TESTLEVEL
JMP __RESET__01
SRG_INIT:
;設(shè)置接收端口為輸入 缺省高阻
CBI SRG_R_DDR, SRG_R_DDR_DA
CBI SRG_R_PORT, SRG_R_PORT_DA;高阻
;SBI SRG_R_PORT, SRG_R_PORT_DA;上拉高電平
RET
;測(cè)試數(shù)據(jù)輸入口電平變化
SRG_TESTLEVEL:
SBIS SRG_R_PIN, SRG_R_PIN_DA;如果高電平跳出循環(huán)
RJMP SRG_SRG_TESTLEVEL
RET
|
|