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