智能定時鬧鐘設(shè)計畢業(yè)設(shè)計_第1頁
智能定時鬧鐘設(shè)計畢業(yè)設(shè)計_第2頁
智能定時鬧鐘設(shè)計畢業(yè)設(shè)計_第3頁
智能定時鬧鐘設(shè)計畢業(yè)設(shè)計_第4頁
智能定時鬧鐘設(shè)計畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 智能定時鬧鐘設(shè)計學(xué)生:XXX 指導(dǎo)教師:XXX內(nèi)容摘要:學(xué)習(xí)和穩(wěn)固單片機(jī)技術(shù)、電子技術(shù)、傳感器技術(shù)及智能儀器等知識,使對已學(xué)過的根底知識能有更深入的理解,并融會貫穿。學(xué)會獨(dú)立思考、獨(dú)立工作,培養(yǎng)一定的自學(xué)能力和獨(dú)立分析問題能力,以及增強(qiáng)系統(tǒng)地運(yùn)用已學(xué)理論知識去解決實(shí)際問題的能力,同時培養(yǎng)成良好的科學(xué)態(tài)度和嚴(yán)謹(jǐn)?shù)脑O(shè)計習(xí)慣本設(shè)計采用單片機(jī)AT89C51作為核心元件,12MHZ晶振,由P0口輸出所要顯示的字形段碼,由P2口輸出字位信號。在其根底上擴(kuò)展外圍芯片與電路,附加時鐘電路及LED電路。LED采用共陰極接法,低電平有效選中相應(yīng)的LED。 單片機(jī)具有集成度高、功能強(qiáng)、通用性好、特別是它能耗低、價

2、格廉價、可靠性高、抗干擾能力強(qiáng)和使用方便等獨(dú)特的優(yōu)點(diǎn),所以單片機(jī)現(xiàn)在廣泛的應(yīng)用到家用電器、機(jī)電產(chǎn)品、兒童玩具、機(jī)器人、辦公自動化產(chǎn)品等領(lǐng)域。為了進(jìn)一步的熟悉并掌握單片機(jī)的應(yīng)用及開發(fā),認(rèn)真的做好此次課程設(shè)計非常必要。 一個單片機(jī)的定時鬧鐘系統(tǒng)離不開軟件和硬件,硬件是軟件的依托,軟件是硬件的內(nèi)核。設(shè)計硬件電路時應(yīng)該先設(shè)計一個單片機(jī)的最小系統(tǒng),它是單片機(jī)應(yīng)用系統(tǒng)的設(shè)計根底,然后在此根底上添加外圍器件,如顯示器、按鍵等構(gòu)成鬧鐘的硬件電路圖。在設(shè)計應(yīng)用程序時遵循模塊化的設(shè)計方法,在明確了設(shè)計方向之后按照分成的幾大模塊分別畫出流程圖,然后根據(jù)流程圖寫出程序,在每個模塊編寫好之后分別調(diào)試、修改、完善。最后在

3、主程序下調(diào)用再次調(diào)試、修改。 通過這次設(shè)計讓我更深入了解單片機(jī)根本電路、如何 HYPERLINK :/ wenluxuan /wlx/xslw/zdkz/24_1.html t _blank 控制和定時器和中斷編程的根本方法,從而鍛煉了我學(xué)習(xí)、設(shè)計和開發(fā)軟、硬件的能力。關(guān)鍵詞:定時鬧鐘系統(tǒng) 傳感器技術(shù) 智能儀器 陰極接法Smarttimeralarm clockdesignAbstract: Learning and consolidation of the knowledge of microcomputer technology, electronic technology, sensor

4、 technology and intelligent instruments, and have learned the basics to have a more in-depth understanding and mastery. Learn to think independently, work independently, develop self-learning ability and independent analysis of capacity and enhancing the system the ability to use theoretical knowled

5、ge to solve practical problems, while cultivating a good scientific attitude and a rigorous design habits.This design uses AT89C51 microcontroller as the core component, 12MHZ crystal, shaped segment code to be displayed by the P0 port output signal from the P2 port output word. Expansion on the bas

6、is of the peripheral chips and circuits, additional clock circuit and the LED circuit. LED common cathode connection, active-low select the appropriate LED.Microcontrollers, high integration, functionality, versatility, its low energy consumption, cheap, high reliability, strong anti-interference ab

7、ility and ease of use and other unique advantages, so the microcontroller is now widely applied to household appliances, electrical and mechanical products, childrens toys, robots, office automation products and other fields. In order to further familiar with and master MCU application and developme

8、nt of very necessary to do the course design. A single-chip timing alarm system can not be separated from the software and hardware, hardware, software, relying on software is the core of the hardware. Should the design of hardware circuit design the minimum system of a single-chip microcomputer app

9、lication system design basis, and then on this basis, to add peripheral devices such as displays, buttons, etc. constitute the hardware schematic of the alarm clock. Follow a modular design approach in the design of the application.Keywords: timing alarm system sensor technology, intelligent instrum

10、ents and cathode connection 目 錄 TOC o 1-4 h z u HYPERLINK 111.doc l _Toc326266864前言 PAGEREF _Toc326266864 h 1 HYPERLINK 111.doc l _Toc3262668651設(shè)計目的及意義 PAGEREF _Toc326266865 h 1 HYPERLINK 111.doc l _Toc3262668661.1設(shè)計任務(wù) PAGEREF _Toc326266866 h 1 HYPERLINK 111.doc l _Toc3262668671.2設(shè)計系統(tǒng)的主要功能 PAGEREF _

11、Toc326266867 h 1HYPERLINK 111.doc l _Toc3262668682 系統(tǒng)總體方案及硬件設(shè)計 PAGEREF _Toc326266868 h 2 HYPERLINK 111.doc l _Toc3262668692.1系統(tǒng)總體方案 PAGEREF _Toc326266869 h 2 HYPERLINK 111.doc l _Toc3262668702.2系統(tǒng)設(shè)計總框圖 PAGEREF _Toc326266870 h 2 HYPERLINK 111.doc l _Toc3262668712.3硬件設(shè)計 PAGEREF _Toc326266871 h 2 HYPER

12、LINK 111.doc l _Toc3262668722.3.1單片機(jī)最小系統(tǒng)設(shè)計 PAGEREF _Toc326266872 h 2 HYPERLINK 111.doc l _Toc3262668732.3.2報警模塊設(shè)計 PAGEREF _Toc326266873 h 6 HYPERLINK 111.doc l _Toc3262668742.3.3顯示模塊設(shè)計 PAGEREF _Toc326266874 h 7 HYPERLINK 111.doc l _Toc3262668752.3.4調(diào)時模塊設(shè)計 PAGEREF _Toc326266875 h 9HYPERLINK 111.doc l

13、 _Toc3262668763 軟件設(shè)計 PAGEREF _Toc326266876 h 10 HYPERLINK 111.doc l _Toc3262668773.1主程序流程圖 PAGEREF _Toc326266877 h 10 HYPERLINK 111.doc l _Toc3262668783.2定時中斷子程序流程圖 PAGEREF _Toc326266878 h 11 HYPERLINK 111.doc l _Toc3262668793.3程序設(shè)計 PAGEREF _Toc326266879 h 12HYPERLINK 111.doc l _Toc3262668804 系統(tǒng)的仿真與

14、調(diào)試 PAGEREF _Toc326266880 h 13 HYPERLINK 111.doc l _Toc3262668814.1 proteus軟件仿真 PAGEREF _Toc326266881 h 13 HYPERLINK 111.doc l _Toc3262668824.2 系統(tǒng)的調(diào)試 PAGEREF _Toc326266882 h 135 HYPERLINK 111.doc l _Toc326266883結(jié)束語 PAGEREF _Toc326266883 h 14HYPERLINK 111.doc l _Toc326266884附錄1:源程序代碼 PAGEREF _Toc32626

15、6884 h 14HYPERLINK 111.doc l _Toc326266885附錄2:系統(tǒng)原理圖 PAGEREF _Toc326266885 h 25HYPERLINK 111.doc l _Toc326266886參考文獻(xiàn) PAGEREF _Toc326266886 h 26基于智能定時鬧鐘系統(tǒng)設(shè)計前言學(xué)習(xí)和穩(wěn)固單片機(jī)技術(shù)、電子技術(shù)、傳感器技術(shù)及智能儀器等知識,使對已學(xué)過的根底知識能有更深入的理解,并融會貫穿。學(xué)會獨(dú)立思考、獨(dú)立工作,培養(yǎng)一定的自學(xué)能力和獨(dú)立分析問題能力,以及增強(qiáng)系統(tǒng)地運(yùn)用已學(xué)理論知識去解決實(shí)際問題的能力,同時培養(yǎng)成良好的科學(xué)態(tài)度和嚴(yán)謹(jǐn)?shù)脑O(shè)計習(xí)慣本設(shè)計采用單片機(jī)AT89

16、C51作為核心元件,12MHZ晶振,由P0口輸出所要顯示的字形段碼,由P2口輸出字位信號。在其根底上擴(kuò)展外圍芯片與電路,附加時鐘電路及LED電路。1 設(shè)計目的及意義學(xué)習(xí)和穩(wěn)固單片機(jī)技術(shù)、電子技術(shù)、傳感器技術(shù)及智能儀器等知識,使對已學(xué)過的根底知識能有更深入的理解,并融會貫穿。學(xué)會獨(dú)立思考、獨(dú)立工作,培養(yǎng)一定的自學(xué)能力和獨(dú)立分析問題能力,以及增強(qiáng)系統(tǒng)地運(yùn)用已學(xué)理論知識去解決實(shí)際問題的能力,同時培養(yǎng)成良好的科學(xué)態(tài)度和嚴(yán)謹(jǐn)?shù)脑O(shè)計習(xí)慣。1.1 設(shè)計任務(wù)完成所選題目的分析與設(shè)計,到達(dá)技術(shù)性能要求。提交正式課程設(shè)計總結(jié)報告一份。本文設(shè)計的定時鬧鐘的核心模塊采用AT89C51芯片,時、分、秒用6位LED數(shù)碼管

17、顯示。在電路中通過四個按鍵S1、S2、S3和S4來進(jìn)行定時、調(diào)時和復(fù)位,定時時間到通過蜂鳴器發(fā)出報警聲。1.2 設(shè)計系統(tǒng)的主要功能 能顯示 時時分分秒秒。 能夠設(shè)置定時時間、 修改定時時間。 定時時間到能發(fā)出報警 單片機(jī)的時鐘產(chǎn)生方法有兩種: 內(nèi)部時鐘方式和外部時鐘方式。 本系統(tǒng)中AT89C51單片機(jī)采用內(nèi)部時鐘方式。最常用的內(nèi)部時鐘方式是采用外接晶體和電容組成的并聯(lián)諧振回路。振蕩晶體可在1.2MHz12MHz之間。電容值無嚴(yán)格要求,但電容取值對振蕩頻率輸出的穩(wěn)定性、大小和振蕩電路起振速度有少許影響修改時間和定時用手動按鍵控制,報警聲通過蜂鳴器發(fā)出。這樣可以使得硬件電路設(shè)計較為簡單,且軟件設(shè)計

18、也易于實(shí)現(xiàn),并能夠降低本錢其集成度高、功能強(qiáng)、能耗低、通用性好、價格廉價。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造。2 系統(tǒng)總體方案及硬件設(shè)計2.1 系統(tǒng)總體方案 由于LED顯示器相對于其它顯示器如LCD顯示器來說其價格要廉價許多,而且亮度更高,耐溫范圍較廣,所以采用6位數(shù)碼管來顯示“時時分分秒秒。 時間的定時用單片機(jī)內(nèi)部時鐘電路,在一定的時間內(nèi)能使其誤差較小,如經(jīng)過一年其誤差才僅有數(shù)秒。修改時間和定時用手動按鍵控制,報警聲通過蜂鳴器發(fā)出。這樣可以使得硬件電路設(shè)計較為簡單,且軟件設(shè)計也易于實(shí)現(xiàn),并能夠降低本錢。 核心模塊采用AT89C51單片機(jī),功能強(qiáng)、通用性好、價格廉價,且易于控制

19、。加上外圍器件數(shù)碼管、排阻、按鍵和蜂鳴器和應(yīng)用程序,便構(gòu)成了相應(yīng)的應(yīng)用系統(tǒng)。2.2 系統(tǒng)設(shè)計總框圖數(shù)碼管顯示如圖2.2-1 所示時鐘電路和復(fù)位電路 單片機(jī)AT89C51鍵盤按鈕蜂鳴器圖2.2-1 定時鬧鐘系統(tǒng)設(shè)計總框圖2.3 硬件設(shè)計 單片機(jī)最小系統(tǒng)設(shè)計芯片:AT89C51 因?yàn)?1單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種,在20世紀(jì)70年代問世以來,以其極高的性能價格比,受到人們的重視和關(guān)注,應(yīng)用廣泛,開展很快,推廣率和市場利潤率較高,且適合于本設(shè)計系統(tǒng)中CPU內(nèi)存和I/O等資源的要求,所以本設(shè)計采用AT89C51作為核心控制芯片。AT89C51是一種帶4KB閃爍可編程可擦除只讀存儲器F

20、PEROMFlash Programmable and Erasable Read Only Memory的單片機(jī),可穩(wěn)定地工作于5V的電源下。其集成度高、功能強(qiáng)、能耗低、通用性好、價格廉價。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器。其組合而成的配件產(chǎn)品在日常生活的使用過程中非常方便、簡單且實(shí)用,深受著廣闊消費(fèi)者的喜愛。AT89C51管腳說明如下: Vic:供電電壓端。 God:接地端。P0口:P0口為三態(tài)雙向口,能帶8個TTL電路。有兩種

21、功能:第一功能是一個8位漏極開路型的雙向I/O口,這時P0口可看作數(shù)據(jù)總線;第二功能是在訪問外部存儲器時,分時提供低8位地址和8位雙向數(shù)據(jù)總線,這時先用做地址總線再用做數(shù)據(jù)總線。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時,P0輸出原碼,此時P0外部必須被拉高。P0口內(nèi)部無上拉電阻,作為I/O口使用時,必須外接上拉電阻。P1口:P1口是一個內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口使用前有一個準(zhǔn)備動作,負(fù)載能力為4個TTL電路。在FLASH編程和校驗(yàn)時,P1口作為第八位地址接收。P2口:P2口為一個內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口,P2口緩沖器可接收、輸出4個TTL門電流。P2

22、口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。P2口在FLASH編程和校驗(yàn)時接收高八位地址信號和控制信號。P3口:P3口是一個內(nèi)部帶上拉電阻的準(zhǔn)雙向I/O口,可接收輸出4個TTL門電流。同時為閃爍編程和編程校驗(yàn)接收一些控制信號。P3口的8個引腳都有各自的第二功能,可作為AT89C51的一些特殊功能口,如表-1 所示。 表-1 P3口第二功能P3口引腳第二功能注釋串行輸入口串行輸出口外部中斷0輸入外部中斷1輸入定時/計時器0外部輸入定時/計時器1外部輸入外部數(shù)據(jù)存儲器寫信號外部數(shù)據(jù)存儲器讀信號RSTVPP:RST為復(fù)位信號輸入端。當(dāng)振蕩器復(fù)位器件時,要保持R

23、ST腳兩個機(jī)器周期(24個時鐘周期)以上的高電平時間。VAP為內(nèi)部RAM的備用電源輸入端。當(dāng)主電源一旦發(fā)生斷電或電壓降到一定值時,可通過VCC為單片機(jī)內(nèi)部RAM提供電源,以保護(hù)片內(nèi)RAM中的信息不喪失,使VCC上電后能繼續(xù)正常運(yùn)行。 ALOE/PROG:ALE為地址鎖存允許信號,當(dāng)訪問外部存儲器時,ALE用來鎖存P0口送出的低8位地址信號。在FLSH編程期間,PROG用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SF

24、R的8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令時才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 PSEN:外部程序存儲器的讀選通信號。在由外部程序存儲器取指期間,PSEN產(chǎn)生負(fù)脈沖做為外部ROM的選通信號,每個機(jī)器周期兩次PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,不會產(chǎn)生有效的PSEN信號。PSEN可驅(qū)動8個LETTEN門輸入端。 Earp:訪問外部程序存儲器控制信號。當(dāng)EA保持低電平時,那么在此期間只訪問外部程序存儲器0000H-FFFFH,不管是否有內(nèi)部程序存儲器。注意加密方式1時,EA將內(nèi)部鎖定為RST。當(dāng)EA端保持高電平時,CPU訪

25、問程序存儲器有兩種情況:一是訪問的地址空間在0到4KB范圍內(nèi),CUP訪問片內(nèi)程序存儲器;二是訪問的地址超出4KB時,CPU將自動執(zhí)行外部程序存儲器的程序。在PLSAH編程期間,此引腳也用于施加12V編程電源App.。XTAL1:晶體振蕩電路的反向器輸入端。 XTAL2:晶體振蕩電路的反向器輸出端。DIP封裝的AT89C51管腳排列如圖-1 所示。圖2-1 AT89C51的管腳排列 時鐘電路單片機(jī)的時鐘產(chǎn)生方法有兩種: 內(nèi)部時鐘方式和外部時鐘方式。 本系統(tǒng)中AT89C51單片機(jī)采用內(nèi)部時鐘方式。最常用的內(nèi)部時鐘方式是采用外接晶體和電容組成的并聯(lián)諧振回路。振蕩晶體可在1.2MHz12MHz之間。電

26、容值無嚴(yán)格要求,但電容取值對振蕩頻率輸出的穩(wěn)定性、大小和振蕩電路起振速度有少許影響,一般可在20pF100pF之間取值。AT98C51單片機(jī)的時鐘電路如圖2.3.1-2所示。圖2.3.1-2 AT98C51單片機(jī)的時鐘電路復(fù)位電路復(fù)位是單片機(jī)的初始化操作。單片機(jī)系統(tǒng)在上電啟動運(yùn)行時,都需要先復(fù)位。其作用是使CPU和系統(tǒng)中其他部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。單片機(jī)的外部復(fù)位電路有上電自動復(fù)位和按鍵手動復(fù)位兩種。本系統(tǒng)中AT89C51單片機(jī)采用上電加按鍵手動復(fù)位電路,如圖-3 所示。圖-3 AT89C51單片機(jī)的復(fù)位電路 報警模塊設(shè)計為實(shí)現(xiàn)設(shè)計的定時鬧鐘系統(tǒng)在定時時間到時發(fā)出報

27、警聲,采用蜂鳴器作為報警發(fā)聲裝置。在本設(shè)計中有多種報警聲可供選擇,可選擇報警時播放音樂當(dāng)使能為低時,輸出將鎖存在已建立的數(shù)據(jù)電平上。輸出控制不影響鎖存器的內(nèi)部工作,即老數(shù)據(jù)可以保持,甚至當(dāng)輸出被關(guān)閉時,新的數(shù)據(jù)也可以置入,相應(yīng)的一個點(diǎn)或一個筆劃發(fā)光,控制不同組合的二極管導(dǎo)通,就能顯示出各種字符當(dāng)使能為低時,輸出將鎖存在已建立的數(shù)據(jù)電平上。報警電路設(shè)計如圖-1 所示。圖-1 定時鬧鐘系統(tǒng)的報警電路 顯示模塊設(shè)計本系統(tǒng)中采用6位LED數(shù)碼管顯示時、分、秒,用兩片74HC573分別對段碼和位碼進(jìn)行鎖存,實(shí)現(xiàn)動態(tài)掃描方式顯示,節(jié)省單片機(jī)I/O口資源,簡化硬件電路。 LED顯示器單片機(jī)中通常使用8段LE

28、D,LED是發(fā)光二極管顯示器的縮寫。LED顯示器由于結(jié)構(gòu)簡單,價格廉價,體積小,亮度高,電壓低,耐溫范圍廣,可靠性高,壽命長,響應(yīng)速度快,顏色鮮艷,配置靈活,與單片機(jī)接口方便而得到廣泛應(yīng)用。LED顯示器是由假設(shè)干個發(fā)光二極管組成顯示字段的顯示部件,當(dāng)發(fā)光二極管導(dǎo)通時,相應(yīng)的一個點(diǎn)或一個筆劃發(fā)光,控制不同組合的二極管導(dǎo)通,就能顯示出各種字符。LED顯示器有多種形式,如:“米字型顯示器,點(diǎn)陣顯示器和七段數(shù)碼顯示器等。在本系統(tǒng)中采用八段數(shù)碼顯示器。因?yàn)楣碴帢O的LED數(shù)碼管它的驅(qū)動電流是分開的,在單片機(jī)進(jìn)行動態(tài)掃描的時候不會影響彼此的電流,故本系統(tǒng)中的6位LED數(shù)碼管均用共陰極的數(shù)碼管。 74HC57

29、3芯片特點(diǎn):三態(tài)總線驅(qū)動輸出,置數(shù)全并行存取,緩沖控制輸入,使能輸入有改善抗擾度的滯后作用。 原理說明:74HC573的八個鎖存器都是透明的D型鎖存器,當(dāng)使能G為高時,Q輸出將隨數(shù)據(jù)D輸入而變。當(dāng)使能為低時,輸出將鎖存在已建立的數(shù)據(jù)電平上。輸出控制不影響鎖存器的內(nèi)部工作,即老數(shù)據(jù)可以保持,甚至當(dāng)輸出被關(guān)閉時,新的數(shù)據(jù)也可以置入。這種 HYPERLINK :/ 838dz / 電路可以驅(qū)動大電容或低阻抗負(fù)載,可以直接與系統(tǒng)總線接口并驅(qū)動總線,而不需要外接口。特別適用于緩沖存放器,I/O 通道,雙向總線驅(qū)動器和工作存放器。74HC573 HYPERLINK :/ 838dz t _blank 引腳

30、說明:OE:3態(tài)輸出使能輸入低電平有效。D0 - D7:數(shù)據(jù)輸入端。Q0 - Q7:3態(tài)鎖存輸出。LE:鎖存使能輸入。GND:接地。VCC:電源電壓。74HC573的 HYPERLINK :/ 838dz t _blank 引腳圖、邏輯圖及真值表如下:圖-1 74HC573 HYPERLINK :/ 838dz t _blank 引腳圖 HYPERLINK :/ 838dz /d/file/ad/PCB/2021-06-19/0197b5a364b0b9e801d548218a4fead6.jpg t _blank 圖-2 74HC573邏輯圖表-1 74HC573真值表OELeDdHXXZL

31、LXNo changeLHLLLHHh顯示電路將兩片74HC573的數(shù)據(jù)輸入端D0 - D7都分別與AT89C51單片機(jī)的P0.0 和RESPACK-8排阻的 2 - 9 引腳連接,兩片74HC573的鎖存使能端L分別接至和,74HC573的輸出端接至數(shù)碼管,如圖-3 所示。圖-3 定時鬧鐘系統(tǒng)的顯示電路 調(diào)時模塊設(shè)計本系統(tǒng)要進(jìn)行時間的調(diào)整和定時,因此用4個手動按鍵對其進(jìn)行控制。鍵盤電路設(shè)計如圖9所示。當(dāng)按下時間調(diào)整鍵S1時,系統(tǒng)可進(jìn)行時間調(diào)整的小時設(shè)置;當(dāng)再按下S1時,可進(jìn)行時間調(diào)整的分鐘設(shè)置;再按下S1時,可進(jìn)行時間調(diào)整的秒鐘設(shè)置。3 軟件設(shè)計3.1 主程序流程圖開始初始化顯示時間NS1按

32、下?YNS2按下?調(diào)整時間NNYS1按下?S3按下?YY選擇報警聲加時調(diào)整NNS3按下?S4按下?YY定時加時減時調(diào)整NS4按下?Y定時減時圖3.1-1 主程序流程圖3.2 定時中斷子程序流程圖開始N1秒到?Y秒變量加1N60秒到?Y分變量加1,秒變量清零N60分到?Y時變量加1,分變量清零N24時到?Y時變量清零蜂鳴器響Y定時到?N結(jié) 束圖3.2-1 定時中斷子程序流程圖3.3 程序設(shè)計 根據(jù)程序流程圖采用匯編語言進(jìn)行程序設(shè)計,其中主程序可根據(jù)系統(tǒng)實(shí)現(xiàn)的功能劃分為以下幾個子程序模塊。程序源代碼見附錄1 時間調(diào)整子程序模塊; 鬧鐘時間設(shè)置子程序模塊; 蜂鳴器報警子程序模塊; 數(shù)碼管顯示子程序模

33、塊。 指示燈信號LAMP2LAMP0為獨(dú)立擴(kuò)展下載板上CPLD器件的第11、10、9腳,內(nèi)部已連接并已鎖定,無需外接連線。 蜂鳴器報時信號SPEAK為獨(dú)立擴(kuò)展下載板CPLD器件的第31腳,內(nèi)部已連接并已鎖定,無需外接連線。 撥碼開關(guān)SW1SW7內(nèi)部已連接并已鎖定,無需外接連線。數(shù)碼管七個段位信號AG為獨(dú)立擴(kuò)展下載板上CPLD器件的第86、87、88、89、90、92、93腳,應(yīng)接數(shù)碼管段位引線接線組KPL_AH,從左到右依次對應(yīng)的A、B、C、D、E、F、G引線插孔。 數(shù)碼管段位譯碼控制信號SS0、SS1、SS2為獨(dú)立擴(kuò)展下載板上CPLD器件的第68、69、70腳,為數(shù)碼管的位選掃描信號,分別接

34、信號接線組DS1-8AT的SS0、SS1、SS2引線插孔即在電源引線插孔組GND孔處。復(fù)位信號RESET為獨(dú)立擴(kuò)展下載板上CPLD器件的第71腳,應(yīng)接“多功能復(fù)用按鍵F1-F12”信號接線組“F1_12(T)的F9F12的任意一個插孔。按下S1時,系統(tǒng)恢復(fù)正常時間顯示。當(dāng)按下設(shè)置定時鍵S2時,系統(tǒng)可進(jìn)行鬧鐘定時時間的小時設(shè)置,此時S1作為報警聲選擇鍵,可通過S1選擇報警聲;再按下S2時,可進(jìn)行定時時間的分鐘設(shè)置,此時也可通過S1選擇報警聲;第三次按下S2時,系統(tǒng)恢復(fù)正常時間顯示,此時S1恢復(fù)為時間調(diào)整按鍵。設(shè)置時間時都通過加時按鍵S3和減時按鍵S4進(jìn)行控制。圖 定時鬧鐘系統(tǒng)的鍵盤電路4 系統(tǒng)的

35、仿真與調(diào)試4.1 proteus軟件仿真使用WAVE軟件編輯程序,在仿真設(shè)置中選擇E6000/T仿真器,選擇POD-51仿真頭。為方便系統(tǒng)在proteus中進(jìn)行仿真,選擇了7SEG-MPX6-CC-BLUE數(shù)字顯示器,并改變了一些I/O連接,如圖4.1-1 所示,然后選擇80C51CPU進(jìn)行匯編程序編輯。經(jīng)過仿真得知,通過S1、S2、S3和S4四個按鍵,可以對時間進(jìn)行修改和鬧鐘的設(shè)置,定時時間到能發(fā)出報警聲,系統(tǒng)非常完善地實(shí)現(xiàn)了所有要求的功能。圖4.1-1 系統(tǒng)的proteus仿真圖4.2 系統(tǒng)的調(diào)試 將所編程序在KEIL軟件里進(jìn)行編譯,編譯正確后生成HEX文件。 在AT89C51芯片中加載此

36、文件后,對完成的實(shí)物作品進(jìn)行調(diào)試。系統(tǒng)運(yùn)行后,能準(zhǔn)確的顯示時間,并能通過S1、S2、S3和S4四個按鍵對時間進(jìn)行修改和鬧鐘定時時間的設(shè)置,定時時間到能發(fā)出報警聲。5 結(jié)束語設(shè)計是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn)、提出、分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程。隨著科學(xué)技術(shù)開展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計算機(jī)應(yīng)用中空前活潑的領(lǐng)域,在生活中可以說得是無處不在,作為二十一世紀(jì)的大學(xué)生來說掌握單片機(jī)的開發(fā)技術(shù)是十分重要的。通過本次單片機(jī)原理及應(yīng)用設(shè)計使我充分認(rèn)識到了設(shè)計的重要性和必要性,本次設(shè)計使我對已學(xué)過的根底知識有了更深入的理解,學(xué)會了獨(dú)立思考、獨(dú)立工

37、作以及對應(yīng)用所學(xué)根本理論分析和解決實(shí)際問題的能力有了很大的提高。另外,本次設(shè)計使我的實(shí)際操作技能得到了訓(xùn)練, 同時也進(jìn)一步培養(yǎng)了我嚴(yán)謹(jǐn)?shù)目茖W(xué)作風(fēng)。回憶起此次單片機(jī)課程設(shè)計,從選題到定稿,從理論到實(shí)踐,可以說得是有苦有甜,但是從中卻學(xué)到很多很多的的東西,不但穩(wěn)固了以前所學(xué)過的知識,而且對單片機(jī)原理課外知識也得到了拓展。做的過程中,開始確實(shí)遇到了不少困難的問題,比方說芯片管腳不熟悉怎么放置等,同時在這過程中也發(fā)現(xiàn)了自己的許多缺乏之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固。 通過單片機(jī)設(shè)計之后,我不僅加深了對單片機(jī)理論的理解,將理論很好地應(yīng)用到實(shí)際當(dāng)中去,而且我們還學(xué)會了如何去培養(yǎng)創(chuàng)新精

38、神和嚴(yán)謹(jǐn)?shù)目茖W(xué)作風(fēng),從而不斷地戰(zhàn)勝自己,超越自己。更重要的是,我在這一設(shè)計過程中,學(xué)會了堅(jiān)持不懈,絕不放棄。在本次設(shè)計中我遇到了無數(shù)的困難和障礙,都在同學(xué)和老師的幫助下度過了。尤其要強(qiáng)烈感謝我的畢業(yè)設(shè)計指導(dǎo)老師XX老師,他對我進(jìn)行了無私的指導(dǎo)和幫助不厭其煩的幫助進(jìn)行畢業(yè)設(shè)計修改和改良。XX老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、淵博的學(xué)術(shù)知識、誨人不倦的敬業(yè)精神以及寬容的待人風(fēng)范使我獲益頗多。在此向幫助和指導(dǎo)我的XX老師表示最衷心的感謝!附錄1 源程序代碼匯編語言程序:;* 引腳及變量定義 * S1 BIT P3.2 ;按鍵1 S2 BIT P3.3 ;按鍵2 S3 BIT P3.4 ;按鍵3 S4 BIT P3

39、.5 ;按鍵4SPEAKER BIT P2.0 ;蜂鳴器 DULA BIT P2.6 ;段選鎖存器鎖存端 WELA BIT P2.7 ;位選鎖存器鎖存端 HOUR1 EQU 20H ;小時 MIN1 EQU 21H ;分鐘 SEC1 EQU 22H ;秒鐘 HOUR2 EQU 23H ;小時定時變量 MIN2 EQU 24H ;分鐘定時變量 A1 EQU 25H ;顯示變量 B1 EQU 26H C1 EQU 27H D1 EQU 28H E1 EQU 29H F1 EQU 30H A2 EQU 31H B2 EQU 32H C2 EQU 33H D2 EQU 34H NUM1 EQU 35H

40、 ;按鍵計數(shù)變量1 NUM2 EQU 36H ;按鍵計數(shù)變量2 COUNT EQU 37H ;計時變量 ORG 0000H LJMP MAIN ORG 000BH LJMP TIME;* MAIN PROGRAM * ORG 1000HMAIN: MOV SP,#50HSTART: MOV HOUR1,#00H ;初始化時間變量 MOV MIN1,#00H MOV SEC1,#00H MOV HOUR2,#01H ;初始化定時變量 MOV MIN2,#01H MOV COUNT,#00H ;初始化計時變量 MOV NUM1,#00H ;初始化按鍵計數(shù)變量 MOV NUM2,#00H MOV T

41、MOD,#01H ;16位計數(shù)器 MOV TH0,#0D8H ;賦初值 MOV TL0,#0EFH SETB ET0 ;中斷允許 SETB EA SETB TR0 ;啟動T0LOOP: MOV A,NUM2 JNZ LOOP1 ;A不為0時轉(zhuǎn)移 LCALL DISPLAY1 ;顯示當(dāng)前時間 LCALL KEYTIME ;調(diào)用時間調(diào)整子程序 LCALL SETTIME ;調(diào)用定時設(shè)置子程序 LJMP LOOPLOOP1: LCALL DISPLAY2 ;顯示定時時間 LCALL KEYTIME ;調(diào)用時間調(diào)整子程序 LCALL SETTIME ;調(diào)用定時設(shè)置子程序 LJMP LOOP ;* SE

42、TTIME PROGRAM *SETTIME: ;定時設(shè)置子程序LL1: JB S2,LL3 ;P3.3=1時轉(zhuǎn)移 LCALL DELAY5 ;延時5MSMSTOP1: JB S2,LL3 ;P3.3=1時轉(zhuǎn)移 MOV C,S2JNC MSTOP1 ;P3.3=0時轉(zhuǎn)移 INC NUM2 ;按鍵計數(shù)變量加1 MOV A,NUM2 CJNE A,#1,LL2 ;判斷按鍵計數(shù)是否為1 CLR TR0 ;定時器中斷關(guān)閉LL2: CJNE A,#3,LL ;判斷按鍵計數(shù)是否為3 MOV NUM2,#0 ;按鍵計數(shù)變量清0 SETB TR0 ;定時器中斷翻開LL: LCALL DISPLAY2 ;顯示定

43、時時間LL3: MOV A,NUM2 JZ LL5 ;A為0時轉(zhuǎn)移 JB S3,KK2 ;P3.4=1時轉(zhuǎn)移 LCALL DELAY5 ;延時5MSKK1:JB S3,KK2 ;P3.4=1時轉(zhuǎn)移 MOV C,S3 JNC KK1 ;P3.4=0時轉(zhuǎn)移 MOV A,NUM2 CJNE A,#1,MM1 ;判斷按鍵計數(shù)是否為1INC HOUR2 ;小時定時變量加1 MOV A,HOUR2 CJNE A,#24,MM1 ;判斷小時定時變量是否為24 MOV HOUR2,#0 ;小時定時變量為24那么復(fù)位0 LCALL DISPLAY2 ;顯示定時時間MM1:LCALL DISPLAY2 ;顯示定時

44、時間 MOV A,NUM2 CJNE A,#2,KK2 ;判斷按鍵計數(shù)是否為2 INC MIN2 ;分鐘定時變量加1MOV A,MIN2 CJNE A,#60,KK2 ;分鐘定時變量是否為60 MOV MIN2,#0 ;分鐘定時變量為60那么復(fù)位0 LCALL DISPLAY2 ;顯示定時時間KK2:LCALL DISPLAY2 ;顯示定時時間JB S4,LL5 ;P3.5=1時轉(zhuǎn)移 LCALL DELAY5 ;延時5MSKK3:JB S4,LL5 ;P3.5=1時轉(zhuǎn)移 MOV C,S4 JNC KK3 ;P3.5=0時轉(zhuǎn)移 MOV A,NUM2 CJNE A,#1,MM2 ;判斷按鍵計數(shù)是否

45、為1 DEC HOUR2 ;小時定時變量減1 MOV A,HOUR2 CJNE A,#0,MM2 MOV HOUR2,#24 LCALL DISPLAY2 ;顯示定時時間MM2:LCALL DISPLAY2 ;顯示定時時間 MOV A,NUM2 CJNE A,#2,LL5 ;判斷按鍵計數(shù)是否為2DEC MIN2MOV A,MIN2 ;分鐘定時變量減1CJNE A,#0,LL5MOV MIN2,#60LL5: LCALL DISPLAY2 ;顯示定時時間RET ;* KEYTIME PROGRAM *KEYTIME: ;時間調(diào)整子程序L1: JB S2,L3 ;P3.2=1時轉(zhuǎn)移 LCALL D

46、ELAY5 ;延時5MSMSTOP2: JB S2,L3 ;P3.2=1時轉(zhuǎn)移 MOV C,S2 JNC MSTOP2 ;P3.2=0時轉(zhuǎn)移 INC NUM1 MOV A,NUM1 CJNE A,#1,L2 ;判斷按鍵計數(shù)是否為1 CLR TR0 ;定時器中斷關(guān)閉L2: CJNE A,#4,L3 ;判斷按鍵計數(shù)是否為4MOV NUM1,#0 SETB TR0 ;定時器中斷翻開L3: MOV A,NUM1 JNZ FF ;A不為0時轉(zhuǎn)移 LJMP L5FF: JB S3,K2 ;P3.4=1時轉(zhuǎn)移 LCALL DELAY5 ;延時5MSK1: JB S3,K2 ;P3.4=1時轉(zhuǎn)移 MOV C,

47、S3 JNC K1 ;P3.4=0時轉(zhuǎn)移 MOV A,NUM1 CJNE A,#1,M1 ;判斷按鍵計數(shù)是否為1 INC HOUR1 ;小時設(shè)置加1 MOV A,HOUR1 CJNE A,#24,M1 MOV HOUR1,#0 LCALL DISPLAY1 ;顯示調(diào)整時間M1: LCALL DISPLAY1 ;顯示調(diào)整時間 MOV A,NUM1CJNE A,#2,M2 ;判斷按鍵計數(shù)是否為2INC MIN1 ;分鐘設(shè)置加1MOV A,MIN1CJNE A,#60,M2MOV MIN1,#0LCALL DISPLAY1 ;顯示調(diào)整時間M2:LCALL DISPLAY1 ;顯示調(diào)整時間MOV A,

48、NUM1CJNE A,#3,K2 ;判斷按鍵計數(shù)是否為3INC SEC1MOV A,SEC1CJNE A,#60,K2MOV SEC1,#0LCALL DISPLAY1 ;顯示調(diào)整時間K2:LCALL DISPLAY1 ;顯示調(diào)整時間JB S4,L5 ;P3.5=1時轉(zhuǎn)移 LCALL DELAY5 ;延時5MSK3:JB S4,L5 ;P3.5=1時轉(zhuǎn)移 MOV C,S4JNC K3 ;P3.5=0時轉(zhuǎn)移MOV A,NUM1CJNE A,#1,M3 ;判斷按鍵計數(shù)是否為1DEC HOUR1MOV A,HOUR1CJNE A,#0,M3MOV HOUR1,#24LCALL DISPLAY1 ;顯

49、示調(diào)整時間M3:LCALL DISPLAY1 ;顯示調(diào)整時間MOV A,NUM1CJNE A,#2,M4 ;判斷按鍵計數(shù)是否為2DEC MIN1MOV A,MIN1CJNE A,#0,M4MOV MIN1,#60LCALL DISPLAY1 ;顯示調(diào)整時間M4:LCALL DISPLAY1 ;顯示調(diào)整時間MOV A,NUM1CJNE A,#3,L5 ;判斷按鍵計數(shù)是否為3INC SEC1MOV A,SEC1CJNE A,#0,L5MOV SEC1,#60L5: LCALL DISPLAY1 ;顯示調(diào)整時間RET ;* TIMEPRO PROGRAM *TIMEPRO: MOV R7,#50 ;

50、蜂鳴器報警子程序 CLR SPEAKER ;啟動蜂鳴器報警 LCALL DELAYN ;延時50MS SETB SPEAKER LCALL DELAYN CLR SPEAKER LCALL DELAYN SETB SPEAKER;* DISPLAY1 PROGRAM *DISPLAY1: ;顯示子程序1 PUSH ACC ;保護(hù)現(xiàn)場 MOV A,HOUR1 ;將時間的十位和個位分別賦給顯示變量 MOV B,#10 DIV AB MOV A1,A MOV B1,B MOV A,MIN1 MOV B,#10 DIV AB MOV C1,A MOV D1,B MOV A,SEC1 MOV B,#10

51、 DIV AB MOV E1,A MOV F1,BMOV DPTR,#TABLE;指向7段編碼表首地址 CLR DULA;關(guān)閉段選鎖存器鎖存端MOV A,A1 MOVC A,A+DPTR MOV P0,A;顯示小時十位SETB DULA;翻開段選鎖存器鎖存端 CLR DULACLR WELA;關(guān)閉位選鎖存器鎖存端 MOV P0,#0FEH;選擇第1位數(shù)碼管 SETB WELA;翻開位選鎖存器鎖存端 CLR WELA LCALL DELAY5 CLR DULA;關(guān)閉段選鎖存器鎖存端MOV A,B1 MOVC A,A+DPTR MOV P0,A;顯示小時個位SETB DULA;翻開段選鎖存器鎖存端

52、 CLR DULACLR WELA;關(guān)閉位選鎖存器鎖存端 MOV P0,#0FDH;選擇第2位數(shù)碼管 SETB WELA;翻開位選鎖存器鎖存端 CLR WELA LCALL DELAY5 CLR DULA;關(guān)閉段選鎖存器鎖存端MOV A,C1 MOVC A,A+DPTR MOV P0,A;顯示分鐘十位SETB DULA;翻開段選鎖存器鎖存端 CLR DULACLR WELA;關(guān)閉位選鎖存器鎖存端 MOV P0,#0FBH;選擇第3位數(shù)碼管 SETB WELA;翻開位選鎖存器鎖存端 CLR WELA LCALL DELAY5 CLR DULA;關(guān)閉段選鎖存器鎖存端MOV A,D1 MOVC A,

53、A+DPTR MOV P0,A;顯示分鐘個位SETB DULA;翻開段選鎖存器鎖存端 CLR DULACLR WELA;關(guān)閉位選鎖存器鎖存端 MOV P0,#0F7H;選擇第4位數(shù)碼管 SETB WELA;翻開位選鎖存器鎖存端 CLR WELA LCALL DELAY5 CLR DULA;關(guān)閉段選鎖存器鎖存端MOV A,E1 MOVC A,A+DPTR MOV P0,A;顯示秒鐘十位SETB DULA;翻開段選鎖存器鎖存端 CLR DULACLR WELA;關(guān)閉位選鎖存器鎖存端 MOV P0,#0EFH;選擇第5位數(shù)碼管 SETB WELA;翻開位選鎖存器鎖存端 CLR WELA LCALL

54、DELAY5 CLR DULA;關(guān)閉段選鎖存器鎖存端MOV A,F1 MOVC A,A+DPTR MOV P0,A;顯示秒鐘個位SETB DULA;翻開段選鎖存器鎖存端 CLR DULACLR WELA;關(guān)閉位選鎖存器鎖存端 MOV P0,#0DFH;選擇第6位數(shù)碼管 SETB WELA;翻開位選鎖存器鎖存端 CLR WELA LCALL DELAY5POP ACC ;恢復(fù)現(xiàn)場 RET;* DISPLAY2 PROGRAM *DISPLAY2: ;顯示子程序2 PUSH ACC ;保護(hù)現(xiàn)場 MOV A,HOUR2 ;將時間的十位和個位分別賦給顯示變量 MOV B,#10 DIV AB MOV

55、A2,A MOV B2,B MOV A,MIN2 MOV B,#10 DIV AB MOV C2,A MOV D2,B MOV DPTR,#TABLE;指向7段編碼表首地址 CLR DULA;關(guān)閉段選鎖存器鎖存端MOV A,A2 MOVC A,A+DPTR MOV P0,A;顯示定時時間的小時十位SETB DULA;翻開段選鎖存器鎖存端 CLR DULACLR WELA;關(guān)閉位選鎖存器鎖存端 MOV P0,#0FEH;選擇第1位數(shù)碼管 SETB WELA;翻開位選鎖存器鎖存端 CLR WELA LCALL DELAY5 CLR DULA;關(guān)閉段選鎖存器鎖存端MOV A,B2 MOVC A,A+

56、DPTR MOV P0,A;顯示定時時間的小時個位SETB DULA;翻開段選鎖存器鎖存端 CLR DULACLR WELA;關(guān)閉位選鎖存器鎖存端 MOV P0,#0FDH;選擇第2位數(shù)碼管 SETB WELA;翻開位選鎖存器鎖存端 CLR WELA LCALL DELAY5 CLR DULA;關(guān)閉段選鎖存器鎖存端MOV A,C2 MOVC A,A+DPTR MOV P0,A;顯示定時時間的分鐘十位SETB DULA;翻開段選鎖存器鎖存端 CLR DULACLR WELA;關(guān)閉位選鎖存器鎖存端 MOV P0,#0FBH;選擇第3位數(shù)碼管 SETB WELA;翻開位選鎖存器鎖存端 CLR WELA LCALL

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論