當前位置:首頁 » 編程軟體 » 單片機的匯編程序

單片機的匯編程序

發布時間: 2023-01-12 08:23:21

A. 51單片機中如何用匯編語言編寫流水燈

流水燈就是51單片機控制led燈依次點亮的控制方式。具體程序如下:

ORG 0000H;復位啟動
AJMP START;
ORG 001BH;T1中斷
AJMP T1INT;

;定義變數========================
YSJSEQU 30H;延時計數器
LEDEQU 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;匯編程序結束

(1)單片機的匯編程序擴展閱讀:

實現流水燈的三個方法:

第一種,匯流排方法實現流水燈。這是一種比較笨但又最易理解的方法,採用順序程序結構,用位指令控制P1口的每一個位輸出高低電平,加上延時函數,即可控制每個LED燈的亮滅。

第二種,移位方法實現流水燈採用循環程序結構編程。首先在程序開始給P1.0口送一個低電平,其它位為高。然後延時一段時間再讓低電平往高位移動,這樣就實現「流水」的效果了。

第三種,庫函數實現流水燈。利用左移函數進行。

B. 單片機程序用什麼軟體轉匯編程序

直接用proteus。

c語言的程序,但轉換的結果不是太理想,跟反匯編差不多,需要自己去整理,其轉移的標號需要自己重新定義,轉換結果里是用行地址替代的。

先將匯編語言編譯成HEX或BIN文件,再通過相應的下載手段把文件下載進去,編譯的話比如WAVE軟體就可以,很多的,下載的話要看什麼型號的單片機了,有些支持在線ISP下載,那麼電腦裝個軟體,通過232串口連接到板子上,就可以了,有些呢,是需要買專門的燒寫器的。

簡單匯編程序

簡單匯編程序 又稱「裝入並執行」式匯編程序。由於簡便而得到廣泛使用。這種匯編程序的特點是匯編後的機器語言程序直接放在內存之中准備執行。目標程序所佔據的存儲位置是在匯編時固定的,並且以後不能改變,所以這種工作方式不能將多個獨立匯編的子程序合並為一個完整的程序,而且只能調用位置與目標程序不沖突的程序庫中的子程序。

以上內容參考:網路-匯編程序

C. 單片機匯編程序

ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 001BH
LJMP T1ISR
ORG 4000H
MAIN:
MOV TMOD,#11H
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
MOV TH1,#HIGH(65536-50000)
MOV TL1,#LOW(65536-50000)
SETB TR0
SETB ET0
SETB TR1
SETB ET1
SETB EA
MOV R2,#0
MOV R3,#0
MOV R7,#10
MOV R6,#20
SJMP $
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
DJNZ R7,T0E
MOV R7,#10
MOV A,R2
MOV DPTR,#TABL
MOVC A,@A+DPTR
ANL A,#0FH
ORL A,P1
MOV P1,A
INC R2
CJNE R2,#5,T0E
MOV R2,#0
T0E:
RETI
T1ISR:
CLR TR1
MOV TH1,#HIGH(65536-50000)
MOV TL1,#LOW(65536-50000)
SETB TR1
DJNZ R6,T0E
MOV R6,#10
MOV A,R3
MOV DPTR,#TABR
MOVC A,@A+DPTR
ANL A,#0F0H
ORL A,P1
MOV P1,A
INC R3
CJNE R3,#5,T1E
MOV R3,#0
T1E:
RETI
TABL:
DB 0FEH,0FCH,0F8H,0F0H,0FFH
TABR:
DB 0EFH,0CFH,08FH,0FH,0FFH
END

D. 關於單片機的原碼,反碼,補碼 之 匯編程序的問題

這程序是錯誤的。
1. 它用的數據,並不是補碼,而是原碼。
因此計算起來,需要變換稱為補碼,相當的麻煩。
2. 原碼變換成補碼,先要判斷正負。
負數的原碼,才需要變換,正數不用變。
而這個程序並沒有判斷,都進行了變換,這是錯誤的。
3. 負數原碼變換到補碼,是數值部分取反加一。
而這個程序,是全部都取反了。
4. 程序中的標號,使用錯誤。
不應該用 ADD、SUB 這樣的保留字。
5. 調用了多次子程序,都沒有「返回 (RET)」。
這程序,早就跑飛了。
建議作者重新編程。

E. 單片機 匯編程序

ORG 0000H;以下匯編代碼存放到ROM的0000H開始的連續單元內(主程序入口)
LJMP START;轉主程序
ORG 001BH;以下匯編代碼存放到ROM的001BH開始的連續單元內(中斷服務程序入口)
KKKK:INC A;A加1
CJNE A,#100,KKKK;沒有加到100轉KKKK
RETI;加到100中斷返回
ORG 0030H;主程序
START:MOV TMOD #50H;設置T1方式1計數
REPEAT: MOV TH1, #73H;
MOV TL1, #98H;設置定時初值(50ms)
MOV IE #82H;開中斷,允許T1溢出中斷
SETB TR1;啟動T1計數
LOOP:JNB TF1,$;等待溢出中斷
CLR TF1;清T1溢出中斷標志位
MOV TH1, #73H
MOV TL1, #98H;設置定時初值(50ms)
SJMP LOOP;循環繼續
END;匯編結束

F. 單片機匯編語言程序的三種基本結構

匯編語言程序有順序程序、分支程序、循環程序三種。分支結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。

分支結構的程序設計方法的關鍵在於構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的分支語句。



(6)單片機的匯編程序擴展閱讀:

注意事項:

匯編指令不區分大小寫,目的操作數是存結果的,原操作數是被操作的。

二進制數後跟b,十六進制數後跟h,十進制數不需特殊標記。

匯編源程序中,數據不能以字母開頭,需要在前面加上0,如0a000h。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:593
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:888
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:582
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:765
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:684
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1013
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:255
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:114
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:806
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:713