欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2229|回復: 5
打印 上一主題 下一主題
收起左側

我的C語言嵌套匯編哪有問題?

[復制鏈接]
跳轉到指定樓層
樓主
ID:328334 發表于 2018-11-27 19:11 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include "reg52.h"
#include<intrins.h>        
sbit beep=P1^5;
void del(void)
{
#pragma asm
del3:mov r5,#100
del2:mov r6,#100
del1:mov r7,#25
del0:nop
            nop
                        djnz r7,del0
                        djnz r6,del1
                        djnz r5,del2
#pragma endasm
}
void main()
{
while(1)
{
  beep=~beep;
         del(void);
}
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:155507 發表于 2018-11-27 19:42 | 只看該作者
使用C51進行單片機編程是事半功倍的事,但是很多算法上以及編譯上的問題,往往使用ASM代碼更為方便又高效。但不知什么原因,Keil在實現C51夾雜ASM代碼比SDCC麻煩很多,方法如下:
預處理指令 #pragma asm 開始ASM代碼
預處理指令 #pragma endasm 結束ASM代碼

如果就這樣直接編譯的話,會出現以下錯誤:
error C272: 'asm/endasm' requires src-control to be active
解決方法:在 Files Toolbar 中選中當前C51文件,點右鍵查看文件選項,將 Generate Assembler SRC File 與 Assemble SRC File 的勾選由灰色變為黑色,即使這兩項有效!
這時進行編譯沒有問題,但是Link時產生了兩個警告:
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
解決方法是需要在 Source Group 中添加一個 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
LIB 方件在 Keil 安裝目錄下的 /C51/LIB/ 目錄中。


回復

使用道具 舉報

板凳
ID:328334 發表于 2018-11-27 19:44 | 只看該作者
我嵌套其他匯編完全沒問題,就是精準延時的特別難弄
回復

使用道具 舉報

地板
ID:119159 發表于 2018-11-27 20:20 | 只看該作者
    選中 Project  窗口中的C  文件,比如CX1.C,并右鍵,選擇“Options  for  ...”,點擊右邊的“Generate Assembler SRC File”和“Assemble SRC File”,使復選框的打鉤由灰色變成黑色狀態(雙擊即可);
build的時候需要在SOURCE GROUP 1中插入相關的LIB庫文件

最后一行
del();
回復

使用道具 舉報

5#
ID:434498 發表于 2018-11-27 20:32 | 只看該作者
程序還行,nice
回復

使用道具 舉報

6#
ID:401564 發表于 2018-11-28 08:16 | 只看該作者
不過是延時,你還不如看編譯之后匯編代碼來改,只要C可以正確編譯,都是可以看到對應函數的匯編代碼,然后可以根據匯編代碼來修改延時時長
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表