本文介绍的摇奖系统是一种采用MCS-51单片机控制彩灯亮暗状态和音响变化的多媒体系统,该系统将传统的摇奖功能与电脑的多媒体技术相结合,最主要的特点体现在两个方面:第一是采用定点单片机来产生不同的随机数来设立不同的奖项,从而体现摇奖的公平性,同时能事先设立不同奖项的产生概率,因此商家能控制每一摇奖组中产生各种奖项的数目,从而来保护商家的利益,并且具有摇奖结果的统计功能。第二是该系统能根据不同的摇奖结果来产生不同的声、光、电显示效果,从而增加趣味性,提高产品的技术含量。
为了实现上述两大特点,在开发该系统时,需要解决两大技术问题:第一,如何利用定点单片机来产生随机数,为此本文提出了一种基于定点单片机的随机数产生算法,同时也提出了不同等级奖项的产生概率的控制方法。第二,如何实现声光及其语音系统?本文介绍了采用ISD2500数码语音芯片来实现摇奖语音系统的具体方法。
在多媒体摇奖系统中,各种奖项的产生是通过的MCS-51单片机产生的随机数来实现的。 MCS-51系列单片机是目前8位定点单片机的主流,数量约占8位单片机的38.3%,在实时控制、智能化仪表等方面应用最广。该单片机有一个8位的面向控制的CPU、1个128字节的RAM、21个特殊功能的寄存器、4个8位并行I/0端口、1个全双工异步串行端口、2个16位定时器和计数器、2个优先级别的5个中断源,其中P0~P3是I/O端口,这4个并行I/O端口影射到SFR(特殊功能寄存器)。通过对这些寄存器的读写,可以实现从相应I/O端口的输入和输出。由于PO~P3端口被影射到特殊功能寄存器,对这些端口寄存器的读写就实现了信息由相应端口的输入和输出。尽管MCS-51单片机具有较强控制I/O的功能,但由于MCS-51是一个8位的定点单片机,而且RAM也较小,不能采用类似于浮点单片机的随机数的产生函数等算法来生成随机数。因此对定点单片机来说,如何生成随机数是一个很难的技术问题。根据随机数来确定奖项,这是体现摇奖系统的公平性的最基本要求。本文根据MCS-51的特点,提出了一种很简单而且很巧妙的获取随机数的方法。
MCS-51是一种工作频率较高的单片机,其工作频率可达12MHz,指令周期为1ms,因此其中的计数器的计数单位为1ms,因此我们可以对用户按下摇奖按钮到松开按钮进行以微秒为单位计数,并将该计数结果对一定大小的数(我们采用100)进行求余运算,由于计数单位是微秒级,用户无法控制计数器的求余结果,因此我们可以将此余数看作随机数,以此作为确定奖项的依据。为了控制奖项的产生概率,我们设立了一个多对一的影射表,将0~99的余数分别影射到不同的奖项中,从而实现对不同奖项产生概率的控制。例如,如果在100人为1组的抽奖活动,希望产生5种不同的奖项,并希望产生的一等奖的概率为2%,二等为8%,三等为20%,四等为30%,五等为40%。因此在设立影射表时,可以将100个余数中的2个影射到一等奖,8个不