① 單片機匯編語言怎麼寫
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
SETB ET0
SETB EA
START:
MOV R2,#0FEH
MOV R3,#3
MOV R4,#8
LOOP:
CLR 00H
MOV R7,#4
MOV A,R2
MOV P0,A
RL A
MOV R2,A
JNB 00H,$
DJNZ R4,LOOP
MOV R4,#8
MOV R2,#0FEH
DJNZ R3,LOOP
MOV R2,#7FH
MOV R3,#5
MOV R4,#8
LOOP1:
CLR 00H
MOV R7,#4
MOV A,R2
MOV P0,A
RR A
MOV R2,A
JNB 00H,$
DJNZ R4,LOOP1
MOV R4,#8
MOV R2,#7FH
DJNZ R3,LOOP1
LJMP START
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
DJNZ R7,T0E
MOV R7,#4
SETB 01H
T0E:
RETI
END
② MOVF,MOVWF在單片機匯編語言里是什麼意思啊
PIC的精簡指令,
MOVF是把一個寄存器內存送入W寄存器中,如 MOVF 8,0 就是把第8寄存器送到W中(相當於8051中累加器A) ,後面是0說明存後F不變
MOVWF 與上面相反,把W內容存入F寄存器中, 相當於MOV W to F
③ 急求!單片機匯編語言寫程序:
;本程序晶振為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單片機是Keil 軟體
pic單片機是MPLAB軟體
匯編要將編輯文件要保存為.asm為後綴的文件(c語言則是.c為後綴)
avr單片機是avr studio 或iccavr軟體
匯編要將編輯文件要保存為.s為後綴的文件(c語言則是.c為後綴)
51單片機可以很多下載軟體 將你的匯編程序 在Keil 軟體中設置為:
options for target 1->output->create HEX file
生成hex文件 然後將這個hex文件通過下載軟體下載到單片機中.
下載軟體有兩類:串口下載和ISP介面下載
ISP介面下載軟體是對應你的下載器的(一般買下載器都會給你對應的下載軟體的)
串口下載:STC類的51單片機可以用STC_ISP_V486.exe,但是對於Atmel類的就不行
微機原理的上機課都是在DOS下輸入EDIT XX.ASM後編寫的,單片機也是這樣嗎?
單片機不是這樣的 因為微機機器碼和單片機機器碼是不一樣的
所以單片機需要在windows下用對應的軟體生成單片機的機器碼 在單片機中才能運行啊
祝你學習進步
⑤ 單片機匯編語言程序的三種基本結構
匯編語言程序有順序程序、分支程序、循環程序三種。分支結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。
分支結構的程序設計方法的關鍵在於構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的分支語句。
(5)單片機匯編語言擴展閱讀:
注意事項:
匯編指令不區分大小寫,目的操作數是存結果的,原操作數是被操作的。
二進制數後跟b,十六進制數後跟h,十進制數不需特殊標記。
匯編源程序中,數據不能以字母開頭,需要在前面加上0,如0a000h。
⑥ 單片機匯編語言是什麼
要控制單片機,讓單片機按照程序工作,就需要告訴單片機怎麼工作,需要一種計算機語言(單片機=單片微型計算機),最基本的是機器語言,是一堆二進制代碼。操作數,指令(控制單片機運行的命令)都用二進制代碼表示。而匯編語言就是將二進制代碼一對一的換成字母,十六進制數等易於理解,閱讀的語言,用於控制單片機
當然,更深入的學習後會有偽指令(並不對應與二進制代碼),這些偽指令在匯編(將匯編語言還原為二進制代碼的過程)的時候會被去掉,然後利用其提供的信息進行匯編。
⑦ 單片機匯編語言
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。
⑧ 單片機(匯編語言)程序
開發當然是用C,又快又易懂好維護,但是想要優化程序還是要懂匯編的,要不然實現同樣一個功能的程序,好的程序員可以把程序設計得又短又快,而不做優化的可能會又臭又長,2K以下可以搞定的,你非要搞到4K以上去那最終產品的成本每個至少會相差幾毛到一兩塊錢,而且成本升高時質量卻是下降的,這樣當然就不好了,所以我個人認為做單片機編程,應當是匯編和C都會才是最好的,次一點的是會C,且能大致看懂匯編,可以幫助優化C程序,
只會匯編,一個程序開發下來,得花幾周到幾個月,開發成本太高了,不值得
只會C完全不懂匯編,那也是很難做出高質量的單片機程序的
⑨ 單片機匯編語言里 DB
單片機匯編語言中的DB是以位元組為單位定義一個數據段,一般用於查表程序中,舉例說明:
DISPLAY:
MOV DPTR,#TAB
MOV A,R2
MOVC A,@A+DPTR
MOV P0,A
RET
TAB: ; 共陰極數碼管顯示代碼表
DB 3FH,06H,5BH,4FH,66H ;01234
DB 6DH,7DH,07H,7FH,6fh ;56789
⑩ 單片機匯編語言
DATA1 BIT P1.0;DATA不能作為符號名定義,改為DATA1 BIT表示P1.0定義為DATA1
SCK BIT P1.1
noACK EQU 0;noACK 定義為0
ACK EQU 1