當前位置:首頁 » 操作系統 » 51單片機演算法

51單片機演算法

發布時間: 2022-11-28 16:59:19

A. 51單片機不能實現弗洛伊德a*演算法

不能
從根本而言,51單片機不適合做這種運算。Floyd演算法又稱為插點法,是一種利用動態規劃的思想尋找給定的加權圖中多源點之間最短路徑的演算法,與Dijkstra演算法類似。該演算法名稱以創始人之一、1978年圖靈獎獲得者、斯坦福大學計算機科學系教授羅伯特·弗洛伊德命名。在計算機科學中,Floyd-Warshall演算法是一種在具有正或負邊緣權重(但沒有負周期)的加權圖中找到最短路徑的演算法。演算法的單個執行將找到所有頂點對之間的最短路徑的長度(加權)。雖然它不返迴路徑本身的細節,但是可以通過對演算法的簡單修改來重建路徑。該演算法的版本也可用於查找關系R的傳遞閉包,或(與Schulze投票系統相關)在加權圖中所有頂點對之間的最寬路徑。在計算機科學中,Floyd-Warshall演算法是一種在具有正或負邊緣權重(但沒有負周期)的加權圖中找到最短路徑的演算法。演算法的單個執行將找到所有頂點對之間的最短路徑的長度(加權)。雖然它不返迴路徑本身的細節,但是可以通過對演算法的簡單修改來重建路徑。該演算法的版本也可用於查找關系R的傳遞閉包,或(與Schulze投票系統相關)在加權圖中所有頂點對之間的最寬路徑。

B. 51單片機pwm輸出頻率演算法,誰有公式,怎麼算的

單片機是獨立 pwm硬體產生,還是靠定時器中斷產生
普通51單片機沒有硬體pwm功能,只能靠 定時器中斷來產生,而多數增強型 51單 片機是有硬體pwm功能,一般PWM頻率是晶振頻率/分頻系數/256
如晶振頻率12M,分頻系數設為2,則PWM頻率為12000000/2/256=23.4 KHZ

C. 51單片機如何生成隨機數

用定時器加rand()隨機函數來實現。

rnda=rand()%2;

rndb=rand()%3;

單片機上電之後通過按鍵去啟動取隨機數,若是單片機上電就立即取隨機數的話,那每次上電隨機的結果都是一樣的。然後是0到9不重復的隨機數,程序中用了循環來判斷是否和前面取的隨機數相同,相同則進入下次取隨機數,不同則存入數組。

在程序中,用「#include<absacc.h>」即可使用其中定義的宏來訪問絕對地址,包括CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD

具體使用可看一看absacc.h便知,例如:

rval=CBYTE[0x0002];指向程序存貯器的0002h地址

rval=XWORD[0x0002];指向外RAM的0002h地址

_at_關鍵字

直接在數據定義後加上_at_ const即可,但是注意:

(1)絕對變數不能被初使化;

(2)bit型函數及變數不能用_at_指定。

例如:

idata struct link list _at_ 0x40;指定list結構從40h開始。

xdata char text[25b] _at_0xE000;指定text數組從0E000H開始

提示:如果外部絕對變數是I/O埠等可自行變化數據,需要使用volatile關鍵字進行描述,請參考absacc.h。

(3)51單片機演算法擴展閱讀:

統計學偽隨機性。統計學偽隨機性指的是在給定的隨機比特流樣本中,1的數量大致等於0的數量,同理,「10」「01」「00」「11」四者數量大致相等。類似的標准被稱為統計學隨機性。滿足這類要求的數字在人類「一眼看上去」是隨機的。

密碼學安全偽隨機性。其定義為,給定隨機樣本的一部分和隨機演算法,不能有效的演算出隨機樣本的剩餘部分。

真隨機性。其定義為隨機樣本不可重現。實際上只要給定邊界條件,真隨機數並不存在,可是如果產生一個真隨機數樣本的邊界條件十分復雜且難以捕捉(比如計算機當地的本底輻射波動值),可以認為用這個方法演算出來了真隨機數。

D. 51單片機 DIV指令的具體演算法

DIV是除法指令,除數放在B寄存器中,被除數放在A寄存器中,DIV執行後結果放在A寄存器中,余數放在B寄存器中

E. 51單片機設計計算器 乘法函數 演算法問題

直接浮點運算是可以的,但是時間長,也不容易保證進度。最好是將其轉換為整數進行運算,然後加小數點。

比如1.1×1.1,看做是11×11=121,然後根據被乘數和乘數小樹的位數之和(2)來確定小數點的位置:那就是兩位小數,所以就變成1.21,計算完成。

F. 51單片機實驗:無符號雙位元組乘法運運算元程序

以前搞的子程序庫里的
(5) 標號: MULD 功能:雙位元組二進制無符號數乘法

入口條件:被乘數在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

G. 完整可用的51單片機PID運算公式

沒意義。PID是有很強的針對性的,我以前看到的幾個網上的PID程序都還是可以用的。但是需要你自己定的,可不只是PID三個數。采樣周期是多少?PID計算後打算用多少位的數據,都是要自己定的,等等。
而所謂溫度控制的程序,直接套用的(參數不套用,自己調),沒有幾個能好用的,要麼計算量太大,要麼調節不夠好。
還是看看公式自己寫的好。就算我寫了一個在我手上好用的,給你,你那也未必好用,因為還要根據實際去修改一些輸出、輸入量,或加以限制,不同的系統,這些都是不同的。就像是汽車底盤都是4個輪子,你要的是越野車,我給你個轎車的底盤,上面再怎麼改也不好用阿!

H. 求解51單片機延時程序計算

呵呵:一樓錯在時鍾周期和頻率的關系沒弄對;
二樓錯在內循環沒算DJNZ的兩個周期
=======================================
正解:
1)首先要知道單片機時鍾晶振頻率為多少?設fosc=6MHz。
2)時鍾周期T是計算機基本時間單位,同單片機使用的晶振頻率有關。
那麼T =1/fosc=1/6M=166.7ns。
3)機器周期T1是指CPU完成一個基本操作所需要的時間,如取指操作、讀數據操作等,機器周期=12 T =166.7ns X 12=2µs。
4)指令周期是指執行一條指令所需要的時間,因此指令周期沒有確定值,一般為1~4個T機器周期。
5)本題各指令的機器周期為:
程序 機器周期數 一次用的時間µs
ORG 0050H 0
DELAY:MOV R0,#0AH 1 2
DL2:MOV R1,#7DH 1 2
DL1:NOP 1 2
NOP 1 2
DJNE R1,DL1 2 4
DJNZ R0,DL2 2 4
RET 2 4
6)延時時間:
(1)內循環: 時間
DL1:NOP 2
NOP 2
DJNE R1,DL1 4
內循環的循環次數為125(07DH),延時時間為:125 X (2+2+4)=1000µs=1ms
(2)外循環:外循環的循環次數為10(0AH),
總循環:10 x 1000µs=10000µs=10ms
(3)精確計算:
MOV R0,#0AH 運行了1次用 2µs
DL2:MOV R1,#7DH 運行了10次用2x10µs
DL2:MOV R1,#7DH 運行了10次用4x10µs
RET 運行了1次用4µs
所以精確計算為:10000+2+20+40+4=10066 µs
一般情況下回答延時10000µs即10ms即可
(4)說明若選用的晶振fosc=12MHz 那麼以上的計算周期數不變,時間減半,即為10066/2=5033µs,或粗略答為:5000µs(5ms)。

以上答案希望有所幫助,並祝學習進步!

I. 關於51單片機實現數字秒錶程序演算法出錯的問題

你自己都明明知道sec/10=0了,再過1秒,sec加一,sec=1,可問題是,右邊圖中for循環運算,是在每一秒以後,確保sec加一以後才循環的嗎?估計你是在主程中不斷執行for循環的,還沒等到sec加1,sec還是0就執行for循環的,那sec就無法加1。閃一下,說明在1秒到的時刻,sec確實加1了,可剛顯示出1,馬上又for循環了,又為0了。還沒等看清楚呢就變回0了。
你要想辦法,保證在一秒以後,保證sec加一後再for循環。
其實,這么做本就是錯誤的。你既然知道按左圖的演算法是對的,何苦還用for計算呢?為自己出難題啊?

J. 51單片機串口波特率的演算法求解

這是51單片機的硬體典型結構,串口通信使用的頻率是晶振頻率的1/32或者1/16(PCON的最高位為1),這就是32的來源。
但是這種模式下,限制了波特率的提高,因此,現在一些改進的51單片機是1/2分頻。

熱點內容
日誌伺服器如何分ip地址保存 發布:2024-05-20 14:46:50 瀏覽:262
如何阻止安卓自啟動 發布:2024-05-20 14:30:16 瀏覽:350
天翼雲伺服器監控 發布:2024-05-20 14:30:14 瀏覽:563
什麼游戲開伺服器便宜 發布:2024-05-20 14:21:48 瀏覽:656
萬網資料庫清空 發布:2024-05-20 14:20:46 瀏覽:557
編譯原理什麼是規范句型 發布:2024-05-20 14:08:59 瀏覽:562
jenkins自動化測試腳本 發布:2024-05-20 13:28:03 瀏覽:918
網游機戰腳本 發布:2024-05-20 13:26:56 瀏覽:482
天天愛消除卡心腳本 發布:2024-05-20 13:01:00 瀏覽:124
python中str的意思 發布:2024-05-20 13:00:52 瀏覽:235