打印

c51如何产生随机数?

[复制链接]
6624|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
isbit|  楼主 | 2008-10-13 18:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
5880527| | 2008-10-13 21:00 | 只看该作者

TH0,TL0?

使用特权

评论回复
板凳
lyjian| | 2008-10-13 21:40 | 只看该作者

用keil提供的rand函数产生

使用特权

评论回复
地板
李冬发| | 2008-10-14 04:57 | 只看该作者

用硬件吧

使用特权

评论回复
5
doob| | 2008-10-14 09:21 | 只看该作者

c51如何产生随机数?

这种外部事件单一的程序好像是说,timer或者 rand函数产生的随机数
都是伪随机数,要想产生真正的随机数恐怕需要硬件了!就有点麻烦!

做个噪声电路,然后ad采样获得!---这么复杂恐怕小的系统不划算!

使用特权

评论回复
6
bg6nw| | 2008-10-14 20:34 | 只看该作者

上电后主程序前

开一个计数器,自动装入初值的模式,不开他的溢出中断,然后不要管它了,什么时候要随机数到里面去取就是了。

使用特权

评论回复
7
5880527| | 2008-10-14 20:47 | 只看该作者

怎么会是伪随机数

你每次都是去读TL0呢,然后两次读到的8位组合成一个16位来看看

使用特权

评论回复
8
cauhorse| | 2008-10-14 21:46 | 只看该作者

我还真用过AD

DSP的12位AD采一个大温漂电路,出来值有上百的变化量。。
反正有16路之多,就拿出一路来做个事儿了。。。

使用特权

评论回复
9
inter_zhou| | 2008-10-14 23:11 | 只看该作者

软件做不到真正的随机

用软件也许真不到真正的随即,如果用时间作为随机数的种子,而在软件执行一个完整的循环时间是固定的话,那就做不到随机,如果执行一个主循环的时间不是固定的话,那用时间作为时间种子是没有多大问题的。

使用特权

评论回复
10
weihualong| | 2008-10-15 16:13 | 只看该作者

需要外部条件的参与

   若系统是一个没有外部条件输入的系统,则无论程序怎么写,总是确定的。

使用特权

评论回复
11
lingxueyou| | 2008-10-17 16:33 | 只看该作者

定时器设置一个计数变量

可以载定时器内部设置一个计数变量作++运用,程序里面读该计数变量就行了,好像C中rand()函数也是这样实现的,以前用过  好像效果还不错。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

194

主题

963

帖子

1

粉丝