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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

3、調試、修改、完善。最后在主程序下調用再次調試、修改。   通過這次設計讓我更深入了解單片機基本電路、如何控制和定時器和中斷編程的基本方法,從而鍛煉了我學習、設計和開發(fā)軟、硬件的能力。關鍵詞:定時鬧鐘系統(tǒng) 傳感器技術 智能儀器 陰極接法Smart timer alarm clock designAbstract: Learning and consolidation of the knowledge of microcomputer technology, electronic technology, sensor technology and

4、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 knowledge to solve prac

5、tical 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 basis of the periph

6、eral 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 ability and ease o

7、f use and other unique advantages, so the microcontroller is now widely applied to household appliances, electrical and mechanical products, children's toys, robots, office automation products and other fields. In order to further familiar with and master MCU application and development of very

8、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 application sy

9、stem 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 instruments and ca

10、thode connection 目 錄前言1 1設計目的及意義1 1.1設計任務1 1.2設計系統(tǒng)的主要功能12 系統(tǒng)總體方案及硬件設計2 2.1系統(tǒng)總體方案2 2.2系統(tǒng)設計總框圖2 2.3硬件設計2 2.3.1單片機最小系統(tǒng)設計2 2.3.2報警模塊設計6 2.3.3顯示模塊設計7 2.3.4調時模塊設計93 軟件設計10 3.1主程序流程圖10 3.2定時中斷子程序流程圖11 3.3程序設計124 系統(tǒng)的仿真與調試13 4.1 proteus軟件仿真13 4.2 系統(tǒng)的調試135 結束語14附錄1:源程序代碼14附錄2:系統(tǒng)原理圖25參考文獻26基于智能定時鬧鐘系統(tǒng)設計前言學習和鞏固單

11、片機技術、電子技術、傳感器技術及智能儀器等知識,使對已學過的基礎知識能有更深入的理解,并融會貫通。學會獨立思考、獨立工作,培養(yǎng)一定的自學能力和獨立分析問題能力,以及增強系統(tǒng)地運用已學理論知識去解決實際問題的能力,同時培養(yǎng)成良好的科學態(tài)度和嚴謹的設計習慣本設計采用單片機AT89C51作為核心元件,12MHZ晶振,由P0口輸出所要顯示的字形段碼,由P2口輸出字位信號。在其基礎上擴展外圍芯片與電路,附加時鐘電路及LED電路。1 設計目的及意義學習和鞏固單片機技術、電子技術、傳感器技術及智能儀器等知識,使對已學過的基礎知識能有更深入的理解,并融會貫通。學會獨立思考、獨立工作,培養(yǎng)一定的自學能力和獨立分

12、析問題能力,以及增強系統(tǒng)地運用已學理論知識去解決實際問題的能力,同時培養(yǎng)成良好的科學態(tài)度和嚴謹的設計習慣。1.1 設計任務完成所選題目的分析與設計,達到技術性能要求。提交正式課程設計總結報告一份。本文設計的定時鬧鐘的核心模塊采用AT89C51芯片,時、分、秒用6位LED數碼管顯示。在電路中通過四個按鍵S1、S2、S3和S4來進行定時、調時和復位,定時時間到通過蜂鳴器發(fā)出報警聲。1.2 設計系統(tǒng)的主要功能 能顯示 時時分分秒秒。 能夠設置定時時間、 修改定時時間。 定時時間到能發(fā)出報警 單片機的時鐘產生方法有兩種: 內部時鐘方式和外部時鐘方式。 本系統(tǒng)中AT89C51單片機采用內部時鐘方式。最常

13、用的內部時鐘方式是采用外接晶體和電容組成的并聯諧振回路。振蕩晶體可在1.2MHz12MHz之間。電容值無嚴格要求,但電容取值對振蕩頻率輸出的穩(wěn)定性、大小和振蕩電路起振速度有少許影響修改時間和定時用手動按鍵控制,報警聲通過蜂鳴器發(fā)出。這樣可以使得硬件電路設計較為簡單,且軟件設計也易于實現,并能夠降低成本其集成度高、功能強、能耗低、通用性好、價格便宜。該器件采用ATMEL高密度非易失存儲器制造技術制造。2 系統(tǒng)總體方案及硬件設計2.1 系統(tǒng)總體方案 由于LED顯示器相對于其它顯示器(如LCD顯示器)來說其價格要便宜許多,而且亮度更高,耐溫范圍較廣,所以采用6位數碼管來顯示“時時分分秒秒”。 時間的

14、定時用單片機內部時鐘電路,在一定的時間內能使其誤差較小,如經過一年其誤差才僅有數秒。修改時間和定時用手動按鍵控制,報警聲通過蜂鳴器發(fā)出。這樣可以使得硬件電路設計較為簡單,且軟件設計也易于實現,并能夠降低成本。 核心模塊采用AT89C51單片機,功能強、通用性好、價格便宜,且易于控制。加上外圍器件(數碼管、排阻、按鍵和蜂鳴器)和應用程序,便構成了相應的應用系統(tǒng)。2.2 系統(tǒng)設計總框圖數碼管顯示(如圖2.2-1 所示)時鐘電路和復位電路 單片機AT89C51鍵盤(按鈕)蜂鳴器圖2.2-1 定時鬧鐘系統(tǒng)設計總框圖2.3 硬件設計 單片機最小系統(tǒng)設計芯片:AT89C51 因為51單片機是各單片機中最為

15、典型和最有代表性的一種,在20世紀70年代問世以來,以其極高的性能價格比,受到人們的重視和關注,應用廣泛,發(fā)展很快,推廣率和市場利潤率較高,且適合于本設計系統(tǒng)中CPU內存和I/O等資源的要求,所以本設計采用AT89C51作為核心控制芯片。AT89C51是一種帶4KB閃爍可編程可擦除只讀存儲器(FPEROMFlash Programmable and Erasable Read Only Memory)的單片機,可穩(wěn)定地工作于5V的電源下。其集成度高、功能強、能耗低、通用性好、價格便宜。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功

16、能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器。其組合而成的配件產品在日常生活的使用過程中非常方便、簡單且實用,深受著廣大消費者的喜愛。AT89C51管腳說明如下:  Vic:供電電壓端。    God:接地端。  P0口:P0口為三態(tài)雙向口,能帶8個TTL電路。有兩種功能:第一功能是一個8位漏極開路型的雙向I/O口,這時P0口可看作數據總線;第二功能是在訪問外部存儲器時,分時提供低8位地址和8位雙向數據總線,這時先用做地址總線再用做數據總線。在FIASH編程時,P0 口作為原碼輸入口,當FIA

17、SH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P0口內部無上拉電阻,作為I/O口使用時,必須外接上拉電阻。  P1口:P1口是一個內部帶上拉電阻的8位準雙向I/O口(使用前有一個準備動作),負載能力為4個TTL電路。在FLASH編程和校驗時,P1口作為第八位地址接收。  P2口:P2口為一個內部帶上拉電阻的8位準雙向I/O口,P2口緩沖器可接收、輸出4個TTL門電流。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。  P3口:P

18、3口是一個內部帶上拉電阻的準雙向I/O口,可接收輸出4個TTL門電流。同時為閃爍編程和編程校驗接收一些控制信號。P3口的8個引腳都有各自的第二功能,可作為AT89C51的一些特殊功能口,如表-1 所示。 表-1 P3口第二功能P3口引腳第二功能注釋P3.0串行輸入口P3.1串行輸出口P3.2外部中斷0輸入P3.3外部中斷1輸入P3.4定時/計時器0外部輸入P3.5定時/計時器1外部輸入P3.6外部數據存儲器寫信號P3.7外部數據存儲器讀信號RSTVPP:RST為復位信號輸入端。當振蕩器復位器件時,要保持RST腳兩個機器周期(24個時鐘周期)以上的高電平時間。VAP為內部RAM的備用電源輸入端。

19、當主電源一旦發(fā)生斷電或電壓降到一定值時,可通過VCC為單片機內部RAM提供電源,以保護片內RAM中的信息不丟失,使VCC上電后能繼續(xù)正常運行。 ALOE/PROG:ALE為地址鎖存允許信號,當訪問外部存儲器時,ALE用來鎖存P0口送出的低8位地址信號。在FLSH編程期間,PROG用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR的8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令時才起作用。另外,該引腳

20、被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。    PSEN:外部程序存儲器的讀選通信號。在由外部程序存儲器取指期間,PSEN產生負脈沖做為外部ROM的選通信號,每個機器周期兩次PSEN有效。但在訪問外部數據存儲器時,不會產生有效的PSEN信號。PSEN可驅動8個LETTEN門輸入端。    Earp:訪問外部程序存儲器控制信號。當EA保持低電平時,則在此期間只訪問外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,EA將內部鎖定為RST。當EA端保持高電平時,CPU訪問程序存儲器有兩

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

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

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

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

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

26、:3態(tài)鎖存輸出。LE:鎖存使能輸入。GND:接地。VCC:電源電壓。74HC573的引腳圖、邏輯圖及真值表如下:圖-1   74HC573引腳圖圖-2 74HC573邏輯圖表-1 74HC573真值表OELeDdHXXZLLXNo changeLHLLLHHh顯示電路將兩片74HC573的數據輸入端D0 - D7都分別與AT89C51單片機的P0.0 - P0.7和RESPACK-8排阻的 2 - 9 引腳連接,兩片74HC573的鎖存使能端L分別接至P2.6和P2.7,74HC573的輸出端接至數碼管,如圖-3 所示。圖-3 定時鬧鐘系統(tǒng)的顯示電路 調時模塊設計本系統(tǒng)要進

27、行時間的調整和定時,因此用4個手動按鍵對其進行控制。鍵盤電路設計如圖9所示。當按下時間調整鍵S1時,系統(tǒng)可進行時間調整的小時設置;當再按下S1時,可進行時間調整的分鐘設置;再按下S1時,可進行時間調整的秒鐘設置。3 軟件設計3.1 主程序流程圖開始初始化顯示時間NS1按下?YNS2按下?調整時間NNYS1按下?S3按下?YY選擇報警聲加時調整NNS3按下?S4按下?YY定時加時減時調整NS4按下?Y定時減時圖3.1-1 主程序流程圖3.2 定時中斷子程序流程圖開始N1秒到?Y秒變量加1N60秒到?Y分變量加1,秒變量清零N60分到?Y時變量加1,分變量清零N24時到?Y時變量清零蜂鳴器響Y定時

28、到?N結 束圖3.2-1 定時中斷子程序流程圖3.3 程序設計 根據程序流程圖采用匯編語言進行程序設計,其中主程序可根據系統(tǒng)實現的功能劃分為以下幾個子程序模塊。(程序源代碼見附錄1) 時間調整子程序模塊; 鬧鐘時間設置子程序模塊; 蜂鳴器報警子程序模塊; 數碼管顯示子程序模塊。 指示燈信號LAMP2LAMP0為獨立擴展下載板上CPLD器件的第11、10、9腳,內部已連接并已鎖定,無需外接連線。 蜂鳴器報時信號SPEAK為獨立擴展下載板CPLD器件的第31腳,內部已連接并已鎖定,無需外接連線。 撥碼開關SW1SW7內部已連接并已鎖定,無需外接連線。數碼管七個段位信號AG為獨立擴展下載板上CPLD

29、器件的第86、87、88、89、90、92、93腳,應接數碼管段位引線接線組KPL_AH,從左到右依次對應的A、B、C、D、E、F、G引線插孔。 數碼管段位譯碼控制信號SS0、SS1、SS2為獨立擴展下載板上CPLD器件的第68、69、70腳,為數碼管的位選掃描信號,分別接信號接線組DS1-8A(T)的SS0、SS1、SS2引線插孔(即在電源引線插孔組GND孔處)。復位信號RESET為獨立擴展下載板上CPLD器件的第71腳,應接“多功能復用按鍵F1-F12”信號接線組“F1_12(T)”的F9F12的任意一個插孔。按下S1時,系統(tǒng)恢復正常時間顯示。當按下設置定時鍵S2時,系統(tǒng)可進行鬧鐘定時時間

30、的小時設置,此時S1作為報警聲選擇鍵,可通過S1選擇報警聲;再按下S2時,可進行定時時間的分鐘設置,此時也可通過S1選擇報警聲;第三次按下S2時,系統(tǒng)恢復正常時間顯示,此時S1恢復為時間調整按鍵。設置時間時都通過加時按鍵S3和減時按鍵S4進行控制。圖3.3-1 定時鬧鐘系統(tǒng)的鍵盤電路4 系統(tǒng)的仿真與調試4.1 proteus軟件仿真使用WAVE軟件編輯程序,在仿真設置中選擇E6000/T仿真器,選擇POD-51仿真頭。為方便系統(tǒng)在proteus中進行仿真,選擇了7SEG-MPX6-CC-BLUE數字顯示器,并改變了一些I/O連接,如圖4.1-1 所示,然后選擇80C51CPU進行匯編程序編輯。

31、經過仿真得知,通過S1、S2、S3和S4四個按鍵,可以對時間進行修改和鬧鐘的設置,定時時間到能發(fā)出報警聲,系統(tǒng)非常完善地實現了所有要求的功能。圖4.1-1 系統(tǒng)的proteus仿真圖4.2 系統(tǒng)的調試 將所編程序在KEIL軟件里進行編譯,編譯正確后生成HEX文件。 在AT89C51芯片中加載此文件后,對完成的實物作品進行調試。系統(tǒng)運行后,能準確的顯示時間,并能通過S1、S2、S3和S4四個按鍵對時間進行修改和鬧鐘定時時間的設置,定時時間到能發(fā)出報警聲。5 結束語設計是培養(yǎng)學生綜合運用所學知識,發(fā)現、提出、分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程。隨著

32、科學技術發(fā)展的日新日異,單片機已經成為當今計算機應用中空前活躍的領域,在生活中可以說得是無處不在,作為二十一世紀的大學生來說掌握單片機的開發(fā)技術是十分重要的。通過本次單片機原理及應用設計使我充分認識到了設計的重要性和必要性,本次設計使我對已學過的基礎知識有了更深入的理解,學會了獨立思考、獨立工作以及對應用所學基本理論分析和解決實際問題的能力有了很大的提高。另外,本次設計使我的實際操作技能得到了訓練, 同時也進一步培養(yǎng)了我嚴謹的科學作風?;仡櫰鸫舜螁纹瑱C課程設計,從選題到定稿,從理論到實踐,可以說得是有苦有甜,但是從中卻學到很多很多的的東西,不但鞏固了以前所學過的知識,而且對單片機原理課外知識也

33、得到了拓展。做的過程中,開始的確遇到了不少困難的問題,比如說芯片管腳不熟悉怎么放置等,同時在這過程中也發(fā)現了自己的許多不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。 通過單片機設計之后,我不僅加深了對單片機理論的理解,將理論很好地應用到實際當中去,而且我們還學會了如何去培養(yǎng)創(chuàng)新精神和嚴謹的科學作風,從而不斷地戰(zhàn)勝自己,超越自己。更重要的是,我在這一設計過程中,學會了堅持不懈,絕不放棄。在本次設計中我遇到了無數的困難和障礙,都在同學和老師的幫助下度過了。尤其要強烈感謝我的畢業(yè)設計指導老師XX老師,他對我進行了無私的指導和幫助不厭其煩的幫助進行畢業(yè)設計修改和改進。XX老師嚴謹的治學態(tài)

34、度、淵博的學術知識、誨人不倦的敬業(yè)精神以及寬容的待人風范使我獲益頗多。在此向幫助和指導我的XX老師表示最衷心的感謝!附錄1 源程序代碼匯編語言程序:;* 引腳及變量定義 * S1 BIT P3.2 ;按鍵1 S2 BIT P3.3 ;按鍵2 S3 BIT P3.4 ;按鍵3 S4 BIT P3.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 ;小時定時變量 MI

35、N2 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 ;按鍵計數變量1 NUM2 EQU 36H ;按鍵計數變量2 COUNT EQU 37H ;計時變量 ORG 0000H LJMP MAIN ORG 000BH LJMP TIME;* MAIN PROGRAM * ORG 1000HMAIN: MOV SP,#50HSTART: MOV HOUR1,#

36、00H ;初始化時間變量 MOV MIN1,#00H MOV SEC1,#00H MOV HOUR2,#01H ;初始化定時變量 MOV MIN2,#01H MOV COUNT,#00H ;初始化計時變量 MOV NUM1,#00H ;初始化按鍵計數變量 MOV NUM2,#00H MOV TMOD,#01H ;16位計數器 MOV TH0,#0D8H ;賦初值 MOV TL0,#0EFH SETB ET0 ;中斷允許 SETB EA SETB TR0 ;啟動T0LOOP: MOV A,NUM2 JNZ LOOP1 ;A不為0時轉移 LCALL DISPLAY1 ;顯示當前時間 LCALL K

37、EYTIME ;調用時間調整子程序 LCALL SETTIME ;調用定時設置子程序 LJMP LOOPLOOP1: LCALL DISPLAY2 ;顯示定時時間 LCALL KEYTIME ;調用時間調整子程序 LCALL SETTIME ;調用定時設置子程序 LJMP LOOP ;* SETTIME PROGRAM *SETTIME: ;定時設置子程序LL1: JB S2,LL3 ;P3.3=1時轉移 LCALL DELAY5 ;延時5MSMSTOP1: JB S2,LL3 ;P3.3=1時轉移 MOV C,S2JNC MSTOP1 ;P3.3=0時轉移 INC NUM2 ;按鍵計數變量加

38、1 MOV A,NUM2 CJNE A,#1,LL2 ;判斷按鍵計數是否為1 CLR TR0 ;定時器中斷關閉LL2: CJNE A,#3,LL ;判斷按鍵計數是否為3 MOV NUM2,#0 ;按鍵計數變量清0 SETB TR0 ;定時器中斷打開LL: LCALL DISPLAY2 ;顯示定時時間LL3: MOV A,NUM2 JZ LL5 ;A為0時轉移 JB S3,KK2 ;P3.4=1時轉移 LCALL DELAY5 ;延時5MSKK1:JB S3,KK2 ;P3.4=1時轉移 MOV C,S3 JNC KK1 ;P3.4=0時轉移 MOV A,NUM2 CJNE A,#1,MM1 ;

39、判斷按鍵計數是否為1INC HOUR2 ;小時定時變量加1 MOV A,HOUR2 CJNE A,#24,MM1 ;判斷小時定時變量是否為24 MOV HOUR2,#0 ;小時定時變量為24則復位0 LCALL DISPLAY2 ;顯示定時時間MM1:LCALL DISPLAY2 ;顯示定時時間 MOV A,NUM2 CJNE A,#2,KK2 ;判斷按鍵計數是否為2 INC MIN2 ;分鐘定時變量加1MOV A,MIN2 CJNE A,#60,KK2 ;分鐘定時變量是否為60 MOV MIN2,#0 ;分鐘定時變量為60則復位0 LCALL DISPLAY2 ;顯示定時時間KK2:LCAL

40、L DISPLAY2 ;顯示定時時間JB S4,LL5 ;P3.5=1時轉移 LCALL DELAY5 ;延時5MSKK3:JB S4,LL5 ;P3.5=1時轉移 MOV C,S4 JNC KK3 ;P3.5=0時轉移 MOV A,NUM2 CJNE A,#1,MM2 ;判斷按鍵計數是否為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 ;判斷按鍵計數是否為2DEC MIN

41、2MOV A,MIN2 ;分鐘定時變量減1CJNE A,#0,LL5MOV MIN2,#60LL5: LCALL DISPLAY2 ;顯示定時時間RET ;* KEYTIME PROGRAM *KEYTIME: ;時間調整子程序L1: JB S2,L3 ;P3.2=1時轉移 LCALL DELAY5 ;延時5MSMSTOP2: JB S2,L3 ;P3.2=1時轉移 MOV C,S2 JNC MSTOP2 ;P3.2=0時轉移 INC NUM1 MOV A,NUM1 CJNE A,#1,L2 ;判斷按鍵計數是否為1 CLR TR0 ;定時器中斷關閉L2: CJNE A,#4,L3 ;判斷按鍵計

42、數是否為4MOV NUM1,#0 SETB TR0 ;定時器中斷打開L3: MOV A,NUM1 JNZ FF ;A不為0時轉移 LJMP L5FF: JB S3,K2 ;P3.4=1時轉移 LCALL DELAY5 ;延時5MSK1: JB S3,K2 ;P3.4=1時轉移 MOV C,S3 JNC K1 ;P3.4=0時轉移 MOV A,NUM1 CJNE A,#1,M1 ;判斷按鍵計數是否為1 INC HOUR1 ;小時設置加1 MOV A,HOUR1 CJNE A,#24,M1 MOV HOUR1,#0 LCALL DISPLAY1 ;顯示調整時間M1: LCALL DISPLAY1

43、;顯示調整時間 MOV A,NUM1CJNE A,#2,M2 ;判斷按鍵計數是否為2INC MIN1 ;分鐘設置加1MOV A,MIN1CJNE A,#60,M2MOV MIN1,#0LCALL DISPLAY1 ;顯示調整時間M2:LCALL DISPLAY1 ;顯示調整時間MOV A,NUM1CJNE A,#3,K2 ;判斷按鍵計數是否為3INC SEC1MOV A,SEC1CJNE A,#60,K2MOV SEC1,#0LCALL DISPLAY1 ;顯示調整時間K2:LCALL DISPLAY1 ;顯示調整時間JB S4,L5 ;P3.5=1時轉移 LCALL DELAY5 ;延時5M

44、SK3:JB S4,L5 ;P3.5=1時轉移 MOV C,S4JNC K3 ;P3.5=0時轉移MOV A,NUM1CJNE A,#1,M3 ;判斷按鍵計數是否為1DEC HOUR1MOV A,HOUR1CJNE A,#0,M3MOV HOUR1,#24LCALL DISPLAY1 ;顯示調整時間M3:LCALL DISPLAY1 ;顯示調整時間MOV A,NUM1CJNE A,#2,M4 ;判斷按鍵計數是否為2DEC MIN1MOV A,MIN1CJNE A,#0,M4MOV MIN1,#60LCALL DISPLAY1 ;顯示調整時間M4:LCALL DISPLAY1 ;顯示調整時間MO

45、V A,NUM1CJNE A,#3,L5 ;判斷按鍵計數是否為3INC SEC1MOV A,SEC1CJNE A,#0,L5MOV SEC1,#60L5: LCALL DISPLAY1 ;顯示調整時間RET ;* TIMEPRO PROGRAM *TIMEPRO: MOV R7,#50 ;蜂鳴器報警子程序 CLR SPEAKER ;啟動蜂鳴器報警 LCALL DELAYN ;延時50MS SETB SPEAKER LCALL DELAYN CLR SPEAKER LCALL DELAYN SETB SPEAKER;* DISPLAY1 PROGRAM *DISPLAY1: ;顯示子程序1 PU

46、SH ACC ;保護現場 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 DIV AB MOV E1,A MOV F1,BMOV DPTR,#TABLE;指向7段編碼表首地址 CLR DULA;關閉段選鎖存器鎖存端MOV A,A1 MOVC A,A+DPTR MOV P0,A;顯示小時十位SETB DULA;打開段選鎖存器鎖存端 CLR DULACLR WELA;關閉位選鎖存器鎖存端 MOV P0,#0FEH;選擇第1位數碼管 SETB

溫馨提示

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

評論

0/150

提交評論