如果沒有外界因素介入,51 單片機(jī)是不會出現(xiàn)隨機(jī)數(shù)的。C 語言的隨機(jī)數(shù)函數(shù),一般是從定時器取值。但是,單片機(jī)的程序是固定的,執(zhí)行到 random() 時的時刻,也是固定的。

深圳網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
啟動定時器,需要隨機(jī)數(shù)時從定時器里讀一個值出來當(dāng)作隨機(jī)數(shù)。或者調(diào)用random()函數(shù),不過得到的是偽隨機(jī)數(shù)。
因為51單片機(jī)IO口的灌電流能力比較強(qiáng),而拉電流能力比較弱(即IO口的低平驅(qū)動能力較強(qiáng)而高電平驅(qū)動能力較差),所以最好不要用IO高電平進(jìn)行驅(qū)動。你的圖就是用低電平驅(qū)動的。
你只要先定義 sbit P0^0=LED0;...一定定義下去 然后再定義一個按鈕 比如P1 sbit P1^1=key;代碼里寫 while(true){if(key==1){LED0=0;LED1=0;..//把你要亮的燈置0就行了。
P0、P1,都是控制 LED 的?試試下面的程序:include reg5h sbit led = P1^0;sbit key = P1^7;void main(){ while(1) led = key;} P1,不知道怎么用。
C語言提供了一些庫函數(shù)來實現(xiàn)隨機(jī)數(shù)的產(chǎn)生。
1、使用rand函數(shù)生成隨機(jī)數(shù),rand隨機(jī)生成一個位于0 ~ RAND_MAX之間的整數(shù)。如下圖中,我們直接使用rand方法生成10個隨機(jī)數(shù)。
2、\x0d\x0a\x0d\x0aC++中常用rand()函數(shù)生成隨機(jī)數(shù),但嚴(yán)格意義上來講生成的只是偽隨機(jī)數(shù)(pseudo-random integral number)。
3、c語言本身并不能產(chǎn)生隨機(jī)數(shù)。介紹一個比較簡單的隨機(jī)數(shù)獲取方法:啟動單片機(jī)的定時器,讓它自己跑不要發(fā)生溢出中斷,用戶操作時直接讀計數(shù)器數(shù)值,那基本上就是個隨機(jī)數(shù)。
下面是用C產(chǎn)生0-9的隨機(jī)數(shù),rand()函數(shù)產(chǎn)生的是偽隨機(jī)數(shù),反復(fù)調(diào)用函數(shù)rand所產(chǎn)生的一系列數(shù)似乎是隨機(jī)的,但每次執(zhí)行程序所產(chǎn)生的序列則是重復(fù)的。
額,其實最標(biāo)準(zhǔn)的應(yīng)該把那個地方改成9-i,把沒選的數(shù)字往前推,但是已經(jīng)出現(xiàn)的過的就不必推了。。
10]里面放10個數(shù),然后你設(shè)計一個函數(shù),函數(shù)里隨機(jī)生成一個0-9的隨機(jī)數(shù)i,然后a[0]和a[i]交換,然后在你20次循環(huán)的一次循環(huán)里,跑100次這個函數(shù),生成一組新數(shù)組。
C語言可不可以,你要匯編,可以將C語言轉(zhuǎn)成匯編。
網(wǎng)頁名稱:51單片機(jī)c語言隨機(jī)函數(shù) 單片機(jī)c語言產(chǎn)生隨機(jī)
分享網(wǎng)址:http://chinadenli.net/article2/deiohic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司、軟件開發(fā)、品牌網(wǎng)站建設(shè)、定制開發(fā)、網(wǎng)站改版、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)