1樓:
1.你要把30h開始的8個位元組加起來,和放在位元組變數可能溢位,所以你的**把和放在r2r3拼起來的16位單元中;
每個位元組先加到r3中,有進位則r2 加1
2.第一次的swap a 和 rl a 的作用是把剛才求和結果的高位位元組中的bit0,1,2移位到bit5,6,7 ,相當於高位位元組除以8的結果(8個位元組相加,高位位元組只有bit0,1,2可能非0)
第二次的swap a 和 rl a 的作用是把剛才求和結果的低位位元組中的bit76543移位到bit43210,配合後面的 anl a,#1fh 去掉bit765後,也相當於除以8
3.第二次的swap a 和 rl a 後,a的bit7 是原來的bit2移動過來的,
這裡的四捨五入做的是:原bit2是1的話bit210就不小於4,除8結果就加一
做法是通過add a ,#80h如果現在的bit7也就是原來的bit2為1就置位進位標誌c, 在後面的 addc a , r3 那句把這個c加進去。
所以這個做法其實是三舍四入。
2樓:做而論道
1.把八位數累加,和,可能超過八位數,所以,不能僅僅放在 r3,進位,要放在 r2。
2.八位數的累加和,可以想像一下:這是一個數,乘以八。
那麼,就相當於把一個數,左移三位。所以,和,將是 11 位數。
求平均值時,就要把這 11 位數,除以 8。那麼,就右移三位,即可。
首先高四位和低四位換位然後左移的作用是什麼--就是把這 11 位數右移三位。
anl a,#1fh,就是留下有用的位,其他位,都清零。
3.右移出去的,就是餘數。本來,就應該不要了。
但是,移出去的最高位如果是1,就相當於 10 進位制的 5,應該《入》。
add a ,#80,就是把移出位,弄到 cy。
addc a , r3 ,就是把 cy 加入進來。
微控制器如何用c語言以及組合語言寫濾波程式?
3樓:匿名使用者
濾波,關鍵問題是演算法,有了演算法剩下的就是coding了
說白了,彙編與c,程式結構是一樣的,也就是c一句話彙編要幾句語句而已
4樓:匿名使用者
你學了數字資訊處理沒有?
請教51微控制器彙編程式問題,是個p1口接段碼,p2口接8位數碼管位碼,其中兩個數碼管顯示6並迴圈,單編譯警
5樓:做而論道
問這個問題,是什麼意思?
這程式,樓主不是回答下面的問題的嗎?
不是說編譯通過了嗎?
請教高手,下面是51微控制器蜂鳴器演奏「生日快樂」的彙編程式:
6樓:做而論道
程式中,註釋已經夠多了。
如果還是弄不了,不如換一個思路。
看看下面的,也許好理解一些:
7樓:水依若雨
一定要彙編的嗎?幹嘛不用c編呢?
8樓:匿名使用者
簡譜 發音 簡譜碼 t值 節拍碼 節拍數
低音5低 5so 1 64260 1 1/4拍
6低 6la 2 64400 2 2/4拍
7低 7si 3 64524 3 3/4拍
中音1中 1do 4 64580 4 1拍
2中 2re 5 64684 5 1又1/4拍
3中 3m 6 64777 6 1又2/4拍
4中 4fa 7 64820 7 1又3/4拍
5中 5so 8 64898 8 2拍
6中 6la 9 64968 9 2又1/4拍
7中 7si a 65030 a 2又2/4拍
高音1高 1do b 65058 b 2又3/4拍
2高 2re c 65110 c 3拍
3高 3m d 65157 d 3又1/4拍
4高 4fa e 65178 e 3又2/4拍
5高 5so f 65217 f 3又3/4拍
不發音 0
例如:天空之城第一句簡譜
table: ;《天空之城》
db 92h,0a2h,0b4h,0a2h,0b4h,0d4h,0ach
51微控制器按鍵計數問題求助,彙編
51微控制器彙編程式設計
9樓:匿名使用者
1:key1 equ p2.2
key2 equ p2.1
key3 equ p2.0
red equ p1.4
yellow equ p1.5
green equ p1.6
org 0000h
ljmp main
org 0030h
main:
setb red
setb yellow
setb green
lp:jb key1,lp1
clr red
sjmp lp
lp1:
jb key2,lp2
clr yellow
sjmp lp
lp2:
jb key3,main
clr green
sjmp lp
end2:
key1 equ p2.2
org 0000h
ljmp main
org 0030h
main:
mov r0,#0
lp:jb key1,disp
jnb key1,$
inc r0
cjne r0,#10,disp
mov r0,#0
disp:
mov dptr,#ledtab
mov a,r0
movc a,@a+dptr
mov p0,a
sjmp lp
table: ; 共陰極數碼管顯示**表db 3fh,06h,5bh,4fh,66h ;01234db 6dh,7dh,07h,7fh,6fh ;56789end
10樓:做而論道
(1)按key1只有紅燈亮,key1是p2.2,紅燈是p1.4,按key2只有黃燈亮,key2是p2.
1,黃燈是p1.5,按key3只有綠燈亮,key3是p2.0,綠燈是p1.
6。org 0000h
mov c, p2.2
mov p1.4, c
mov c, p2.1
mov p1.5, c
mov c, p2.0
mov p1.6, c
sjmp 0000h
end===========================(2)開始右led數碼管顯示0。
每按key1一次,數碼管閒事加1,至9後,再迴圈從0顯示到9。
電路不明,補充後再問。
51微控制器組合語言:位操作指令有哪些
11樓:
資料位傳送指令
mov c, bit ;bit 可直接定址位 c←(bit)
mov bit,c ;c 進位位 (bit) ← c
位變數修改指令
clr c ; 將c=0clr bit
cpl c ; 將c求反再存入ccpl bit ; 將bit求反再存入bitsetb c ; 將c=1setb bit ; (bit) ← 1位變數邏輯指令
anl c, bit anl c, bit orl c, bit orl c, bit
51微控制器裡TMOD設定問題,51微控制器裡TMOD設定問題
可以理解為 同時設定了兩個定時器的工作方式。但要看t1是否有啟動,如果系統中沒有用到t1,沒有啟動,設定了也沒關係。如果兩個都需要使用,需要分別設定,標準的做法是tmod 0x01,這樣就只設定了 t0,t1保留原來的狀態。tmod是8位暫存器,高4 位和低4位分別控制定時器1和0 用或操作的話就是...
有關51實驗版微控制器的問題,關於51微控制器的問題
初步瀏覽了一下,動態顯示的話delay時間太長就會閃爍。你好 初步看一眼,數碼管閃爍的原因無非是時間間隔太長,先建議你縮短延時時間,再事實。希望我的回答能幫助到你。像是串列埠驅動的數碼管,靜態顯示。這樣的電路,不宜頻繁的顯示,一秒鐘,顯示一次就可以了。把顯示部分,移到定時中斷裡面,即可 main v...
微控制器彙編程式讀引腳問題,剛學微控制器,組合語言中,MOVP1,0FFH與MOVP1,0F0H都是什麼意思啊,求指教
mov p0,ffh 這條指令是來向p0的鎖存器寫源高電平bai 同時給p0引腳也輸du出高電平了 但是如果p0 埠zhi被強負載拉低,則引 dao腳就為低 如我們外部接一個開關,被按下的時候 即p0的引腳電平與外部負載有直接關係的 如果我們要讀取外表資料 讀引腳 則我們必須先執行這條指令mov p...