求高手赐教:51单片机怎么产生随机数?

如题所述

启动定时器,需要随机数时从定时器里读一个值出来当作随机数。
或者调用random()函数,不过得到的是伪随机数追问

伪随机数是不是每次重启得到的数都一样?我写了x=rand()%4;y=rand()%4;不知道为啥y一直不是0就是3,得不到1或2.

追答

伪随机数每次重启都是一样的。
不过伪随机数据在第一次使用时要给它配一个参数(也可以不配,使用默认参数),可以在每次重启时通过硬件取一个真正的随机数作为参数,这样就可以避免每次重启后得到同样的一串数。硬件取随机数最好的方法是读AD采样的值,AD采样是最不稳定的,也可以用其它的方法。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-08
打开计数器
需要时读取 计数器高位或者低位.
相似回答