當前位置:首頁 » 編程語言 » c51匯編語言教程
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c51匯編語言教程

發布時間: 2022-05-05 18:14:47

1. 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 ;匯編程序結束

2. C51單片機匯編語言

DEL,DLYRAM是標記號,後面跟有:(冒號)
$是本匯編行的地址,舉個例子:
SJMP $
這一句,就相當於
Loop:
AJMP Loop

3. 如何在C51語言程序中調用匯編語言程序

把匯編中的函數也在頭文件中進行函數申明,引用這個頭文件後,C語言就能調用這個函數了,跟調用C函數是一樣的。

4. 單片機,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

5. 單片機C51匯編語言 怎麼區分 匯編語言中出現的 數 和 地址

1、(R1)=20H 不是一條指令,而只是一種說明,表明R1寄存器中的內容是20H。這個20H是地址還是數據,與這個說明無關。

2、在指令 MOV @R1,#40H 中,@R1 是間接定址方式,表明R1中的內容是地址,指令的功能表明是將立即數40H傳送到R1指定的地址中。

3、在指令中容易混淆的是立即數與直接地址,立即數的特徵是有一個前綴#,直接地址沒有這個前綴。

6. 51單片機匯編教程

在網路搜索《mcs-51、96系列單片機原理及應用》,孫涵方著,32開本大小,北京航空航天大學出版社1988年出版。書雖老,但很經典,對匯編部份講的最細致、最完整,還有許多常用子程序。
如果買不著,也可以在網路文庫中下載PDF格式的電子版。

7. 匯編語言怎麼寫入單片機

利用編譯軟體,業界最常用功能最強大的是KEIL uv2/3,將你的源程序編譯生成為.hex格式的文件。具體用法你可以先下載一個keil c51的軟體。找一個教程看一下。keil c51可以編譯C語言,也可以編譯匯編語言,也可以把兩者混合匯編。但是只有將他們轉換成.hex格式(十六進制格式文件)的文件(或者二進制的文件,這種情況一般很少),單片機才能識別。
程序編譯好後,剩下的工作就是將生成的.hex燒錄到單片機中去啦。使用編程器將文件傳到單片機中就行啦。
編程器(也即程序燒錄器)現在網上有很多賣的(很便宜的,四五十就行了。我前一段時間在淘寶上買了一個。當然,也可以自己做一個,算了下自己做的話,單個的成本也在三十六塊錢左右。單個做不合算,批量才有的賺),很多可以通過計算機串口直接將單片機燒錄好。然後再將燒錄好的單片機取下來,安裝在你的MCU系統中。上電....

搞定收工!O(∩_∩)O~

8. 在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;

}

}

}

9. 用keil C51怎麼把C源程序轉換成匯編代碼

在編譯時就可以自動生成asm文件,但需要在設置菜單中設置。
工程——選項——Listing——該選的選中(asm……)

如此將產生lst文件,打開.lst文件下拉到後面,可見到ASM部分代碼,復制到editer,刪除沒有用的部分,留下ASM部分,把它編輯為asm 文件即可。

10. 在C51中,怎樣嵌入匯編語言程序

voidfunc()
{
C語言代碼……
#pragmaasm
MOVR6,#23
DELAY2:
MOVR7,#191
DELAY1:
DJNZR7,DELAY1
DJNZR6,DELAY2
RET
#pragmaendasm
C語言代碼……
}