快捷搜索:  汽车  科技

单片机数码管动态显示的方法(基于51单片机的数码管显示抽奖系统)

单片机数码管动态显示的方法(基于51单片机的数码管显示抽奖系统)随机数显示刚刚运行时数码管全部点亮。左侧一个8位的拨码开关与单片机的P1口相连,通过阻排进行上拉处理;右侧利用5片74HC495对单片机的IO进行串并转换,进而控制5个1位数码管,5片74HC595之间是相互独立的,并没有采用级联的形式;下方采用一个独立按键用于抽奖系统的启停控制。电路结构上很简单,从电路上还是不能够看出与单片机P1口相连的8位拨码的主要功能的。下面运行电路。仿真运行效果图

最近有些时间,继续分享关于单片机的Proteus仿真。

单片机数码管动态显示的方法(基于51单片机的数码管显示抽奖系统)(1)


今天分享一个基于51单片机的数码管显示抽奖系统仿真。这个程序来源于网络,本文主要介绍一下使用方法,有需要该仿真和程序的朋友可以私信。

话不多说先上图。

单片机数码管动态显示的方法(基于51单片机的数码管显示抽奖系统)(2)

Proteus仿真电路图

左侧一个8位的拨码开关与单片机的P1口相连,通过阻排进行上拉处理;右侧利用5片74HC495对单片机的IO进行串并转换,进而控制5个1位数码管,5片74HC595之间是相互独立的,并没有采用级联的形式;下方采用一个独立按键用于抽奖系统的启停控制。电路结构上很简单,从电路上还是不能够看出与单片机P1口相连的8位拨码的主要功能的。

下面运行电路。

单片机数码管动态显示的方法(基于51单片机的数码管显示抽奖系统)(3)

仿真运行效果图

刚刚运行时数码管全部点亮。

单片机数码管动态显示的方法(基于51单片机的数码管显示抽奖系统)(4)

随机数显示

点击按键后,数码管开始显示随机数,再次按下按键后显示最终数值。到这里就完了,仿真很简单,不过到目前为止还是不知道那个8位拨码开关的作用。看来只能去看看程序了。

单片机数码管动态显示的方法(基于51单片机的数码管显示抽奖系统)(5)

部分程序

在程序中找到这个函数,到这里终于知道8位拨码开关的作用了,8位拨码开关是用于设定随机数发生器的“种子值”(初始值)。这个抽奖系统的仿真,主要利用随机数发生器产生随机数,随机数发生器中的rand函数在产生随机数前,需要系统提供的生成伪随机数序列的种子,rand根据这个种子的值产生一系列随机数。如果系统提供的种子没有变化,每次调用rand函数生成的伪随机数序列都是一样的。srand(unsigned seed)通过参数seed改变系统提供的种子值,从而可以使得每次调用rand函数生成的伪随机数序列不同,从而实现真正意义上的“随机”。通常可以利用系统时间来改变系统的种子值,即srand(time(NULL)),可以为rand函数提供不同的种子值,进而产生不同的随机数序列。

单片机数码管动态显示的方法(基于51单片机的数码管显示抽奖系统)(6)

仿真的程序比较简单,数码管采用的是静态显示,抽奖按键与单片机的外部中断0检测引脚相连,一旦检测到开始按键按下,程序就会启动定时器0,同时对随机数发生器进行初始化,当定时器延时时间到,会从随机数发生器中获取随机数,然后利用数码管将随机数显示出来;当用户再次按下启动/停止按键时,程序会关闭定时器,数码管持续显示抽奖结果。


猜您喜欢: