LS没理解LZ的意思,**绝对是有外部信号介入的,

[复制链接]
liwei123 发表于 2008-3-20 19:56 | 显示全部楼层

可以用定时器来做啊!

开启一个定时器,然后想要随机数的时候就去读寄存器里的后面若干位的数据,应该可以满足要求了吧!
windyong 发表于 2008-3-21 16:28 | 显示全部楼层

比较简单

    1、设定一个随机变量存储器。
    2、在不同的系统的分支处增量或者减量。
    3、时间中断计数器与之参与一系列的运算,这样就可以产生随机数了。
 楼主| weihualong 发表于 2008-3-21 17:53 | 显示全部楼层

可能很多人没有明白我的意思.

其实要求很简单.条件有两个: 
1.不需要外界信号介入.
2.OTP单片机.也就是不能用eeprom的.
    要写的程序要求也很简单:   单片机只接了10个LED,要求每次开机随机亮其中一个,无论你的程序经过怎样的处理,达到这个目的就OK.(重要的一点:不要每次开机老是先亮某一个灯,然后按相同的规律运行.),都说比较简单,但看起来几乎是不可能的实现的.
gyt 发表于 2008-3-22 13:19 | 显示全部楼层

确实很难实现

比尔盖茨 发表于 2008-3-23 10:59 | 显示全部楼层

加个EEPROM就可以了本人做过

加个EEPROM就可以了本人做过 不过要看你的成本上能不能加几毛钱
zhonggx 发表于 2008-3-23 20:42 | 显示全部楼层

只能产生伪随机数。

可到以下这个空间的技术天地中找到相关**。
http://user.qzone.qq.com/38827251
lancelotw 发表于 2008-3-24 12:13 | 显示全部楼层

前面已经有人说出了.利用timer

没有比这个更好的办法了.
robin0557 发表于 2008-3-24 21:07 | 显示全部楼层

这样行不?

可以从定时计数器中读取数据看看
onemillion 发表于 2008-3-24 21:25 | 显示全部楼层

有难度

qguangdong 发表于 2008-3-25 17:29 | 显示全部楼层

*

似懂非懂
cxg1210 发表于 2008-3-25 18:29 | 显示全部楼层

事实上

有些人不管3721,就回答说没随机的,楼主的意思是编写个程序实现大体的随机,肯定可以的咯!
wwj_209 发表于 2008-3-25 19:50 | 显示全部楼层

簡單啦

你如果有外部輸入信號,比如按鍵,就用被按的時間來決定random
bg6nw 发表于 2008-3-26 05:36 | 显示全部楼层

这个很简单,够随机

加电初始化之后开外中断,开一个计数器,等电容上电压建立起来产生中断时,将计数器里面的数值取出,低几位一定是随机的,因为电容的充电时间相对计数器的高速计数是不确定的。
程序实现起来也很简单。
mikesullen 发表于 2008-3-26 12:16 | 显示全部楼层

楼主的思路应该变一下

不需要外界信号介入??
要做随机数,肯定需要有变化的东西来参与,内部来讲,RAM或许可以利用,但你选的MCU不知能否用RAM实现,你可以试。但必竟不是能通用的做法。
如果你的MCU还有空的IO的话,利用这个IO,可以引入外界变化的信号(或者不确定的信号),简单的话就接个电阻和电容,软件上再处理就OK了。

如果真的不从外界引入,那就太难了。。。。当然也许你选的MCU还有些特别的资源可以利用。。。
sz_kd 发表于 2008-3-26 13:22 | 显示全部楼层

54楼方法还不错

ashowww 发表于 2008-3-26 19:15 | 显示全部楼层

胡思乱想

用ad测试系统电流,这个参数还是变化挺大的.
而且应该每次都不一样
sharks 发表于 2008-3-27 01:12 | 显示全部楼层

开机后把所有的RAM内容加起来

   总有变化的
linqing171 发表于 2008-3-27 13:02 | 显示全部楼层

楼上的似乎可以。

但是有的编译器 启动代码里,把所以的ram都清空了。

还有掉电小于5秒的话,绝大部分ram里面的数据是不变的。上电后对于同一个单片机大部分ram每次都是一样。但是把所有的都加一遍似乎是可以的。

如果程序是固定的,没有不可预知的分支,定时器应该是不可以的。
AD的成本比较高。
我倒是知道delta-sigma里面的噪声发生器是怎么做的。用个二极管就可以。噪声是随机的。
ztzer 发表于 2008-3-28 10:59 | 显示全部楼层

那街上玩的**?

我一同学毕业设计就是老虎机,用的是PIC单片机。如果没不能产生随机数,那是不是可很有可能每次都买种?
xwj 发表于 2008-3-28 11:06 | 显示全部楼层

LS没理解LZ的意思,**绝对是有外部信号介入的,

当然可以做到真正的随机

如果没有保存数据的话,那么每次上电后自动演示的内容肯定是一样的,
但是,只要人一动按键、投币等,时间、间隔、数量等就都可以作为外界参数来介入了


不过呢,别人可不一定给你真正的随机哦,要在程序上作弊太容易了....
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部