OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 为何我的单片机软件产生的随机数总是固定值?

共4条 1/1 1 跳转至

为何我的单片机软件产生的随机数总是固定值?

助工
2020-10-27 22:13:30    评分

以下是我的源程序和电路,其中P0连接共阳数码管,P2.0控制数码管阳极,随机数函数产生一个随机数给P0,应该是每次数都不一样,现在是每次运行都产生7,无论重启还是开机


#include<reg51.h>
#include<stdlib.h>
sbit c=P2^0;
void main()
{
unsigned char a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
P0=a[rand()%10];
c=0;
while (1)
        ;
}






关键词: 随机数     单片机     MCU     C51    

工程师
2020-10-27 22:20:42    评分
2楼

因为用的是伪随机数,随机数种子,每次开机都一样。要想办法每次开机能产生不同的随机种子。
srand(int )是设置随机数种子的。


工程师
2020-10-27 22:27:26    评分
3楼

渡娘给你参考一下!



工程师
2020-10-27 22:31:24    评分
4楼

我们程序产生的随机都是伪随机的,也就是需要一个东西来改变它,一般叫做随机数种子,高级语言一般使用系统时间作为随机数种子


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]