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

想用keill写个产生0-9的随机数的程序用在C51单片机里,但是它不能识别time.h头文件,rand函数。请高手帮帮忙啊,谢过!急啊... 想用keill 写个产生0-9的随机数的程序用在C51单片机里,但是它不能识别time.h头文件,rand函数。请高手帮帮忙啊,谢过!急啊 展开
 我来答
tattackor
推荐于2016-02-03 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:887万
展开全部
1、C语言提供了一些库函数来实现随机数的产生。C语言中有三个通用的随机数发生器,分别为 rand函数, random函数, randomize 函数
2、但是rand函数产生的并不是真意正义上的随机数,是一个伪随机数,是根据一个数,称之为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非破坏了系统,为了改变这个种子的值,C提供了srand()函数,它的原形是void srand( int a)。
3、在调用rand函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。一般用for语句来设置种子的个数。
匿名用户
2012-02-09
展开全部
奢侈,浪费,乘除取余在8位的单片机中都好费时间和代码,再搞个rand 函数太奢侈了啊
C52中带AD的话,倒是可以模似出随机来,
思路是指定一个脚为AD输入口,并启动AD功能,同时这个接脚置反或不停的置1置0,待转换完成了取转换结果, 理论上讲,跳变中的电位应当是比较随机的值.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhxiufan
推荐于2018-02-28 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38385
国家科技进步奖

向TA提问 私信TA
展开全部
KEIL里面产生随机数的函数确实是rand(),但头文件是stdlib.h,不是time.h。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ATF144X
2012-02-09 · TA获得超过1.2万个赞
知道大有可为答主
回答量:5344
采纳率:77%
帮助的人:4651万
展开全部
keil本身是不带time.h头文件的,除非你自己构造一个。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
督书肖明
2020-02-21 · TA获得超过3868个赞
知道大有可为答主
回答量:3095
采纳率:25%
帮助的人:206万
展开全部
time.h头文件是利用PC机的系统时间,而单片机没有,需要用定时器来模拟。在C51中rand函数是有的,包含stdlib.h头文件就可以调用了。下面是我之前回答过的问题,跟你的问题很类似。http://wenwen.soso.com/z/q213187811.htm如有什么不清楚欢迎追问!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式