单片机C语言如何产生随机数

想用keill 写个产生0-9的随机数的程序用在C51单片机里,但是它不能识别time.h头文件,rand函数。请高手帮帮忙啊,谢过!急啊

1、C语言提供了一些库函数来实现随机数的产生。C语言中有三个通用的随机数发生器,分别为 rand函数, random函数, randomize 函数
2、但是rand函数产生的并不是真意正义上的随机数,是一个伪随机数,是根据一个数,称之为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非破坏了系统,为了改变这个种子的值,C提供了srand()函数,它的原形是void srand( int a)。
3、在调用rand函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。一般用for语句来设置种子的个数。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-09
奢侈,浪费,乘除取余在8位的单片机中都好费时间和代码,再搞个rand 函数太奢侈了啊
C52中带AD的话,倒是可以模似出随机来,
思路是指定一个脚为AD输入口,并启动AD功能,同时这个接脚置反或不停的置1置0,待转换完成了取转换结果, 理论上讲,跳变中的电位应当是比较随机的值.
第2个回答  推荐于2018-02-28
KEIL里面产生随机数的函数确实是rand(),但头文件是stdlib.h,不是time.h。本回答被网友采纳
第3个回答  2012-02-09
keil本身是不带time.h头文件的,除非你自己构造一个。
第4个回答  2020-02-21
time.h头文件是利用PC机的系统时间,而单片机没有,需要用定时器来模拟。在C51中rand函数是有的,包含stdlib.h头文件就可以调用了。下面是我之前回答过的问题,跟你的问题很类似。http://wenwen.soso.com/z/q213187811.htm如有什么不清楚欢迎追问!
相似回答