單片機匯編程序
① 51單片機匯編程序
ORG 0
CALL KEY_1
CALL KEY_1
CALL KEY_1
CPL P1.0
SJMP 0000
KEY_1:
JB P3.2, $
CALL DL10MS
JB P3.2, KEY_1
JNB P3.2, $
RET
DL10MS:
...;軟體延時,自己編寫吧
RET
② 單片機匯編程序的流程圖是什麼
初學單片機的40個實驗(含匯編程序、C程序、流程圖)
給初學者單片機的40個實驗,帶源碼,需要資料的加群:813238832
也可以到闖客網技術論壇下載更多關於單片機,MTK的資料和學習案例
模擬開關燈
1. 實驗任務
如圖4.2.1所示,監視開關K1(接在P3.0埠上),用發光二極體L1(接在單片機P1.0埠上)顯示開關狀態,如果開關合上,L1亮,開關打開,L1熄滅。
電路原理圖
圖一
更多資料在闖客網下載鏈接:https://bbs.usoftchina.com/thread-200737-1-1.html
3. 系統板上硬體連線
(1). 把「單片機系統」區域中的P1.0埠用導線連接到「八路發光二極體指示模塊」區域中的L1埠上;
(2). 把「單片機系統」區域中的P3.0埠用導線連接到「四路撥動開關」區域中的K1埠上;
4. 程序設計內容
(1). 開關狀態的檢測過程
如無法正常展示請點擊一鍵反饋
③ 單片機 匯編程序問題
(x)=y,表示的是將y存放到片內RAM中地址為x的
存儲單元
里。H表示
16進制
數。
所以(30H)=38H:30H單元中存入一個數38H;
(38H)=40H:
38H單元中存入一個數40H;
(40H)=
48H
:
40H單元中存入一個數48H;
(48H)=90H:
48H單元中存入一個數90H
。
④ 單片機匯編程序中的標號需要先定義
標號可以自由編寫,方便自己認識就可以,但要注意不能用指令或偽指令及相關的保留字,如不能用ORG,MOV,EQU等等字元作為標號,標號內最好不要用加減號或等於號等標點,標號的格式是字元加冒號(:)。
標號是表示地址的,凡是轉移指令,所轉移的目的位置就必須用標號表示。所以加標號有三種情況,一種就是轉移指令的目的地址必須加標號。另一種是子程序的起始行,也叫起始地址,也必須加標號,而子程序的標號也可以叫子程序的名稱。
對於程序調試
直接使用匯編指令編寫單片機程序,對硬體的控制更加直接,可以直接操作物理地址,寄存器,埠等;其它更高級的語言(如:C語言)對硬體的控制是依賴於類庫來實現的。並且,對於一些對程序大小和運行速度有非常嚴苛要求的項目而言,都必須使用匯編指令。
C語言只是為了方便編寫,與機器打交道的其實都是2進製得代碼,匯編語言就是這些代碼好記憶的名稱和規則,只是比C語言難理解些。
⑤ 單片機匯編語言設計程序的方法,步驟,思路
首先你要有個總體的邏輯框架,然後寫出你大致的程序框圖,在在每一個環節上進行思考理解,理清頭緒,把整個框圖都完全理解明白以後,就開始進行寫程序了,注意一些語句的用法哦,寫完之後燒到開發板上,然後對程序進行調試,有錯誤就仔細的修改,調試應該說是最麻煩的工作,所以不要著急,慢慢來,等到你成功的時候你就有種說不出來的高興了,祝你好運。
⑥ 單片機匯編語言程序的三種基本結構
匯編語言程序有順序程序、分支程序、循環程序三種。分支結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。
分支結構的程序設計方法的關鍵在於構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的分支語句。
(6)單片機匯編程序擴展閱讀:
注意事項:
匯編指令不區分大小寫,目的操作數是存結果的,原操作數是被操作的。
二進制數後跟b,十六進制數後跟h,十進制數不需特殊標記。
匯編源程序中,數據不能以字母開頭,需要在前面加上0,如0a000h。
⑦ 單片機編程(匯編語言)
子程序如下:
MIDL:
MOV A, R1
CLR C
SUBB A, R2 ;R1-R2
JNC BIGR1
MOV A, R2 ;交換R1R2的內容.
XCH A, R1
MOV R2, A ;較小值存到R2
BIGR1:
MOV A, R2 ;取出較小值.
CLR C
SUBB A, R3 ;R2-R3
JNC BIGR2
MOV A, R3 ;交換R2R3的內容.
XCH A, R2 ;較大者存到R2
MOV R3, A ;最小值存到R3
BIGR2:
MOV A, R1
CLR C
SUBB A, R2 ;R1-R2,比較兩個較大的值.
JNC LITR2
MOV A, R1 ;交換R1R2的內容.
XCH A, R2
MOV R1, A
LITR2:
RET
⑧ 單片機匯編程序
初始化程序:
MOV R0,#A0H; 設置片內RAM首地址,存放採集數據
MOV R2,#08H; 設置通道數8個
SETB IT1 ; 設外部中斷1為跳沿觸發,因為轉換完成後EOC產生跳變
SETB EA ; 開總中斷
SETB EX1 ; 開外部中斷1
MOV DPTR,#0FEF0H ;設置通道IN0地址(根據外部連線,低電平有效)
LOOP:MOVX @DPTR,A ;啟動AD轉換(只要執行一條寫語句即可A值無所謂)
HERE: SJMP HERE ;等待中斷的到來,中斷未來原地踏步來了就進入中斷
中斷服務程序:(一次轉換完成EOC就有效,進入中斷程序)
MOVX A,@DPTR ;讀取IN0通道AD轉換值
MOVX @R0,A ;AD轉換值轉存至內部RAM
INC DPTR ;DPTR指針加一,指向下一個通道
INC R0 ;R0加一,指向下一個RAM單元
DJNZ R2,INT1 ;當8個通道都採集完後,關閉中斷,結束
CLR EA
⑨ 單片機(匯編語言)程序
程序中有RET語句時表明該程序段是一個子程序,且第一條語句必須有標號(程序中沒有),可在主程序或其它子程序中的LCALL (或ACALL)語句對其進行調用,返回時返回到調用語句的下一條指令。
若這是一個完整的程序,不能用RET指令,一定要用等待(結束)指令SJMP $ 。
⑩ 單片機匯編語言程序設計
;
mov
R2,#3050H
--3050H,這是16位數。R2,只能存放8位數。
;
mov
R2,09H
mov
R1,#20H
mov
R5,#306fH--306FH,這是16位數。R5,只能存放8位數。
----
mov
DPTR,#3050H--這一句對。只有DPTR,才可以使用
16
位數。