多媒體搖獎(jiǎng)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
本文介紹的搖獎(jiǎng)系統(tǒng)是一種采用MCS-51單片機(jī)控制彩燈亮暗狀態(tài)和音響變化的多媒體系統(tǒng),該系統(tǒng)將傳統(tǒng)的搖獎(jiǎng)功能與電腦的多媒體技術(shù)相結(jié)合,最主要的特點(diǎn)體現(xiàn)在兩個(gè)方面:第一是采用定點(diǎn)單片機(jī)來產(chǎn)生不同的隨機(jī)數(shù)來設(shè)立不同的獎(jiǎng)項(xiàng),從而體現(xiàn)搖獎(jiǎng)的公平性,同時(shí)能事先設(shè)立不同獎(jiǎng)項(xiàng)的產(chǎn)生概率,因此商家能控制每一搖獎(jiǎng)組中產(chǎn)生各種獎(jiǎng)項(xiàng)的數(shù)目,從而來保護(hù)商家的利益,并且具有搖獎(jiǎng)結(jié)果的統(tǒng)計(jì)功能。第二是該系統(tǒng)能根據(jù)不同的搖獎(jiǎng)結(jié)果來產(chǎn)生不同的聲、光、電顯示效果,從而增加趣味性,提高產(chǎn)品的技術(shù)含量。
本文引用地址:http://www.ex-cimer.com/article/2842.htm為了實(shí)現(xiàn)上述兩大特點(diǎn),在開發(fā)該系統(tǒng)時(shí),需要解決兩大技術(shù)問題:第一,如何利用定點(diǎn)單片機(jī)來產(chǎn)生隨機(jī)數(shù),為此本文提出了一種基于定點(diǎn)單片機(jī)的隨機(jī)數(shù)產(chǎn)生算法,同時(shí)也提出了不同等級(jí)獎(jiǎng)項(xiàng)的產(chǎn)生概率的控制方法。第二,如何實(shí)現(xiàn)聲光及其語音系統(tǒng)?本文介紹了采用ISD2500數(shù)碼語音芯片來實(shí)現(xiàn)搖獎(jiǎng)?wù)Z音系統(tǒng)的具體方法。
在多媒體搖獎(jiǎng)系統(tǒng)中,各種獎(jiǎng)項(xiàng)的產(chǎn)生是通過的MCS-51單片機(jī)產(chǎn)生的隨機(jī)數(shù)來實(shí)現(xiàn)的。 MCS-51系列單片機(jī)是目前8位定點(diǎn)單片機(jī)的主流,數(shù)量約占8位單片機(jī)的38.3%,在實(shí)時(shí)控制、智能化儀表等方面應(yīng)用最廣。該單片機(jī)有一個(gè)8位的面向控制的CPU、1個(gè)128字節(jié)的RAM、21個(gè)特殊功能的寄存器、4個(gè)8位并行I/0端口、1個(gè)全雙工異步串行端口、2個(gè)16位定時(shí)器和計(jì)數(shù)器、2個(gè)優(yōu)先級(jí)別的5個(gè)中斷源,其中P0~P3是I/O端口,這4個(gè)并行I/O端口影射到SFR(特殊功能寄存器)。通過對(duì)這些寄存器的讀寫,可以實(shí)現(xiàn)從相應(yīng)I/O端口的輸入和輸出。由于PO~P3端口被影射到特殊功能寄存器,對(duì)這些端口寄存器的讀寫就實(shí)現(xiàn)了信息由相應(yīng)端口的輸入和輸出。盡管MCS-51單片機(jī)具有較強(qiáng)控制I/O的功能,但由于MCS-51是一個(gè)8位的定點(diǎn)單片機(jī),而且RAM也較小,不能采用類似于浮點(diǎn)單片機(jī)的隨機(jī)數(shù)的產(chǎn)生函數(shù)等算法來生成隨機(jī)數(shù)。因此對(duì)定點(diǎn)單片機(jī)來說,如何生成隨機(jī)數(shù)是一個(gè)很難的技術(shù)問題。根據(jù)隨機(jī)數(shù)來確定獎(jiǎng)項(xiàng),這是體現(xiàn)搖獎(jiǎng)系統(tǒng)的公平性的最基本要求。本文根據(jù)MCS-51的特點(diǎn),提出了一種很簡(jiǎn)單而且很巧妙的獲取隨機(jī)數(shù)的方法。
MCS-51是一種工作頻率較高的單片機(jī),其工作頻率可達(dá)12MHz,指令周期為1ms,因此其中的計(jì)數(shù)器的計(jì)數(shù)單位為1ms,因此我們可以對(duì)用戶按下?lián)u獎(jiǎng)按鈕到松開按鈕進(jìn)行以微秒為單位計(jì)數(shù),并將該計(jì)數(shù)結(jié)果對(duì)一定大小的數(shù)(我們采用100)進(jìn)行求余運(yùn)算,由于計(jì)數(shù)單位是微秒級(jí),用戶無法控制計(jì)數(shù)器的求余結(jié)果,因此我們可以將此余數(shù)看作隨機(jī)數(shù),以此作為確定獎(jiǎng)項(xiàng)的依據(jù)。為了控制獎(jiǎng)項(xiàng)的產(chǎn)生概率,我們?cè)O(shè)立了一個(gè)多對(duì)一的影射表,將0~99的余數(shù)分別影射到不同的獎(jiǎng)項(xiàng)中,從而實(shí)現(xiàn)對(duì)不同獎(jiǎng)項(xiàng)產(chǎn)生概率的控制。例如,如果在100人為1組的抽獎(jiǎng)活動(dòng),希望產(chǎn)生5種不同的獎(jiǎng)項(xiàng),并希望產(chǎn)生的一等獎(jiǎng)的概率為2%,二等為8%,三等為20%,四等為30%,五等為40%。因此在設(shè)立影射表時(shí),可以將100個(gè)余數(shù)中的2個(gè)影射到一等獎(jiǎng),8個(gè)不同的余數(shù)影射到二等獎(jiǎng),20個(gè)不同的余數(shù)影射到三等獎(jiǎng),30個(gè)不同的余數(shù)影射到四等獎(jiǎng),剩下的40個(gè)余數(shù)影射到五等獎(jiǎng)。在建立影射表時(shí),影射到同一等級(jí)獎(jiǎng)項(xiàng)的余數(shù)最好不要連續(xù),因?yàn)榻?jīng)過反復(fù)測(cè)試,證明如果不連續(xù)余數(shù)的影射會(huì)使獎(jiǎng)項(xiàng)產(chǎn)生的分布性更好。
搖獎(jiǎng)系統(tǒng)的語音子系統(tǒng)能根據(jù)不同結(jié)果和所處的不同狀態(tài)來自動(dòng)產(chǎn)生不同的語音和音樂信號(hào)。組成該系統(tǒng)的核心部件是美國(guó)信息存儲(chǔ)器件(ISD)公司的2500數(shù)碼語音芯片,該芯片采用了直接模擬量存儲(chǔ)技術(shù),能較好地保留模擬量中的有效成分,音質(zhì)好,即使錄放音樂歌曲也能保真還原;在片內(nèi)有480Kb的EEPROM,因此掉電也不會(huì)丟失信息;10個(gè)地址輸入端,尋址能力可達(dá)1024位,因此可分600段,并設(shè)有溢出端,便于多個(gè)器件級(jí)聯(lián)。采用該芯片組成的語音系統(tǒng)可以獲得比傳統(tǒng)的語音合成方式更好的音質(zhì),更低的成本,更高的可靠性和靈活性。
根據(jù)搖獎(jiǎng)的狀態(tài)數(shù)和獎(jiǎng)項(xiàng)數(shù),事先在2500語音芯片中設(shè)置相應(yīng)的語音段,并錄制不同的語音和音樂信號(hào)。單片機(jī)MCS-51在不同的時(shí)間根據(jù)搖獎(jiǎng)系統(tǒng)所處的不同狀態(tài)或者是搖獎(jiǎng)后的不同獎(jiǎng)項(xiàng)來控制2500語音芯片來播放不同段的語音和音樂,從而給觀眾聽覺上感官效果。并配合搖獎(jiǎng)機(jī)面板上的不同彩燈的閃爍效果,使觀眾可以處于一個(gè)五彩繽紛的聲、光、電高科技效果中。
多媒體搖獎(jiǎng)系統(tǒng)由控制、燈光顯示、語音和接口等子系統(tǒng)組成,系統(tǒng)的組成框圖如圖1所示。其中燈光顯示子系統(tǒng)是由5組不同的顏色的彩燈組成,每種顏色代表一種獎(jiǎng)項(xiàng),在觀眾按下?lián)u獎(jiǎng)按鈕并松開之后,某一組顏色的燈亮表示該觀眾獲得某項(xiàng)獎(jiǎng)項(xiàng)。另外,在搖獎(jiǎng)系統(tǒng)處于不同的階段,各種彩燈以不同的頻率輪流閃爍。燈光顯示子系統(tǒng)在控制子系統(tǒng)下工作。
控制子系統(tǒng)是整個(gè)搖獎(jiǎng)系統(tǒng)的核心,它不僅能夠根據(jù)事先設(shè)置的搖獎(jiǎng)概率來產(chǎn)生不同的獎(jiǎng)項(xiàng),而且還能夠控制不同彩燈的亮暗和語音播放來表示搖獎(jiǎng)的結(jié)果??刂谱酉到y(tǒng)的核心部件是AT89C51單片機(jī),該單片機(jī)通過8位并行I/O端口P0口的前5位P0。0到P0。4來連接5組彩燈,并通過設(shè)置相應(yīng)的位置位和復(fù)位來控制彩燈的亮暗,同時(shí)也可控制相應(yīng)語音段的播放。其控制流程圖如圖2所示。
語音子系統(tǒng)能根據(jù)搖獎(jiǎng)后的不同結(jié)果和所處的不同狀態(tài)來播放不同的語音和音樂,其核心是ISD2500數(shù)碼語音芯片,該芯片以分段的形式(5段)存儲(chǔ)了5個(gè)聲音文件(.WAV),在何時(shí)播放何段聲音文件是由單片機(jī)來控制的。ISD2500的分段尋址由A0到A9來控制,其錄音和放音功能均從設(shè)定起始地址開始,錄音結(jié)束是由停止鍵確定,芯片自動(dòng)在該段的結(jié)束位置插入結(jié)束標(biāo)志(EOM);而放音時(shí)芯片遇到EOM標(biāo)志就自動(dòng)停止放音。ISD2500地址的空間分配如表1所示,其中0~599作為分段用,地址600~767未使用,地址768~1023為工作模式選擇。
由于本系統(tǒng)只采用了5段語音,所以MCS-51單片機(jī)只需使用并行口P2中前5位來控制,即分別為P2。0到P2。4,控制代碼如下所示:。
Voice:
Mov a, r5;
Rl a
Mov r5, a
Djnz r4,voice
Mov p0,r5
Mov a,r5
Cpl a
Mov r5, a
Mov p2,r5
Call delay1
Mov p2,#ffh
……
其中,delay過程是一個(gè)延遲子程序,主要用來消除按鈕的抖動(dòng)。
另外,本搖獎(jiǎng)系統(tǒng)還建立了一個(gè)搖獎(jiǎng)結(jié)果的查詢子系統(tǒng),該功能只能是系統(tǒng)管理員使用,由密碼鎖定,主要用于管理員來查詢各獎(jiǎng)項(xiàng)的得獎(jiǎng)人數(shù)。采用兩個(gè)七段數(shù)碼管來顯示,其中數(shù)碼管是通過3個(gè)74LS164移位寄存器與單片機(jī)連接。AT89C51單片機(jī)通過串行口將所要顯示的結(jié)果的數(shù)字字型碼以逐位方式送入到移位寄存器鏈,構(gòu)成字符的寄存顯示。同時(shí)操作員還可以通過面板控制系統(tǒng)對(duì)系統(tǒng)參數(shù)做初始化。
利用定點(diǎn)單片機(jī)來產(chǎn)生隨機(jī)數(shù)和隨機(jī)數(shù)產(chǎn)生概率的控制算法,并以該算法為基礎(chǔ),開發(fā)的具有語音播放、同時(shí)具有聲光電顯示效果的多媒體搖獎(jiǎng)系統(tǒng),具有科技含量高,制造成本低廉等特點(diǎn),可廣泛應(yīng)用于商家的促銷活動(dòng)和電視臺(tái)舉辦各種趣味活動(dòng)中?!?/font>
參考文獻(xiàn)
1 陳光東,趙性初,單片微型計(jì)算機(jī)原理和接口技術(shù),華中理工大學(xué)出版社。
2 姚凱學(xué)等,單片機(jī)原理及應(yīng)用,重慶大學(xué)出版社。
評(píng)論