|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
這條指令有點(diǎn)問(wèn)題?程序這樣寫(xiě)為什么會(huì)出現(xiàn)。。。。。 |
| 作者:MISSHAN 欄目:單片機(jī) |
現(xiàn)在我發(fā)現(xiàn)這條指令有點(diǎn)問(wèn)題: BSF PORTA,0 NOP BSF PORTA,1 ;這里為什么A.1置高后就立即將A.0拉低呢? 我認(rèn)為到這里,應(yīng)該A.0,A.1都為高才對(duì)呀? |
| 2樓: | >>參與討論 |
| 作者: engineer02 于 2003/10/9 15:00:00 發(fā)布:
你說(shuō)的我不明白 我不知你說(shuō)的是哪一步。 |
|
| 3樓: | >>參與討論 |
| 作者: MISSHAN 于 2003/10/9 15:29:00 發(fā)布:
RE BSF PORTA,0 NOP BSF PORTA,1 ;--》》就是 這一不執(zhí)行完了,A.1置1, 可是A.0卻同時(shí)被變?yōu)榱?; 不是到這一不之后A.1和A.0引腳都為1才對(duì)嗎? |
|
| 4樓: | >>參與討論 |
| 作者: MISSHAN 于 2003/10/9 15:31:00 發(fā)布:
大家?guī)臀铱纯矗。?br> |
|
| 5樓: | >>參與討論 |
| 作者: engineer02 于 2003/10/9 15:32:00 發(fā)布:
加上拉電阻 兩個(gè)口都要加上拉電阻。 |
|
| 6樓: | >>參與討論 |
| 作者: MISSHAN 于 2003/10/9 15:41:00 發(fā)布:
都加了,還是那樣,啊,真折磨人! |
|
| 7樓: | >>參與討論 |
| 作者: misshan 于 2003/10/9 16:25:00 發(fā)布:
我這樣試了一下,結(jié)果...... 不是的,我用AVR的時(shí)候,還有51的時(shí)候?qū)ξ徊僮鳑](méi)有任何問(wèn)題,怎么PIC的位操作有問(wèn)題呢,我試了另一種方法,現(xiàn)象發(fā)現(xiàn)要么我的仿真器有問(wèn)題,要么這個(gè)指令對(duì)位操作有問(wèn)題。 ...之前已設(shè)A口為輸出模式 CLRF PORTA MOVLW 11111111B IORWF PORTA,1 ;——》這里A口輸出全為“1” MOVLW 11111010B ANDWF PORTA,1 ;——》這里A口輸出全為“0” 這個(gè)現(xiàn)象又怎么解釋呢?不應(yīng)該啊。。??? |
|
| 8樓: | >>參與討論 |
| 作者: engineer02 于 2003/10/9 16:36:00 發(fā)布:
建議 建議在執(zhí)行前對(duì)RA口輸入或是輸出再次定義,因?yàn)镻IC單片機(jī)I/O口的狀態(tài)經(jīng)常會(huì)跑飛,所以需要重新定義,如果還是不行,我認(rèn)為是你的仿真器有問(wèn)題。 |
|
| 9樓: | >>參與討論 |
| 作者: shaoguang 于 2003/10/9 19:33:00 發(fā)布:
方向寄存器若定義為輸出,此現(xiàn)象為不可能 |
|
| 10樓: | >>參與討論 |
| 作者: barry_li 于 2003/10/9 19:59:00 發(fā)布:
MISSHAN 方向寄存器若定義為輸出,此現(xiàn)象為不可能 |
|
| 11樓: | >>參與討論 |
| 作者: eeproom 于 2003/10/9 21:01:00 發(fā)布:
建議 你使用哪一型號(hào)的mcu? 帶有AD功能的MCU的A口缺省設(shè)置為模擬輸入,你要修改成IO口,Datesheet上都有詳細(xì)的說(shuō)明,我認(rèn)為要從以下幾個(gè)方面去找毛。 首先不要懷疑MCU有問(wèn)題。既然進(jìn)入市場(chǎng)一定是成熟的東西。 1.是否將porta設(shè)置為IO口; 2.WATCHDOG、INTERRUPT是否有問(wèn)題,是否在這個(gè)時(shí)刻發(fā)生了復(fù)位、中斷?中斷返回是否修改了POATA? 3.外部電路是否有問(wèn)題? 4.換一個(gè)仿真器試一試。 |
|
| 12樓: | >>參與討論 |
| 作者: philip_ch 于 2003/10/9 21:32:00 發(fā)布:
你睇下IO輸入/輸出寄存器。 你睇下IO輸入/輸出寄存器。 另外,BSF PORTA,0它不是真正的對(duì)位操作,而是把整個(gè)PORTA讀近來(lái),再對(duì) 0位置1后再寫(xiě)到A口。 |
|
| 13樓: | >>參與討論 |
| 作者: heckle 于 2003/10/10 0:01:00 發(fā)布:
如shaoguang所述 如果IO方向在執(zhí)行你那幾條指令前是還未定義成輸出,則會(huì)發(fā)生你所說(shuō)的現(xiàn)象. 參考"MICROCHIP單片機(jī)外圍接口單元功能簡(jiǎn)介與使用.ppt"關(guān)于I/O口讀寫(xiě)部分 |
|
| 14樓: | >>參與討論 |
| 作者: misshan 于 2003/10/10 10:30:00 發(fā)布:
今天,一早我又嘗試幾種方法,現(xiàn)象是....... 1)我昨天參考lys的建議,不僅將A口設(shè)為輸出方式,還將ADCON1設(shè)為了0X07,將它設(shè)為數(shù)字I/O口,可是現(xiàn)象沒(méi)有改變,還是老樣子。 2)我將SCL,SDA 兩根線(xiàn)接到B口上,結(jié)果卻變了,位操作正常,所以我認(rèn)為不是位操作指令的問(wèn)題。但我實(shí)在想不出問(wèn)題出在哪里!?A口為什么就是不能正常工作呢? |
|
| 15樓: | >>參與討論 |
| 作者: misshan 于 2003/10/10 14:39:00 發(fā)布:
看到這里,我還是先找找仿真器的生產(chǎn)廠家。 |
|
| 16樓: | >>參與討論 |
| 作者: luozd 于 2003/10/10 15:22:00 發(fā)布:
加一段無(wú)用的操作試試 初始化時(shí)先 movlw b'00000000' movwf TRISA------------------多一次無(wú)用的操作 movlw b'00000111' movwf ADCON1 再 movlw b'xxxxxxxx' movwf TRISA |
|
| 17樓: | >>參與討論 |
| 作者: carrot 于 2003/10/10 17:16:00 發(fā)布:
我懷疑是仿真器的問(wèn)題 如果你一直是在用仿真器,這個(gè)問(wèn)題可能是仿真器的問(wèn)題,你不放寫(xiě)如下程序燒入芯片試試: bsf porta,0,0 nop bsf porta,1,0 nop goto $ 別忘了先初始化和關(guān)中斷,如果用萬(wàn)用表測(cè)量R0為高電平,拿你直接去修仿真器好了。 |
|
| 18樓: | >>參與討論 |
| 作者: TANGQ 于 2003/10/12 1:52:00 發(fā)布:
你的片子上有AD口,所以要先定義ADCON寄存器,疏忽了吧 |
|
| 19樓: | >>參與討論 |
| 作者: misshan 于 2003/10/15 12:38:00 發(fā)布:
:)是啊,解決了,謝謝大家。 |
|
| 20樓: | >>參與討論 |
| 作者: misshan 于 2003/10/15 12:42:00 發(fā)布:
說(shuō)實(shí)話(huà),我都怕了,不知道下面等著我的問(wèn)題能否一一解決? |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |