請教下51微控制器彙編濾波問題,微控制器如何用C語言以及組合語言寫濾波程式?

2022-05-26 04:50:18 字數 4795 閱讀 7285

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...