導航:首頁 > 編程語言 > c51匯編程序

c51匯編程序

發布時間:2022-06-20 13:17:14

㈠ KEIL C51程序中如何嵌入匯編

模塊內介面:
使用如下標志符:
#pragma
asm
匯編語句
#pragma
endasm
注意:如果在c51程序中使用了匯編語言,注意在Keil編譯器中需要激活Properties中的
「Generate
Assembler
SRC
File」
和「Assembler
SRC
File
」兩個選項
1、把"xx.c"加入工程中,右擊"xx.c"選擇「options
for
file"xx.c"
選擇
「Generate
Assembler
SRC
File」和「Assemble
SRC
File」打上黑勾有效;
2、根據選擇的編譯模式,把相應的庫文件象加"xx.c"一
樣加入工程中並放在"xx.c"下面,如smail模式下選"keil\c51\lib\c51s.lib"
加入工程中,如果要進行浮點運算把"keil\c51\lib\c51fpl.lib"也加入工程中。
即:

Keil
安裝目錄下的
\C51\LIB\
目錄的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
例:
#include
void
delay(void)
{
#pragma
asm
MOV
R5,#5
DEL:
MOV
R6,#2
DEL1:
MOV
R7,#255
DJNZ
R7,$
DJNZ
R6,DEL1
DJNZ
R5,DEL
;MOV
A,P1
;CPL
A
;MOV
P1,A
#pragma
endasm
}
void
delay1(unsigned
int
cnt)
{
while(cnt--);
}
void
main()
{
while(1)
{
delay1(1000);
P1=0x55;
delay();
}
}

㈡ C51是否可以運行匯編程

一、單片機只支持機器碼,不管是C51還是匯編,到了單片機里全變成0和1了。
二、只要你的燒寫程序可以把HEX文件寫入單片機,就可以寫入匯編程序並運行。
三、C51里可以嵌入匯編代碼:
//......
//C51代碼
//......
#pragma asm
//匯編代碼
//......
#pragma ENDASM
//......
//C51代碼
//......

謝謝玉硯幫忙。

㈢ 求C51匯編程序 讓有源蜂鳴器以不同頻率響

有源蜂鳴器都是長鳴固定頻率的,只要加5Ⅴ電壓就響。要按不同頻率發聲,應該用無源蜂鳴器,或小功率的揚聲器,即小喇叭。利用定時器定時,輸出一定頻率的方波信號即可。如1KHz方波,信號周期為1ms,定時0.5ms=500us,假設單片機晶振頻率是12M,機器周期是1us,用定時器T0,定時的初始值,X=65536-500=65036=FE0CH,TH0=FEH,TL0=0CH。
匯編程序:
START:MOV TMOD , #01H
SETB TR0
LOOP:MOV TH0 , #0FEH
MOV TL0 , #0CH
JNB TF0 , $

CLR TF0
CPL P1.7 ; P1.7輸出方波信號
SJMP LOOP
你想要其他頻率的信號,可參照上面的計算過程和程序,自己修改一下就成了。

㈣ 單片機,c51匯編語言編寫程序

SUBDATA:
CLRC
MOVA,41H
SUBBA,43H
MOVA,40H
SUBBA,42H
JCSUBD1
MOV44H,40H
MOV45H,41H
MOV46H,42H
MOV47H,43H
RET
SUBD1:
MOV44H,42H
MOV45H,43H
MOV46H,40H
MOV47H,41H
RET

㈤ 在C51單片機中如何在C語言中加入匯編程序


C
文件中要嵌入匯編代碼片以如下方式加入匯編代碼:
#pragma

ASM
;
Assembler

Code
Here
#pragma
ENDASM
其他參考
http://hi..com/layueyi/blog/item/e2cadaca1591e944f21fe7f3.html

㈥ c51與匯編語言的特點各有哪些怎樣實現兩者的優勢互補

這里不能長篇大論,簡單說下。
匯編語言擁有面向機器的低級語言獨特的特點,生成的機器代碼簡潔、佔ROM空間少、執行效率高,適用於一些對時序要求特別精確的場合,如遙控解碼、步進電機的控制等等。但匯編語言程序不直觀、結構性差、不便於維護和移植,編程效率低。
C51屬於間接面向機器的中級語言,同樣具有獨特的特點,生成的機器代碼相對簡潔、佔ROM空間稍大、執行效率可以接受,適用於一些對時序要求不是特別精確的場合,如各種控製程序、顯示程序、通信程序、測量程序等等。C51語言程序直觀、結構性好、很容易維護和移植,編程效率非常高。

怎樣實現兩者的優勢互補呢?
其實C51語言設計者已經注意到了上述差別,可以再C51源程序中嵌入匯編代碼,達成優勢互補,俗稱混合編程。這屬於編程技巧范疇,不多討論。

㈦ c51單片機中如何用匯編語言編寫流水燈

51單片機用匯編語言編寫流水燈程序,就是控制多個LED
,使其在特定時間間隔內,只有一個LED
發光,其他熄滅,用這種方式順序移動點亮LED的位置,就形成了流水燈的效果。以下是程序:
;假設晶振12MHZ,P1控制8個LED低電平亮
;啟動入口========================
ORG
0000H
;復位啟動
AJMP
START
;
ORG
001BH
;T1中斷
AJMP
T1INT
;
;定義變數========================
YSJS
EQU
30H;延時計數器
LED
EQU
31H;LED控制緩沖器
;主程序==========================
START:
MOV
LED,#0FEH
;初始化數據
MOV
YSJS,#0
;
;
MOV
TMOD,#10H
;定時器1工作於方式1,16位定時器
MOV
TL1,#0B0H
;設置定時初值
MOV
TH1,#3CH
;定時時間=50mS
SETB
ET1
;使能定時器1中斷
SETB
TR1
;啟動定時器1
SETB
EA
;開總中斷
MOV
P1,LED
;初始化流水燈
;
LOOP:
JMP
LOOP
;循環等待中斷
;
;
T1INT:
PUSH
PSW
;定時器1中斷程序
PUSH
ACC
;保護現場
;
MOV
TH1,#3CH
;定時時間=50mS
MOV
TL1,#0B0H
;
INC
YSJS
;
PUSH
ACC
;保護ACC
MOV
A,YSJI
;
CJNE
A,#2,QT1
;50mS*2=100mS
MOV
P1,LED
;
MOV
A,LED
;
RL
A
;累加器A的值循環左移1位
MOV
LED,A
;
MOV
YSJS,#0
;
;
QT1:
POP
ACC
;恢復現場
POP
PSW
;
RETI
;返回主程序
END
;匯編程序結束

㈧ 在C51語言中如何嵌入匯編語言

keil C 語言中嵌入匯編語言進行混合編程,方法如下:

1、在C 文件中要嵌入匯編代碼片以如下方式加入匯編代碼

#pragma ASM

; Assembler Code Here

#pragma ENDASM

2、在Project 窗口中包含匯編代碼的C 文件上右鍵,選擇「Options for ...」

4、編譯,即可生成目標代碼

實例:

#include<reg52.h>

#define uchar unsigned char

sbit LED1=P1^0;

//C 嵌入匯編常式

void delay_ms(void)

{

#pragma asm

MOV R0,#0FFH

MOV R1,#0FFH

D_LOOP1:

DJNZ R0,D_LOOP1

MOV R0,#0FFH

DJNZ R1,D_LOOP1

#pragma endasm

}

void main(void)

{

uchar i;

P1 = 0xFF;

while(1)

{

i++;

delay_ms();

if(i>=7)

{

LED1 =~LED1;

i=0;

}

}

}

㈨ c51的匯編程序書寫格式

一行只能寫一條指令,如果能通過編譯就說明你的語法是沒問題,功能不能實現的話你就要回頭再慢慢看每一條程序了,看什麼地方與要實現的效果不對應

㈩ C51寫單片機程序如何插入匯編指令.

C51些單片機程序插入匯編指令的方法如下:

1、以#pragma asm開始,以#pragma endasm結束,

用pragma asm和#pragma endasm這兩個偽指令將匯編代碼包起來。

比如:

3、如果勾選橢圓圈中的兩項,這樣就可以了。

閱讀全文

與c51匯編程序相關的資料

熱點內容
不會數學英語如何編程 瀏覽:88
如何能知道網站伺服器地址 瀏覽:648
程序員月薪5萬難嗎 瀏覽:138
如何評價程序員 瀏覽:803
雲虛機和伺服器的區別 瀏覽:403
廣西柳州壓縮機廠 瀏覽:639
arm開發編譯器 瀏覽:833
51單片機的核心 瀏覽:746
看電視直播是哪個app 瀏覽:958
將c源程序編譯成目標文件 瀏覽:787
再要你命3000pdf 瀏覽:558
ai軟體解壓軟體怎麼解壓 瀏覽:520
文件夾怎樣設置序列號 瀏覽:963
javascriptgzip壓縮 瀏覽:248
易語言怎麼取出文件夾 瀏覽:819
蘋果xs手機加密app哪裡設置 瀏覽:605
超聲霧化器與壓縮霧化器 瀏覽:643
模擬實現進程調度演算法 瀏覽:388
現在的壓縮包都是加密 瀏覽:331
施工員找工作去哪個app 瀏覽:632