一、數(shù)碼管的結構
數(shù)碼管由8個發(fā)光二極管(以下簡稱字段)構成,通過不同的組合可用來顯示數(shù)字0~9。數(shù)碼管分為共陰極和共陽極兩種結構。所謂共陰極,及時將所有的LED的陰極連到一起,而共陽極這相反,所有的陽極被連到了一起。但不是那種結構,其設計的原理基本相同,唯一不同的是驅動電路的設計有差異,一般共陰極采用推(Push)電流的方式來驅動,而共陽極結構則采用拉(Pull)電流的方式來驅動。
二、數(shù)碼管工作原理
共陽極數(shù)碼管的8個發(fā)光二極管的陽極(二極管正端)連接在一起。通常,公共陽極接高電平(一般接電源),其他管腳階段驅動電路輸出端。當某段驅動電路的輸出端為低電平時,則該段所連接的字段導通并點亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符,此時,要求段驅動電路能吸收額定的段導通電流,還需根據(jù)未接電源及額定段導通電流來確定相應的限流電阻。
三、單片機簡介
單片機是在一塊芯片上集成了中央處理器部件(CPU)、儲存器(RAM、ROM)、定時器/計數(shù)器和各種輸入/輸出(I/O)接口(如并行I/O口、串行I\O口和A/D轉換器)等。由于單片機通常是為實時控制應用而設計制造的,因此,又稱為微控制器(MCU)。
74hc164控制數(shù)碼管顯示系統(tǒng)設計方案
一、總體設計
1、 系統(tǒng)組成
本系統(tǒng)功能由硬件和軟件兩大部分協(xié)調完成。 本系統(tǒng)的硬件采用模塊化設計,以單片機控制為核心,74hc164為驅動,與數(shù)碼管接口電路等組成單片機控制的數(shù)碼管顯示系統(tǒng)。該系統(tǒng)硬件主要包括主控模塊、報警模塊、數(shù)碼管顯示模塊等。其中單片機控制器主要完成外圍硬件的控制以及一些運算按功能,74hc164完成串行輸入,并行輸出,數(shù)碼管顯示模塊完成字符、數(shù)字的顯示功能。 應用軟件采用模塊化設計方法。該系統(tǒng)軟件主要由主程序、定時器T0中斷服務子程序、164子程序等模塊組成。
? ? ? ?二、硬件設計
1、主控模塊設計
? ? ? ?本項目采用AT89S52單片機。 電源、時鐘信號以及復位電路是單片機工作的基本條件,缺一不可。單片機系統(tǒng)的基本工作電路電源電路、時鐘電路、復位電路。
(1)電源電路模塊設計
電源模塊為系統(tǒng)板上的其他模塊提供+5V電源。系統(tǒng)板可從USB接口獲取+5V電源,即用相應配套的USB線從電腦主機上獲取+5V直流電源。
(2)時鐘電路模塊設計
單片機的時鐘信號用來位單片機芯片內部的各種操作提供時間基準。 時鐘電路為單片機產(chǎn)生時鐘脈沖序列,作為單片機工作的時間基準,典型的晶體振蕩頻率為12MHz。
由于AT89S52系列單片機芯片內有時鐘振蕩電路,因此本項目中采用內部時鐘方式,只要在單片機的XTAL1和XTAL2引腳外接石英晶體和微調電容,就夠成了自激振蕩器并在單片機內部產(chǎn)生時鐘脈沖信號,具體電路如圖1-1。圖中電容C1和C2的作用是穩(wěn)定頻率和快速起振。
(3)復位電路模塊設計
復位電路使用單片機或系統(tǒng)中的其他部件處于某中確定的狀態(tài)。
當在MC-51系列單片機的RST引腳處引入高電平并保持2個機器周期,單片機內部就執(zhí)行復位操作。實際應用中,復位操作有兩種基本形式:一種是上電復位,另一種是按鍵復位。本項目中采用案件復位方式,具體電路設計如圖1-1。在單片機運行期間,可以用此案件完成復位操作。
2、報警模塊設計
本項目中選用蜂鳴器。蜂鳴器的正極接+5V的電源,另一極接在三極管8550的集電極,三極管8550主要用于信號的放大,以驅動數(shù)碼管工作。三極管8550的基極通過限流電阻接到單片機P2的P2.0如圖1-1,通過控制三極管8550的基極電平來打開或關閉蜂鳴器。三極管8550的發(fā)射極接地。
3、數(shù)碼管顯示模塊設計
本項目中選用8段共陽極數(shù)碼管,數(shù)碼管的a、b、c、d、e、f、g、dp段分別與74hc164的QA、QB、QC、QD、QE、QF、QG、QH相連,用來控制顯示數(shù)字。數(shù)碼管的公共使能端COM連接+5V的電源。如電路圖1-1
三、軟件設計
1、數(shù)據(jù)結構設計
單片機的P0口P1.0、P1.1通過控制74hc164控制數(shù)碼管顯示。
單片機的P2口P2.0用于控制8550是否導通,從而控制蜂鳴器。
單片機的P2口P2.1、P2.2、P2.3控制三個獨立按鍵。
2、程序設計 主程序主要完成子函數(shù)調用等功能
主程序流程圖:
定時器T0中斷服務子函數(shù)流程圖:
164子函數(shù)流程圖:
C語言程序: