<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 使用8051單片機的隨機數發(fā)生器

使用8051單片機的隨機數發(fā)生器

—— 使用8051的隨機數發(fā)生器
作者: 時(shí)間:2023-03-27 來(lái)源:電子產(chǎn)品世界 收藏

在這個(gè)項目中,我將解釋使用生成隨機數的電路和工作,即我將告訴你如何使用生成一個(gè)隨機數。

本文引用地址:http://dyxdggzs.com/article/202303/444919.htm

這個(gè)項目在按下按鈕時(shí)產(chǎn)生一個(gè)0到100之間的隨機數。這是一個(gè)簡(jiǎn)單的項目,你可能在嵌入式項目中找不到任何嚴肅的應用。該項目工作只是一個(gè)示范。

如何編寫(xiě)程序?

代碼

是一種物理設備,當按下一個(gè)按鈕時(shí),在一定范圍內隨機產(chǎn)生一個(gè)數字。在這個(gè)項目中,當按下按鈕(連接P3.0)時(shí),LCD(液晶顯示器)會(huì )隨機顯示數字。

在這個(gè)項目中,計數器以高速從0到99遞增。如果你按下按鈕,那么LCD就會(huì )顯示當前的計數值。由于計數器高速遞增,在按下按鈕時(shí)選擇一個(gè)隨機數字。

使用8051的電路圖

Random Number Generator using 8051 Circuit Diagram

所需元件

AT89C51 (8051單片機)

8051編程器 

編程電纜

5V電源

16×2字母數字LCD

2個(gè)陶瓷電容 - 33pF

11.0592MHz晶體

按鍵 - 3

電解電容 - 10μF, 16V

10KΩ 電阻器(1/4瓦) - 2個(gè)

330Ω 電阻器(1/4 瓦) - 2

波特 - 10KΩ

1KΩ X 8 電阻器包

連接導線(xiàn) 

使用8051的的電路設計 

該電路使用8051微控制器,16×2字母數字液晶顯示器,按鈕和一些無(wú)源元件。這個(gè)電路的主要部件是AT89C51微控制器。

在上述電路中,兩個(gè)按鈕被連接到P3.0和P3.1,其中一個(gè)按鈕(Random - P3.0)將產(chǎn)生隨機數,而另一個(gè)按鈕(RST - P3.1)將重置計數。

LCD的數據引腳連接到微控制器的PORT2,控制引腳RS、RW、En分別連接到P2.0、GND和P2.1。這里,LCD是以8位模式連接的,這就是為什么我們需要使用LCD的所有數據引腳。

一個(gè)10KΩ電阻,一個(gè)10μF電容和一個(gè)按鈕將為8051微控制器提供復位電路。兩個(gè)33pF的電容和一個(gè)11.0592MHz的夸特晶體被用來(lái)為8051微控制器提供振蕩器。

在這里,一個(gè)10KΩ的電位器被連接到LCD的VEE引腳,用來(lái)控制LCD的對比度。通過(guò)調整電位器的電阻,我們可以改變對比度或亮度。

注意:如果你想減少LCD的數據線(xiàn),你可以使用4位模式。

Random Number Generator using 8051 Image 1

Random Number Generator using 8051 Image 2

Random Number Generator using 8051 Image 3

如何編寫(xiě)程序?

現在讓我們看看如何使用8051單片機編寫(xiě)隨機數發(fā)生器的程序。首先,取一個(gè)整數類(lèi)型的計數變量并在8位模式下初始化LCD?,F在用一個(gè)無(wú)限的while循環(huán)來(lái)永遠重復程序。在這個(gè)無(wú)限的WHILE循環(huán)中,增加整數的值直到按鈕被按下(通過(guò)使用另一個(gè)while循環(huán))。

遞增到99,當計數達到100(上限)時(shí),使計數為0并重復這一過(guò)程。如果你想擴大隨機數發(fā)生器的上限,可以在循環(huán)中改變數值。一旦按下按鈕,計數就會(huì )停止,并在LCD上顯示當前的計數值。

在這個(gè)程序中,如果你想擴大隨機數發(fā)生器的上限,你可以在程序中做一些小小的改動(dòng)。由于我們使用的是LCD,所以有可能擴展隨機數發(fā)生器的上限,而如果使用2個(gè)七段顯示器,則不可能擴展上限(你也必須增加七段顯示器的數量)。

代碼

如何使用8051操作隨機數發(fā)生器電路?

首先,在Keil μVision軟件中編寫(xiě)隨機數發(fā)生器的程序,并生成hex文件。

現在,在8051編程器的幫助下,將這個(gè)十六進(jìn)制文件刻錄到AT89C51微控制器上。

按照電路圖的要求進(jìn)行連接。

確保電路的電源是5V直流。

現在打開(kāi)電路的電源。

你可以在LCD上看到 "Random Number Generator "字符串。

然后,它將要求你按下按鈕來(lái)生成一個(gè)隨機數。

按下按鈕,你可以在LCD上看到一個(gè)隨機數。這將一直顯示到你按下RST按鈕(連接到P3.1)。

一旦你按下RST按鈕,將再次要求你按下按鈕生成一個(gè)隨機數。

這個(gè)過(guò)程一直持續到你關(guān)閉電源。

使用8051電路的隨機數發(fā)生器的應用

這個(gè)項目用于我們需要生成隨機數的應用中

用在噪聲發(fā)生器中

在玩大富翁、蛇梯等游戲時(shí),項目被用作傳統骰子的替代品。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>