單片機(jī)作息時(shí)間的控制系統(tǒng)畢業(yè)設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  畢 業(yè) 設(shè) 計(jì) </p><p> 題目單片機(jī)作息時(shí)間的控制系統(tǒng)</p><p> 系別電氣工程系</p><p> 專業(yè)應(yīng)用電子技術(shù)</p><p> 班級(jí)電技0801班</p><p><b>  設(shè)計(jì)任務(wù)書</b></p><p&g

2、t;<b>  設(shè)計(jì)題目</b></p><p><b>  作息時(shí)間的控制</b></p><p><b>  設(shè)計(jì)要求:</b></p><p>  (1)作息時(shí)間能控制電鈴。</p><p> ?。?)作息時(shí)間能啟動(dòng)和關(guān)閉放音機(jī),使用6位七段顯示器來(lái)顯示現(xiàn)在的時(shí)間。(3)

3、顯示格式為“時(shí)分秒”從左到右依次顯示。</p><p> ?。?)具有按鍵來(lái)作功能設(shè)置,可以設(shè)置現(xiàn)在的時(shí)間及顯示定時(shí)設(shè)置時(shí)間一旦時(shí)間到則發(fā)出一陣聲響,同時(shí)繼電器啟動(dòng),可以控制放音機(jī)開。</p><p><b>  設(shè)計(jì)進(jìn)度要求:</b></p><p>  第一周:領(lǐng)取題目,分析設(shè)計(jì)題目原理及設(shè)計(jì)思路。 </p><p>

4、;  第二周:去圖書館查閱資料,制定大綱。</p><p>  第三周:編寫程序,擬定論文。</p><p>  第四周:上機(jī)調(diào)試程序,驗(yàn)證實(shí)驗(yàn)效果。</p><p>  第五周:根據(jù)設(shè)計(jì)要求,進(jìn)行編排電子稿。</p><p>  第六周:由指導(dǎo)教師審核,進(jìn)行更改指正。</p><p>  第七周:交正規(guī)電子稿,由指導(dǎo)

5、教師評(píng)閱。</p><p>  第八周:進(jìn)行畢業(yè)論文答辯。</p><p>  指導(dǎo)教師(簽名): </p><p><b>  摘 要</b></p><p>  本設(shè)計(jì)詳細(xì)介紹了利用AT89C51單片機(jī)設(shè)計(jì)時(shí)間控制器的方法。該時(shí)間控制器是以AT89C51單片機(jī)為核心,擴(kuò)展一片XIC

6、OR公司的X5045組成的小系統(tǒng),控制一路繼電器:可以設(shè)定一天中的時(shí)間,設(shè)定繼電器的開啟時(shí)間和關(guān)閉時(shí)間,可以清除不需要的定時(shí),能夠緊急啟動(dòng):所有的設(shè)定均通過(guò)鍵盤實(shí)現(xiàn),按鍵具有連擊功能,每個(gè)狀態(tài)都有指示燈提示。我們?cè)O(shè)計(jì)的作息時(shí)間控制是用單片機(jī)實(shí)現(xiàn)的,是為了更好的對(duì)時(shí)間控制智能化。時(shí)間控制器包括硬件和軟件。硬件部分包括繼電器,存儲(chǔ)器和顯示器接口芯片。軟件部分,主要是主程序設(shè)計(jì)。軟硬件結(jié)合在一起,先調(diào)試子程序,然后逐級(jí)疊加調(diào)試,最后系統(tǒng)調(diào)試通

7、過(guò)。時(shí)間控制系統(tǒng)可以準(zhǔn)確的顯示時(shí)間,在定時(shí)時(shí)間到時(shí)發(fā)出悅耳的鈴聲提醒同學(xué)們按時(shí)上下課。</p><p>  關(guān)鍵詞:?jiǎn)纹瑱C(jī),控制,時(shí)間</p><p><b>  目 錄</b></p><p><b>  摘 要II</b></p><p>  1 總體設(shè)計(jì)方案1</p>

8、;<p>  2 硬件電路設(shè)計(jì)2</p><p>  2.1 AT89C51單片機(jī)簡(jiǎn)介2</p><p>  2.2 LED動(dòng)態(tài)顯示接口5</p><p>  2.3 按鍵部分7</p><p>  2.4 中斷的控制8</p><p><b>  3 軟件設(shè)計(jì)9</b

9、></p><p>  3.1 主程序的設(shè)計(jì)9</p><p>  3.2 中斷服務(wù)程序設(shè)計(jì)10</p><p>  3.3 查時(shí)子程序流程圖12</p><p>  3.4 按鍵子程序流程圖12</p><p><b>  4 調(diào)試過(guò)程14</b></p>

10、<p><b>  致 謝17</b></p><p><b>  參考文獻(xiàn)18</b></p><p><b>  附錄A19</b></p><p>  1 總體設(shè)計(jì)方案 </p><p>  本設(shè)計(jì)題目是單片機(jī)作息時(shí)間的

11、控制,根據(jù)設(shè)計(jì)要求,單片機(jī)作息時(shí)間的控制要實(shí)現(xiàn)時(shí)、分、秒的正常顯示。只有硬件和軟件的有效結(jié)合才能實(shí)現(xiàn)單片機(jī)作息時(shí)間時(shí)、分、秒的正常顯示。硬件主要由AT89C51單片機(jī)、復(fù)位電路,按鍵電路、顯示電路、繼電器和電源組成,其核心部分是CPU。總設(shè)計(jì)圖如圖1.1所示</p><p>  圖1.1 總方案圖</p><p>  單片機(jī)即AT89C51芯片的主要功能是:存儲(chǔ)程序、對(duì)存儲(chǔ)程序進(jìn)行相應(yīng)

12、的處理從I/O口輸出。</p><p>  復(fù)位電路:在單片機(jī)上有一輸入復(fù)位引腳RST,在單片機(jī)外部用電容和電阻控制RST。</p><p>  顯示電路:主要用以實(shí)現(xiàn)作息時(shí)間控制的結(jié)果。</p><p>  電源部分:采用+5V的電源供電。</p><p><b>  2 硬件電路設(shè)計(jì)</b></p>&

13、lt;p>  2.1 AT89C51單片機(jī)簡(jiǎn)介</p><p>  AT89C51是一種低功耗、高性能的片內(nèi)含有4KB快閃可編程/擦除只讀存儲(chǔ)器的8位COMS微控制器,使用高密度,非易失存儲(chǔ)技術(shù)制造,并且與AT89C51引腳和指令系統(tǒng)完全兼容。芯片上的FPEROM允許在線編程或采用通用的非易失存儲(chǔ)編程器對(duì)存儲(chǔ)器重復(fù)編程。</p><p>  AT89C51具有多種功能的8位CPU與

14、 結(jié)合在一個(gè)芯片上,為很多嵌入式控制應(yīng)用提供了非常靈活而又便宜的方案,其性能價(jià)格比遠(yuǎn)高于AT87C51。由于片內(nèi)帶EPROM的AT87C51價(jià)格偏高,而片內(nèi)帶FPEROM的AT89C51價(jià)格低且與INTEL80C51兼容,這就顯示出了AT89C51的優(yōu)越性。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的M

15、CS-51指令集和輸出管腳相兼容。 </p><p>  由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。</p><p>  2.1.1 AT89C51性能及特點(diǎn)</p><

16、;p>  (1)與MCS-51微控制器產(chǎn)品系列兼容。</p><p> ?。?)片內(nèi)有4KB可在線重復(fù)編程的快閃擦寫存儲(chǔ)器(Flash Memory)。</p><p> ?。?)存儲(chǔ)器可循環(huán)寫入/擦除1000次。</p><p>  (4)存儲(chǔ)數(shù)據(jù)保存時(shí)間為10年。</p><p> ?。?)寬工作電壓范圍:Vcc可為2.7V~6V。

17、</p><p> ?。?)全靜態(tài)工作:可從0HZ到16MHZ。</p><p> ?。?)程序存儲(chǔ)器具有3級(jí)加密保護(hù)。</p><p> ?。?)128*8位內(nèi)部RAM。</p><p> ?。?)32條可編程I/O線。</p><p> ?。?0)兩個(gè)16位定時(shí)器/計(jì)數(shù)器。</p><p>

18、 ?。?1)中斷結(jié)構(gòu)具有5個(gè)中斷源和2個(gè)優(yōu)先級(jí)。</p><p> ?。?2)可編程全雙工串行通道。</p><p>  (13)空閑狀態(tài)維持低功耗和掉電狀態(tài)保存存儲(chǔ)內(nèi)容。</p><p>  2.1.2 片內(nèi)快閃存儲(chǔ)器</p><p>  由于EPROM具有在線改寫,并且在掉電狀態(tài)保存存儲(chǔ)數(shù)據(jù)的特點(diǎn),可為用戶的特殊應(yīng)用提供便利。但是擦除和

19、寫入對(duì)于要求數(shù)據(jù)高速吞吐的應(yīng)用還顯得時(shí)間過(guò)長(zhǎng),這是EPROM芯片的主要缺陷。</p><p>  2.1.3 AT89C51的引腳及管腳說(shuō)明</p><p>  AT89C51的內(nèi)部硬件結(jié)構(gòu)中除了程序存儲(chǔ)器由FPEROM取代了87C51的EPROM外,其余部分完全相同。AT89C51的引腳與AT87C51的引腳完全兼容。如圖2.1所示為AT89C51的引腳圖:</p>&l

20、t;p><b>  圖2.1 引腳圖</b></p><p><b>  管腳說(shuō)明:</b></p><p><b>  VCC:供電電壓</b></p><p><b>  GND:接地</b></p><p>  P0口:P0口為一個(gè)8位漏級(jí)開路

21、雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。</p><p>  P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作

22、輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。</p><p>  P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外

23、部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。</p><p>  P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P

24、3口將輸出電流(ILL)這是由于上拉的緣故。</p><p>  P3口也可作為AT89C51的一些特殊功能口,如下所示:</p><p>  P3.0 RXD(串行輸入口) </p><p>  P3.1 TXD(串行輸出口)</p><p>  P3.2(

25、外部中斷0)</p><p>  P3.3 (外部中斷1)</p><p>  P3.4 T0(記時(shí)器0外部輸入)</p><p>  P3.5 T1(記時(shí)器1外部輸入)</p><p>  P3.6 (外部數(shù)據(jù)存儲(chǔ)器寫選通)</p><p>  P3.7(外部數(shù)據(jù)存儲(chǔ)器讀選通)</p><p>

26、;  P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。</p><p>  RST:復(fù)位輸入;當(dāng)振蕩器復(fù)位器復(fù)位時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><p>  ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可

27、用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX、MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。</p><p> ?。和獠砍绦虼鎯?chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有

28、效的信號(hào)將不出現(xiàn)。    </p><p>  /VPP:當(dāng)保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),將內(nèi)部鎖定為RESET;當(dāng)端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p>  XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸

29、入。</p><p>  XTAL2:來(lái)自反向振蕩器的輸出。</p><p><b>  振蕩器特性:</b></p><p>  XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)外部

30、時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證脈沖的高低電平要求的寬度。</p><p>  2.2 LED動(dòng)態(tài)顯示接口</p><p>  采用動(dòng)態(tài)顯示方式比較節(jié)省I/O接口,硬件電路也較靜態(tài)顯示方式簡(jiǎn)單,但其亮度不如靜態(tài)顯示方式,而且在顯示位數(shù)較多時(shí),CPU要依次掃描,占用CPU較多的時(shí)間。</p><p><b>  1、動(dòng)態(tài)顯示原理</b>&l

31、t;/p><p>  LED動(dòng)態(tài)顯示就是利用單片機(jī)依次輸出每一位數(shù)碼管的段選碼和對(duì)應(yīng)于位碼管的位選擇控制信號(hào)。一位一位輪流點(diǎn)亮七段數(shù)碼管,對(duì)每位數(shù)碼管來(lái)說(shuō),每隔一段時(shí)間點(diǎn)亮一次,如此循環(huán),采用動(dòng)態(tài)顯示方式比較節(jié)省I/O接口,硬件電路也比靜態(tài)顯示方式簡(jiǎn)單。并利用89C51的I/O接口控制數(shù)碼管的段選碼,同時(shí)采用動(dòng)態(tài)掃描方式,依次循環(huán)點(diǎn)亮各位數(shù)碼管,即可構(gòu)成多位動(dòng)態(tài)顯示電路。6位數(shù)碼管均采用共陰極LED,P0口作為段選碼

32、輸出口,P1口作為位選碼輸出口。</p><p>  2、七段LED數(shù)碼管結(jié)構(gòu) </p><p>  七段LED數(shù)碼管構(gòu)成“日”字形,還有一只發(fā)光二極管作為小數(shù)點(diǎn)。因此,這種七段數(shù)碼管又可稱為八段數(shù)碼管。如圖2.2a所示,這八段發(fā)光管分別稱為a、b、c、d、e、f、g和dp。通過(guò)8個(gè)發(fā)光段的不同組合,可以顯示0-9和A-F等16個(gè)數(shù)字字母,從而可以實(shí)現(xiàn)十六進(jìn)制整數(shù)和小數(shù)的顯示。LED數(shù)碼管

33、顯示器可以分為共陰極和共陽(yáng)極兩種結(jié)構(gòu)。我本次設(shè)計(jì)所使用的是共陰極結(jié)構(gòu)。如圖2.2b 所示。</p><p>  a、管腳配置 b、共陰極</p><p>  圖2.2 七段數(shù)碼管</p><p><b>  3、顯示的控制</b></p><p>  圖2.3 顯示電路</p>

34、<p>  如圖2.3所示。六位數(shù)碼管均采用LED,P0接口作為段選碼輸出口,8路驅(qū)動(dòng)采用74LS244總線驅(qū)動(dòng)器作為字形驅(qū)動(dòng)芯片,經(jīng)過(guò)8路驅(qū)動(dòng)電路后接至數(shù)碼管的各段,字形驅(qū)動(dòng)輸出0時(shí)發(fā)光。C接口作為位選碼輸出口,6路驅(qū)動(dòng)采用74LS07(OC門驅(qū)動(dòng)器),當(dāng)C接口線輸出1時(shí),選通相應(yīng)位的數(shù)碼管工作。</p><p><b>  2.3 按鍵部分</b></p>&

35、lt;p>  我們此次的設(shè)計(jì)使用查詢式按鍵,使用3個(gè)按鍵,是由單片機(jī)的P3接口接到查詢式按鍵的接口的。圖2.4是按鍵的電路原理圖:</p><p>  圖2.4 按鍵電路</p><p>  按下操作鍵K1-K3動(dòng)作如下:</p><p>  (1) 操作鍵K1:調(diào)整時(shí);(K1由單片機(jī)P3.0控制)</p><p> ?。?) 操

36、作鍵K2:調(diào)整分;(K2由單片機(jī)P3.1控制)</p><p> ?。?) 操作鍵K3:調(diào)整秒;(K3由單片機(jī)P3.2控制)</p><p>  如果有按鍵按下,則相應(yīng)輸出為低,否則輸出為高。單片機(jī)通過(guò)識(shí)別,判斷按下什么鍵,有鍵按下后,要有一定的延時(shí),防止由于鍵盤抖動(dòng)而引起誤操作。</p><p>  按鍵開關(guān)的去除抖動(dòng)功能:</p><p&g

37、t;  通常消除抖動(dòng)影響的方法有硬件、軟件兩種。在按鍵較少時(shí),可采用硬件方法消除抖動(dòng)。在按鍵較多時(shí),可采用軟件方法消除抖動(dòng)。根據(jù)按鍵的抖動(dòng)時(shí)間為5-10毫秒,穩(wěn)定閉合時(shí)間一般為十分之幾至幾秒時(shí)間的特點(diǎn),采用軟件消除抖動(dòng)的方法是:在檢測(cè)到有按鍵按下時(shí),執(zhí)行一個(gè)10毫秒左右的延時(shí)程序,而后,再確認(rèn)該鍵電平是否仍保持閉合狀態(tài)電平, 則確認(rèn)為該鍵處于閉合狀態(tài),這實(shí)際上是避開了按鍵按下時(shí)的抖動(dòng)時(shí)間.同理在檢測(cè)到該鍵釋放后,也應(yīng)采用相同的步驟進(jìn)行確

38、認(rèn),從而可消除抖動(dòng)的影響.本次設(shè)計(jì)我們采用軟件去抖的方式。</p><p>  2.4 中斷的控制</p><p>  1、中斷是指CPU對(duì)系統(tǒng)發(fā)生的某個(gè)事件作出的一種反應(yīng):CPU暫停正在執(zhí)行的程序,保留現(xiàn)場(chǎng)后自動(dòng)地轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,處理完該事件后再返回?cái)帱c(diǎn)繼續(xù)執(zhí)行被“打斷” 的程序。對(duì)中斷請(qǐng)求的整個(gè)處理過(guò)程是由硬件和軟件結(jié)合起來(lái)而形成的一套中斷機(jī)構(gòu)實(shí)施的。發(fā)生中斷時(shí),CPU暫停執(zhí)

39、行當(dāng)前的程序,而轉(zhuǎn)去處理中斷。這個(gè)由硬件對(duì)中斷請(qǐng)求作出反應(yīng)的過(guò)程,稱之為中斷響應(yīng)。一般說(shuō)來(lái),中斷響應(yīng)順序執(zhí)行下述三步動(dòng)作: </p><p> ?。?) 中止當(dāng)前程序的執(zhí)行; </p><p> ?。?) 保存原程序的斷點(diǎn)信息(主要是程序計(jì)數(shù)器PC和程序狀態(tài)寄存器PS的內(nèi)容); </p><p>  (3) 轉(zhuǎn)到相應(yīng)的處理程序。</p><p&

40、gt;  2、實(shí)現(xiàn)同步工作:計(jì)算機(jī)有了中斷功能后,就解決了快速CPU與低速外設(shè)之間的矛盾,可以使CPU和外設(shè)同時(shí)工作。CPU啟動(dòng)外設(shè)以后,繼續(xù)執(zhí)行主程序,同時(shí)外設(shè)也在工作。當(dāng)外設(shè)把數(shù)據(jù)準(zhǔn)備好后,就發(fā)出中斷請(qǐng)求,請(qǐng)求CPU中斷正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序,中斷服務(wù)程序執(zhí)行完之后,CPU恢復(fù)執(zhí)行主程序,外設(shè)也繼續(xù)工作。這樣CPU可以指揮多個(gè)外設(shè)同時(shí)工作,從而大大提高了CPU的效率。 </p><p>  3、

41、 實(shí)時(shí)處理:在實(shí)時(shí)控制系統(tǒng)中,為使控制系統(tǒng)能保持在最佳工作狀態(tài),被控系統(tǒng)的各種控制參量可隨時(shí)向計(jì)算機(jī)發(fā)出中斷請(qǐng)求,要求CPU處理。對(duì)此,CPU必須作出快速響應(yīng)和及時(shí)處理這種實(shí)時(shí)處理功能只有靠中斷技術(shù)才能實(shí)現(xiàn)。</p><p>  我們的設(shè)計(jì)需要使用許多次中斷,因?yàn)槲覀冊(cè)O(shè)計(jì)的時(shí)鐘計(jì)數(shù)是在中斷里面,還包括所設(shè)定的定時(shí)時(shí)間,都是有中斷來(lái)完成的。也就是每過(guò)1秒鐘系統(tǒng)就會(huì)向中斷申請(qǐng)中斷請(qǐng)求,查看所設(shè)置的時(shí)間到了,如果時(shí)間到

42、話中斷允許請(qǐng)求,執(zhí)行相應(yīng)的中斷請(qǐng)求。也就是給單片機(jī)P2口送高電平使外接的電鈴開始動(dòng)作,執(zhí)行此次的請(qǐng)求后,在進(jìn)入下一次中斷的掃描。</p><p><b>  3 軟件設(shè)計(jì)</b></p><p>  單片機(jī)作息時(shí)間控制的動(dòng)作利用時(shí)間計(jì)時(shí)處理來(lái)做秒計(jì)數(shù),當(dāng)早晨所設(shè)置的起床時(shí)間6:00到了,電鈴就會(huì)自動(dòng)開啟, 響十秒后電鈴關(guān)閉,第一節(jié)課7:50預(yù)備電鈴開啟10秒后自動(dòng)關(guān)閉

43、,10分鐘之后上課鈴響起,正式上課。45分鐘后,電鈴又會(huì)自動(dòng)打開提醒同學(xué)們下課。當(dāng)所設(shè)置的課間操時(shí)間9:40到時(shí)繼電器就會(huì)自動(dòng)啟動(dòng),由繼電器開啟放音機(jī)。所設(shè)時(shí)間為20分鐘到之后,由繼電器關(guān)閉放音機(jī)。到11:50時(shí)電鈴又會(huì)自動(dòng)打開提醒同學(xué)們放學(xué)。</p><p>  當(dāng)14:20分的時(shí)候電鈴又會(huì)自動(dòng)打開,提醒同學(xué)們?cè)撋险n了,做好上課準(zhǔn)備,到15:15分的時(shí)候,電鈴又開始工作提醒同學(xué)們下課,到16:10分的時(shí)候繼電器

44、就會(huì)自動(dòng)啟動(dòng),下課鈴響起,提醒同學(xué)們下課。</p><p>  這一切的定時(shí)是由單片機(jī)定時(shí)器負(fù)責(zé)定時(shí)計(jì)數(shù)的,不會(huì)因?yàn)榘存I處理而中斷時(shí)間秒數(shù)的增加,時(shí),分,秒數(shù)據(jù)是存在變量?jī)?nèi)并寫入七段顯示器的緩沖區(qū)內(nèi),而由顯示器掃描程序中定時(shí)掃描而顯示出時(shí)間。</p><p>  3.1 主程序的設(shè)計(jì)</p><p>  在主控程序循環(huán)中主要工作為掃描是否有按鍵,若有按鍵則應(yīng)做相應(yīng)

45、的功能處理,同時(shí)也掃描顯示器顯示時(shí)間數(shù)據(jù),并檢查所設(shè)置的時(shí)間是否到了,圖3.1為主程序控制的工作流程圖。時(shí)間計(jì)時(shí)處理程序是等過(guò)了1S后,則更新時(shí)間數(shù)據(jù),將最新的時(shí),分,秒的數(shù)據(jù)轉(zhuǎn)換為數(shù)字?jǐn)?shù)據(jù)并顯示在七段顯示器上。</p><p>  程序中是這樣判斷是否過(guò)了1S的:設(shè)一舊秒數(shù)變量,當(dāng)新舊秒數(shù)變量不一樣時(shí),則表示已過(guò)了1S,要做相關(guān)程序時(shí)間處理了。(主程序見附錄A)</p><p>  圖3

46、.1主程序流程圖</p><p>  3.2 中斷服務(wù)程序設(shè)計(jì) </p><p>  我們的設(shè)計(jì)需要使用許多次中斷,因?yàn)槲覀冊(cè)O(shè)計(jì)的時(shí)鐘計(jì)數(shù)是在中斷里面,還包括所設(shè)定的定時(shí)時(shí)間,都是有中斷來(lái)完成的。如3.2圖所示的中斷程序流程圖。也就是每過(guò)1秒鐘系統(tǒng)就會(huì)向中斷申請(qǐng)中斷請(qǐng)求,查看所設(shè)置的時(shí)間到了,如果時(shí)間到話中斷允許請(qǐng)求,執(zhí)行相應(yīng)的中斷請(qǐng)求。也就是給單片機(jī)P2口送高電平使外接的電鈴開始動(dòng)作,

47、執(zhí)行此次的請(qǐng)求后,在進(jìn)入下一次中斷的掃描。(程序見附錄A)</p><p>  圖3.2 中斷程序流程圖</p><p>  3.3 查時(shí)子程序流程圖</p><p>  查時(shí)子程序的作用:是將定義好的作息時(shí)間表調(diào)出來(lái)和電子鐘的時(shí)間作比較,看是否到規(guī)定的時(shí)間。若時(shí)間到進(jìn)行報(bào)時(shí),時(shí)間未到返回主程序。如圖3.3所示為查時(shí)子程序流程圖。</p><p

48、>  圖3.3 查時(shí)子程序流程圖</p><p>  3.4 按鍵子程序流程圖</p><p>  按鍵子程序的作用:是將作息時(shí)間控制系統(tǒng)中的時(shí)鐘程序進(jìn)行調(diào)時(shí)。本子程序的優(yōu)點(diǎn)是在其中加了去抖動(dòng)程序,兩次判別按鍵是否按下,使程序不被誤操作。顯示緩沖區(qū)用了三個(gè)字節(jié)單元,調(diào)時(shí)更容易,且節(jié)約了存儲(chǔ)空間。如圖3.4所示為按鍵子程序流程圖。</p><p>  圖3.

49、4 按鍵子程序流程圖</p><p><b>  4 調(diào)試過(guò)程</b></p><p>  打開Wave(偉福)軟件/新建文件/在D盤下新建趙會(huì)軍文件夾,文件名為zhaohuijun .asm保存在文件夾下。輸入程序進(jìn)行編譯,編譯通過(guò)。如4.1圖所示</p><p>  圖4.1 程序通過(guò)編譯</p><p>  打

50、開keil uVision2 project/new project文件名為zhao保存在f盤下,然后選擇Atmel下AT89C51點(diǎn)擊Target1文件下的source group1STARTUP.A51文件,刪除此文件。右擊Target1選擇options for Target“target1”把晶振改為11.0592點(diǎn)擊Debug選中use:keilmonttor-51Driver點(diǎn)擊setting把Baudrate改為38400

51、。</p><p>  圖4.3 選擇單片機(jī)型號(hào)</p><p>  圖4.4 對(duì)setting進(jìn)行設(shè)置</p><p>  圖4.5 選擇串行口并設(shè)置</p><p><b>  圖4.6 效果圖</b></p><p>  調(diào)試是一項(xiàng)很復(fù)雜而龐大的工程。它占據(jù)了整個(gè)設(shè)計(jì)的大部分時(shí)間。調(diào)

52、試的整體過(guò)程是:分別對(duì)設(shè)計(jì)的各功能模塊進(jìn)行調(diào)試,然后再進(jìn)行總的調(diào)試,經(jīng)過(guò)努力,單片機(jī)作息時(shí)間的控制已經(jīng)完成,效果也得到了實(shí)現(xiàn)。</p><p><b>  致 謝</b></p><p>  畢業(yè)設(shè)計(jì)的結(jié)束讓我感到了人生又到了一個(gè)新的轉(zhuǎn)折點(diǎn),借此機(jī)會(huì)我想向在我做畢業(yè)設(shè)計(jì)過(guò)程中給我?guī)椭椭С值睦蠋熞约巴瑢W(xué)們表示衷心的感謝!首先要向我的導(dǎo)師李老師致以誠(chéng)摯的謝意。李老師為

53、我們提供了良好的學(xué)習(xí)環(huán)境,讓我學(xué)到了知識(shí),掌握了研究的方法,也獲得了實(shí)踐鍛煉的機(jī)會(huì)。李老師的治學(xué)嚴(yán)謹(jǐn),平易近人,對(duì)工作的積極熱情、認(rèn)真負(fù)責(zé)、有條不紊、實(shí)事求是的態(tài)度,給我留下了深刻的印象,使我受益非淺。在此我謹(jǐn)向李老師表示衷心的感謝和深深的敬意。</p><p>  在今后的日子里,我不會(huì)辜負(fù)各位老師的栽培,把理論應(yīng)用到實(shí)際工作當(dāng)中,使在校所學(xué)到的知識(shí)得到完全的應(yīng)用,同時(shí)我還會(huì)不斷的擴(kuò)展我的知識(shí)面,不斷創(chuàng)新,努力

54、工作,在平凡的工作崗位上做出應(yīng)有的貢獻(xiàn)。</p><p>  在論文即將完成之際,我的心情無(wú)法平靜,從開始進(jìn)入課題到論文的順利完成,有多少可敬的師長(zhǎng)、同學(xué)、朋友給了我無(wú)言的幫助,在這里請(qǐng)接受我誠(chéng)摯的謝意!</p><p>  最后我還要感謝培養(yǎng)我長(zhǎng)大含辛茹苦的父母,謝謝您們!衷心感謝在百忙之中抽出時(shí)間審閱本論文的各位領(lǐng)導(dǎo)和老師,祝各位領(lǐng)導(dǎo)和老師工作順利,身體健康!</p>&

55、lt;p><b>  參考文獻(xiàn)</b></p><p>  [1] 李朝青.單片機(jī)原理及其接口技術(shù).北京.北京航空大學(xué)出版社,1998年</p><p>  [2] 張毅剛,彭喜元,孟升衛(wèi),劉兆慶.MCS-51單片機(jī)使用子程序設(shè)計(jì).哈爾濱.哈爾濱工業(yè)大學(xué)出版社,2003年</p><p>  [3] 肖玲妮,袁增貴.Protel99SE印

56、刷電路板設(shè)計(jì)教程.北京.清華大學(xué)出版社,2003年</p><p>  [4] 公茂法等.單片機(jī)人機(jī)接口實(shí)力集.北京.北京航空大學(xué)出版社,1998年</p><p>  [5] 先鋒工作室,單片機(jī)程序設(shè)計(jì)實(shí)例.北京.清華大學(xué)出版社,2002年</p><p>  [7] 胡漢才.單片機(jī)原理及其接口技術(shù).北京.清華大學(xué)出版社,1996年</p><

57、p>  [8] 徐愛均.智能化儀表原理與設(shè)計(jì).北京.北京航空大學(xué)出版社,1996年</p><p>  [9] 鄔寬明.單片機(jī)外圍器件實(shí)用手冊(cè).北京.北京航空大學(xué)出版社,1998年 </p><p>  [10] 王德彪.單片機(jī)原理及接口技術(shù).北京.電子工業(yè)出版社,2003年</p><p><b>  附錄A</b></p>

58、;<p>  ORG 0000H</p><p>  LJMP START</p><p>  ORG 000BH</p><p>  LJMP CTC0</p><p>  ORG 0030H</p><p>  START: MOV TMOD,#11H ;

59、定時(shí)器初始化</p><p>  MOV TH0,#3CH</p><p>  MOV TL0,#0B0H</p><p>  MOV 47H,#00</p><p>  MOV 48H,#00</p><p>  MOV 49H,#00</p><p>  MOV 50

60、H,#00</p><p>  MOV P2,#00</p><p>  MOV R7,#1 ;軟件計(jì)數(shù)器初始化</p><p><b>  SETB EA</b></p><p>  SETB ET0 ;開中斷</p><p> 

61、 SETB TR0 ;開定時(shí)器</p><p>  W1: LCALL TIME ;調(diào)報(bào)時(shí)程序</p><p>  LCALL PTDS ;調(diào)顯示緩沖區(qū)</p><p>  LCALL DISPLAY ;調(diào)顯示</p><p&g

62、t;  LCALL ANJIAN ;調(diào)按鍵</p><p><b>  LJMP W1</b></p><p>  DISPLAY:MOV R0,#30H</p><p>  MOV R3,#01H;</p><p>  MOV DPTR,#TAB</p><

63、p>  N1: MOV A,@R0 ;取數(shù)</p><p>  MOVC A,@A+DPTR ;查表取段碼</p><p>  MOV P0,A ;段碼送P0</p><p>  MOV P1,R3 ;位碼送P1</p><p> 

64、 LCALL DELAY</p><p>  MOV A,R3</p><p>  JB ACC.5,BACK1 ;循環(huán)結(jié)束了嗎?</p><p>  RL A ; 左移位碼</p><p>  MOV R3,A</p><p>  INC R0

65、 ;調(diào)整指針</p><p><b>  LJMP N1</b></p><p><b>  BACK1:RET</b></p><p><b>  顯示緩沖程序</b></p><p>  PTDS:MOV R0,#30H</p>

66、<p>  MOV R1,#50H</p><p>  MOV R2,#03H</p><p>  NEXT:MOV A,@R1</p><p>  ANL A,#0FH</p><p>  MOV @R0,A</p><p><b>  INC R0</b>&

67、lt;/p><p>  MOV A,@R1</p><p><b>  SWAP A</b></p><p>  ANL A,#0FH</p><p>  MOV @R0,A</p><p><b>  INC R1</b></p><p

68、><b>  INC R0</b></p><p>  DJNZ R2,NEXT</p><p><b>  RET</b></p><p>  DELAY:MOV R5,#05</p><p>  LOOP2:MOV R6,#00H</p><p> 

69、 DJNZ R6,$</p><p>  DJNZ R5,LOOP2</p><p><b>  RET</b></p><p>  TAB:DB 3FH,06H,5BH,4FH,66H</p><p>  DB 6DH,7DH,07H,7FH,6FH</p><p>  CTC0:PU

70、SH ACC</p><p>  PUSH PSW ;保護(hù)現(xiàn)場(chǎng)</p><p>  DJNZ R7,BACK ;1S到了嗎</p><p>  MOV R7,#1</p><p>  LCALL DSH ;調(diào)查時(shí)子程序</p>&l

71、t;p>  MOV R1,#48H</p><p>  NEXT1:MOV A,@R1</p><p>  ADD A,#01H</p><p><b>  DA A</b></p><p>  MOV @R1,A</p><p>  CJNE R1,#50H,

72、NEXT2 ;到時(shí)計(jì)數(shù)單元了嗎?</p><p>  CJNE A,#24H,BACK;</p><p>  MOV @R1,#00H ;時(shí)單元清零</p><p>  LJMP BACK</p><p>  NEXT2:CJNE A,#60H,BACK ;與60H單元相等

73、嗎</p><p>  MOV @R1,#00H ;秒單元清零</p><p>  INC R1 ;調(diào)整指針</p><p>  LJMP NEXT1</p><p>  BACK:MOV TH0,#3CH</p><p>  MOV T

74、L0,#0B0H ;軟件計(jì)數(shù)器重裝初值</p><p>  POP PSW</p><p>  POP ACC ;恢復(fù)現(xiàn)場(chǎng)</p><p><b>  RETI</b></p><p>  DSH:MOV 45H,#02H</p><p&

75、gt;  MOV 46H,#05H</p><p>  MOV R4,#00H</p><p>  MOV A,48H</p><p>  CJNE A,#00H,L6 ;秒單元是否為零</p><p>  MOV 47H,#00H</p><p>  L6:MOV A

76、,47H</p><p>  CJNE A,#14H,L3</p><p>  LJMP L4</p><p>  L3:MOV 60H,R4</p><p>  MOV R1,#49H</p><p>  L2:MOV A,R4</p><p>  MOV

77、40H,@R1</p><p>  ADD A,#19H</p><p>  MOVC A,@A+PC</p><p>  CJNE A,40H,L1</p><p><b>  INC R1</b></p><p><b>  INC R4</b>&

78、lt;/p><p>  DJNZ 45H,L2</p><p>  INC 47H</p><p><b>  LJMP L4</b></p><p>  L1:MOV 45H,#02H</p><p>  MOV A,60H</p><p>  ADD

79、 A,#02H</p><p>  MOV R4,A</p><p>  DJNZ 46H,L3</p><p><b>  L4:RET</b></p><p>  DB 00H,06H</p><p>  DB 15H,07H</p><p>  DB 00H

80、,08H</p><p>  DB 45H,08H</p><p>  DB 55H,08H</p><p>  DB 40H,09H</p><p>  DB 00H,10H</p><p>  DB 45H,10H</p><p>  DB 55H,10H</p><p&

81、gt;  DB 40H,11H</p><p>  DB 30H,14H</p><p>  DB 15H,15H</p><p>  DB 25H,15H</p><p>  DB 10H,16H</p><p>  DB 00H,18H</p><p>  DB 30H,19H</p&

82、gt;<p>  DB 00H,21H</p><p>  ANJIAN:JB P3.0,LL1</p><p>  LCALL DELAY</p><p>  JB P3.0,LL1</p><p>  WAIN:LCALL DISPLAY</p><p>  JNB

83、 P3.0,WAIN</p><p>  CPL TR0</p><p>  JB TR0,BACK3</p><p>  LL1:JB P3.1,LL2</p><p>  LCALL DELAY</p><p>  JB P3.1,LL2</p>

84、<p>  SD:LCALL DISPLAY</p><p>  JNB P3.1,SD</p><p>  MOV 48H,#00H</p><p>  MOV A,49H</p><p>  ADD A,#01H</p><p><b>  DA A

85、</b></p><p>  MOV 49H,A</p><p>  CJNE A,#60H,LL1</p><p>  MOV 49H,#00</p><p>  LJMP LL1</p><p>  LL2:JB P3.2,LL3</p><p&

86、gt;  LCALL DELAY</p><p>  JB P3.2,LL3</p><p>  SD1:LCALL DISPLAY</p><p>  JNB P3.2,SD1</p><p>  MOV A,50H</p><p>  ADD A,#01H</p>

87、<p><b>  DA A</b></p><p>  MOV 50H,A</p><p>  CJNE A,#24H,LL2</p><p>  MOV 50H,#00</p><p>  LJMP LL2</p><p>  LL3:JB P3

88、.3,BACK3</p><p>  LCALL DELAY</p><p>  JB P3.3,BACK3</p><p>  SD2:LCALL DISPLAY</p><p>  JNB P3.3,SD2</p><p>  MOV 47H,#14H </p><

89、;p><b>  BACK3:RET</b></p><p>  TIME:MOV A,47H</p><p>  JZ BACK2</p><p>  CJNE A,#14H,L5</p><p>  CLR P2.0</p><p>  LJMP BACK2&

90、lt;/p><p>  L5:MOV TH1,#0FEH</p><p>  MOV TL1,#80H</p><p>  SETB TR1</p><p>  JNB TF1,$</p><p>  CLR TF1</p><p>  CPL P2.0</p&g

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論