單片機keil 常見問題

2021-01-20 電子產品世界

一、混合編程

1、模塊內接口:

使用如下標誌符:

#pragma asm

彙編語句

#pragma endasm

注意:如果在c51程序中使用了彙編語言,注意在keil編譯器中需要激活Properties中的「Generate Assembler SRC File」 和「Assembler SRC File 」兩個選項

來個實例吧:

#i nclude

void main(void)

{

P2=1;

#pragma asm

MOV R7,#10

DEL:MOV R6,#20

DJNZ R6,$

DJNZ R7,DEL

#pragma endasm

P2=0;

}

另:

1、把"xx.c"加入工程中,右擊"xx.c"選擇「options for file"xx.c" 選擇「Generate Assembler SRC File」和「Assemble SRC File」打上黑勾有效;

2、根據選擇的編譯模式,把相應的庫文件象加"xx.c"一樣加入工程中並放在"xx.c"下面,如smail模式下選"keilc51libc51s.lib"加入工程中,如果要進行浮點運算把"keilc51libc51fpl.lib"也加入工程中。

在 Keil 安裝目錄下的 C51LIB 目錄的LIB 文件如下:

C51S.LIB - 沒有浮點運算的 Small model

C51C.LIB - 沒有浮點運算的 Compact model

C51L.LIB - 沒有浮點運算的 Large model

C51FPS.LIB - 帶浮點運算的 Small model

C51FPC.LIB - 帶浮點運算的 Compact model

C51FPL.LIB - 帶浮點運算的 Large model

3、在"xx.c"頭文件中加入優化:比如#pragma OT(4,speed)

4、在"xx.c"中加入彙編代碼

#pragma ASM

;Assembler Code Here

#pragma ENDASM

5、編譯生成xx.hex

注意:

沒有做第一步會有如下警告:'asm/endasm' requires src-control to be active

沒有做第二步會有如下警告:UNRESOLVED EXTERNAL SYMBOL;

REFERENCE MADE TO UNRESOLVED EXTERNAL等

沒有做第三步會有如下警告:UNDEFINED SYMBOL (PASS-2)

51單片機相關文章:51單片機教程

c語言相關文章:c語言教程

單片機相關文章:單片機教程

單片機相關文章:單片機視頻教程

單片機相關文章:單片機工作原理


相關焦點

  • 簡析單片機keil常見問題
    一、混合編程  1、模塊內接口:  使用如下標誌符:  #pragma asm  彙編語句  #pragma endasm  注意:如果在c51程序中使用了彙編語言,注意在keil編譯器中需要激活Properties中的「
  • 怎樣讓Keil軟體同時兼容51單片機和ARM單片機的問題
    相信學ARM的童鞋大多數都是先學過51的,你如果用Keil這樣的編譯環境的話,也許你會發現之前學校51的Keil開發環境無法兼容ARM,或者你在做項目,同時要用到Keil開發51單片機和ARM單片機,這個時候就開始無奈了,發現裝了keil C或ADK 裡面都只有51或者ARM一種單片機核可供選。難道要我們分別安裝這兩個軟體?
  • 【單片機筆記】keil c51編譯環境不能跳轉函數的解決辦法
    keil c51 不能使用:Go to Definition of....的解決方法最近使用keil c51 開發usb固件,當向vc一樣使用Go to Definition of....時,出現警告對話框:no browse information available in'工程目錄'check
  • 第2課 keil軟體及工程文件的建立
    而在進行軟體學習的時候需要用到單片機實驗板進行實驗驗證,實驗板建議直接購買,當然如果電子技術基礎好的話,自己做板也是可以的。這次教程開發程序所用到的軟體為keil uVision2,該軟體大家可以到實驗室的下載中心進行下載;硬體實驗平臺主要採用我們實驗室自行設計的實驗板,有需要的請直接與我們聯繫。
  • 一篇詳細的KEIL C51 UV2使用教程
    這裡我大致說說怎麼開始keil vision2,因為我剛開始用它,不當之處請莫見笑!希望可以互相交流,共同促進。keil等的代碼編譯軟體,初學者需要從第一步新建工程走起,做好第一步,才能越走越遠。工具/原料電腦,keil軟體方法/步驟打開keil軟體,找到project,下拉菜單有一項new uvision project。點擊這個項目,會出現一個項目路逕自定義項目名稱和保存位置。選擇需要燒代碼的單片機晶片的生產公司以及相應的晶片型號上一步做好以後,出現一個提示,點是就會生成一個51的啟動文件,否就不會出現,如圖,是點了是以上步驟就新建了一個工程。我們可以直接add進去已有的文件。
  • Keil編譯警告:function "assert_param" declared implicitly的...
    1 問題描述新建STM32的keil工程,在編譯時出現警告「..FWLIBsrcstm32f10x_rcc.c(273): warning: #223-D: function 「assert_param」 declared implicitly」,接下來一堆警告和錯誤。
  • Keil C51中靜態庫的生成與使用
    庫文件還是可以反編譯成彙編,這點對單片機來說是個壞消息關鍵字:Keil  C51  靜態庫 編輯:什麼魚 引用地址:http://news.eeworld.com.cn/mcu/article_2016112431708.html 推薦閱讀 51單片機
  • KEIL4 工程到 KEIL5 程序的移植方法
    首先我們用 keil5 打開 keil4 的工程, 則會彈出下面的窗口, 這就是我們程序兼容的關鍵。這需要配置keil軟體 在option屬性中Asm選項卡中去掉Enable ARM/Thumb Interworking選項。
  • 自學單片機第三篇:keil軟體
    官網的軟體各方面都有保證,英文並不影響使用,因為我們能用的功能項目,位置就那幾個,記住就好了,而且不用擔心莫名其妙的問題。打開官網,點擊上方的「download」進入下載頁面。我之前裝的是keil4,現在網絡上是keil5,圖標變成綠色,4改成5。圖標雙擊打開軟體,界面如下。
  • 靈動微MM32F103單片機常見問題解答
    下面英尚微代理商解答關於MM32F103產品中的一些常見問題。如無外接電池,即使不用 RTC 功能,也需要給 VBAT 供電;KEIL 例程編譯失敗可能導致的原因常見原因:1) 沒有安裝 keil4 的兼容包,軟體名稱為:MDKCM516_legacySupportMDK4(出問題最多)2) 移動了 keil 工程文件,導致無法找到相對路徑的文件
  • 淺談三種單片機程序調試方法
    一、仿真器調試(硬體仿真)最近咱們學院購買了廣州致遠電子有限公司的周立功DP-51PROC試驗儀,上周四下午,我們去倒騰了一番,感覺這試驗儀對學習51系列單片機還是蠻有用處的,特別是結合其仿真器進行調試程序還是很好的。
  • 如何讓Keil MDK兼容Keil C51?
    原來用51單片機,使用的是KeilC51uVisionV4.02;最近搞STM32本文引用地址:http://www.eepw.com.cn/article/201611/322711.htm下面這個方法可以讓keilMDK兼容51的工程,只要一個keil就都能編譯51和stm32的工程了:1、安裝keilC51,並破解,安裝目錄C:keilC512、安裝keilMDK,並破解,安裝目錄C:keilMDK
  • 單片機C語言編程實現對舵機控制
    單片機通過控制舵機實現小車的轉向。本文主要介紹如何使用51單片機實現對舵機進行偏轉角度控制。所使用舵機型號為MG996R,使用晶片為STC89C52。周期20ms主要藉助51單片機定時器1設置在0.5ms產生中斷,在中斷處理函數中設置高低電平。同時通過變量記錄中斷執行次數,當次數達到40時即為一個周期20ms。本例測試使用51單片機開發板,按鍵K2與K3控制舵機角度增加與減少,其中K2對應P3.4引腳,K3對應P3.5引腳。
  • 51單片機玩轉物聯網基礎篇01-開發環境搭建
    前言上至航天,下至兒童玩具,凡事沾一點智能的東西,都離不開單片機的身影......,本文開始,我們學習STC89C52單片機,這款單片機屬於8051系列單片機,51單片機作為入門級單片機不僅在教學實驗中應用廣泛,在實際項目中應用亦是十分廣泛。
  • 在KEIL中不同C文件中進行參數傳遞的方法
    在用KEIL進行單片機程序開發的時候,為了程序更加易讀和規範,開發者喜歡把程序分為若干個模塊,每個模塊的程序段單獨存儲在不同的C文件中,這就產生了一個問題,在不同的C文件裡面可能會共用到同一個全局變量,例如在一個C文件裡面定義了一個溫度傳感器的數據變量temp, 這個數據又需要在另一個C文件裡面使用,那麼在一個C文件裡定義和使用的變量怎麼被另一個C文件裡的程序使用呢?
  • labview實現PC與單片機之間的串口通信
    使用Proteus進行單片機仿真,仿真硬體連接,串口通信部分使用keil與labview,FF,十六進位)發送給單片機,單片機收到後回傳這個數字,PC接收到回傳數據後顯示出來,若發送的數據和接收到的數據相等,則串行通信正確,否則有錯誤。啟始符是數字00,結束符是數字FF。
  • 在keil中怎麼燒寫程序
    打開APP 在keil中怎麼燒寫程序 發表於 2017-11-16 10:52:58   什麼是keil
  • 第5節:用keil軟體新建,關閉,打開一個完整工程的操作流程
    從業十年,教你單片機入門基礎 第五講:Keil平臺軟體的安裝我就不多講了,網上這方面的資料很多,大家可以百度一下如何安裝keil的教程。
  • keil C51中的本徵函數庫及使用說明
    >(unsigned int)val左移n位extern unsigned long _lrol_ (unsigned long val, unsigned char n));(unsigned long)val左移n位extern unsigned char _chkfloat_(float);測試並返回float的狀態一下摘自keil
  • KEIL(MDK)同時兼容STM32和51系列單片機的方法
    破解結果方法二:下面這個方法可以讓keilMDK兼容51的工程,只要一個keilkeil5