ORG 0000H
MOV DPTR,#2000H
MOV R0,#2AH ;#2AH * #60H=#1000H
MOV R1,60H
CLR R2
CLR R3
LOOP:CLR A
MOVC A,@A+DPTR
CJNE A,#41H,QUET ;與A的ASCII碼#41H比較,不等->轉移
MOV A,R2
INC A
MOV A,R2
JC JIAYI ;溢出一次,R3+1
LJMP QUET
JIAYI:INC R3
LJMP QUET
QUET:INC DPTR
DJNZ R0,LOOP
DJNZ R1,LOOP
MOV DPTR,#2010H
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R3
MOVX @DPTR,A
END
㈡ 我想學51單片機的匯編語言,有沒有推薦的好書或者視頻啊
哈!現的書雖然新可錯不少價更不菲,你最好還是用老祖師爺的,北航早期出的"MCS-51/96系列單片計算機原理及應用",最好到舊書攤去找老版本的(因原很多學校用它做教材的),可後再版的也出現錯了,還有一本也不錯,科學技術出版社"單片微型計算機原理與應用"這本書中我到現只發現只在附錄頁中一塊晶元腳上標錯,這本可是全了,不過是老了點,新器件只有到網上查了.,因你現主要惡補相關的電子知識,再就是器件里的控制寄出存器部份,也就是晶元內的,那才可能把匯編玩的轉的,不過不是要真搞很高時序的還是先把C玩實在的好
㈢ 51單片機匯編語言
沒有無限循環呀。
DELAY:MOVR6,#0FFH;外層循環255次
DE2:MOVR7,#0FFH;內層循環255*255次
DE1:DJNZR7,DE1;內層循環
DJNZR6,DE2;外層循環
RET
12M晶振延時時間=1+255+2*255*255+2*255+2=130818us
㈣ 求51單片機匯編語言學習視頻教程灰常感謝……
北航單片機是匯編的
㈤ 51單片機匯編,說我操作碼錯了
串口中斷程序確實有點問題,有注釋行改過的
TRANI: CLR TI
DJNZ R7, NEXT ;DJNZ與R7之間要有空格
CLR ES
SJMP TEND
NEXT: INC R0
MOV A, @R0
MOV C, P
MOV TB8, C
MOV SBUF, A
TEND: RETI ;這個冒號打成全形的了,改成半形就對了
㈥ 誰有51單片機匯編語言的教學視頻
這個地方還可以,去逛逛吧,有你要的東西。
http://51.cepark.com/
㈦ 求51單片機匯編語言視頻教程,最好是下載好的,因為我上網不方便,可以發到我的郵箱,[email protected]
天上能掉餡餅?什麼單片機?51?PiC?arm?思維不縝密!自己花幾塊錢網上隨便買。有你找資料的時間早學會了!
㈧ 51單片機 匯編~ JNB F0,LOOP2;
我還把他復制到keil 裡面看 以為很麻煩的事情了
看你最後問的 才懂你糾結啥
CLR F0;是把F0清零了
LOOP2:
JNB F0,LOOP2;
這句的話如果F0=0 則一直死循環 當時當F0=1的時候就會跳出,你去看對F0的操作 就只有定時中斷裡面了,直到F0=1才繼續
意思就是等待定時器的定時間隔 再繼續操作
用C來說 就是while(!F0) ; //這種實際中經常遇到的, 一個對變數的判斷的死循環,而這個變數只在某個函數裡面才改變 (匯編裡面 定時處理就相當於C裡面的定時處理函數) 直到...才...
ORG 0000H
START:
LJMP MAIN
ORG 000BH ;定時器0中斷入口
LJMP TTCO ;調用定時器服務程序
ORG 0100H
MAIN:
MOV SP, #30H; 開辟棧底
SETB EA; 打開總中斷
SETB ET0;
MOV A, #01;
MOV P1, A;
LOOP:
LCALL TTCO_1S;
RL A;
MOV P1, A;
LJMP LOOP;
ORG 2000H
TTCO: ;定時器0服務程序
MOV TH0, #3CH ;初始化
MOV TL0, #0B0H; 再次初始化定時時間
DJNZ R0, LOOP1;
SETB F0; 在這里F0發生變化F0=1
MOV R0, #10; 再次定循環次數
LOOP1: RETI
TTCO_1S:
MOV TMOD, #01H; 設置定時器為工作方式1
MOV R0, #10; 定循環次數
MOV TH0, #3CH; 初始化定時時間
MOV TL0, #0B0H
SETB TR0;
CLR F0;
LOOP2:
JNB F0,LOOP2;
RET
END
;還是懷念匯編啊 雖然不好移植 但是個個操作都會產生作用
㈨ 51單片機 匯編 急
假設晶振頻率為12M,80H中數為20,採用查詢方式,假設用T1定時計數器
value equ 80h
org 0000h
ajmp start
org 000bh
ajmp t0Gram
start:
mov sp,#70h
call T0init
mov r2,#0
mov value,#20
ajmp $
T0init:
mov tmod,#01h
mov th0,#high(-10000)
mov tl0,#low(-10000)
setb ea
setb et0
setb tr0
ret
T0Gram:
push acc
push psw
inc r2
cjne r2,#100,$-3
mov a,value
dec a
mov value,a
jnz ok
clr tr0
mov th0,#high(-10000)
mov tl0,#low(-10000)
setb tr0
pop psw
pop acc
reti
ok:
end
㈩ 51單片機匯編語言如何用定時器中斷實現數碼管從0-F每秒進1且循環進行。
ORG0000H
JMPBEGIN
ORG000BH
LJMPT0ISR
ORG0030H
TABLE:;共陰極數碼管顯示代碼表
DB3FH,06H,5BH,4FH,66H;01234
DB6DH,7DH,07H,7FH,6fh;56789
;---------------------------------------
BEGIN:
MOVTMOD,#01H
MOVTH0,#HIGH(65536-50000)
MOVTL0,#LOW(65536-50000)
SETBTR0
SETBET0
SETBEA
MOVR2,#20
CLRA
LOOP:
MOVDPTR,#TABLE
PUSHACC
MOVCA,@A+DPTR
MOVP0,A
POPACC
SJMPLOOP
T0ISR:
CLRTR0
MOVTH0,#HIGH(65536-50000)
MOVTL0,#LOW(65536-50000)
SETBTR0
DJNZR2,T0E
INCA
ANLA,#0FH
T0E:
RETI
END