430单片机实现三人投票表决器_基于单片机的五人表决器的设计
姚海云+馬野
摘要:本設計利用51單片機,按鍵開關模塊,數碼管顯示模塊和LED模塊來實現一個簡單的五人表決器的功能。按鍵開關模塊中的鍵2~鍵6表示五個人,由5個人來投票,當同意的票數大于或者等于3人時,數碼管顯示同意的人數,說明表決通過。當表決的人數小于3時,數碼管顯示同意的人數。
關鍵詞:表決器;單片機;流水燈;數碼管;矩陣鍵盤;時鐘
中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2016)14-0236-03
Design of a Five Person Voting Machine Based on Single Chip Microcomputer
YAO Hai-yun, MA Ye
(School of Information Engineering, Yulin University, Yulin 719000, China)
Abstract: This design uses 51 single chip microcomputer, button switch module, digital tube display module and LED module to realize the function of a simple five person voting machine. Key switch module in the key 2 ~ 6 of five individuals, 5 people to vote, when the consent of the number of votes greater than or equal to 3 people, the number of digital display, the number of votes, the vote through. When the number of votes is less than 3, the number of digital control display.
Key words: voting device; single chip microcomputer; running water lamp; digital tube; matrix keyboard; clock
當今時代是一個新技術層出不窮的時代,傳統的分立元件或數字邏輯電路構成的控制系統正在被單片機智能控制系統所取代。表決器就是單片機在實踐中的應運[1]它極大地方便了我們對表決結果的統計。
1 系統硬件總體結構
本次設計的五人表決器選用AT89C52單片機為主芯片,對LED燈和數碼管的控制都由AT89C52芯片實現其總體實現框圖如圖1所示。
硬件總體框圖中包含了4個部分,流水燈模塊,數碼管顯示模塊,矩陣鍵盤模塊,時鐘模塊。
2 模塊電路分析
基于單片機的五人表決器能正常工作,是在各個電路模塊組合下協調完成的,其中包括了單片機流水燈模塊,數碼管顯示模塊,矩陣鍵盤模塊,時鐘模塊。
2.1流水燈模塊
流水燈實際上就是一個帶有八個發光二極管的單片機最小應用系統,通過編寫程序控制單片機管腳電平的高低變化,來實現發光二極管的一亮一滅[2]。52單片機的P1口連接著發光二極管,它具有單項導電性,通過5mA左右電流即可發光,電流越大,亮度越強,若電流一般控制在3-20mA之間。在這里給發光極管串聯一個電阻的目的是為了起到限流的作用。電路圖如圖2所示。
2.2 數碼管顯示模塊
單片機的應用系統設計中,用單片機驅動LED數碼管有很多方法:按顯示方式分,有靜態顯示和動態(掃描)顯示;按編譯方式可分,有硬件編譯和軟件編譯之分[3]。AT89C52芯片P0口與鎖存器74LS273的D0-D7口連接。鎖存器74LS273的輸出端Q0-Q7與共陽極的7段數碼管相連接。共陽極數碼管的內部8個發光二極管的所有陽極全部連接在一起,電路連接時,公共端接高電平,要點亮的那個發光二極管給陰極送低電平。此時,需要5mA以上的電流,且電流不可過大,否則會燒毀發光二極管。單片機的I/O口送不出如此大的電流,因此數碼管與單片機連接時可以用上拉電阻形成驅動電路。電路圖如圖3所示。
2.3 矩陣鍵盤模塊
鍵盤是電子器件中常見的輸入裝置[4]。單片機系統中,鍵盤由一組常開的按鍵組成。當按鍵閉合時就會向單片機系統輸入一個電平信息。每個按鍵都被賦予了一個鍵碼。單片機據此代碼執行任務。在單片機系統按鍵數量較多時為了減少I/O口的使用通常使用矩陣鍵盤[5]。矩陣鍵盤由16個按鍵排成4行4列,第一行將每個按鍵的一端連接在一起構成行線,每一列將每個按鍵的另一端連接在一起構成列線,這樣一共有4行4列共8根線,將這8根線連接到單片機的8個I/O口上,通過程序掃描鍵盤就可檢測這16個鍵。電路圖如圖4 所示。
2.4 時鐘模塊
時鐘電路的作用是為單片機提供一個時鐘信號,所有程序都按照特定的時間順序工作,它控制著計算機工作的節奏。微型計算機的CPU實質上就是一個復雜的同步時序電路[6]。時鐘電路中的晶體振蕩器分為有源晶振和無源晶振兩種類型。根據連接方式的不同,時鐘電路分為內部時鐘方式和外部時鐘方式,前者是單片機內部的振蕩電路產生時鐘信號,后者則是外部振蕩源為單片機提供時鐘信號。本次設計采用內部振蕩方式為單片機提供時鐘信號。電路圖如圖5所示。
3 軟件設計
3.1 主函數設計
主函數模塊會用到之前各個模塊的函數。在本次設計中,打開開關流水燈開始工作。開始表決時讓流水燈停止如果表決同意的人數大于等于3,表示表決通過。否則表示表決結果為不同意,函數結束。在這個過程中,看復位鍵是否按下。若按下則開始從新開始表決。這一過程的處理流程圖如圖6所示。
3.2按鍵程序設計
通過程序掃描鍵盤就可檢測16個鍵。檢測時,先送一列為低電平,其余幾列全為高電平,然后立即輪流檢測一次各行是否有低電平,若檢測到某一行為低電平,則可以確定當前被按下的鍵是哪一個鍵。這一過程的處理流程圖如圖7所示。
3.3 顯示程序設計
表決時大家關注的是表決結果,因此數碼管的顯示是非常重要的,P0口讀入數據控制數碼管的靜態顯示,通過段選和位選來確定是第幾個數碼管的哪幾段亮,從而在數碼管上顯示數字,此時顯示的數字即為表決結果。
數碼管顯示程序的關鍵代碼如下:
#include // 52系列單片機頭文件
sbit dula=P2^5; //申明U1鎖存器的鎖存端
sbit wela=P2^6; //申明U2鎖存器的鎖存端
void main()
{
P0=0; //關閉所有數碼管段選
dula=1;
dula=0;
P0=0x10; //位選中所有數碼管
wela=1;
wela=0;
while(1)
}
4 實驗結果
當表決的人中有5個人同意時,LED燈處于閃爍的狀態下,表示表決通過。如圖8所示。
5 總結
由于時間和知識技術方面的不足,本次設計還有許多問題需要在實際應用中解決。五人表決器可以再改進一些:可以設計一個倒數計時的模塊。當按下復位鍵后。設計時倒數10s。在倒數的期間,表決者可以投票,倒數結束后,表決的結果無效。還可以再設計兩個數碼管顯示表決的結果,一個顯示同意的人數,一個顯示反對的人數。當然,隨著技術的不斷革新,表決器必然會更加智能化,功能也更加多樣化,相信在將來,人工智能會走進我們生活中的點點滴滴,為人類的進步和發展做出更大的貢獻。
參考文獻:
[1] 貢雪梅. 項目教學法在單片機原理課程設計中的應用[J]. 實驗技術與管理,2009,26( 15407):115-116+144.
[2] 郭明磊. 用單片機實現流水燈的控制設計[J]. 黑龍江科技信息,2008(4):72.
[3] 郭景. 用單片機驅動LED數碼管顯示[J]. 陰山學刊:自然科學版,2005,19(1):41-42+56.
[4] 趙亮. 單片機從入門到精通系列講座——矩陣鍵盤應用[J]. 電子制作,2008(7):63-65.
[5] 譚成豪,許建明. 試述51系列單片機矩陣鍵盤編程[J]. 科技傳播,2011(6):197.
[6] 劉鳳格. MCS-51單片機的時鐘電路[J]. 菏澤師范專科學校學報,2003(2):87-89.
總結
以上是生活随笔為你收集整理的430单片机实现三人投票表决器_基于单片机的五人表决器的设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL 正则表达式 匹配方式
- 下一篇: WPF框架剖析,从头开始自己写WPF框架