第3章 硬件電路設計3.1 控制模塊設計AT89C51在此設計中起到非常重要的作用,它就像一個人的大腦,控制著整個設計的所有系統(tǒng)。此設計的控制模塊由單片機、復位電路、時鐘電路組成的。
3.1.1 單片機AT89C51簡介AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPER-OM-Flash Programmable and Erasable Read Only Memory)的低電壓。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種商效微控制器,AT89C51是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。
image004.gif (12.26 KB, 下載次數(shù): 89)
下載附件
2017-6-6 03:13 上傳
圖3-1 AT89C51引腳圖
AT89C51單片機引腳分布如圖3-1所示。
P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。
P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。
P3.0(RXD):串行輸入口
P3.1(TXD):串行輸出口
3.1.2 單片機時鐘電路復位電路介紹1.時鐘電路模塊
單片機的時鐘信號用來為單片機芯片內(nèi)部的各種操作提供時間基準。
時鐘電路為單片機產(chǎn)生時鐘脈沖序列,作為單片機工作的時間基準,典型的晶體管振蕩頻率為12MHz。
AT89C51單片機內(nèi)有時鐘振蕩電路,只要在單片機的XTAL1和XTAL2引腳外接石英晶體和微調(diào)電容,就構成了自激振蕩器并在單片機內(nèi)部產(chǎn)生時鐘脈沖信號,具體電路設計如圖3-2所示。圖中電容C1和C2的作用是穩(wěn)定頻率和快速起振,其值為5~30pF,在此選擇30pF;晶振X1的振蕩頻率范圍在1.2~12MHz之間選擇。
image006.gif (6.9 KB, 下載次數(shù): 84)
下載附件
2017-6-6 03:13 上傳
image007.gif (2.71 KB, 下載次數(shù): 88)
下載附件
2017-6-6 03:13 上傳
圖3-2 單片機時鐘、復位電路
2.復位電路模塊
復位電路使單片機或系統(tǒng)中的其他部件處于某種確定的狀態(tài)。
當在單片機的RST引腳處引入高電平并保持2個機器周期,單片機內(nèi)部就執(zhí)行復位操作。實際應用中,復位操作有兩種基本形式:一種是上電復位,另一種是按鍵復位。在單片機運行期間,可以利用此按鍵完成復位操作。具體電路設計如上圖3-2所示。
3.2 打鈴模塊電鈴工作在交流電220V下,單片機工作電壓為直流電+5V,所以單片機引腳不能直接控制電鈴工作,因此我們使用單片機控制電鈴工作電路的通斷。由于單片機驅(qū)動能力有限,因而需要硬件將單片機輸出的高、低電平變成控制電鈴通斷的電路,能夠具體實現(xiàn)該功能的電路有多種。常見的方式是采用將單片機輸出信號放大后驅(qū)動繼電器,用繼電器的觸頭控制電鈴電路的接通和斷開,如圖3-3所示。
三極管在電路當中起開關作用,管型為PNP型。單片機的P1.7通過三極管驅(qū)動繼電器,當P1.7腳輸出高電平時,給三極管基極送入高電壓。此時,三極管呈截止狀態(tài),繼電器不吸合電鈴停止打鈴;當P1.7腳輸出低電平時,給三極管基極送入的是低電壓。此時,三極管呈導通狀態(tài),促使繼電器吸合,電鈴打鈴。
繼電器是一種電子控制器件,它具有控制系統(tǒng)(又稱輸入回路)和被控制系統(tǒng)(又稱輸出回路),通常應用于自動控制電路中,它實際上是用較小的電流去控制較大電流的一種“自動開關”。當輸入量達到規(guī)定值時,使被控制的輸出電路導通或斷開的電器。繼電器線圈在斷電時會產(chǎn)生一個很大的反感生電動勢,這個電壓會損失繼電器或者電路中的元件,在繼電器線圈上反向并聯(lián)一個二極管,可將產(chǎn)生的反感生電動勢通過二極管回路釋放掉、保護繼電器線圈和電路中的電子元件不受高壓損壞。
image008.jpg (5.34 KB, 下載次數(shù): 95)
下載附件
2017-6-6 03:13 上傳
圖3-3 聲音控制電路圖
3.3 存儲模塊3.3.1 實時時鐘DS1302簡介 它可以對年、月、日、星期、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個31×8的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源/后備電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。
1.引腳功能及結(jié)構
image009.gif (15.34 KB, 下載次數(shù): 90)
下載附件
2017-6-6 03:13 上傳
圖3-4 DS1302引腳圖
如圖3-4所示,DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復位/片選線,通過RST輸入高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc≥2.5V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),SCLK始終是輸入端。
2.實時時鐘DS1302的控制字節(jié)
DS1302的控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出。
3.數(shù)據(jù)輸入輸出(I/O)
在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位到高位7。
4.實時時鐘DS1302的寄存器
DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字。
此外,DS1302還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與RAM相關的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。DS1302與RAM相關的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)。
5.引腳連接圖
image010.gif (12.85 KB, 下載次數(shù): 80)
下載附件
2017-6-6 03:13 上傳
圖3-5 DS1302引腳連接圖
在學校正常上課中,不可能保證學校隨時都有電,為了不影響學校的正常運轉(zhuǎn),同學們能夠正常的上、下課。所以就采用能在學校停電時借助電池也能工作的芯片,而DS1302能夠在學校掉電時,Vcc2無法給實時時鐘DS1302供電,只有通過干電池B1給實時時鐘DS1302的Vcc1提供電量讓DS1302繼續(xù)工作,系統(tǒng)能夠繼續(xù)計時。而這時的其它電路停止工作,但存儲器中的打鈴時間不會因為沒有電而丟失。其與單片機連接方式如上圖3-5所示。
3.3.2 存儲器24C02C要保證設置的打鈴時間數(shù)據(jù)在掉電時也不會丟失,同時實現(xiàn)在系統(tǒng)運行時能夠修改打鈴時間,在本系統(tǒng)中采用I2C總線的串行存儲器24C02C存儲打鈴數(shù)據(jù)。
1.存儲器24C02C的引腳介紹
考慮到串口線、穩(wěn)定性等方面,本系統(tǒng)采用串行數(shù)據(jù)傳輸存儲器。其容量計算如下:若以打鈴次數(shù)較多的校園為例,每天按12節(jié)課計算,每節(jié)課打鈴2次,再加上起床和熄燈的次數(shù),打鈴大約在20次左右。這樣每個信息單元占8個字節(jié),存儲時均按照非壓縮型BCD碼存儲,則需要存儲空間大約在160個字節(jié)左右,選用256字節(jié)的存儲器就能夠滿足容量的要求,可以采用ATMEL公司的24C02C。根據(jù)硬件電路的設計可得24C02C的I2C硬件地址為:0A2H/0A3H。
(1)行數(shù)據(jù)(SDA)引腳
串行數(shù)據(jù)引腳為雙向引腳,用于把地址和數(shù)據(jù)輸入/輸出期間。該引腳為漏極開路。因此,SDA總線要求在該引腳與VCC之間接入上拉電阻(通常頻率為100KHz時該電阻阻值為10K,頻率為400KHz和1MHz時,阻值為2K)。
對于正常的數(shù)據(jù)傳輸,只允許在SCL為低電平期間改變SDA電平。而SDA電平在SCL高電平期間若發(fā)生變化,表明起始和停止條件產(chǎn)生。
(2)寫保護(WP)引腳
該引腳必須連接到VSS或者VCC。如果連接到VSS,寫操作使能。如果連接到VCC,寫操作被禁止,但讀操作不受影響
2.引腳連接方法
引腳采用I2C總線連接方法,這種方法能夠節(jié)約I/O輸出端口。它主要的特點有:
(1)總線只有兩根線,即串行時鐘線和串行數(shù)據(jù)線,這在設計中大大簡化了硬件接口;
(2)每個連接到總線上的器件地址同時由芯片內(nèi)部硬件電路和外部地址引腳決定,避免了片選線的線連接方法,并建立簡單的主從關系,主器件既可以作為發(fā)送器,又可作為接收器;
(3)它是一個真正的多主總線,帶有競爭監(jiān)測和仲裁電路,多個主機可以任意發(fā)送而不破壞總線上的數(shù)據(jù);
(4)同步時鐘可以作為停止或重新啟動串行口發(fā)送的握手方式;
(5)連接到同一總線的集成電路數(shù)量只受400pF最大總線電容的限制。
學校設定的系統(tǒng)時間和打鈴時間存儲在24C02C中。24C02C的三個地址端口A0、A1、A2都接地,因而其存儲地址為A000H-A6FFH,共1KB的存儲空間。其中,WP是24C02C的寫保護控制引腳,WP為低電平時,串行存儲器可以正常地讀/寫;WP為高電平時,對串行存儲器內(nèi)部的數(shù)據(jù)進行寫保護。在系統(tǒng)掉電時不會丟失其中的內(nèi)容,保證了設置的打鈴時間不會因系統(tǒng)掉電而需要重新設置。如圖3-6所示。
image011.jpg (8.47 KB, 下載次數(shù): 73)
下載附件
2017-6-6 03:13 上傳
圖3-6 24C02C引腳連接圖
3.4 鍵控模塊鍵盤是一組按鍵的組合,它是各種儀表中最常用的輸入設備。操作人員可通過鍵盤輸入數(shù)據(jù)或命令,實現(xiàn)簡單的人機對話。在單片機應用系統(tǒng)中,有的是單個按鍵,有的是矩陣式的按鍵,即行列式按鍵。按鍵是一種常開型按鈕開關,常態(tài)時按鍵的兩個觸點處于斷開狀態(tài),按下鍵時它們才閉合。根據(jù)本設計本的要求,我們選用獨立式鍵盤實現(xiàn)整個功能。
3.4.1 獨立式鍵盤介紹
image012.gif (10.65 KB, 下載次數(shù): 91)
下載附件
2017-6-6 03:13 上傳
圖3-7 獨立式按鍵結(jié)構
獨立式鍵盤的按鍵相互獨立,每個按鍵占用一根I/O口線,每根I/O口線上的按鍵工作狀態(tài)不會影響其他按鍵的工作狀態(tài)。這種按鍵軟件程序簡單,但占用I/O口線較多(一根口線只能接一個鍵),適用于鍵盤應用數(shù)量較少的系統(tǒng)中。獨立式按鍵電路配置靈活,軟件結(jié)構簡單,但每個按鍵必須占用一根I/O口線,因此,在按鍵較多時,I/O口線浪費較大,不宜采用。獨立式按鍵結(jié)構圖如圖3-7所示。
3.4.2 鍵盤接口及鍵位的功能介紹按鍵功能介紹:
模式按鍵:它的主要功能就是選擇時鐘芯片里的年、月、日、時、分、秒,當按下模式這個鍵時,它從年到月依次往后的選中,這時按調(diào)節(jié)按鈕就能從當前的時間往上調(diào)。
調(diào)節(jié)按鍵:它的主要功能就是想改變當前的系統(tǒng)時間首先要按模式鍵,選中要修改的時間,再按調(diào)節(jié)鍵就能控制當前系統(tǒng)時間遞增。
存入按鍵:它的主要功能就是把系統(tǒng)不正確的時間修改后按下存入鍵,系統(tǒng)的時間就為按下那瞬間的時間。
清空按鍵:它的主要功能就是當學校要重新輸入打鈴時間的時候,就先按下清空鍵,再輸入新的時間。
通過上述每個按鍵的功能介紹,實現(xiàn)對打鈴系統(tǒng)的打鈴時間設置。與單片機具體鏈接圖,如圖3-8所示。
image013.jpg (5.05 KB, 下載次數(shù): 69)
下載附件
2017-6-6 03:13 上傳
圖3-8 鍵盤的接口連接
3.5 顯示模塊在本系統(tǒng)中因為要顯示年、月、日、星期、時、分、秒,如果用發(fā)光二極管不能具體的顯示出來,所以采用了七段數(shù)碼顯示管來作為顯示元件。
3.5.1 數(shù)碼管的組成及工作原理數(shù)碼管由8個發(fā)光二極管構成,可以用來顯示數(shù)字、字符等它在家電及工業(yè)控制中有著很廣泛的應用。數(shù)碼管實際上是由7個發(fā)光管組成“8”字形構成的,加上小數(shù)點就是8個。這些段分別由字母a、b、c、d、e、f、g、dp來表示。數(shù)碼管的引腳結(jié)構如圖3-9 所示,其中COM引腳為公共端,用來控制數(shù)碼管顯示的打開或關閉,既起到“使能”作用。當數(shù)碼管特定的段加上電壓后,這些特定的段就會發(fā)亮,以形成我們眼睛看到的字樣。
根據(jù)公共端接法方式的不同,數(shù)碼管又分為共陰極和共陽極兩種結(jié)構的二極管,分別如下:
共陽極就是將8個LED的陽極連接到一起組成公共端COM,接到正極,當相應字段為低電平“0”時,可以點亮該字段;但相應字段為高電平“1”時,該字段不亮。
共陰極就是將8個LED的陰極連接到一起組成公共端COM,接負極,當相應字段為高電平“1”時,可以點亮該字段;當相應字段為低電平“0”時,該字段不亮。
image014.gif (20.38 KB, 下載次數(shù): 100)
下載附件
2017-6-6 03:13 上傳
圖3-9 LED數(shù)碼管引腳
數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個發(fā)光二極管單元(多一個小數(shù)點顯示);按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽數(shù)碼管在應用時應將公共極COM接到+5V,當某一字段發(fā)光二極管的陰極為低電平時,相應字段就點亮。當某一字段的陰極為高電平時,相應字段就不亮。
3.5.2 數(shù)碼管的顯示數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。
image015.gif (96 Bytes, 下載次數(shù): 70)
下載附件
2017-6-6 03:13 上傳
圖3-10 數(shù)碼管動態(tài)顯示電路
動態(tài)顯示驅(qū)動:數(shù)碼管動態(tài)顯示接口是單片機中應用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃“a、b、c、d、e、f、g、dp”的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點亮時間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應,盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。數(shù)碼管動態(tài)顯示連接,如圖3-10所示。