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