1樓:帝都小女子
org 0000h
jmp start
start:
mov sp,#60h
mov r2,#20h
mov r3,#34h
mov a,#99h
lcall bhd
lcall hbd
nopnop
;三位元組除以單位元組子程式
;入口條件:被除數在r3、r4、r5中,除數在r7中。
;出口資訊:ov=0 時,雙位元組商在r4、r5中,ov=1 時溢位。
;影響資源:psw、a、b、r2~r7 堆疊需求: 2位元組
dv31:
clr c
mov a,r3
subb a,r7
jc dv30
setb ov ;商溢位
retdv30:
mov r2,#10h;求r3r4r5/r7-→r4r5
dm23:
clr c
mov a,r5
rlc a
mov r5,a
mov a,r4
rlc a
mov r4,a
mov a,r3
rlc a
mov r3,a
mov f0,c
clr c
subb a,r7
anl c,/f0
jc dm24
mov r3,a
inc r5
dm24:
djnz r2,dm23
mov a,r3 ;四捨五入
add a,r3
jc dm25
subb a,r7
jc dm26
dm25:
inc r5
mov a,r5
jnz dm26
inc r4
dm26:
clr ov
ret ;商在r4r5中
;兩位元組除以單位元組子程式
;入口條件:被除數在r4、r5中,除數在r7中。
;出口資訊:ov=0 時,單位元組商在r3中,ov=1 時溢位。
; 餘數在r4中
;影響資源:psw、a、r3~r7 堆疊需求: 2位元組
d457:
clr c
mov a,r4
subb a,r7
jc dv50
setb ov;商溢位
retdv50:
mov r6,#8 ;求平均值(r4r5/r7-→r3)
dv51:
mov a,r5
rlc a
mov r5,a
mov a,r4
rlc a
mov r4,a
mov f0,c
clr c
subb a,r7
anl c,/f0
jc dv52
mov r4,a
dv52:
cpl c
mov a,r3
rlc a
mov r3,a
djnz r6,dv51
mov a,r4 ;四捨五入
add a,r4
jc dv53
subb a,r7
jc dv54
dv53:
inc r3
dv54:
clr ov
ret;四位元組除以單位元組子程式
;入口條件:被除數在r2、r3、r4、r5中,除數在r7中。
;出口資訊:a ; 餘數在r2中 ;影響資源:psw、a、r2~r7 堆疊需求:2位元組 ;input dat1,dat2,dat3,r5 ;r0(h),:divisor dat2(h) dat3() r5(l):quotient ;dat1(h)dat2(l):residue f_div: clr c mov a,r7 jz fd_over fd_begin: mov a,r2 subb a,r7 jc no_overflow mov a,#0ffh retno_overflow: clr a mov r6,#18h fdiv0: lcall rlc4 jc goushang mov a,r2 subb a,r7 jc fdnext inc r5 mov r2,a fdnext: djnz r6,fdiv0 jmp fdone goushang: mov a,r2 subb a,r7 inc a inc r5 mov r2,a jmp fdnext fdone: clr a clr ov retfd_over: mov a,#0ffh retrlc4: clr c mov a,r5 rlc a mov r5,a mov a,r4 rlc a mov r4,a mov a,r3 rlc a mov r3,a mov a,r2 rlc a mov r2,a ret;divd功能:雙位元組二進位制無符號數除法 ;入口條件:被除數在r2、r3、r4、r5中,除數在r6、r7中。 ;出口資訊:ov=0 時,雙位元組商在r4、r5中,ov=1 時溢位。 ; 餘數在r2 r3中 ;影響資源:psw、a、b、r1~r7 堆疊需求: 2位元組 divd: clr c ;比較被除數和除數 mov a,r3 subb a,r7 mov a,r2 subb a,r6 jc ***1 setb ov ;溢位 ret***1: mov b,#10h ;計算雙位元組商 ***2: clr c ;部分商和餘數同時左移一位 mov a,r5 rlc a mov r5,a mov a,r4 rlc a mov r4,a mov a,r3 rlc a mov r3,a xch a,r2 rlc a xch a,r2 mov f0,c ;儲存溢位位 clr c subb a,r7 ;計算(r2r3-r6r7) mov r1,a mov a,r2 subb a,r6 anl c,/f0 ;結果判斷 jc ***3 mov r2,a ;夠減,存放新的餘數 mov a,r1 mov r3,a inc r5 ;商的低位置一 ***3: djnz b,***2;計算完十六位商(r4r5) ; mov a,r4 ;商移到r2r3中 ; mov r2,a ; mov a,r5 ; mov r3,a clr ov ;設立成功標誌 ret;雙位元組乘以雙位元組乘法 ;入口條件:被乘數在r2、r3中,乘數在r6、r7中。 ;出口資訊:乘積在r2、r3、r4、r5中。 ;影響資源:psw、a、b、r2~r7 堆疊需求: 2位元組 muld: mov a,r3 ;計算r3乘r7 mov b,r7 mul ab mov r4,b ;暫存部分積 mov r5,a mov a,r3 ;計算r3乘r6 mov b,r6 mul ab add a,r4 ;累加部分積 mov r4,a clr a addc a,b mov r3,a mov a,r2 ;計算r2乘r7 mov b,r7 mul ab add a,r4 ;累加部分積 mov r4,a mov a,r3 addc a,b mov r3,a clr a rlc a xch a,r2 ;計算r2乘r6 mov b,r6 mul ab add a,r3 ;累加部分積 mov r3,a mov a,r2 addc a,b mov r2,a ret;雙位元組乘以單位元組乘法 ;入口條件:被乘數在r2、r3中,乘數在r7中。 ;出口資訊:乘積在r2、r3、r4中。 ;影響資源:psw、a、b、r2~r7 堆疊需求: 2位元組 mul21: mov a,r3 mov b,r7 mul ab mov r4,a mov r5,b mov a,r2 mov b,r7 mul ab add a,r5 mov r3,a mov a,b addc a,#00h mov r2,a ret;功能:雙位元組十六進位制整數轉換成雙位元組bcd碼整數 ;入口條件:待轉換的雙位元組十六進位制整數在r6、r7中。 ;出口資訊:轉換後的三位元組bcd碼整數在r3、r4、r5中。 ;影響資源:psw、a、r2~r7 堆疊需求: 2位元組 hb2: clr a ;bcd碼初始化 mov r3,a mov r4,a mov r5,a mov r2,#10h ;轉換雙位元組十六進位制整數 hb3: mov a,r7 ;從高階移出待轉換數的一位到cy中 rlc a mov r7,a mov a,r6 rlc a mov r6,a mov a,r5 ;bcd碼帶進位自身相加,相當於乘2 addc a,r5 da a ;十進位制調整 mov r5,a mov a,r4 addc a,r4 da a mov r4,a mov a,r3 addc a,r3 mov r3,a ;雙位元組十六進位制數的萬位數不超過6,不用調整 djnz r2,hb3 ;處理完16bit ret;入口條件:待轉換的單位元組bcd碼整數在累加器a中。 ;出口資訊:轉換後的單位元組十六進位制整數仍在累加器a中。 ;影響資源:psw、a、b、r4 堆疊需求: 2位元組 bcdh: mov b,#10h ;分離十位和個位 div ab mov r4,b ;暫存個位 mov b,#10 ;將十位轉換成十六進位制 mul ab add a,r4 ;按十六進位制加上個位 ret;雙位元組bcd碼整數轉換成雙位元組十六進位制整數 ;入口條件:待轉換的雙位元組bcd碼整數在r2、r3中。 ;出口資訊:轉換後的雙位元組十六進位制整數仍在r2、r3中。 ;影響資源:psw、a、b、r2、r3、r4 堆疊需求:4位元組 bh2: mov a,r3 ;將低位元組轉換成十六進位制 lcall bcdh mov r3,a mov a,r2 ;將高位元組轉換成十六進位制 lcall bcdh mov b,#100 ;擴大一百倍 mul ab add a,r3 ;和低位元組按十六進位制相加 mov r3,a clr a addc a,b mov r2,a ret;標號: bhd功能:單位元組bcd碼小數轉換成單位元組十六進位制小數 ;入口條件:待轉換的單位元組bcd碼數在累加器a中。 ;出口資訊:轉換後的單位元組十六進位制小數仍在累加器a中。 ;影響資源:psw、a、r2、r3 堆疊需求: 2位元組 bhd: mov r2,#8 ;準備計算一個位元組小數 bhd0: add a,acc ;按十進位制倍增 da a xch a,r3 rlc a ;將進位標誌移入結果中 xch a,r3 djnz r2,bhd0 ;共計算8bit小數 add a,#0b0h ;剩餘部分達到0.50否? jnc bhd1 ;四舍 inc r3 ;五入 bhd1: mov a,r3 ;取結果 ret; 標號: hbd功能:單位元組十六進位制小數轉換成單位元組bcd碼小數 ;入口條件:待轉換的單位元組十六進位制小數在累加器a中。 ;出口資訊:cy=0時轉換後的bcd碼小數仍在a中。cy=1時原小數接近整數1。 ;影響資源:psw、a、b 堆疊需求: 2位元組 hbd: mov b,#100 ;原小數擴大一百倍 mul ab rlc a ;餘數部分四捨五入 clr a addc a,b mov b,#10 ;分離出十分位和百分位 div ab swap a add a,b ;拼裝成單位元組bcd碼小數 da a ;調整後若有進位,原小數接近整數1 retjmp $end 看lcd的介面情況,並口需要資料線8位 片選 讀使能 寫使能等。如果lcd為串列埠,資料線1,資料同步時鐘1,片選1。使用定時器,啟動定時滾屏動作 如果lcd支援滾屏,只要重新整理一行即可。否則,只能重畫了 16 16顯示一個漢字,向左移動 只能顯示8個漢字,受8位控制 資源分析 r0指向資料快取地... amd百夫長 一 通過加驅動器實現了。二 如果是傳統的51微控制器 例如at89s52 p0口可以實現高阻。p0口內部和p1 p3口的內部結構不同,它的內部上拉fet只有在它作為外部儲存器匯流排的時候才能開啟,如果做普通io口,那麼讓p0口輸出1,外部又沒有接上拉電阻的話,那麼p0口就是高阻 懸空 ... 船長 12mhz 12 1s 1ms 1000065536 10000 55536 d8f0mov tmod,01h t0工作方式1mov tl0,0f0h t0初值mov th0,0d8 h t0初值setb tr0 啟動t0 setb et0 允許t0中斷 setb ea 開總中斷 龍宇防盜監控...微控制器lcd實現滾屏
微控制器引腳如何實現高阻輸入,微控制器IO口設定為高阻輸入時能讀埠值嗎
微控制器問題,微控制器問題