如何在單片機(jī)中生成隨機(jī)數(shù) 作者: 時(shí)間:2016-11-23 來源:網(wǎng)絡(luò) 加入技術(shù)交流群 掃碼加入和技術(shù)大咖面對面交流海量資料庫查詢 收藏 隨機(jī)數(shù)在單片機(jī)的應(yīng)用中也是很多的,當(dāng)然產(chǎn)生隨機(jī)數(shù)的方法有很多,當(dāng)中有一個(gè)就是利用單片機(jī)定時(shí)器,取出未知的定時(shí)器THX和TLX的值,再加以運(yùn)算得到一個(gè)規(guī)定范圍內(nèi)的隨機(jī)數(shù)值。這做法也是可行的?;蛘哳A(yù)先寫好一個(gè)隨機(jī)數(shù)表,然后進(jìn)行取數(shù)據(jù)。也是可以的。等等 今天給大家介紹另外一個(gè)在單片機(jī)中產(chǎn)生隨機(jī)數(shù)的方法。這里介紹的方法是利用C語言中rand();函數(shù)來產(chǎn)生隨機(jī)數(shù)。 大家可以打開KeilC51HLP文件夾下的C51lib.chm文件索引“rand”,看一下該函數(shù)的解釋和使用方法。我這里簡單跟大家介紹一下rand()函數(shù) rand()函數(shù)生成一個(gè)0~32767之間的的偽隨機(jī)數(shù),函數(shù)運(yùn)行完后將返回這個(gè)偽隨機(jī)數(shù),另外還可以看到void srand(int seed); void srand(int seed); 函數(shù)可以設(shè)置一個(gè)初值,然后調(diào)用rand()函數(shù)生成一個(gè)初值與32767之間的隨機(jī)數(shù)。如:int a;srand(500);a=rand(); 這時(shí),a的值將是500~32767之間的一個(gè)隨機(jī)數(shù),大家可以自己寫程序測試一下,想想如何寫一個(gè)函數(shù)讓單片機(jī)產(chǎn)生一個(gè)0~100之間的隨機(jī)數(shù)
評論