㈠ 單片機匯編語言是什麼
要控制單片機,讓單片機按照程序工作,就需要告訴單片機怎麼工作,需要一種計算機語言(單片機=單片微型計算機),最基本的是機器語言,是一堆二進制代碼。操作數,指令(控制單片機運行的命令)都用二進制代碼表示。而匯編語言就是將二進制代碼一對一的換成字母,十六進制數等易於理解,閱讀的語言,用於控制單片機
當然,更深入的學習後會有偽指令(並不對應與二進制代碼),這些偽指令在匯編(將匯編語言還原為二進制代碼的過程)的時候會被去掉,然後利用其提供的信息進行匯編。
㈡ 單片機匯編程序
初始化程序:
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
㈢ 單片機匯編語言
DATA1 BIT P1.0;DATA不能作為符號名定義,改為DATA1 BIT表示P1.0定義為DATA1
SCK BIT P1.1
noACK EQU 0;noACK 定義為0
ACK EQU 1
㈣ 單片機匯編語言程序
問題較多。
1. 延時程序:
DELAY:
DS1:MOV R4,#0X7F
DS2:MOV R5,#250
......
其中的#0X7F,#代表數字,0x7F代表16進制形式數字,即十進制127;
#250就簡單了,就是數字,250。
2。DPTR增1是什麼意思,是0100增1嗎?
是的,DPTR的內容將變為0101。
㈤ 單片機匯編語言
mov a,40h; A=50H
mov r0,a ;R0=50H
mov @r0,20h ;(50H)=30h
mov 50h,r0 ;(50H)=50H
mov a,@r0 ; A=50H
按照順序執行最後的結果是:
(20H)=30H,(30H)=40H,(40H)=30H,(50H)=50H ,A=50H。
㈥ 關於單片機匯編語言
樓主的提問很正確。
用本程序來判斷兩個帶符號數的大小,是不全面的。
兩數相減後,首先要根據符號位(ACC.7)來判斷結果是正、負,
正則X-Y>0、負則X-Y<0。
之後,再像上述程序,根據溢出位(OV)來判斷結果是否溢出,
正:X-Y>0, OV=1, X<Y、 X-Y>0, OV=0, X>Y;
負:X-Y<0, OV=1, X>Y、 X-Y<0, OV=0, X<Y;
應該有兩重判斷。
㈦ 單片機用匯編語言編程
電路圖就不畫了,這么簡單的電路自己搞掂吧,假設LED接P0口,低有效。
TIMES EQU 30H
SEC EQU 31H
FLAG BIT 00H
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV SP,#5FH
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
SETB ET0
SETB EA
CLR FLAG
LOOP:
MOV P0,#0FAH
JNB FLAG,$
CLR FLAG
MOV P0,#0F5H
JNB FLAG,$
CLR FLAG
MOV P0,#0AFH
JNB FLAG,$
CLR FLAG
MOV P0,#5FH
JNB FLAG,$
CLR FLAG
MOV P0,#0AAH
JNB FLAG,$
CLR FLAG
MOV P0,#55H
JNB FLAG,$
CLR FLAG
MOV P0,#00H
JNB FLAG,$
CLR FLAG
MOV P0,#0FFH
JNB FLAG,$
CLR FLAG
LJMP LOOP
END
㈧ 急求!單片機匯編語言寫程序:
;本程序晶振為12MHZ
SWBITp0.0 ;存放按鍵值
CNTEQU30H ;存放1s計數值
DATEEQU31H ;存放數據值
ORG0000H
LJMPMAIN
ORG0030H
MAIN: MOVTMOD,#01H ;定時器為T0工作方式1
MOVTH0,#3CH;定時50ms
MOVTL0,#0B0H
MOVCNT,#20 ;1s初值
MOVDATE,#00H ;數據初始值為0
SETBTR0
MLOOP:JNBTF0,$;50ms?
CLRTF0
MOVTH0,#0F0H ;50mS定時重設
MOVTL0,#60H
SETBSW ;讀I/O口之前先寫1
JNBSW,ML01 ;判斷按鍵
DJNZCNT,ML02 ;1s到了沒?
MOVCNT,#20
INCDATE ;數據值加1
ML01: MOVDATE,#00H ;數據值清零
ML02: MOVA,DATE
MOVDPTR,#LED7 ;差數碼管顯示碼
MOVCA,@A+DPTR
MOVP1,A ;七段碼值送顯示
AJMPMLOOP
;====LED段碼表====
LED7: DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
DB80H,90H,88H,83H,86H,0A1H,86H,8EH
流程圖為:
希望可以幫助你。
㈨ 51單片機用匯編語言需要什麼軟體
先將匯編語言編譯成HEX或BIN文件,再通過相應的下載手段把文件下載進去
編譯的話比如WAVE軟體就可以,很多的,下載的話要看什麼型號的單片機了,有些支持在線ISP下載,那麼電腦裝個軟體,通過232串口連接到板子上,就可以了,有些呢,是需要買專門的燒寫器的
㈩ 單片機(匯編語言)程序
程序來中有RET語句時表明該自程序段是一個子程序,且第一條語句必須有標號(程序中沒有),可在主程序或其它子程序中的LCALL (或ACALL)語句對其進行調用,返回時返回到調用語句的下一條指令。
若這是一個完整的程序,不能用RET指令,一定要用等待(結束)指令SJMP $ 。