陳清清
摘要:傳統(tǒng)的紙簽和采球既麻煩又單調(diào),而基于單片機(jī)的三位抽獎(jiǎng)號(hào)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),使得抽獎(jiǎng)機(jī)在我們的生活中被廣泛地使用。它以AT89C52單片機(jī)為控制芯片,通過P0口控制數(shù)碼管的段選,在上拉電阻的作用下,將0~9之間的數(shù)字送入數(shù)碼管,使數(shù)碼管顯示三位數(shù)的組合,同時(shí),用P2口通過送入十六進(jìn)制控制數(shù)碼管的位選,在延時(shí)函數(shù)的配合下,實(shí)現(xiàn)抽獎(jiǎng)想過,通過外部中斷顯示中獎(jiǎng)號(hào)碼,從而實(shí)現(xiàn)抽獎(jiǎng)功能,
關(guān)鍵詞:單片機(jī); 三位抽獎(jiǎng)號(hào); C語言
中圖分類號(hào):TP368 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)15-0230-02
Abstract: the traditional paper sign and the ball picking is troublesome and monotonous, and based on the design and implementation of the three bit lottery system, the lottery machine is widely used in our life. It AT89C52 as the control chip, through the P0 port control segment digital tube, the pull-up resistor, the numbers between 0 to 9 into digital tube, the digital tube display a combination of three digits, at the same time, by P2 through into hexadecimal digital control of selected, in cooperation with the time delay function, draw thought, through the external interrupt according to the winning number, so as to realize the draw function.
Key words: single chip microcomputer; three lottery numbers; C language
如今,公司年會(huì),迎新晚會(huì),超市抽獎(jiǎng),產(chǎn)品促銷等等,各種各樣的聚會(huì)和活動(dòng)少不了安排抽獎(jiǎng)助興。傳統(tǒng)的紙簽和采球既麻煩又單調(diào),由此抽獎(jiǎng)機(jī)越來越受人們的喜愛,而且,在我們的生活中被廣泛地使用,本文通過C語言編程實(shí)現(xiàn)了一種基于AT89C52單片機(jī)的三個(gè)數(shù)碼管的顯示。
1 系統(tǒng)硬件總體結(jié)構(gòu)
本次設(shè)計(jì)的三位抽獎(jiǎng)號(hào)的顯示器選用AT89C52單片機(jī)為主芯片[1],對數(shù)碼管的動(dòng)態(tài)顯示、中斷的產(chǎn)生都由AT89C52芯片實(shí)現(xiàn),它是三位抽獎(jiǎng)號(hào)的顯示器的核心,控制各部分硬件穩(wěn)定、協(xié)調(diào)地工作。其總體實(shí)現(xiàn)框圖如圖1所示。
2 模塊電路分析
三位抽獎(jiǎng)號(hào)的顯示器能正常工作[2],是在各個(gè)電路模塊組合下協(xié)調(diào)完成的,其中包括了單片機(jī)工作電路、數(shù)碼管顯示電路,按鍵電路等,下面做詳細(xì)介紹。
2.1 單片機(jī)最小系統(tǒng)
所謂單片機(jī)最小系統(tǒng),就是在盡可能少的外部電路條件下,形成一個(gè)可以獨(dú)立工作的單片機(jī)系統(tǒng),在此基礎(chǔ)加上應(yīng)用系統(tǒng)所需,才能構(gòu)成一個(gè)整體的電路系統(tǒng)[3],單片機(jī)最小系統(tǒng)如圖2所示。
2.2 數(shù)碼管顯示電路
三位抽獎(jiǎng)號(hào)的顯示器是由AT89C52提供控制信號(hào),通過數(shù)碼管的段選和位選來控制數(shù)碼管的動(dòng)態(tài)顯示芯,其中P0口提供段選,給數(shù)碼管送入要顯示的數(shù)字,P2口控制位選,通過給P2口送入數(shù)字來控制數(shù)碼管的亮滅,仿真電路圖如圖3所示。
其中數(shù)碼管的a,b,c,d,e,f,g,df,分別接到AT89C52單片機(jī)P0口的P0.0、P0.1、P0.2、P0.3、P0.4、P0.5、P0.6、P0.7。單片機(jī)運(yùn)行程序代碼,將信號(hào)輸入到P0口,驅(qū)動(dòng)芯片內(nèi)含的H橋路將控制信號(hào)處理過后,由P0.0、P0.1、P0.2、P0.3、P0.4、P0.5、P0.6、P0.7輸出,控制數(shù)碼管的工作狀態(tài)。其中排阻在本次設(shè)計(jì)中起上拉電阻的作用,數(shù)碼管內(nèi)部發(fā)光二極管點(diǎn)亮?xí)r,需要5mA以上的電流[4],而且電流不可過大,否則會(huì)燒毀發(fā)光二極管,由于單片機(jī)的p0口送不出如此大的電流,所以數(shù)碼管與單片機(jī)連接時(shí)需要加驅(qū)動(dòng)電路,所以上拉電阻起到了驅(qū)動(dòng)電路的作用。
2.3 按鍵電路
本設(shè)計(jì)使用的是外部中斷0,由AT89C52單片機(jī)的P2^3口控制,當(dāng)中斷發(fā)生時(shí),數(shù)碼管靜止,執(zhí)行中斷,當(dāng)中斷結(jié)束時(shí)跳出中斷程序,繼續(xù)執(zhí)行被中斷打斷的程序。仿真成功的電路圖如圖4所示。
在引腳P3.2接通一個(gè)開關(guān)開關(guān)接地,當(dāng)開關(guān)被按下后,P3.2口送入低電平[5],即發(fā)生中斷,AT89C52單片機(jī)響應(yīng)中斷,程序代碼開始執(zhí)行中斷,,這樣設(shè)計(jì)實(shí)現(xiàn)中斷控制按鍵這一效果。
3 軟件設(shè)計(jì)
3.1 主函數(shù)設(shè)計(jì)
主函數(shù)模塊為設(shè)計(jì)中最主要的部分[6],主函數(shù)模塊會(huì)用到之前各個(gè)模塊的函數(shù)。在本次設(shè)計(jì)中,需要先初始化外部中斷0,開總中斷,執(zhí)行主程序,控制數(shù)碼管的動(dòng)態(tài)顯示[7],當(dāng)有中斷發(fā)生時(shí),程序轉(zhuǎn)去執(zhí)行中斷函數(shù),當(dāng)中斷結(jié)束后,跳出中斷函數(shù),繼續(xù)執(zhí)行主程序。程序圖如圖5所示。
3.2 數(shù)碼管顯示程序設(shè)計(jì)
抽獎(jiǎng)時(shí)大家關(guān)注的是中獎(jiǎng)號(hào),因此數(shù)碼管的顯示是非常重要的,P0口讀入數(shù)據(jù)控制數(shù)碼管的靜態(tài)顯示,當(dāng)有中斷發(fā)生時(shí),保護(hù)現(xiàn)場,響應(yīng)中斷,此時(shí)三位數(shù)碼管停下來,數(shù)碼管上此時(shí)顯示的數(shù)字即為中獎(jiǎng)號(hào)。當(dāng)中斷結(jié)束后,恢復(fù)現(xiàn)場,執(zhí)行主函數(shù),數(shù)碼管繼續(xù)動(dòng)態(tài)顯示。在AT89C52上,P3.2口控制外部中斷0,中斷流程圖如圖6所示。
4 總結(jié)
本次設(shè)計(jì)研究的是基于單片機(jī)的三位抽獎(jiǎng)號(hào)的顯示器的設(shè)計(jì)與實(shí)現(xiàn),原理是三位數(shù)碼管隨機(jī)動(dòng)態(tài)顯示,當(dāng)有按鍵按下時(shí),數(shù)碼管靜止,此時(shí)數(shù)碼管上的數(shù)字即為中獎(jiǎng)號(hào),在設(shè)計(jì)原理圖之前,一定得先弄清所做的功能是什么,然后在去把每一個(gè)模塊的原理圖了解透徹。以便于以后調(diào)試時(shí)出問題,比較容易查出原因,當(dāng)有問題出現(xiàn)時(shí),要想想為什么,及時(shí)去查閱資料。連接實(shí)物圖一定要認(rèn)真,連接的實(shí)物圖要盡可能的清晰明了。連接仿真圖時(shí)要有耐心和細(xì)心。
參考文獻(xiàn):
[1] 梁國祥. 基于MC51簡易四位抽獎(jiǎng)機(jī)的設(shè)計(jì)[J]. 寧德師范學(xué)院學(xué)報(bào):自然科學(xué)版,2011,23(3):268-270.
[2] 郭天祥. 新概念51單片機(jī)C語言教程——入門.提高.開發(fā).拓展全攻略(附光盤[M]. 北京:電子工業(yè)出版社,2009.
[3] 王新穎. 單片機(jī)原理及應(yīng)用[M]. 北京:北京大學(xué)出版社, 2008.
[4] 江曉安,董秀峰.模擬電子技術(shù)[M]. 西安:西安電子科技大學(xué)出版社, 2011.
[5] 江曉安,董秀峰,楊頌華.數(shù)字電子技術(shù)[M]. 西安:西安電子科技大學(xué)出版社,2011.
[6] 吳鵬. 基于C#抽獎(jiǎng)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 裝備制造與教育,2014,28(4):57-61.
[7] 譚浩強(qiáng). C程序設(shè)計(jì)[M].4版.北京:清華大學(xué)出版社,2010,20:114.