一個(gè)獨(dú)立的單片機(jī)系統(tǒng),如果說(shuō)不引進(jìn)一個(gè)隨機(jī)的信號(hào)的信號(hào)的話那么是永遠(yuǎn)沒有辦法實(shí)現(xiàn)隨機(jī)的效果的。在用單片機(jī)開發(fā)的產(chǎn)品中有很多的產(chǎn)品都是要插入隨機(jī)生成效果的,所以對(duì)于單片機(jī)來(lái)說(shuō)單片機(jī)中的C語(yǔ)言隨機(jī)生成也是十分的重要的,下面達(dá)內(nèi)科技就來(lái)給大家講解下嵌入式C語(yǔ)言中的隨機(jī)數(shù)是怎么生成的。
單片機(jī)生成隨機(jī)數(shù)的幾種常用隨機(jī)信號(hào)如下:
1. 用一路AD采集溫度或電源噪聲,取后幾位作為隨機(jī)信號(hào);
2. 將用戶的交互信號(hào)時(shí)間作為隨機(jī)信號(hào);
3. 利用時(shí)鐘芯片或RTC獲取當(dāng)前時(shí)間再經(jīng)處理作為隨機(jī)信號(hào);
4.
自己搭一個(gè)硬件電路用來(lái)產(chǎn)生隨機(jī)信號(hào),如利用單片機(jī)的內(nèi)置時(shí)鐘設(shè)為1M,外接一個(gè)用溫度敏感電阻搭建一個(gè)特征頻率10M的RC振蕩電路,用慢時(shí)鐘去采集快時(shí)鐘,然后經(jīng)過簡(jiǎn)單處理,就可以得到一個(gè)真正的隨機(jī)數(shù)了。
單片機(jī)產(chǎn)生隨機(jī)數(shù)的兩種方法
方法一:定時(shí)器直接隨機(jī)取值
每按一次按鍵生成一個(gè)隨機(jī)數(shù),這個(gè)隨機(jī)數(shù)實(shí)際是把定時(shí)器的值給取出來(lái)了,并不能算的隨機(jī)、方法二才是真正意義上的隨機(jī)。
方法二:用定時(shí)器加rand()隨機(jī)函數(shù)來(lái)實(shí)現(xiàn)
單片機(jī)上電之后通過按鍵去啟動(dòng)取隨機(jī)數(shù),若是單片機(jī)上電就立即取隨機(jī)數(shù)的話,那每次上電隨機(jī)的結(jié)果都是一樣的。然后是0
到9不重復(fù)的隨機(jī)數(shù),程序中用了循環(huán)來(lái)判斷是否和前面取的隨機(jī)數(shù)相同,相同則進(jìn)入,下次取隨機(jī)數(shù),不同則存入數(shù)組。
單片機(jī)C語(yǔ)言中的隨機(jī)數(shù)生成方法對(duì)于想要學(xué)習(xí)單片機(jī)的學(xué)員來(lái)說(shuō)活也是十分的重要的,所以想要進(jìn)入到單片機(jī)開發(fā)這個(gè)行業(yè)的話那么就要好好的學(xué)習(xí)單片機(jī)技術(shù)。想要學(xué)習(xí)單片機(jī)技術(shù)的話不妨來(lái)我們達(dá)內(nèi)科技的單片機(jī)培訓(xùn)班來(lái)實(shí)地考察,也可以先點(diǎn)擊我們文章下面的獲取試聽資格按鈕來(lái)獲取我們單片機(jī)課程免費(fèi)試聽資格,在試聽中可以更加深入的了解達(dá)內(nèi)科技。