1樓:
首先教你如何理解jnb和jb,
jnb就是jump not bit,這樣不好理解,解釋一下就明白了:jump表示跳轉,not表示0,bit表示該位。它實際是條件判斷語句,意思是:
如果該為為0則跳轉,否則繼續下一條。
例:jnb p1.1,mark[如果p1.1位為零則跳轉到mark標誌指向的指令,否則繼續執行下一行]
jb則與jnb相反,即判斷0變為1,表示:如果該為為0則跳轉,否則繼續下一條。
助記口訣是:jnb為0跳轉,否繼續;jb為1跳轉,否繼續。
下面實現你要的流水燈程式,假定p1口低六位接燈,高電平時亮。
*** 0000h
mov p1,00h
mov a,11111110b
loop:
rlc acc
jnb acc.0,enablebit1
jnb acc.1,enablebit2
jnb acc.2,enablebit3
jnb acc.3,enablebit4
jnb acc.4,enablebit5
jnb acc.5,enablebit6
enablebit1:
mov p1,00000001b
jmp loop
enablebit2:
mov p1,00000010b
jmp loop
enablebit3:
mov p1,00000100b
jmp loop
enablebit4:
mov p1,00001000b
jmp loop
enablebit5:
mov p1,00010000b
jmp loop
enablebit6:
mov p1,00100000b
jmp loop
不想逐行解釋了,自己看吧
大概意思是這樣,不嚴謹,自己實際操作中完善吧
2樓:匿名使用者
jnb bit,rel;如果定址位為0 則轉移。比如jnb p1.0,0080h
jb,就是定址位為1 轉移。。。
3樓:渺澡洋
得需要具體的io口啊
具體思路就是 讓io口的電平不斷的實現高低變化,
還是查一下 針對具體微控制器型號的 資料手冊。
微控制器組合語言中是什麼意思,在微控制器組合語言中c是什麼意思
原地踏步的意思 等價於loop sjmp loop 代指本指令的 地址。如果sjmp 的起始地址是1010h,則在編譯的時候編譯器把 編譯為這專個起始地址屬1010h,就等於sjmp 1010h,執行完這指令後還跳到這個地址再執行它。無限迴圈直到微控制器沒電。指當前地址,可以有多種應用。比如 got...
在微控制器組合語言中c是什麼意思,微控制器組合語言中 CY AC OV 分別是什麼意思?
進位標誌位cy或布林處理器中的累加器。c為進借位標誌位bai,就是ducy 意思是兩數相加zhi addc指令 有進位就置c為1,兩數減dao subb指令 有借內位就置c為1,上面兩種請況c的置容1是系統自動的。另外還可以自己對c進行操作 指令如下 mov c,bit 將bit位地址中的值送psw...
微控制器C語言與組合語言各自的優劣比較
c語言具有很強的功能性和結構性,可以縮短微控制器控制系統的開發週期,而且易於除錯和維護,已經成為目前微控制器語言中最流行的程式語言。要是現在學的話就學c,但彙編是在以後的使用過程中必須明白的 用慣了彙編的人,總覺得高階語言 可控性 不好,不如彙編那樣隨心所欲,但基本可以通過c語言的各種技巧來消除缺點...