陳琨韶 何遠英
摘 要:通過MCS-51單片機模擬實現(xiàn)一個小型地鐵報站系統(tǒng)的運行過程,其中用于搭建硬件電路的是常見的電子元器件,用于編程的軟件也是常用的單片機匯編語言,簡單明了,對于單片機的教學和學習有一定的輔助及促進作用。
關鍵詞:MCS-51單片機 地鐵 報站系統(tǒng) 仿真軟件
地鐵行業(yè)日新月異,人們對它的關注也越來越多,筆者在平時和學生聊天的過程中發(fā)現(xiàn),大家對其先進的報站系統(tǒng)頗有興趣,剛好筆者在從事單片機這門課的教學,如何用我們常用的MCS-51單片機模擬實現(xiàn)一個小型的地鐵報站系統(tǒng)呢?筆者從硬件和軟件兩個方面來談談報站系統(tǒng)的設計與實現(xiàn),希望對正在學習或者希望學習單片機的電子愛好者有一定的幫助。
一、基本思想
乘坐過廣州地鐵的人都知道,地鐵報站指示鑲嵌在每一節(jié)車廂的大門上方位置,通過小燈的顏色、閃爍、聲音及必要的標識指引行駛的方向和目的地。本系統(tǒng)通過LED燈模擬指示牌上的小燈,通過兩塊MCS-51單片機控制小燈的亮、滅及閃爍,驅動蜂鳴器發(fā)出“嘀、嘀”的響聲模擬地鐵車廂門關閉前的提醒音,并驅動點陣流動顯示各站點信息,具體工作過程如下。
步驟一:按下進站按鈕啟動地鐵,站點1(首發(fā)站)的指示燈亮,顯示屏顯示首發(fā)站信息(本系統(tǒng)模擬廣州地鐵一號線,顯示“始發(fā)站:廣州東站”),與此同時數(shù)碼管顯示60秒關門倒計時,倒計時最后10秒驅動蜂鳴器發(fā)出“嘀、嘀”的關門警報聲。
步驟二:在60秒首發(fā)站倒計時后,站點2指示燈閃爍(此時地鐵已關門向站點2駛去,下一站點的指示燈閃爍),顯示屏顯示下一站信息(如“下一站:體育西”);按下進站按鈕(表示地鐵到達站點2),閃爍的小燈變成常亮,顯示屏信息更新為第二站信息(如“體育西站到了”),與此同時數(shù)碼管顯示30秒關門倒計時,倒計時最后10秒驅動蜂鳴器發(fā)出“嘀、嘀”的關門警報聲。
步驟三:在30秒倒計時后,站點3指示燈閃爍,顯示屏顯示下一站信息(如“下一站:楊箕”);按下進站按鈕,閃爍的小燈變成常亮,顯示屏信息更新為第三站信息(如“楊箕站到了”),與此同時數(shù)碼管顯示30秒關門倒計時,倒計時最后10秒驅動蜂鳴器發(fā)出“嘀、嘀”的關門警報聲。
重復步驟三,站點指示小燈將被依次點亮表示已經(jīng)經(jīng)過的站點,直到最后一站。這里小燈“亮”表示已經(jīng)經(jīng)過或者正在停靠的站點,小燈“滅”表示還未到達的站點。如遇站點是中轉站,倒計時60秒,即首發(fā)站和中轉站倒計時60秒,其余站點倒計時30秒。
到達終點站后,所有站點小燈亮,顯示屏顯示終點站信息(如“終點站:西朗站到了”),當再一次按下進站按鈕時,表示列車折返,反方向行駛。此時,原來的終點站變成了起點站,原來的起點站變成了終點站,相應站點的指示燈亮,顯示屏顯示始發(fā)站信息(如“始發(fā)站:西朗站”),倒計時60秒關門。重復之前正向行駛的步驟,直到到達終點站(原來的首發(fā)站)。具體流程圖如圖1所示。
圖1 系統(tǒng)工作流程圖(模擬廣州地鐵一號線部分站點)
二、硬件設計
結合設計思想,通過單片機仿真軟件“Proteus 7 Professional”繪制硬件電路圖如圖2所示。
圖2 硬件電路圖
本系統(tǒng)采用兩片80C51單片機,一片控制小燈和數(shù)碼管,另一片控制點陣顯示屏的顯示,由于篇幅所限,圖2所給的只是仿真圖,單片機的時鐘、復位、供電等部分電路未畫出(具體可參考電路實現(xiàn)的元件清單)。
此外,圖2所示的界面是啟動之后按下進站按鈕,地鐵處于首發(fā)站的倒計時狀態(tài),其中第一盞小燈亮,數(shù)碼管倒計時60秒,顯示屏滾動顯示“始發(fā)站:廣州東站”。在接下來的動作中,操作者只需要在每次倒計時完后按下“進站按鈕”模擬地鐵到站,小燈、數(shù)碼管、顯示屏即可隨著到站的不同變換顯示信息。
為了更好地說明電路,下面對電路總圖進行分解說明。
第一部分是80C51控制小燈、數(shù)碼管、蜂鳴器等器件。注意仿真圖和實物圖的區(qū)別,在實際接線時要根據(jù)實物的管腳進行連接。本系統(tǒng)采用共陽極數(shù)碼管,其中80C51的P0.0~P0.7腳分別接數(shù)碼管一的a~dp腳,80C51的P2.0~P2.7分別接數(shù)碼管二的a~dp腳。
第二部分為80C51控制點陣顯示屏。其中為了實現(xiàn)第一、二兩部分的同步操作,使兩塊單片機P3.5口和P3.6口相互連接,通過第一塊單片機的端口控制第二塊單片機,實現(xiàn)兩部分功能的同步。顯示屏是循環(huán)滾動顯示地鐵報站信息,選用四個共陽極8×8LED點陣,當按下第一部分的進站按鈕時,通過P3.5和P3.6控制顯示屏顯示信息的變化。
三、軟件設計
本程序使用匯編語言編制,單片機仿真軟件“Proteus 7 Professional”實現(xiàn)仿真調試,通過仿真之后再分別燒錄到兩塊80C51單片機芯片中,實現(xiàn)對小燈、蜂鳴器、顯示屏等的控制,具體源代碼可以分為兩部分。
第一部分為80C51控制小燈、數(shù)碼管、蜂鳴器源代碼,主要由下列幾段程序組成:程序初始化;列車上行控制程序段;列出下行控制程序段;顯示及語音播報控制程序段。
第二部分為80C51控制點陣顯示屏源代碼,主要由下列幾段程序組成字符掃描程序段;字碼表;字符顯示控制程序段。
附:部分程序代碼
;------------------------列車上行時,各車站指示燈狀態(tài)變化的控制程序段
UPLINE:CLR p3.6
CLR C
LOOP1: RLC A
MOV P1,A
JBC F0,LOOP
ACALL DELAY
RRC A
MOV P1,A
JBC F0,LOOP
ACALL DELAY
AJMP LOOP1
;-------------------------列車下行時,各車站指示燈狀態(tài)變化的控制程序段
DOWNLINE:CLR p3.6
CLR C
LOOP2: RRC A
MOV P1,A
JBC F0,LOOP
ACALL DELAY
RLC A
MOV P1,A
JBC F0,LOOP
ACALL DELAY
AJMP LOOP2
四、電路實現(xiàn)
結合硬件及軟件設計,具體電路實現(xiàn)分兩部分說明如下。
第一部分的具體實物電路實現(xiàn)如圖3所示。
其中在圖3所示的電路圖中,還有部分元器件因為走線和美觀問題放在了單片機下面。為了增加趣味和可讀性,在元器件表面做了地鐵模擬站點等必要的標識。
圖3 第一部分電路實現(xiàn)圖
本系統(tǒng)只模擬了廣州地鐵一號線的8個站點,其中“廣州東站”為始發(fā)站,“公園前”為中轉站,均設計了60秒的關門倒計時,其余站點為30秒的倒計時。每個站點由一盞LED小燈指示,進站按鈕由一個不帶自鎖的點動開關實現(xiàn)。
第二部分的具體實物電路實現(xiàn)如圖4所示。
圖4 第二部分電路實現(xiàn)圖
這里LED點陣驅動電路的掃描信號行列各有16條,其中行掃描信號直接使用單片機的兩個P口(本設計為P0口和P2口)共16路驅動,列掃描則使用一個4對16譯碼器(74LS154)驅動,這個譯碼器是將輸入的16進位碼,解碼輸出低態(tài)掃描信號。輸出低態(tài)掃描信號經(jīng)過限流電阻,連接到PNP晶體管的基極,再經(jīng)晶體管放大后即可推動LED工作。
此外,電路的實現(xiàn)均采用手工布線及焊接,其中第二部分在焊接時因走線較多,對元件的放置、走線及焊接技術均有一定的要求,如對于初學者可使用印制電路板。
其主要元件清單見下表。
表
序號 符號 名稱 規(guī)格型號 數(shù)量(只)
1 D1-D9 發(fā)光二極管 9
2 R1-R8 電阻 220Ω 8
3 U1-U2 七段LED數(shù)碼管 BS242 2
4 R9-R25 電阻 1kΩ 17
5 R26 電阻 470Ω 1
6 R27 電阻 10kΩ 1
7 Q1-Q17 三極管 9012 17
8 LS 蜂鳴器 1
9 D9 續(xù)流二極管 IN4001 1
10 C1-C4 電容 30pF 4
11 C5-C6 電容 10μF 2
12 晶振 12MHz 2
13 U3-U4 單片機 AT80C52 2
14 SW1-SW2 按鈕 2
15 U5 譯碼器 74HC154 1
16 LED點陣 8×8 4
17 R28 排阻 10kΩ 1
18 VCC 直流電源 5V 1
五、小結
1.結論
本設計通過對日常生活的所見進行模擬及實現(xiàn),能有效激發(fā)學生對單片機的學習興趣,也可作為教師新課導入示教使用,促進單片機的教學。此外,本設計還可作為學生技能社團的活動項目之一,既加深學生對單片機應用的認識,又在一定程度上鞏固單片機相關編程語言的學習。
2.不足及改進
雖然本系統(tǒng)已較完整地實現(xiàn)了基本設計思想提出的要求,但還存在以下幾點不足:一是本系統(tǒng)只能較好地顯示倒計時時間及發(fā)出關門警報聲,在站點顯示的硬件設計方面還未能簡化,成本也相對較高;二是程序設計稍顯復雜,可再完善簡化,可讀性方面也需加強;三是版面設計不夠美觀,如果作為示教用,則需要對焊接技術和布線方面再進行改進;四是因不良移動或保存,容易出現(xiàn)焊點松動造成虛焊、脫焊,可結合PROTEL等制板軟件及PCB制板技術進行改良。
參考文獻:
[1]周興華.手把手教你學單片機[M].北京:北京航空航天大學出版社,2006.
[2]高平.單片機技術與應用實驗與實訓[M].北京:電子工業(yè)出版社,2008.
[3]周向紅.51系列單片機應用與實踐教程[M].北京:北京航空航天大學出版社,2008.
[4]張義和.例說8051[M].北京:人民郵電出版社,2006.
(作者單位:廣州市輕工高級技工學校)