導航:首頁 > 源碼編譯 > 怎麼用偉福編譯

怎麼用偉福編譯

發布時間:2025-04-28 01:21:04

1. 51單片機編程問題

1:C51編譯器如何區分位地址和位元組地址
是靠預定義實現的,比如:sfr P0 = 0x80; sbit P0_0 = 0x80;前者聲明了P0埠地址位於0x80,後者說明了P0埠的bit0,即P0.0位於位地址空間0x80處。這2個0x80具有完全不同的含義,靠關鍵字sfr和sbit來區別。這樣當程序被編譯時,編譯器會依此編譯成相應的匯編語言。例如:

C51語句: P0 = 1;

P0聲明為sfr,因此編譯成:mov 80h,01h,將把0x01數據送入0x80單元,由於0x80單元物理上對應P0埠,因此,P0.0腳將輸出高電平(其實是呈現高阻態,P0口獨有的),其他.1-.7腳輸出低電平。

C51語句: P0_0 = 1;

P0_0聲明為sbit,因此編譯成:setb 80h,這將把位地址空間的0x80地址的bit的值置1。這個位正是P0口的bit0,執行後,P0.0將輸出高阻態。而P0.1-.7不會變化。

2:C51為什麼要嵌套匯編
51單片機一個顯著優點就是指令執行時間固定,因此可以適應時序要求嚴格的場合。例如符合ISO7816協議的cpu卡的讀寫,對時序要求比較嚴格。其實就是用io腳做出來的同步半雙工串口。支持cpu卡的程序一般比較龐大,需要用c51來組織,但是由於c編譯的不確定性,必須把底層程序封裝成匯編語言模塊嵌入到工程中。這就帶來幾個問題:如何聲明函數、參數如何傳遞等。限於篇幅,不能說得很細。下面舉例:

匯編程序單獨保存一個文件,加入到工程中,函數如下:

_proc_a:

mov a, r7

inc a

mov r7, a

ret

用c語言在.h文件中聲明: extern unsigned char proc_a(unsigned char val);

調用時形如: retvalue = proc_a(0x11);

說明:

a:匯編程序如果帶參數,則需要在匯編程序前多加一個下劃線。而聲明它的地方不用加(偉福編譯器這么要求的)。

b:函數的形參中第一參數用R7傳遞,函數返回值用R7返回,這是C51的通用規范。其他參數都有相應規定。函數可以返回一個位,用psw的c位返回。c:上面的語句,執行順序是把0x11給R7,然後跳轉子程序,子程序將它加1後送回。

d:函數跳轉到匯編程序時,本區的R0-R7,A,B,PSW,DPTR等寄存器可以供子程序使用,不必考慮調用後是否要恢復這些常規資源。上例中,A的值被函數使用了,編程者不必恢復調用前的值。

2. WAVE6000未安裝編譯器或者指定路徑錯誤 怎麼解決 提示說請使用偉福安裝盤,運行LAB2000安裝 求高人解決

你先雙擊進入偉福軟體編輯器,然後點擊菜單欄中的編輯器,選擇模擬器設置,在選擇語言欄,看到讓你輸入的編輯器路徑了嗎,選擇正確的編譯器路徑,然後再編輯試試!如果你用的是51可以選擇這個編譯器comp51 這是路徑C:\comp51\COMP51V6\;如果沒有編譯器可以到csdn下載個!

3. 如何在偉福中使用c

你可以下栽免費的keil c51,將他的編譯器拷到wave的根目錄,然後改變wave界面中的編譯器的連接地址。

4. 程序設計好後 怎麼實現不安裝編譯器就能運行的

用不需要編譯的語言來寫程序,就不需要安裝編譯器就能運行。例如腳本語言。

需要編譯的語言寫的程序,如果在別的機器上編譯,或通過網路(例如通過WinVNC) 用別的機器上的編譯器來編譯,那麼本機就不需要安裝編譯器。

5. 為什麼我用偉福的編譯C文件時候出現"未安裝編譯器或編譯器路徑指定錯誤"

用別的編譯器好了
介紹你下這個下載Turbo C/C++ 3.0
http://www.pay500.com/s6/67269.htm

閱讀全文

與怎麼用偉福編譯相關的資料

熱點內容
企業透明加密軟體有監視功能嗎 瀏覽:492
桌面的運行命令 瀏覽:7
主流廠商伺服器維護流程是什麼 瀏覽:807
壓縮棉的被子先洗洗在用 瀏覽:242
批處理bat代碼和文件夾 瀏覽:296
怎麼交叉編譯tslib14 瀏覽:493
致程序員生產力飆升 瀏覽:760
程序員害怕下班嗎 瀏覽:107
鐵路漢宜線加密網實景效果圖 瀏覽:929
php工作難找 瀏覽:440
微信拼手氣紅包源碼 瀏覽:380
javaexcel公式計算 瀏覽:629
mastercam二維編程 瀏覽:384
加密協議aes和tkip 瀏覽:707
數據結構與演算法彭軍 瀏覽:770
二類app是什麼意思 瀏覽:498
可示教編程的plc 瀏覽:404
好看的個人界面源碼 瀏覽:882
手機加密文件夾解密方法 瀏覽:654
智能門鎖只能添加密碼不能修改 瀏覽:554