|
|||||||||||
| 技術(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 |
[求助]為什么PIC單片機(jī)程序中沒法正確賦值? |
| 作者:sopu7758 欄目:單片機(jī) |
我練習(xí)PIC單片機(jī)匯編,結(jié)果一開始就碰釘子。軟件是mplab ide 5.70.40,軟件EMULATOR是2.60.40版。編了個(gè)最基本的,即: liang equ 10h 疑問1: 我的本意是想用watch windows觀察一下其執(zhí)行情況,不料點(diǎn)擊F6復(fù)位鍵,再點(diǎn)擊F7單步執(zhí)行鍵,發(fā)現(xiàn),W寄存器和liang這個(gè)變量,都沒有如我期望的那樣,被賦99這個(gè)十進(jìn)制值。 疑問2: 如果將99,改成09,那么,W寄存器和liang這個(gè)變量,倒是如期望的那樣,被賦了9。可是,我連續(xù)點(diǎn)擊F7鍵,卻發(fā)現(xiàn),liang倒是沒有變化,W寄存器居然搞起0到255的循環(huán)來了,這是怎么回事? 疑問3: 還有,上面的程序雖然能夠執(zhí)行,可點(diǎn)擊“生成全部”時(shí),老是顯示 Warning[207] C:\ASMPIC\004TES~1\04.ASM 1 : Found label after column 1. (liang) 這樣的警告是什么意思?在program MEMORY windows,我發(fā)現(xiàn), liang equ 10h這一句根本不占任何一行,奇怪? 疑問4: 這里又有一個(gè)小程序 STATUS EQU 03H BSF STATUS,RP0 END 奇怪的是,這個(gè)程序,雖然Build completed successfully.?捎脕眢w選的變量RP0,就是沒辦法設(shè)置成1。 至于我的系統(tǒng)設(shè)置:option-development mode-tool下面,processor選的是PIC16F877,點(diǎn)選了mplab sim simulator。這應(yīng)該沒錯(cuò)吧,何況,就算有錯(cuò),也不應(yīng)該影響軟件仿真吧? 另外,我將小寫換成大寫,故障依舊,莫非匯編語(yǔ)言不區(qū)分大小寫? |
| 2樓: | >>參與討論 |
| 作者: 小青龍 于 2007/8/17 10:03:10 發(fā)布:
這是完整的程序嗎,要看到99D應(yīng)該賦99H LOOP: MOVLW 99H MOVWF LIANG GOTO LOOP |
|
| 3樓: | >>參與討論 |
| 作者: 小青龍 于 2007/8/17 10:08:22 發(fā)布:
偽指令只是用來告訴編譯器要做什么,所以匯編時(shí)不會(huì)生成代碼,但如果是宏指令,有些就會(huì)生成實(shí)際代碼,不能置1可能是芯片不需要該位參與設(shè)置 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |