• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機keil 常見問題

    單片機keil 常見問題

    作者: 時間:2013-08-02 來源:網絡 收藏

    一、混合編程

    1、模塊內接口:

    使用如下標志符:

    #pragma asm

    匯編語句

    #pragma endasm

    注意:如果在c51程序中使用了匯編語言,注意在編譯器中需要激活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模式下選"c51libc51s.lib"加入工程中,如果要進行浮點運算把"c51libc51fpl.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語言教程


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


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


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



    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 当阳市| 福海县| 庆城县| 邢台县| 鹤壁市| 玛多县| 华阴市| 宾川县| 宜黄县| 盐亭县| 深州市| 焉耆| 赤城县| 阜南县| 通渭县| 沂南县| 连云港市| 正镶白旗| 锡林浩特市| 竹北市| 和林格尔县| 钟山县| 吉林市| 昆山市| 东至县| 定结县| 衡水市| 上栗县| 宜都市| 秭归县| 高州市| 衡东县| 邹平县| 灵璧县| 双柏县| 天门市| 任丘市| 隆回县| 宝兴县| 贵阳市| 宣威市|