版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 第一章 緒 論</b></p><p> 1. 1 課題的提出及意義</p><p> 單片機(jī)作息時(shí)間控制實(shí)現(xiàn)了對(duì)時(shí)間控制的智能化,擺脫了傳統(tǒng)由人來控制時(shí)間的長(zhǎng)短的不便,實(shí)現(xiàn)代學(xué)校必不可少的設(shè)備。</p><p> 1. 2 設(shè)計(jì)的任務(wù)及要求</p><p> 1.作息時(shí)間能控制電
2、鈴</p><p> 2.作息時(shí)間能啟動(dòng)和關(guān)閉放音機(jī)</p><p> 單片機(jī)作息時(shí)間控制的功能如下:</p><p> 使用4位七段顯示器來顯示現(xiàn)在的時(shí)間。</p><p><b> 顯示格式為“時(shí)分”</b></p><p> 由LED閃動(dòng)來作秒計(jì)數(shù)表示</p><
3、;p> 具有4個(gè)按鍵來作功能設(shè)置,可以設(shè)置現(xiàn)在的時(shí)間及顯示定時(shí)設(shè)置時(shí)間</p><p> 一旦時(shí)間到則發(fā)出一陣聲響,同時(shí)繼電器啟動(dòng),可以控制放音機(jī)開啟和關(guān)閉。</p><p> 第二章 總體方案設(shè)計(jì)</p><p><b> 2. 1 芯片比較</b></p><p> 2.1.1 單片機(jī)選型</
4、p><p> 當(dāng)今單片機(jī)廠商琳瑯滿目,產(chǎn)品性能各異。常用的單片機(jī)有很多種:Intel8051系列、Motorola和M68HC系列、Atmel的AT89系列、臺(tái)灣Winbond(華邦)W78系列、荷蘭Pilips的PCF80C51系列、Microchip公司的PIC系列、Zilog的Z86系列、Atmel的AT90S系列、韓國(guó)三星公司的KS57C系列4位單片機(jī)、臺(tái)灣義隆的EM-78系列等。我們最終選用了ATMEL公
5、司的AT89C52單片機(jī)。AT89C52是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含8Kbytes的可反復(fù)擦寫的只讀程序存儲(chǔ)器(PEROM)和256bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內(nèi)置通用8位中央處理器(CPU)和FLASH存儲(chǔ)單元,功能強(qiáng)大AT89C52單片機(jī)適用于許多較為復(fù)雜控制應(yīng)用場(chǎng)合。<
6、/p><p> 2.1.2顯示器接口芯片的選擇</p><p> LED顯示器接口芯片的選擇常用的顯示器接口芯片有CD4511,CD4513,MC14499,8279,MAX7219,74HC164等,它們的功能有:1.CPU接受來自鍵盤的輸入數(shù)據(jù),并作預(yù)處理;2.數(shù)據(jù)顯示的管理和數(shù)據(jù)顯示器的控制。CD4511是BCD鎖存,7段譯碼,驅(qū)動(dòng)器,但在顯示6和9時(shí),顯示為b和q,不是很好看。CD
7、4513是BCD鎖存,7段譯碼,驅(qū)動(dòng)器(消隱),但現(xiàn)在市面上不好買。MC14499為串行輸入BCD碼——十進(jìn)制譯碼驅(qū)動(dòng)器,用它來構(gòu)成單片機(jī)應(yīng)用系統(tǒng)的顯示器接口,可以大大減少I/O口線的占用數(shù)量。但是,由片內(nèi)震蕩器經(jīng)過四分頻的信號(hào),經(jīng)位譯碼后只能提供4個(gè)位控信號(hào),使信號(hào)的采集受到限制;并且,MC19944的價(jià)格偏高,也不經(jīng)濟(jì)。同樣,8279為INTEL公司生產(chǎn)的通用鍵盤/顯示器接口芯片,其內(nèi)部設(shè)有16*8顯示數(shù)據(jù)RAM,若采用8279管理
8、鍵盤和顯示器,可以減少軟件程序,從而減輕主機(jī)的負(fù)擔(dān),但我們同時(shí)也發(fā)現(xiàn),由于其功能比較強(qiáng)大,不可避免將會(huì)使外圍設(shè)備與操作過程復(fù)雜化,同時(shí)價(jià)格比較貴。對(duì)比一下MAX7219和</p><p> 74HC164其占用資源少,且不需復(fù)雜的驅(qū)動(dòng)電路。但MAX7219雖然比較好用,且一片能驅(qū)動(dòng)四個(gè)數(shù)碼管,但對(duì)于我們?cè)O(shè)計(jì)的系統(tǒng)來說,不需要很多數(shù)碼管,此外MAX7219相對(duì)74HC164的價(jià)格也比較貴,所以我們最終選用74HC
9、164,下面對(duì)MAX7219作一下介紹。</p><p><b> 特點(diǎn):</b></p><p> (1) 采用3線串行接口傳送數(shù)據(jù);</p><p> (2) 內(nèi)部有8字節(jié)顯示靜態(tài)RAM和6個(gè)特殊功能寄存器,相當(dāng)于14個(gè)字節(jié)的RAM單元。它們是可尋址的,即可以有選擇的任意寫入;</p><p> (3) 只需
10、一個(gè)外部電阻即可調(diào)節(jié)LED的段電流,并且允許程控方式LED通電的占空比而可方便的調(diào)節(jié)LED顯示的亮度,或用于模擬亮度顯示;</p><p> (4) 可LED顯示器的掃描個(gè)數(shù);</p><p> (5) 有不譯碼和B碼兩種顯示模式,這種選擇可做到位控,即各LED顯示器可以有不同的顯示方式:譯碼或不譯碼;</p><p> (6) 含硬件動(dòng)態(tài)掃描顯示控制,可設(shè)置
11、低功耗方式,可進(jìn)行圖條顯示。</p><p> 引腳圖(如圖2-1)</p><p><b> 圖2-1</b></p><p><b> 說明:</b></p><p><b> 工作原理簡(jiǎn)介</b></p><p><b> 數(shù)據(jù)
12、(含地址)接收</b></p><p> MAX7219采用串行尋址方式,在傳送的串行數(shù)據(jù)中包含有RAM的地址。按照時(shí)序的要求,單片機(jī)將16位二進(jìn)制數(shù)逐位發(fā)送DIN端,在CLK上升延到來之前DIN必須有效,在CLK的每個(gè)上升延,DIN被串行逐位移入MAX7219內(nèi)部的16位穿行寄存器中。設(shè)最先移入的數(shù)據(jù)是D15,最后移入的數(shù)據(jù)是D0,則移入16位串行寄存器的數(shù)據(jù)是D15--D0。為了有選擇的將數(shù)據(jù)寫
13、入8個(gè)顯示RAM或6個(gè)特殊功能寄存器,D0—D15中,D8—D11四位作為RAM和特殊功能寄存器的地址,D0—D7作為寫入顯示數(shù)據(jù)或控制字。與并行數(shù)據(jù)傳送相比,MAX7219串行接收D0—D15并存放到16位串行寄存器中的過程,相當(dāng)于并行傳送中,將并行數(shù)據(jù)和地址送到數(shù)據(jù)和地址總線上的過程。</p><p><b> 數(shù)據(jù)裝載</b></p><p> 16位接收寄
14、存器將收到的D0—D7位數(shù)據(jù)寫入RAM或特殊功能寄存器是在數(shù)據(jù)裝載信號(hào)控制下完成的。圖3-8是MAX7219的數(shù)據(jù)接收裝載(寫入)時(shí)序圖,由圖可知,LOAD必須在15個(gè)CLK下降延前由高變低,在16個(gè)CLK同時(shí)或之后由低變高(上升延)。在LOAD的上升延,8位數(shù)據(jù)D0—D7寫入以4位二進(jìn)制數(shù)D8—D11位地址的RAM或特殊功能寄存器中。</p><p><b> 顯示掃描</b></
15、p><p> 當(dāng)顯示模式設(shè)定后,寫入顯示RAM的數(shù)據(jù)將在控制器的控制下,按設(shè)定的顯示模式,以動(dòng)態(tài)掃描方式進(jìn)行顯示。</p><p> MAX7219內(nèi)部顯示RAM及特殊功能寄存器</p><p> 顯示RAM(地址*1—*8)</p><p> 地址為*1H的RAM數(shù)據(jù)控制接D0引腳的顯示器,地址為*2H的RAM數(shù)據(jù)控制接D1引腳的顯示器
16、。</p><p> 譯碼方式寄存器(地址:*9H)</p><p> 該寄存器的8位二進(jìn)制數(shù)的各位值分別控制著8個(gè)LED顯示器的譯碼方式。當(dāng)高電平時(shí)選擇BCD-B碼譯碼模式,當(dāng)?shù)碗娖綍r(shí)選擇不譯碼模式。B碼譯碼的顯示自行與現(xiàn)實(shí)數(shù)據(jù)的關(guān)系如下:</p><p><b> 顯示數(shù)據(jù)</b></p><p> ?。ㄊM(jìn)
17、制) 0 1 2 3 4 5 6 7 8 9 A B C D E F</p><p> B碼字型 0 1 2 3 4 5 6 7 8 9 – E H L P *</p><p> 其中,*代表全滅。小數(shù)點(diǎn)不譯碼,它由顯示數(shù)據(jù)的D7位控制。</p><p> 掃描界限寄存器(地址:*BH)&l
18、t;/p><p> 該寄存器的D0—D3位數(shù)據(jù)設(shè)定值為0—7,設(shè)定值表示顯示器動(dòng)態(tài)掃描個(gè)數(shù)為1—8。</p><p> 停機(jī)寄存器(地址:*CH)</p><p> 當(dāng)位D0=0時(shí),MAX7219處于停機(jī)狀態(tài);當(dāng)D0=1時(shí),處于正常工作狀態(tài)。</p><p> 顯示測(cè)試寄存器(地址:*FH)</p><p> 當(dāng)
19、位D0=0時(shí),MAX7219按設(shè)定模式正常工作;當(dāng)D0=1時(shí),處于測(cè)試狀態(tài)。在該狀態(tài)下,不管MAX7219處于什么模式,全部LED將按最大亮度接通顯示。</p><p> 亮度寄存器(地址:*AH)及兩度的調(diào)解或控制</p><p> 亮度可通過硬件和軟件兩種方法調(diào)解或控制。</p><p> 2.1.3存儲(chǔ)器的選擇</p><p>
20、 為了改善主CPU的資源與時(shí)序的分配,我們對(duì)AT89C51進(jìn)行串行數(shù)據(jù)存儲(chǔ)器的擴(kuò)展。常用的存儲(chǔ)芯片有很多,如AT93C46/56/66,X5045。經(jīng)過比較選擇,最終選用了XICOR公司的X5045。</p><p> X5045把三種常用的功能:看門狗定時(shí)器,電壓控制和EEPROM組合在單個(gè)封裝之內(nèi)。這種組合降低了系統(tǒng)的成本并減少了對(duì)電路板空間的要求。看門狗定時(shí)器對(duì)微控制器提供了獨(dú)立的保護(hù)系統(tǒng)。低VCC檢測(cè)電
21、路可以保護(hù)系統(tǒng)免受低電壓的影響,同時(shí)X5045是串行EEPROM 具有簡(jiǎn)單的三總線工作的串行外設(shè)接口,是一種有獨(dú)特功能的高性能價(jià)格比存儲(chǔ)器件。</p><p> AT93C46/56/66是ATMEL公司推出的低功耗、低電壓電可擦除的可編程只讀存儲(chǔ)器。它采用CMOS技術(shù)和Fairchild Semiconductor公司的Mi-croWire工業(yè)標(biāo)準(zhǔn)3線串行接口,具有1Kb/2kB/4kB的容量,并可通過ORG
22、管腳配置成128*8/256*8/512*8或64*16/128*16256*16等結(jié)構(gòu)。該系列存儲(chǔ)器可靠性高,能夠重復(fù)寫100萬次,數(shù)據(jù)可以保存100年不丟失;采用8腳PDIP/SOIC封裝和14腳SOI封裝(SOI封裝為JEDEC和EIAJ標(biāo)準(zhǔn)),與并行的EEPROM相比,AT93C46/56/66可大大節(jié)省印制板空間,且接線簡(jiǎn)單,因而在多功能的精密測(cè)試儀中具有廣闊的前途。</p><p><b>
23、 引腳功能</b></p><p> CS:片選信號(hào)。高電平有效,低電平時(shí)進(jìn)入等待模式。在連續(xù)的指令之間,CS信號(hào)必須持續(xù)至少250ns的低電平,才能保證芯片正常工作。</p><p> CLK:串行時(shí)鐘信號(hào)。在CLK的上升沿,操作碼、地址和數(shù)據(jù)位進(jìn)入器件或從器件輸出。在發(fā)送序列時(shí),CLK最好不停止,以防止讀/寫數(shù)據(jù)的錯(cuò)誤。</p><p> D
24、I:串行數(shù)據(jù)輸入??稍贑LK的同步下輸入開始位、操作碼、地址位和數(shù)據(jù)位。</p><p> DO:串行數(shù)據(jù)輸出。在CLK同步下讀周期時(shí),用于輸出數(shù)據(jù);而在地址擦/寫周期或芯片擦/寫周期時(shí),該端用于提供忙/閑信息。</p><p><b> VSS:接地。</b></p><p> VCC:接+5V電源。</p><p&
25、gt; ORG:存貯器構(gòu)造配置端。該端接VCC或懸空時(shí),輸出為16位;接GND時(shí),輸出為8位。</p><p><b> 指令及時(shí)序</b></p><p> 地址擦指令(ERASE)</p><p> 該指令用于強(qiáng)迫指定地址中所有數(shù)據(jù)位都為“1”。一旦信息在DI端上被譯碼,就需使CS信號(hào)保持至少250ns的低電平,然后將CS置為高電平
26、,這時(shí),DO端就會(huì)指示“忙”標(biāo)志。DO為“0”,表示編程正在進(jìn)行;DO為“1”,表示該指定地址的寄存器單元已擦完,可以執(zhí)行下一條指令。</p><p> 擦/寫允許指令(EWEN)</p><p> 由于在上電復(fù)位后AT93C46/56/66首先將處于擦/寫不允許狀態(tài)。故該指令必須在所有編程模式前執(zhí)行,一旦該指令執(zhí)行后,只要外部沒有斷電就可以對(duì)芯片進(jìn)行編程。</p>&
27、lt;p> 地址寫指令(WRITE)</p><p> 寫指令時(shí),先寫地址,然后將16位的或8位數(shù)據(jù)寫入到指定地址中。當(dāng)DI端輸出最后一個(gè)數(shù)據(jù)位后,在CLK時(shí)鐘的下一個(gè)上升沿以前,CS必須為低,且需至少保持250ns,然后將CS置為高電平。需要說明的是:寫周期時(shí),每寫一個(gè)字節(jié)需耗時(shí)4ms。</p><p> 地址讀指令(READ)</p><p> 讀
28、指令用于從指定的單元中把數(shù)據(jù)從高位到低位輸出至DO端,但邏輯“0”位先于數(shù)據(jù)位輸出。讀指令在CLK的上升沿觸發(fā),且需經(jīng)過一段時(shí)間方可穩(wěn)定。為防止出錯(cuò),建議在讀指令結(jié)束后,再輸出2-3個(gè)CLK脈沖。</p><p> 芯片擦指令(ERAL)</p><p> 該指令可將整個(gè)存貯器陣列置為1,其它功能與地址擦指令相同。</p><p> 芯片寫指令(WRAL)&l
29、t;/p><p> 該指令可將命令中指定的數(shù)據(jù)寫入整個(gè)存貯器陣列,其它功能與地址寫指令相同。該指令周期所花費(fèi)時(shí)間的最大值為30ms。</p><p> 擦/寫禁止指令(EWDS)</p><p> 使用該指令可對(duì)寫入的數(shù)據(jù)進(jìn)行保護(hù),操作步驟與擦/寫允許指令相同。</p><p> 2.1.4 繼電器的選擇</p><p
30、> 繼電器是我們生活中常用的一種控制設(shè)備,通俗的意義上來說就是開關(guān),在條件滿足的情況下關(guān)閉或者開啟。繼電器的開關(guān)特性在很多的控制系統(tǒng)尤其是離散的控制系統(tǒng)中得到廣泛的應(yīng)用。從另一個(gè)角度來說,由于為某一個(gè)用途設(shè)計(jì)使用的電子電路,最終或多或少都需要和某一些機(jī)械設(shè)備相交互,所以繼電器也起到電子設(shè)備和機(jī)械設(shè)備的接口作用。</p><p> 最常見的繼電器要數(shù)熱繼電器,通常使用的熱繼電器適用于交流50Hz、60Hz
31、、額定電壓至660V、額定電流至80A的電路中,供交流電動(dòng)機(jī)的過載保護(hù)用。它具有差動(dòng)機(jī)構(gòu)和溫度補(bǔ)償環(huán)節(jié),可與特定的交流接觸器插接安裝。 時(shí)間繼電器也是很常用的一種繼電器,它的作用是作延時(shí)元件,通常它可在交流50Hz、60Hz、電壓至380V、直流至220V的控制電路中作延時(shí)元件,按預(yù)定的時(shí)間接通或分?jǐn)嚯娐???蓮V泛應(yīng)用于電力拖動(dòng)系統(tǒng),自動(dòng)程序控制系統(tǒng)及在各種生產(chǎn)工藝過程的自動(dòng)控制系統(tǒng)中起時(shí)間控制作用。 在控制中常用
32、的中間繼電器通常用作繼電控制,信號(hào)傳輸和隔離放大等用途。此外還有電流繼電器用來限制電流、電壓繼電器用來控制電壓、靜態(tài)電壓繼電器、相序電壓繼電器、相序電壓差繼電器、頻率繼電器、功率方向繼電器、差動(dòng)繼電器、接地繼電器、電動(dòng)機(jī)保護(hù)繼電器等等。正是有了這些不同類型的繼電器,我們才有可能對(duì)不同的物理量作出控制,完成一個(gè)完整的控制系統(tǒng)。 除了傳統(tǒng)的繼電器之外,繼電器的技術(shù)還應(yīng)用在其他的方面,比如說電機(jī)智能保護(hù)器是根據(jù)三相交流電動(dòng)機(jī)的工作原理,
33、分析導(dǎo)致電動(dòng)機(jī)損壞的主要原因研制的,它是一種設(shè)計(jì)獨(dú)特,工</p><p> 2. 2總體設(shè)計(jì)及系統(tǒng)原理</p><p> 經(jīng)比較我們選定單片機(jī)芯片為AT89C52,存儲(chǔ)器芯片為X5045。</p><p> 在確定系統(tǒng)的大體形式之后,畫出本系統(tǒng)的結(jié)構(gòu)布局,電路原理如圖2-2所示。</p><p><b> 圖2-2</
34、b></p><p> 第三章 硬件設(shè)計(jì)</p><p> 3. 1 單片機(jī)部分</p><p> 3.1.1 AT89C52</p><p><b> 特點(diǎn):</b></p><p> ● 與MCS-51產(chǎn)品指令和引腳完全兼容</p><p> ●
35、 8K字節(jié)可重擦寫FLASH閃存</p><p> ● 1000次擦寫周期</p><p> ● 全靜態(tài)操作:0Hz-24MHz</p><p> ● 三級(jí)加密程序存儲(chǔ)器</p><p> ● 256X8字節(jié)內(nèi)部RAM</p><p> ● 32個(gè)可編程I/O口線</p><p>
36、● 3個(gè)16位定時(shí)/計(jì)數(shù)器</p><p><b> ● 8個(gè)中斷源</b></p><p> ● 可編程串行UART通道</p><p> ● 低功耗空閑和掉電模式</p><p><b> 功能特性概述:</b></p><p> AT89C52提供以下標(biāo)準(zhǔn)功能
37、:8K字節(jié)FLASH閃存,256字節(jié)內(nèi)部RAM,32個(gè)I/O口線,3個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)6向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C52可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其他所有部件工作直到下一個(gè)硬件復(fù)位。</p><
38、p> AT89C52的芯片管腳圖如圖3-1</p><p><b> 圖3-1</b></p><p><b> 引腳功能說明:</b></p><p><b> VCC——電源電壓</b></p><p><b> GND——地</b>&
39、lt;/p><p> P0口——P0口是一組8位漏極開路型雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)8個(gè)TTL邏輯門電路,對(duì)端口P0寫“1”時(shí),可作為高阻抗輸入端用。</p><p> 在訪問外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。</p><p> 在FLASH
40、編程時(shí),P0口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。</p><p> P1口——P1口是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸出口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流。</p><p>
41、與AT89C51不同之處是,P1.0和P1.1還可分別作為定時(shí)/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和輸入(P1.1/T2EX),參見下表。</p><p> FLASH編程和程序校驗(yàn)期間,P1接收低8位地址。</p><p> P1.0和P1.1的第二功能</p><p> P2口——P2是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級(jí)可驅(qū)動(dòng)(吸
42、收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口P2寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流。</p><p> 在訪問外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX@DPTR指令)時(shí),P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行MOVX@RI指令)時(shí),P2口輸出P2鎖存器的內(nèi)容。<
43、;/p><p> FLASH編程或校驗(yàn)時(shí),P2亦接收高位地址和一些控制信號(hào)。</p><p> P3口——P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)P3口寫入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的P3口將用上拉電阻輸出電流。</p><p> P3口除了作為一般的I
44、/O口線外,更重要的用途是它的第二功能,如下表所示:</p><p> 此外,P3口還接收一些用于FLASH閃存編程和程序校驗(yàn)的控制信號(hào)。</p><p> RST——復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將是單片機(jī)復(fù)位。</p><p> ALE/PROG——當(dāng)訪問外部程存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址
45、的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALE脈沖。</p><p> 對(duì)FLASH存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。</p><p> 如有必要,可通過對(duì)特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條M
46、OVX和MOVC指令才能將ALE激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位無效。</p><p> PSEN——程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C52由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次PSEN信號(hào)。</p><p> EA/VPP—
47、—外部訪問允許,欲使CPU僅訪問外部程序存儲(chǔ)器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。</p><p> 如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器的指令。</p><p> FLASH存儲(chǔ)器編程時(shí),該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp
48、。</p><p> 3.1.2 單片機(jī)硬件資源分配</p><p><b> P2.4 連接按鍵</b></p><p><b> P2.5 連接按鍵</b></p><p><b> P2.6 連接按鍵</b></p><p><b&g
49、t; P2.7 連接按鍵</b></p><p> P3.4 連接蜂鳴器</p><p><b> P3.5 接繼電器</b></p><p> P1.4 連接X5045的SO端</p><p> P1.5 連接X5045的/CS端</p><p> P1.6 連接X504
50、5的CLK端</p><p> P1.7 連接X5045的SI端</p><p> 3. 2 存儲(chǔ)器部分</p><p> 在上一章我已選定了存儲(chǔ)器芯片X5045,下面對(duì)其作進(jìn)一步的介紹:</p><p><b> 特點(diǎn):</b></p><p> 可編程的看門狗定時(shí)器</p>
51、;<p> 上電復(fù)位及低VCC檢測(cè),即在上電和VCC低于檢測(cè)門限時(shí),輸出復(fù)位信號(hào)。輸出復(fù)位高電平有效,直至VCC=1V復(fù)位信號(hào)仍有效</p><p> SPI接口方式,最高可達(dá)1MHZ的串行時(shí)鐘頻率</p><p> 512*8位串行EEPROM</p><p> 低功耗CMOS,3mA工作電流,10uA備用電流</p><
52、p> 電源電壓:2.7V-5.5V</p><p> 分塊鎖定,可保護(hù)1/4,1/2或所有EEPROM列</p><p><b> 防止偶然性寫保護(hù)</b></p><p> 高可靠性,數(shù)據(jù)可保存100年,每字節(jié)可擦除次數(shù)可達(dá)到10萬次</p><p> 可編程的復(fù)位門限。需要加高電壓(15-18V加在W
53、P引腳)及一個(gè)專門的時(shí)序</p><p> 8引腳小型DIP封裝</p><p> 引腳圖 (如圖3-2)</p><p><b> 圖3-2</b></p><p><b> 引腳說明:</b></p><p> /CS(1):片選輸入</p>&l
54、t;p> SO(2):串行輸出</p><p> SI(3):串行輸出</p><p> SCK(4):串行時(shí)鐘輸入</p><p> /WP(5):寫保護(hù)輸入</p><p><b> Vss(6):地</b></p><p> Vcc(7):電源電壓</p>&
55、lt;p> /RESET(8):復(fù)位輸出</p><p><b> 使用說明:</b></p><p><b> 串行輸出(SO)</b></p><p> SO是一個(gè)推/拉串行數(shù)據(jù)輸出引腳,在讀周期時(shí)間內(nèi),數(shù)據(jù)從這個(gè)引腳輸出,串行時(shí)鐘脈沖下降沿時(shí)數(shù)據(jù)輸出。</p><p><b
56、> 串行輸入(SI)</b></p><p> SI是串行數(shù)據(jù)輸入引腳,所有的操作碼,字節(jié),地址及數(shù)據(jù)都通過這個(gè)引腳寫入存儲(chǔ)器,串行時(shí)鐘脈沖上升沿時(shí),數(shù)據(jù)被鎖存。</p><p><b> 串行時(shí)鐘(SCK)</b></p><p> 串行時(shí)鐘控制串行總線為數(shù)據(jù)的輸入和輸出計(jì)時(shí),SI引腳的操作碼,地址或數(shù)據(jù)在時(shí)鐘輸入上
57、升沿時(shí)被鎖存,SO引腳的數(shù)據(jù)在時(shí)鐘輸入上升沿時(shí)被改寫。</p><p><b> 片選(/CS)</b></p><p> 當(dāng)/CS為高電平時(shí),X5043/45被檢測(cè),SO輸出引腳處于高阻抗?fàn)顟B(tài),除非內(nèi)部寫操作在進(jìn)行中的時(shí)候,X5045將處于后備電源模式。/CS為低電平時(shí),可以使X5943/45處于工作電源模式,應(yīng)特別注意,在電源上電以后,需要在開始任何操作以前完
58、成/CS引腳上高電平到低電平的轉(zhuǎn)換。</p><p><b> 寫保護(hù)(/WP)</b></p><p> 當(dāng)/WP為低電平時(shí),對(duì)于X5045不能完成非易失性寫操作,但是在其他方面工作正常。當(dāng)/WP被拉成高電平時(shí),所有的功能,包括非易失性寫操作都能正常工作。當(dāng)/WP變成高電平,/CS仍然是低電平時(shí),將中斷對(duì)X5045的寫操作,如果內(nèi)部寫周期已經(jīng)開始,/WP變成低電
59、平將對(duì)寫操作沒有影響。</p><p><b> 復(fù)位(RESET)</b></p><p> X5045的RESET分別工作在高電平/低電平,對(duì)外輸出一直工作到VCC降至最小電壓以下,將一直工作200ms直到VCC升高大于最小電壓。如果看門狗定時(shí)時(shí)間已定,/CS保持高電平或低電平的時(shí)間超過看門狗的定時(shí)時(shí)間, RESET也同樣有效。當(dāng)/CS下降沿時(shí)可使看門狗定時(shí)器
60、復(fù)位。</p><p><b> 工作原理</b></p><p> X5045是設(shè)計(jì)成直接與許多微控制器系列的同步串行外設(shè)接口(SPI)相接的512*8EEPROM。X5045包括一個(gè)8位指令寄存器,可以通過SI輸入來訪問,數(shù)據(jù)在SCK上升延由時(shí)鐘同步輸入,在整個(gè)工作期間內(nèi),/CS必須</p><p> 低電平且/WP輸入必須是高電平。
61、</p><p><b> 復(fù)位電源:</b></p><p> 給X5045上電將使復(fù)位電路有效,這個(gè)電路使RESET引腳有效,RESET可以阻止系統(tǒng)微處理機(jī)在不充足的電壓或振蕩器穩(wěn)定之前開始操作,當(dāng)VCC超過裝置的Vtrip200ms(理論值)電路將解除RESET,允許資料處理機(jī)開始處理代碼。</p><p> 圖3-3:設(shè)定Vtri
62、p電壓時(shí)序(VCC=要設(shè)定的值) </p><p><b> 低電壓控制:</b></p><p> 在操作過程中,X5045監(jiān)測(cè)VCC標(biāo)準(zhǔn)并檢測(cè)RESET,如果提供的電壓低于預(yù)先設(shè)置的最小Vtrip值,在電源供電不足或節(jié)電狀態(tài), RESET會(huì)發(fā)信號(hào)阻止微處理機(jī)操作, RESET信號(hào)有效一直到電壓降至1V。并且仍有效到VCC恢復(fù)并超過Vtrip200ms。<
63、/p><p><b> 看門狗定時(shí):</b></p><p> 看門狗電路通過檢測(cè)WDI輸入來監(jiān)測(cè)微處理機(jī)的工作情況,微處理機(jī)應(yīng)定期切換//CS/WDI引腳以防止RESET信號(hào)有效,在看門狗定時(shí)時(shí)間終止之前應(yīng)完成//CS/WDI引腳從高電平到低電平的切換。狀態(tài)寄存器的兩種非易失性控制位的狀態(tài)決定看門狗的定時(shí)時(shí)間,微處理機(jī)可以改變看門狗的位,如果微處理機(jī)沒有作用,看門狗
64、定時(shí)器的控制位將不會(huì)改變,甚至在所有電源不能供電的狀態(tài)下。</p><p> VCC入口復(fù)位程序:</p><p> X5045載有標(biāo)準(zhǔn)的VCC初始電壓Vtrip,在正常的操作和存儲(chǔ)條件下,這個(gè)值將不能改變,然而,在應(yīng)用過程中有的地方初始電壓不一定非常準(zhǔn)確或需要更高精度的初始電壓,X5045的入口將被調(diào)整。使用高電壓控制信號(hào)。</p><p><b>
65、 設(shè)置Vtrip值:</b></p><p> 這個(gè)時(shí)序常用來把Vtrip值設(shè)置成更高的電壓值,例如:當(dāng)前Vtrip值為4.4V,新的值為4.6V,次程序?qū)⒅苯舆M(jìn)行轉(zhuǎn)換。如果新設(shè)置的值低于當(dāng)前值,在設(shè)置新值之前必須先復(fù)位。</p><p> 設(shè)置新的Vtrip值,把理想的初始電壓值加到VCC引腳上,給/WP引腳加上編程電壓Vp,發(fā)送WREN指令,接著寫數(shù)據(jù)00H到地址01
66、H,在寫操作時(shí)/CS變成高電平,啟動(dòng)Vtrip編程時(shí)序,當(dāng)/WP變成低電平時(shí)完成操作。</p><p><b> 復(fù)位初始電壓:</b></p><p> 此時(shí)序常被用來把Vtrip設(shè)置成原始電壓。例如:如果當(dāng)前Vtrip值為4.4V,新的Vtrip值必須為4.0V,然而Vtrip需要被復(fù)位。當(dāng)Vtrip值被復(fù)位以后,新的Vtrip值將低于1.7V。這個(gè)程序常用來
67、把電壓設(shè)置成更低的值。復(fù)位Vtrip,把至少3V的電壓加到VCC引腳上,給/WP引腳加上編程電壓Vp,發(fā)送WREN指令,接著寫數(shù)據(jù)00H到地址03H,在寫操作時(shí)/CS變成高電平,啟動(dòng)Vtrip編程時(shí)序,當(dāng)/WP變成低電平時(shí)完成操作。</p><p> 圖3-4:復(fù)位門電壓時(shí)序(VCC>3V,/WP=15—18V)</p><p> 圖3-5:復(fù)位門電壓電路</p>
68、<p><b> SPI串行存儲(chǔ):</b></p><p> 芯片的存儲(chǔ)部分是CMOS串行EEPROM排列及Xicor的分塊鎖存保護(hù)。這個(gè)排列在內(nèi)部被作為8位指令寄存器。該裝置具有SPI接口,軟件協(xié)議可以通過四條總線進(jìn)行操作。</p><p> 該芯片利用Xicor的所有的指令寫單元,可以提供每字節(jié)擦寫次數(shù)最少為100萬次,數(shù)據(jù)可最少保存100年。&l
69、t;/p><p> 該芯片被設(shè)計(jì)成直接連接許多通用微處理機(jī)的SPI接口。</p><p> 該芯片包括一個(gè)8位的指令寄存器來控制該裝置的操作。指令代碼通過SI輸入寫入該裝置。有兩條寫指令需要指令字節(jié),有兩條讀指令需要指令字節(jié)開始數(shù)據(jù)的輸出,剩余的指令需要一條字節(jié),一個(gè)八位的地址,數(shù)據(jù)字節(jié)。所有的指令,地址和數(shù)據(jù)位都需要SCK輸入計(jì)時(shí),所有的指令,地址和數(shù)據(jù)都首先被轉(zhuǎn)換成MSB。</p
70、><p><b> 時(shí)鐘和數(shù)據(jù)定時(shí):</b></p><p> SI引腳的輸入數(shù)據(jù)在/CS變成低電平以后,SCK的第一個(gè)上升沿時(shí)被鎖存,SO上的數(shù)據(jù)在SCK下降沿時(shí)被輸出,SCK是固定的,允許使用者終止適中,也可以重新開啟恢復(fù)操作,在整個(gè)操作過程中/CS必須保持低電平。</p><p> X5045的全部指令名,指令格式和操作說明如下表所示&
71、lt;/p><p><b> X5045指令集</b></p><p> 指令寄存器可以通過SI輸入來訪問,所用指令,地址與數(shù)據(jù)都以MSB在前的方式傳送。</p><p><b> 寫使能鎖存器</b></p><p> 該裝置包含一個(gè)寫使能鎖存器,這個(gè)鎖存器在寫操作開始之前必須先設(shè)置。WREN
72、指令可以設(shè)置鎖存器,WRID指令可以使鎖存器復(fù)位,在上電以后,完成一個(gè)有效的字節(jié),頁或者是狀態(tài)寄存器寫周期,鎖存器將自動(dòng)復(fù)位。如果/WP變成低電平鎖存器也將復(fù)位,當(dāng)發(fā)布WREN,WRDI,RDSR命令發(fā)送字節(jié)地址和數(shù)據(jù)是沒有必要的。(圖3-10)</p><p> 圖3-6:寫使能/不能鎖存時(shí)序 </p><p><b> 狀態(tài)寄存器:</b></p>
73、<p> 狀態(tài)寄存器包括四個(gè)非易失性控制位,兩個(gè)易失性狀態(tài)位??刂莆豢梢栽O(shè)置看門狗定時(shí)器的操作,存儲(chǔ)塊鎖存保護(hù),狀態(tài)寄存器被設(shè)計(jì)成“狀態(tài)記錄員”。</p><p> 狀態(tài)寄存器(缺省狀態(tài)為30H)</p><p> 寫入程序位(WIP)是一個(gè)易變性的、只讀位,指示裝置的是否忙于內(nèi)部非易變性寫操作。使用RDST指令可以使WIP位被讀出。當(dāng)設(shè)置為1時(shí),非易變性寫操作在進(jìn)行中
74、,當(dāng)設(shè)置為0時(shí),進(jìn)行中沒有寫操作。</p><p> 寫使能鎖存位(WEL)指示“寫使能”鎖存的狀態(tài)。當(dāng)WEL為1時(shí),鎖存器被置位;當(dāng)WEL為0時(shí),鎖存器被復(fù)位。WEL是一個(gè)易變性的、只讀位。WREN指令可以設(shè)置WEL位,WROS指令可以使WEL位復(fù)位。</p><p> 塊鎖存位BL0和BL1,設(shè)置塊鎖定保護(hù)的標(biāo)準(zhǔn)。這些非易變位可以用WRSR指令編程,允許使用者保護(hù)存儲(chǔ)器序列的1/4
75、,1/2,全部或空。被塊鎖存保護(hù)排列的任一部分只能讀不能寫。它將保護(hù)到BL位被改變使存儲(chǔ)器部分不能塊鎖存保護(hù)。</p><p> 看門狗定時(shí)位WD0和WD1,選擇看門狗定時(shí)溢出時(shí)間,用WRSR指令可以對(duì)這些非易變位編程。</p><p><b> 讀狀態(tài)寄存器:</b></p><p> 讀狀態(tài)寄存器,把/CS降為低電平來選擇該裝置,接著
76、發(fā)送8位RDSR指令。狀態(tài)寄存器的內(nèi)容被轉(zhuǎn)移到SO引線上,通過CLK計(jì)時(shí)。狀態(tài)寄存器在任何時(shí)間都可以被讀出,甚至在寫周期過程中。</p><p><b> 寫狀態(tài)寄存器:</b></p><p> 在寫數(shù)據(jù)到寫狀態(tài)寄存器之前,先發(fā)布WREN指令來設(shè)置“寫使能”鎖存器(WEL)。首先使/CS變?yōu)榈碗娖?,?duì)該裝置定時(shí)WREN指令,再把/CS拉成高電平。再次把/CS拉成
77、低電平,在8位數(shù)據(jù)之后,進(jìn)入WRSR指令。這8位數(shù)據(jù)與狀態(tài)寄存器的內(nèi)容一致。當(dāng)/CS變?yōu)楦唠娖綍r(shí)操作結(jié)束。如果在WREN和WRSR之間/CS沒有變成高電平,WRSR指令將無效。</p><p><b> 芯片保護(hù)矩陣</b></p><p> 圖3-7:讀狀態(tài)寄存器時(shí)序</p><p> 圖3-8:寫狀態(tài)寄存器時(shí)序</p>
78、<p><b> 讀存儲(chǔ)序列: </b></p><p> 當(dāng)從EEPROM存儲(chǔ)序列中讀時(shí),首先把/CS拉成低電平以選擇芯片,8位READ指令被傳輸?shù)叫酒?,接著?位的地址。READ指令的第3位選擇芯片的高位或地位,在READ代碼和地址被發(fā)送以后,在選擇的地址中且存儲(chǔ)在存儲(chǔ)器中的數(shù)據(jù)被轉(zhuǎn)移到SO引線上。存儲(chǔ)器下一個(gè)地址存儲(chǔ)的數(shù)據(jù)通過繼續(xù)提供時(shí)鐘脈沖可以被讀出。每一個(gè)數(shù)據(jù)的字節(jié)
79、被轉(zhuǎn)移以后地址將自動(dòng)增加到更高的地址。當(dāng)達(dá)到最高地址,地址計(jì)算器變?yōu)?00,允許讀周期無限的繼續(xù)。當(dāng)把/CS引腳拉成高電平時(shí),讀操作停止。</p><p><b> 寫存儲(chǔ)序列:</b></p><p> 在寫數(shù)據(jù)到存儲(chǔ)器序列之前,先發(fā)布WREN指令來設(shè)置“寫使能”鎖存器(WEL)。首先使/CS變?yōu)榈碗娖剑瑢?duì)該裝置定時(shí)WREN指令,再把/CS拉成高電平。再次把/C
80、S拉成低電平,在8位地址之后,進(jìn)入WRITE指令,接著數(shù)據(jù)就被寫入。WRITE指令的第3位包含地址位A8,可以選擇序列的高位或低位。如果在WREN和WRITE之間/CS沒有變成高電平,WRITE指令將無效。</p><p> WRITE指令至少需要16個(gè)時(shí)鐘周期,CS在整個(gè)操作過程中必須保持低電平。操作者可以繼續(xù)寫入16字節(jié)的數(shù)據(jù)。唯一的限制是這16個(gè)字節(jié)必須存在同一頁中。一頁的地址開始于地址[x xxxx 0
81、000] ,結(jié)束于地址[xxxxx 1111]。如果字節(jié)地址達(dá)到了該頁的最后一個(gè)字節(jié),并且時(shí)鐘仍然繼續(xù),計(jì)算器將返回到該頁的第一個(gè)地址,寫在以前寫過的數(shù)據(jù)上。</p><p> 為了寫操作(字節(jié)或頁寫)能被完成,在時(shí)鐘周期內(nèi)被寫入的最后的數(shù)據(jù)字節(jié)的0位以后CS必須被拉成高電平。如果它在任何時(shí)間沒有被拉成高電平,寫操作將不能完成。</p><p> 在寫過程中跟隨著一個(gè)狀態(tài)寄存器或存儲(chǔ)序
82、列寫時(shí)序,狀態(tài)寄存器可以被讀入來檢查WIP位。非易變寫過程中WIP處于高電平。</p><p> 圖3-9:存儲(chǔ)序列時(shí)序</p><p> 圖3-10:寫存儲(chǔ)時(shí)序</p><p> 3. 4 顯示部分 </p><p> 本儀器利用89C52單片機(jī)串行口和廉價(jià)的74HC164集成塊實(shí)現(xiàn)多個(gè)LED顯示的一種簡(jiǎn)單方法,利用該方法設(shè)計(jì)的多路
83、LED顯示系統(tǒng)具有硬件結(jié)構(gòu)簡(jiǎn)單、軟件編程容易和價(jià)格低廉的特點(diǎn)。下面簡(jiǎn)單的介紹一下74HC164。</p><p><b> 特點(diǎn):</b></p><p> ?。?)與門串行輸入;</p><p> ?。?)完全的緩沖時(shí)鐘脈沖和串行輸入;</p><p><b> ?。?)直接清除</b><
84、/p><p> 引腳圖如圖3-11:</p><p><b> 圖3-11</b></p><p><b> 說明:</b></p><p> 這些8位移位寄存器的特點(diǎn)是具有與門串行輸入和不同步的清除輸入(CLR)。門電路串行輸入(A和B)允許對(duì)輸入數(shù)據(jù)的完全控制;低電平加在輸入端可以抑制新數(shù)據(jù)
85、的進(jìn)入;高電平輸入能使輸入有效。串行輸入的數(shù)據(jù)當(dāng)CLK是高電平或低電平時(shí)可以改變。</p><p> 89C52單片機(jī)串行口方式0為移位寄存器方式,外接3片74LS164作為3位LED顯示器的靜態(tài)顯示接口,把89C51的RXD作為數(shù)據(jù)輸出線,TXD作為移位時(shí)鐘脈沖。74LS164為TTL單向8位移位寄存器,可實(shí)現(xiàn)串行輸入,并行輸出。其中A、B(第1、2腳)為串行數(shù)據(jù)輸入端,2個(gè)引腳按邏輯與運(yùn)算規(guī)律輸入信號(hào),共一
86、個(gè)輸入信號(hào)時(shí)可并接。T(第8腳)為時(shí)鐘輸入端,可連接到串行口的TXD端。每一個(gè)時(shí)鐘信號(hào)的上升沿加到T端時(shí),移位寄存器移一位,8個(gè)時(shí)鐘脈沖過后,8位二進(jìn)制數(shù)全部移入74LS164中。R(第9腳)為復(fù)位端,當(dāng)R=0時(shí),移位寄存器各位復(fù)0,只有當(dāng)R=1時(shí),時(shí)鐘脈沖才起作用。Q1…Q8(第3-6和10-13引腳)并行輸出端分別接LED顯示器的hg···a各段對(duì)應(yīng)的引腳上。在給出了8個(gè)脈沖后,最先進(jìn)入74LS164的
87、第一個(gè)數(shù)據(jù)到達(dá)了最高位,然后再來一個(gè)脈沖,第一個(gè)脈沖就會(huì)從最高位移出,搞清了這一點(diǎn),下面讓我們來看電路,6片7LS164首尾相串,而時(shí)鐘端則接在一起,這樣,當(dāng)輸入8個(gè)脈沖時(shí),從單片機(jī)RXD端輸出的數(shù)據(jù)就進(jìn)入到了第一片74LS164中了,而當(dāng)?shù)诙€(gè)8個(gè)脈沖到來后,這個(gè)數(shù)據(jù)就進(jìn)入了</p><p> 3. 5 電源與復(fù)位電路部分 </p><p> 3.5.1 電源部分</p>
88、<p> 本次設(shè)計(jì)應(yīng)用的電壓有+5V。220V交流電源經(jīng)變壓器,整流,濾波后分別進(jìn)入芯片7805,產(chǎn)生+5V,這些電源的具體應(yīng)用情況如下:</p><p> +5V電源:單片機(jī)及外圍電路所用電源</p><p> +9V電源:壓電喇叭所用電源</p><p><b> 3.5.2復(fù)位電路</b></p>&l
89、t;p> 當(dāng)MCS-5l系列單片機(jī)的復(fù)位引腳RST(全稱RESET)出現(xiàn)2個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。</p><p> 根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本形式:上電復(fù)位和上電或開關(guān)復(fù)位。</p><p> 上電復(fù)位要求接通電源后,自動(dòng)實(shí)現(xiàn)復(fù)位操作。常用的上電復(fù)位電路如圖3-12(a)中左圖所示。圖中電容
90、C1和電阻R1對(duì)電源十5V來說構(gòu)成微分電路。上電后,保持RST一段高電平時(shí)間,由于單片機(jī)內(nèi)的等效電阻的作用,不用圖中電阻R1,也能達(dá)到上電復(fù)位的操作功能,如圖3-12(a)中右圖所示。</p><p><b> 圖 3-12</b></p><p> 要求電源接通后,單片機(jī)自動(dòng)復(fù)位,并且在單片機(jī)運(yùn)行期間,用開關(guān)操作也能使單片機(jī)復(fù)位。常用的上電或開關(guān)復(fù)位電路如圖3-
91、14(b)所示。上電后,由于電容C3的充電和反相門的作用,使RST持續(xù)一段時(shí)間的高電平。當(dāng)單片機(jī)已在運(yùn)行當(dāng)中時(shí),按下復(fù)位鍵K后松開,也能使RST為一段時(shí)間的高電平,從而實(shí)現(xiàn)上電或開關(guān)復(fù)位的操作。根據(jù)實(shí)際操作的經(jīng)驗(yàn),下面給出這兩種復(fù)位電路的電容、電阻參考值。</p><p> 圖3-12(a)中:Cl=10-30uF,R1=1kΩ圖3-12(b)中:C2=1uF,Rl=lkΩ,R2=10kΩ</p>
92、<p> 本系統(tǒng)的復(fù)位電路采用上電復(fù)位。</p><p> 3. 6 電鈴和繼電器部分 </p><p> 當(dāng)定時(shí)時(shí)間到了,壓電喇叭則發(fā)出一陣聲響,時(shí)間到時(shí)發(fā)出一陣聲響,按下K4鍵可以停止聲響。也可以啟動(dòng)繼電器,由繼電器可以控制放音機(jī)。</p><p><b> 3. 7 按鍵部分</b></p><p
93、> 按鍵設(shè)定部分比較簡(jiǎn)單,因?yàn)楸鞠到y(tǒng)按鍵少,所以在設(shè)計(jì)上采用了獨(dú)立按鍵方式,程序的編制上也采用了簡(jiǎn)單的掃描方式。</p><p> 程序執(zhí)行后工作指示燈LED閃動(dòng),表示程序開始執(zhí)行,七段顯示器顯示“0000”,按下操作鍵K1-K4動(dòng)作如下:</p><p> 操作鍵K1:設(shè)置現(xiàn)在的時(shí)間;</p><p> 操作鍵K2:顯示鬧鈴設(shè)置時(shí)間;</p&g
94、t;<p> 操作鍵K3:設(shè)置鬧鈴時(shí)間;</p><p> 操作鍵K4:鬧鈴ON/OFF設(shè)置,設(shè)為ON時(shí)連續(xù)3次發(fā)出嗶的一聲,設(shè)為OFF時(shí)發(fā)出嗶的一聲;</p><p> 設(shè)置現(xiàn)在的時(shí)間或是鬧鈴時(shí)間設(shè)置如下:</p><p> 操作鍵K1:設(shè)整時(shí);</p><p> 操作鍵K2:設(shè)整分;</p><
95、p> 操作鍵K3:設(shè)置完成;</p><p> 至此,我們分七部分將硬件電路介紹完畢,從下一章,我將介紹該儀器的軟件設(shè)計(jì)。</p><p> 第 四 章 軟 件 設(shè) 計(jì)</p><p> 單片機(jī)作息時(shí)間控制的動(dòng)作利用時(shí)間計(jì)時(shí)處理來做秒計(jì)數(shù),當(dāng)所設(shè)置的時(shí)間到了,則發(fā)出一陣聲響,啟動(dòng)繼電器,由繼電器可以控制放音機(jī)開啟或關(guān)閉。單片機(jī)定時(shí)器負(fù)責(zé)定時(shí)的計(jì)數(shù),不
96、會(huì)因?yàn)榘存I處理而中斷時(shí)間秒數(shù)的增加,時(shí),分,秒數(shù)據(jù)是存在變量?jī)?nèi)并寫入七段顯示器的緩沖區(qū)內(nèi),而由顯示器掃描程序中定時(shí)掃描而顯示出時(shí)間。</p><p> 4.1 主程序設(shè)計(jì) </p><p> 在主控程序循環(huán)中主要工作為掃描是否有按鍵,若有按鍵則應(yīng)做相應(yīng)的功能處理,同時(shí)也掃描顯示器顯示時(shí)間數(shù)據(jù),并檢查所設(shè)置的時(shí)間是否到了,圖4-1為主程序控制的工作流程。時(shí)間計(jì)時(shí)處理程序是等過了1S后,則
97、更新時(shí)間數(shù)據(jù),將最新的時(shí),分,秒的數(shù)據(jù)轉(zhuǎn)換為數(shù)字?jǐn)?shù)據(jù)并顯示在七段顯示器上。</p><p> 程序中是這樣判斷是否過了1S的:設(shè)一舊秒數(shù)變量,當(dāng)新舊秒數(shù)變量不一樣時(shí),則表示已過了1S,要做相關(guān)程序時(shí)間處理了。</p><p><b> 圖 4-1</b></p><p> 4. 2 子程序設(shè)計(jì) </p><p>
98、 主要控制子程序說明如下:</p><p> ● T0_INT:定時(shí)器0計(jì)時(shí)中斷程序每隔5ms中斷一次;</p><p> ● DELAY:延時(shí)子程序;</p><p> ● DELAY1:控制七段顯示器延時(shí)時(shí)間;</p><p> ● LED_BL:工作LED閃動(dòng)控制;</p><p> ● SCAN1:七
99、段顯示器掃描一遍;</p><p> ● LOAD_DATA:加載七段顯示器顯示數(shù)據(jù)“0”;</p><p> ● INIT:初始化控制變量;</p><p> ● INIT_TIMER:初始化定時(shí)器接口,使用定時(shí)器0模式0計(jì)時(shí);</p><p> ● TIME_PRO:更新時(shí)分秒數(shù)據(jù);</p><p> ●
100、 CONV1:將分及秒的數(shù)據(jù)轉(zhuǎn)化為七段顯示器顯示數(shù)據(jù)并寫入顯示內(nèi)存內(nèi);</p><p> ● CONV:將時(shí)及分的數(shù)據(jù)轉(zhuǎn)換為七段顯示器顯示數(shù)據(jù)并寫入顯示內(nèi)存內(nèi);</p><p> ● SET_TIME:設(shè)置現(xiàn)在的時(shí)間包括小時(shí)及分鐘;</p><p> ● TIME_OUT:過了1S后則更新時(shí)間并檢查定時(shí)時(shí)間是否到了;</p><p>
101、 ● LOOK_ATIME:查看已設(shè)置的定時(shí)時(shí)間;</p><p> ● CONVA:轉(zhuǎn)換定時(shí)時(shí)間時(shí)分?jǐn)?shù)據(jù)為七段顯示器顯示數(shù)據(jù)并寫入顯示內(nèi)存內(nèi);</p><p> ● SET_ATIME:設(shè)置定時(shí)時(shí)間。</p><p> 其中顯示分四路,第一個(gè)和第二個(gè)數(shù)碼管顯示的是時(shí),第三個(gè)和第四個(gè)數(shù)碼管顯示分。流程圖如下:</p><p><b
102、> N</b></p><p> Y </p><p><b> 圖 4-2</b></p><p> 第五章 系統(tǒng)安裝與調(diào)試</p><p><b> 5.1 軟件調(diào)試</b></p><p> 采用模塊化
103、程序設(shè)計(jì)思想,首先調(diào)試子程序,然后逐級(jí)疊加調(diào)試。</p><p><b> 5.2 系統(tǒng)調(diào)試</b></p><p> 軟硬件結(jié)合在一起,看是否能工作正常,由于在模塊調(diào)試過程中,我們把軟硬件所出現(xiàn)的錯(cuò)誤都調(diào)整過來了,所以系統(tǒng)調(diào)試通過。</p><p><b> 參 考 文 獻(xiàn)</b></p><p
104、> [1] 胡漢才編著,《單片機(jī)原理及其接口技術(shù)》,北京,清華大學(xué)出版社,1996年</p><p> [2] 徐愛均編著,《智能化儀表原理與設(shè)計(jì)》,北京,北京航空大學(xué)出版社,1996年</p><p> [3] 公茂法等編著,《單片機(jī)人機(jī)接口實(shí)力集》,北京,北京航空大學(xué)出版社,1998年</p><p> [4] 李朝青編著,《單片機(jī)原理及其接口技術(shù)
105、》,北京,北京航空大學(xué)出版社,1998年</p><p> [5] 鄔寬明編著,《單片機(jī)外圍器件實(shí)用手冊(cè)》,北京,北京航空大學(xué)出版社,1998年</p><p> [6] 先鋒工作室編著,《單片機(jī)程序設(shè)計(jì)實(shí)例》,北京,清華大學(xué)出版社,2002年</p><p> [7] 張毅剛,彭喜元,孟升衛(wèi),劉兆慶編著,《MCS-51單片機(jī)使用子程序設(shè)計(jì)》,哈爾濱,哈爾濱工
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)畢業(yè)設(shè)計(jì)
- 單片機(jī)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)-單片機(jī)
- 基于單片機(jī)的gps畢業(yè)設(shè)計(jì)論文
- 51單片機(jī)流水燈畢業(yè)設(shè)計(jì)論文
- 單片機(jī)日歷和時(shí)鐘畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)(論文)-單片機(jī)花樣音樂噴泉設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)單片機(jī)數(shù)字稱重儀設(shè)計(jì)
- 單片機(jī)led燈調(diào)光畢業(yè)設(shè)計(jì)論文
- 單片機(jī)擴(kuò)展串行通信畢業(yè)設(shè)計(jì)論文
- 單片機(jī)溫控畢業(yè)設(shè)計(jì)
- 單片機(jī)畢業(yè)設(shè)計(jì)板
- 基于單片機(jī)滾動(dòng)字幕設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)(論文):?jiǎn)纹瑱C(jī)數(shù)字稱重儀設(shè)計(jì)
- 單片機(jī)畢業(yè)設(shè)計(jì)--汽車轉(zhuǎn)彎燈單片機(jī)控制
- 單片機(jī)畢業(yè)設(shè)計(jì)---單片機(jī)控制交通燈
- 畢業(yè)設(shè)計(jì)論文----基于單片機(jī)數(shù)據(jù)采集系統(tǒng)
- 畢業(yè)設(shè)計(jì)--單片機(jī)自動(dòng)打鈴系統(tǒng)論文
- 單片機(jī)畢業(yè)設(shè)計(jì)---基于單片機(jī)簡(jiǎn)易計(jì)算機(jī)
- 單片機(jī)畢業(yè)設(shè)計(jì)--單片機(jī)控制的led點(diǎn)陣顯示
評(píng)論
0/150
提交評(píng)論