用单片机产生随机数的两种方法资料

上传人:E**** 文档编号:107661640 上传时间:2019-10-20 格式:PDF 页数:8 大小:63.97KB
返回 下载 相关 举报
用单片机产生随机数的两种方法资料_第1页
第1页 / 共8页
用单片机产生随机数的两种方法资料_第2页
第2页 / 共8页
用单片机产生随机数的两种方法资料_第3页
第3页 / 共8页
用单片机产生随机数的两种方法资料_第4页
第4页 / 共8页
用单片机产生随机数的两种方法资料_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《用单片机产生随机数的两种方法资料》由会员分享,可在线阅读,更多相关《用单片机产生随机数的两种方法资料(8页珍藏版)》请在金锄头文库上搜索。

1、 方法一:定时器直接随机取值 每按一次按键生成一个随机数,这个随机数实际是把定时器的值给取出来 了,并不能算绝对的随机、方法二才是真正意义上的随机。 仿真如下: #include sbit k1 = P10; unsigned int sum1,sum2; unsigned char led11 = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0X40; void delay(unsigned int i) unsigned int j,k; for(j = 0; j i; j+) for(k = 0; k 120; k+); void

2、display() P2 = ledsum1 % 10; P3 = 0xfe; delay(2); P3 = 0xff; P2 = ledsum1 / 10 % 10; P3 = 0xfd; delay(2); P3 = 0xff; P2 = ledsum2 % 10; P3 = 0xfb; delay(2); P3 = 0xff; P2 = ledsum2 / 10 % 10; P3 = 0xf7; delay(2); P3 = 0xff; void main() TMOD = 0X01; TH0 = 0X00; TL0 = 0X00; EA = 1; ET0 = 1; TR0 = 1; w

3、hile(1) if(k1 = 0) while(k1 = 0); sum1 = TL0; sum2 = TH0; display(); void init() interrupt 1 TH0 = 0X00; TL0 = 0X00; 方法二:用定时器加 rand()随机函数来实现 单片机上电之后通过按键去启动取随机数,若是单片机上电就立即取 随机数的话,那每次上电随机的结果都是一样的。然后是 0 到 9 不重复的 随机数,程序中用了循环来判断是否和前面取的随机数相同,相同则进入 下次取随机数,不同则存入数组。 程序如下: #include #include /包含 rand()随机函数的头文件

4、 unsigned char t,k,i,j,a,f,n10; /t 是计时变量,k 是按键标志,i 是数组下标,f 是随机数重复标志,n10 是存放随机数的数组 void init() /初始化函数 t = 0; i = 0; f = 0; k = 0; TMOD = 0x02; /设置定时器 0 为工作方式 2 TH0 = 7; /装初值 TL0 = 7; EA = 1; /开总中断 ET0 = 1; /开定时器 0 中断 TR0 = 1; /启动定时 0 EX0 = 1; /开外部中断 0,同按键的效果一样 IT0 = 1; /下降沿触发 void main() init(); whil

5、e(1) while(k) /外部中断 0 触发循环 if(!i) /i=0 时取第一个随机数放入数组 n0 srand(t); /随机数初始化 a = (char)(rand() % 10); /取随机数(09) n0 = a; /存入数组 i+; /数组下标加 1 else while(i 10) /存放剩下的 9 个随机数 srand(t); /随机数初始化 a = (char)(rand() % 10); /取随机数 for(j = 0; j i; j+) /与前面的随机数比较 if(nj = a) /与前面的随机数相同 f = 1; /标志置 1 if(f) /有重复执行 f = 0; /标志清 0 continue; /结束本次循环 ni = a; /不同则存入数组中 i+; /数组下标加 1 void inter0() interrupt 0 /外部中断 0 k = 1; /按键标志置 1,主函数执行取随机数 void time0() interrupt 1 /定时器 0 中断 t+; /时间加 1 if(t = 100) t = 0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号