打印

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

[复制链接]
楼主: weihualong
手机看帖
扫描二维码
随时随地手机跟帖
41
liwei123| | 2008-3-20 19:56 | 只看该作者 回帖奖励 |倒序浏览

可以用定时器来做啊!

开启一个定时器,然后想要随机数的时候就去读寄存器里的后面若干位的数据,应该可以满足要求了吧!

使用特权

评论回复
42
windyong| | 2008-3-21 16:28 | 只看该作者

比较简单

    1、设定一个随机变量存储器。
    2、在不同的系统的分支处增量或者减量。
    3、时间中断计数器与之参与一系列的运算,这样就可以产生随机数了。

使用特权

评论回复
43
weihualong|  楼主 | 2008-3-21 17:53 | 只看该作者

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

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

使用特权

评论回复
44
gyt| | 2008-3-22 13:19 | 只看该作者

确实很难实现

使用特权

评论回复
45
比尔盖茨| | 2008-3-23 10:59 | 只看该作者

加个EEPROM就可以了本人做过

加个EEPROM就可以了本人做过 不过要看你的成本上能不能加几毛钱

使用特权

评论回复
46
zhonggx| | 2008-3-23 20:42 | 只看该作者

只能产生伪随机数。

可到以下这个空间的技术天地中找到相关**。
http://user.qzone.qq.com/38827251

使用特权

评论回复
47
lancelotw| | 2008-3-24 12:13 | 只看该作者

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

没有比这个更好的办法了.

使用特权

评论回复
48
robin0557| | 2008-3-24 21:07 | 只看该作者

这样行不?

可以从定时计数器中读取数据看看

使用特权

评论回复
49
onemillion| | 2008-3-24 21:25 | 只看该作者

有难度

使用特权

评论回复
50
qguangdong| | 2008-3-25 17:29 | 只看该作者

*

似懂非懂

使用特权

评论回复
51
cxg1210| | 2008-3-25 18:29 | 只看该作者

事实上

有些人不管3721,就回答说没随机的,楼主的意思是编写个程序实现大体的随机,肯定可以的咯!

使用特权

评论回复
52
wwj_209| | 2008-3-25 19:50 | 只看该作者

簡單啦

你如果有外部輸入信號,比如按鍵,就用被按的時間來決定random

使用特权

评论回复
53
bg6nw| | 2008-3-26 05:36 | 只看该作者

这个很简单,够随机

加电初始化之后开外中断,开一个计数器,等电容上电压建立起来产生中断时,将计数器里面的数值取出,低几位一定是随机的,因为电容的充电时间相对计数器的高速计数是不确定的。
程序实现起来也很简单。

使用特权

评论回复
54
mikesullen| | 2008-3-26 12:16 | 只看该作者

楼主的思路应该变一下

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

如果真的不从外界引入,那就太难了。。。。当然也许你选的MCU还有些特别的资源可以利用。。。

使用特权

评论回复
55
sz_kd| | 2008-3-26 13:22 | 只看该作者

54楼方法还不错

使用特权

评论回复
56
ashowww| | 2008-3-26 19:15 | 只看该作者

胡思乱想

用ad测试系统电流,这个参数还是变化挺大的.
而且应该每次都不一样

使用特权

评论回复
57
sharks| | 2008-3-27 01:12 | 只看该作者

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

   总有变化的

使用特权

评论回复
58
linqing171| | 2008-3-27 13:02 | 只看该作者

楼上的似乎可以。

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

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

如果程序是固定的,没有不可预知的分支,定时器应该是不可以的。
AD的成本比较高。
我倒是知道delta-sigma里面的噪声发生器是怎么做的。用个二极管就可以。噪声是随机的。

使用特权

评论回复
59
ztzer| | 2008-3-28 10:59 | 只看该作者

那街上玩的**?

我一同学毕业设计就是老虎机,用的是PIC单片机。如果没不能产生随机数,那是不是可很有可能每次都买种?

使用特权

评论回复
60
xwj| | 2008-3-28 11:06 | 只看该作者

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

当然可以做到真正的随机

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


不过呢,别人可不一定给你真正的随机哦,要在程序上作弊太容易了....

使用特权

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

本版积分规则