使用8051单片机的随机数发生器
在这个项目中,我将解释使用8051单片机生成随机数的电路和工作,即我将告诉你如何使用8051单片机生成一个随机数。
这个项目在按下按钮时产生一个0到100之间的随机数。这是一个简单的项目,你可能在嵌入式项目中找不到任何严肃的应用。该项目工作只是一个示范。
如何编写程序?
代码
随机数发生器是一种物理设备,当按下一个按钮时,在一定范围内随机产生一个数字。在这个项目中,当按下按钮(连接P3.0)时,LCD(液晶显示器)会随机显示数字。
在这个项目中,计数器以高速从0到99递增。如果你按下按钮,那么LCD就会显示当前的计数值。由于计数器高速递增,8051单片机在按下按钮时选择一个随机数字。
使用8051的随机数发生器电路图
所需元件
AT89C51 (8051单片机)
8051编程器
编程电缆
5V电源
16×2字母数字LCD
2个陶瓷电容 - 33pF
11.0592MHz晶体
按键 - 3
电解电容 - 10μF, 16V
10KΩ 电阻器(1/4瓦) - 2个
330Ω 电阻器(1/4 瓦) - 2
波特 - 10KΩ
1KΩ X 8 电阻器包
连接导线
使用8051的随机数发生器的电路设计
该电路使用8051微控制器,16×2字母数字液晶显示器,按钮和一些无源元件。这个电路的主要部件是AT89C51微控制器。
在上述电路中,两个按钮被连接到P3.0和P3.1,其中一个按钮(Random - P3.0)将产生随机数,而另一个按钮(RST - P3.1)将重置计数。
LCD的数据引脚连接到微控制器的PORT2,控制引脚RS、RW、En分别连接到P2.0、GND和P2.1。这里,LCD是以8位模式连接的,这就是为什么我们需要使用LCD的所有数据引脚。
一个10KΩ电阻,一个10μF电容和一个按钮将为8051微控制器提供复位电路。两个33pF的电容和一个11.0592MHz的夸特晶体被用来为8051微控制器提供振荡器。
在这里,一个10KΩ的电位器被连接到LCD的VEE引脚,用来控制LCD的对比度。通过调整电位器的电阻,我们可以改变对比度或亮度。
注意:如果你想减少LCD的数据线,你可以使用4位模式。
如何编写程序?
现在让我们看看如何使用8051单片机编写随机数发生器的程序。首先,取一个整数类型的计数变量并在8位模式下初始化LCD。现在用一个无限的while循环来永远重复程序。在这个无限的WHILE循环中,增加整数的值直到按钮被按下(通过使用另一个while循环)。
递增到99,当计数达到100(上限)时,使计数为0并重复这一过程。如果你想扩大随机数发生器的上限,可以在循环中改变数值。一旦按下按钮,计数就会停止,并在LCD上显示当前的计数值。
在这个程序中,如果你想扩大随机数发生器的上限,你可以在程序中做一些小小的改动。由于我们使用的是LCD,所以有可能扩展随机数发生器的上限,而如果使用2个七段显示器,则不可能扩展上限(你也必须增加七段显示器的数量)。
代码
如何使用8051操作随机数发生器电路?
首先,在Keil μVision软件中编写随机数发生器的程序,并生成hex文件。
现在,在8051编程器的帮助下,将这个十六进制文件刻录到AT89C51微控制器上。
按照电路图的要求进行连接。
确保电路的电源是5V直流。
现在打开电路的电源。
你可以在LCD上看到 "Random Number Generator "字符串。
然后,它将要求你按下按钮来生成一个随机数。
按下按钮,你可以在LCD上看到一个随机数。这将一直显示到你按下RST按钮(连接到P3.1)。
一旦你按下RST按钮,将再次要求你按下按钮生成一个随机数。
这个过程一直持续到你关闭电源。
使用8051电路的随机数发生器的应用
这个项目用于我们需要生成随机数的应用中
用在噪声发生器中
在玩大富翁、蛇梯等游戏时,项目被用作传统骰子的替代品。
评论