微控制器組合語言的程式設計問題

2021-03-07 10:26:31 字數 1203 閱讀 8846

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語言的各種技巧來消除缺點...