準備學51微控制器的組合語言,求大神幫我分析下這段程式各個指令

2021-04-01 20:59:40 字數 1865 閱讀 7787

1樓:匿名使用者

程式註釋已經很詳細了,這裡說說功能吧。程式功能很簡單,就是當兩個鍵同時按下時,接通電磁鐵3毫秒,然後等待鍵釋放,如此迴圈。

求組合語言大神,幫我翻譯一段程式,是8051微控制器的一段程式,每步是幹什麼的~ 越詳細越好!謝謝!

2樓:匿名使用者

rs equ p3.3

rw equ p3.4

e equ p3.5

分別bai是lcd1602之類液晶的3個控制引腳p1口應du該是8位數zhi據線

其他向p1寫入資料就dao是傳送資料或者命令回 其中都要答用到上面3個控制引腳來控制資料寫入和讀取 這個具體命令看看lcd1602的命令字就很容易了

3樓:匿名使用者

應該是lcd液晶顯示程式.

顯示"hello"

微控制器組合語言,求大神幫忙看下程式什麼意思

4樓:匿名使用者

程式很簡單,就是讓p1口全高電平一小段時間(執行delay延時子程式所需時間)後,再讓p1口全低電平持續20倍的時間,不斷重複上述過程。

org 0000h

start: mov p1,#0ffh ;讓p1口全高電平

acall delay ;一小段時間(呼叫一次delay延時子程式)

mov r2,#14h ;20倍

mov p1,#00h ;再讓p1口全低電平

lop: acall delay ;持續20倍的時間(直到r2為零即執行20次delay延時子程式)

djnz r2,lop

sjmp start ;不斷重複上述過程

sta delay: mov tmod,#01h ;設定定時器0模式為1模式即16位定時器

mov tl0,#0b0h ;定時器0裝入初值15536(即3cb0h)

mov th0,#3ch

setb tr0 ;啟動定時器0

loop: jbc tf0,next ;等待定時器0計滿溢位(即計數65536-15536=50000次)則清溢位標誌並重灌初值15536後返回

sjmp loop

retnext: mov tl0,#0b0h;重灌初值15536後

mov th0,#3ch

ret ;返回end

5樓:匿名使用者

org 0000h 程式從0000開始存放start: mov p1,#0ffh 向p1埠輸出ffacall delay 呼叫延遲函式,這個延遲函式動過定時器實現的mov r2,#14h 將14傳給r2暫存器mov p1,#00h 向p1埠輸出00lop: acall delay 延遲一段時間djnz r2,lop 判斷r2暫存器是不是不等於0,是的話跳轉到lop上

sjmp start 否則直接跳轉到start處sta delay: mov tmod,#01h 延遲函式的實現,配置定時器暫存器

mov tl0,#0b0h 配置定時時長mov th0,#3ch

setb tr0 開啟定時器

loop: jbc tf0,next 判斷定時器是否溢位sjmp loop 不斷判斷

retnext: mov tl0,#0b0h 重新設定定時器mov th0,#3ch

ret函式返回end

6樓:

p1=ff 1倍的時間

p1=00 20倍的時間 、、14h=20

51微控制器組合語言的理解,坐等,求高手

mov 30h,250這條指令,是3位元組 2週期指令,機器碼是 75 30 fa 先取指,再執行。在第一個機器週期取到指令的前兩個位元組 75 30,在第二個機器週期的前半週期取到指令的第三個位元組 fa 250 第二個機器週期的後半週期執行該指令的操作,即將立即數250傳送到30h單元。按上述過...

51微控制器外部中斷組合語言問題

主程式是 流水燈0到7依次點亮 流水燈7到0依次點亮,反覆迴圈。外部中斷程式是 燈全亮 全滅3次。但是,程式沒有開中斷的指令,中斷程式是不會執行的。start 在下面新增 setb ea 開總中斷.setb ex0 開int0中斷.clr it0 設定int0為電平觸發.mov a,00h 外部中斷...

在51微控制器中用組合語言rlca為什麼左移兩位

51微控制器中,rlc a是帶進位的迴圈左移,所以執行的結果不是將低位清0,要想將低位清零,實現點亮兩個燈可以採取的方法 1 直接賦值實現 a mov p1,0fch b mov a,p1 anl a,0fch mov p1,a 2 用迴圈命令,但每迴圈一次,需要將c清0mov a,p1 clr c...