曹闡方
摘要:在電子設(shè)計(jì)與制造技術(shù)的發(fā)展中,核心就是電子設(shè)計(jì)自動(dòng)化(EDA,Electronic Design Automation)技術(shù)。EDA技術(shù)的出現(xiàn),極大地提高了電路設(shè)計(jì)的效率和可操作性,減輕了設(shè)計(jì)者的勞動(dòng)強(qiáng)度。本次設(shè)計(jì)實(shí)驗(yàn)就是基于EDA技術(shù)和EP1C6Q240C8芯片(FPGA),及其外圍電路,實(shí)現(xiàn)了五人多數(shù)表決器的設(shè)計(jì)。設(shè)計(jì)模塊主要包括:控制單元、計(jì)數(shù)單元、顯示單元、報(bào)警單元。實(shí)現(xiàn)用人數(shù)多于或等于3來判決是否通過,從而達(dá)到設(shè)計(jì)要求。
關(guān)鍵詞:52單片機(jī);C語言;硬件電路
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)14-0145-02
Design and Analysis of Five Person Voting Machine Based on Microcomputer
CAO Chan-fang
(School of Information Engineering, Yulin University, Yulin 719000,China)
Abstract:In the development of the Electronic Design and manufacturing technology, the core is the Electronic Design Automation (EDA, Electronic Design Automation) technique. The emergence of EDA technology, greatly improve the efficiency of the circuit design and operability, reduce the labor intensity of the designer. This experiment is designed based on EDA technology and EP1C6Q240C8 chip (FPGA), and its peripheral circuit, realized the design of the five most voter. Design module mainly includes: the counting unit, control unit, display unit, alarm unit. Implementation with number is more than or equal to 3 to judgment whether through, so as to achieve the design requirements.
Key words: 52 single-chip microcomputer; C language; hardware circuit
五人表決器是廣泛應(yīng)用于各類比賽的一種常用設(shè)備,在技術(shù)上同時(shí)也是一種非常成熟的電子產(chǎn)品。在早期投票往往采用收集紙片,然后進(jìn)行統(tǒng)計(jì)的方式。然而這種方式會(huì)導(dǎo)致大量的資源浪費(fèi)、不可重復(fù)使用、易偽造且統(tǒng)計(jì)的時(shí)候易出現(xiàn)誤差等情況發(fā)生。
針對(duì)上述問題,本文利用52單片機(jī)設(shè)計(jì)了一個(gè)智能五人表決器。此表決器具有功能穩(wěn)定,易更行替換,可重復(fù)多次使用(在節(jié)點(diǎn)沒損壞的情況下),統(tǒng)計(jì)票數(shù)不會(huì)出錯(cuò),也不能多次投票體現(xiàn)了比賽的公平性,同時(shí)該表決器也具有體積輕、便易于攜帶等優(yōu)點(diǎn),具有一定的市場價(jià)值。
1 表決器系統(tǒng)整體設(shè)計(jì)圖
2 表決器系統(tǒng)功能設(shè)計(jì)
本系統(tǒng)在考慮了表決器的性能穩(wěn)定,易于更新?lián)Q代的前提下,設(shè)計(jì)了能夠統(tǒng)計(jì)并且自動(dòng)顯示票數(shù),且在票數(shù)大于一半的情況下,蜂鳴器響提醒該次結(jié)果通過。
1)統(tǒng)計(jì)票數(shù)顯示功能:在評(píng)委或觀眾按下鍵之后,單片機(jī)就可以統(tǒng)計(jì)出本次比賽或選舉的結(jié)果,并且在LED燈上顯示出所投票數(shù)。
2)開始投票信號(hào)功能:以流水燈開始流水,在主持人按下開始投票鍵后,以流水燈停止為信號(hào),則觀眾或評(píng)委方可進(jìn)行投票。
3)違規(guī)投票處理功能:在主持人沒有允許開始投票的時(shí)候,若有人搶投則不計(jì)入票數(shù),LED燈也不顯示。
4)通過提示功能:在票數(shù)大余3人的情況下,則表示本輪通過,蜂鳴器響一聲提示代表本次即可通過。
3 表決器系統(tǒng)硬件設(shè)計(jì)
1)電源電路設(shè)計(jì):根據(jù)芯片工作電壓需要主要有供電電壓5V,LED顯示屏12V,均由開關(guān)電源一次實(shí)現(xiàn)[3]。
2)主控電路:STC89C52單片機(jī)是STC公司生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash存儲(chǔ)器。8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時(shí)器,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,3個(gè)16 位定時(shí)器/計(jì)數(shù)器,4個(gè)外部中斷,一個(gè)7向量4級(jí)中斷結(jié)構(gòu)(兼容傳統(tǒng)51的5向量2級(jí)中斷結(jié)構(gòu)),全雙工串行口。
工作頻率范圍:0~40MHz,相當(dāng)于普通8051 的0~80MHz,實(shí)際工作 頻率可達(dá)48MHz[5]。
電壓:5.5V~3.3V(5V單片機(jī))/3.8V~2.0V(3V 單片機(jī))
工作溫度范圍:-40~+85℃(工業(yè)級(jí))/0~75℃(商業(yè)級(jí))
3)主持人節(jié)點(diǎn)設(shè)計(jì):顯示電路采用兩位LED數(shù)碼管顯示,提示電路采用蜂鳴器完成,按鍵采用鍵盤檢測實(shí)現(xiàn)。
4)評(píng)委節(jié)點(diǎn)設(shè)計(jì):按鍵同樣采用鍵盤檢測來實(shí)現(xiàn)。
4 軟件流程圖設(shè)計(jì)
1) 本程序在Keil軟件環(huán)境下編寫編譯,在STC_ISP_V483軟件下進(jìn)行燒寫。具體流程圖如下:
2) 鍵盤檢測原理
按鍵按下時(shí),與此鍵相連的行線與列線導(dǎo)通,行線在無鍵按下時(shí)處在高電平,顯然,如果讓所有的列線也處在高電平,那么,按鍵按下與否不會(huì)引起行線電平的變化,因此,必須使所有列線處在低電平,只有這樣,當(dāng)有鍵按下時(shí),該鍵所在的行電平才會(huì)由高電平變?yōu)榈碗娖?。CPU根據(jù)行平電的變化,便能判定相應(yīng)的行有鍵按下[2]。
示例代碼[2]:
void matrixkeyscan() //鍵盤檢程序
{
uchar temp,key;
P3=0xfe;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0) //有鍵被按下
{
delayms(10); //消抖
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0) //再次判斷
{
temp=P3;
3)消抖原理
消除抖動(dòng)分為硬件消抖和軟件消抖,一般的情況下采用軟件消抖。在第一次檢測到有按鍵按下時(shí),執(zhí)行延時(shí)程序,延時(shí)10ms,再次確定該鍵是否仍保持閉合狀態(tài),如果保持閉合狀態(tài)確定的確有鍵按下,從而消除了抖動(dòng)[1]。
5 系統(tǒng)調(diào)試
本系統(tǒng)在經(jīng)過多次在不同情況下的測試后,效果均較為理想,測試數(shù)據(jù)如下。
在主持人沒有按下開始鍵時(shí),評(píng)委按下視為無效票(即流水燈不停止,顯示器不顯示),在主持人按下開始鍵后,流水燈停止流水,評(píng)委可開始投票。在票數(shù)超過三票后,顯示票數(shù)蜂鳴器響,視作本次選手成功。若沒有超過三票則蜂鳴器不響只顯示票數(shù)。下一輪,主持人按鍵,則全部清零即可開始再一輪的投票。
6 結(jié)語
本文利用51單片機(jī)和硬件電路實(shí)現(xiàn)了五人表決器,經(jīng)實(shí)物測試后,效果良好,反應(yīng)迅速且未出錯(cuò),為日后節(jié)點(diǎn)擴(kuò)展的需要奠定了基礎(chǔ)。同時(shí)為多種比賽場合上的靈活應(yīng)用提供了可能。
參考文獻(xiàn):
[1] 譚浩強(qiáng). C程序設(shè)計(jì)[M].4版.清華大學(xué)出版社,2010:114.
[2] 郭天祥. 新概念51單片機(jī)C語言教程——入門.提高.開發(fā).拓展全攻略(附光盤[M]. 電子工業(yè)出版社, 2009,56:79.
[3] 江曉安,董秀峰.模擬電子技術(shù)[M]. 西安電子科技大學(xué)出版社, 2011,33:86
[4] 江曉安,董秀峰,楊頌華. 數(shù)字電子技術(shù)[M]. 西安電子科技大學(xué)出版社, 2011,20:45
[5] 王新穎.單片機(jī)原理及應(yīng)用[M].北京大學(xué)出版社,2008,37:56.