定時鬧鐘C51單片機課程設計_第1頁
定時鬧鐘C51單片機課程設計_第2頁
定時鬧鐘C51單片機課程設計_第3頁
定時鬧鐘C51單片機課程設計_第4頁
定時鬧鐘C51單片機課程設計_第5頁
已閱讀5頁,還剩29頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、題目: 定時鬧鐘目錄一、 概述111設計目的及意義112設計任務113設計系統的主要功能1二、 系統總體方案及硬件設計221系統總體方案222系統設計總框圖223硬件設計2231單片機最小系統設計2232報警模塊設計6233顯示模塊設計7234調時模塊設計9三、 軟件設計1031主程序流程圖1032定時中斷子程序流程圖1133程序設計11四、 系統的仿真與調試1241 proteus軟件仿真1242系統的調試11五、設計總結與體會13參考文獻13附錄1:源程序代碼14附錄2:系統原理圖24一、 概述11設計目的及意義學習和鞏固單片機技術、電子技術、傳感器技術及智能儀器等知識,使對已學過的基礎知

2、識能有更深入的理解,并融會貫通。學會獨立思考、獨立工作,培養一定的自學能力和獨立分析問題能力,以及增強系統地運用已學理論知識去解決實際問題的能力,同時培養成良好的科學態度和嚴謹的設計習慣。12設計任務完成所選題目的分析與設計,達到技術性能要求。提交正式課程設計總結報告一份。本文設計的定時鬧鐘的核心模塊采用AT89C51芯片,時、分、秒用6位LED數碼管顯示。在電路中通過四個按鍵S1、S2、S3和S4來進行定時、調時和復位,定時時間到通過蜂鳴器發出報警聲。13設計系統的主要功能(1) 能顯示 時時分分秒秒。(2) 能夠設置定時時間、 修改定時時間。(3) 定時時間到能發出報警聲。二、 系統總體方

3、案及硬件設計21系統總體方案(1) 由于LED顯示器相對于其它顯示器(如LCD顯示器)來說其價格要便宜許多,而且亮度更高,耐溫范圍較廣,所以采用6位數碼管來顯示“時時分分秒秒”。(2) 時間的定時用單片機內部時鐘電路,在一定的時間內能使其誤差較小,如經過一年其誤差才僅有數秒。修改時間和定時用手動按鍵控制,報警聲通過蜂鳴器發出。這樣可以使得硬件電路設計較為簡單,且軟件設計也易于實現,并能夠降低成本。(3) 核心模塊采用AT89C51單片機,功能強、通用性好、價格便宜,且易于控制。加上外圍器件(數碼管、排阻、按鍵和蜂鳴器)和應用程序,便構成了相應的應用系統。22系統設計總框圖數碼管顯示(如圖1所示

4、)時鐘電路和復位電路單片機 AT89 C51鍵盤(按鈕)蜂鳴器 圖1定時鬧鐘系統設計總框圖23硬件設計231單片機最小系統設計(1) 芯片:AT89C51 因為51單片機是各單片機中最為典型和最有代表性的一種,在20世紀70年代問世以來,以其極高的性能價格比,受到人們的重視和關注,應用廣泛,發展很快,推廣率和市場利潤率較高,且適合于本設計系統中CPU內存和I/O等資源的要求,所以本設計采用AT89C51作為核心控制芯片。AT89C51是一種帶4KB閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Memory)的單片機,

5、可穩定地工作于5V的電源下。其集成度高、功能強、能耗低、通用性好、價格便宜。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器。其組合而成的配件產品在日常生活的使用過程中非常方便、簡單且實用,深受著廣大消費者的喜愛。AT89C51管腳說明如下:  :供電電壓端。     :接地端。     P0口:P0口為三態雙向口,能帶8個TTL電路。有兩種功能:第一功能是一

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

7、一個內部帶上拉電阻的8位準雙向I/O口,P2口緩沖器可接收、輸出4個TTL門電流。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。     P3口:P3口是一個內部帶上拉電阻的準雙向I/O口,可接收輸出4個TTL門電流。同時為閃爍編程和編程校驗接收一些控制信號。P3口的8個引腳都有各自的第二功能,可作為AT89C51的一些特殊功能口,如表1所示。 表1 P3口第二功能P3口引腳第二功能注釋P3.0串行輸入口P3.1串行輸出口P3.2外部中斷0輸入P3.3外

8、部中斷1輸入P3.4定時/計時器0外部輸入P3.5定時/計時器1外部輸入P3.6外部數據存儲器寫信號P3.7外部數據存儲器讀信號   :為復位信號輸入端。當振蕩器復位器件時,要保持RST腳兩個機器周期(24個時鐘周期)以上的高電平時間。為內部的備用電源輸入端。當主電源一旦發生斷電或電壓降到一定值時,可通過為單片機內部提供電源,以保護片內中的信息不丟失,使上電后能繼續正常運行。 :為地址鎖存允許信號,當訪問外部存儲器時,用來鎖存口送出的低8位地址信號。在編程期間,用于輸入編程脈沖。在平時,端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈

9、沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個脈沖。如想禁止的輸出可在的8EH地址上置0。此時,只有在執行MOVX,MOVC指令時才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態禁止,置位無效。    :外部程序存儲器的讀選通信號。在由外部程序存儲器取指期間,產生負脈沖做為外部的選通信號,每個機器周期兩次有效。但在訪問外部數據存儲器時,不會產生有效的信號。可驅動8個門輸入端。     :訪問外部程序存儲器控制信號。當保持低電平時,則在此期間只訪問外部程序存儲器(0000H-FFFFH),不

10、管是否有內部程序存儲器。注意加密方式1時,將內部鎖定為。當端保持高電平時,訪問程序存儲器有兩種情況:一是訪問的地址空間在0到4KB范圍內,訪問片內程序存儲器;二是訪問的地址超出4KB時,將自動執行外部程序存儲器的程序。在編程期間,此引腳也用于施加12V編程電源()。:晶體振蕩電路的反向器輸入端。 :晶體振蕩電路的反向器輸出端。 (2) 時鐘電路單片機的時鐘產生方法有兩種: 內部時鐘方式和外部時鐘方式。 本系統中AT89C51單片機采用內部時鐘方式。最常用的內部時鐘方式是采用外接晶體和電容組成的并聯諧振回路。振蕩晶體可在1.2MHz12MHz之間。電容值無嚴格要求,但電容取值對振蕩頻率輸出的穩定

11、性、大小和振蕩電路起振速度有少許影響,一般可在20pF100pF之間取值。AT98C51單片機的時鐘電路如圖3所示。圖3 AT98C51單片機的時鐘電路(3) 復位電路復位是單片機的初始化操作。單片機系統在上電啟動運行時,都需要先復位。其作用是使CPU和系統中其他部件都處于一個確定的初始狀態,并從這個狀態開始工作。單片機的外部復位電路有上電自動復位和按鍵手動復位兩種。本系統中AT89C51單片機采用上電加按鍵手動復位電路,如圖4所示。圖4 AT89C51單片機的復位電路232報警模塊設計為實現設計的定時鬧鐘系統在定時時間到時發出報警聲,采用蜂鳴器作為報警發聲裝置。在本設計中有多種報警聲可供選擇

12、,可選擇報警時播放音樂。報警電路設計如圖5所示。圖5 定時鬧鐘系統的報警電路233顯示模塊設計本系統中采用6位LED數碼管顯示時、分、秒,用兩片74HC573分別對段碼和位碼進行鎖存,實現動態掃描方式顯示,節省單片機I/O口資源,簡化硬件電路。(1) LED顯示器單片機中通常使用8段LED,LED是發光二極管顯示器的縮寫。LED顯示器由于結構簡單,價格便宜,體積小,亮度高,電壓低,耐溫范圍廣,可靠性高,壽命長,響應速度快,顏色鮮艷,配置靈活,與單片機接口方便而得到廣泛應用。LED顯示器是由若干個發光二極管組成顯示字段的顯示部件,當發光二極管導通時,相應的一個點或一個筆劃發光,控制不同組合的二極

13、管導通,就能顯示出各種字符。LED顯示器有多種形式,如:“米”字型顯示器,點陣顯示器和七段數碼顯示器等。在本系統中采用八段數碼顯示器。因為共陰極的LED數碼管它的驅動電流是分開的,在單片機進行動態掃描的時候不會影響彼此的電流,故本系統中的6位LED數碼管均用共陰極的數碼管。(2) 74HC573芯片特點:三態總線驅動輸出,置數全并行存取,緩沖控制輸入,使能輸入有改善抗擾度的滯后作用。  原理說明:74HC573的八個鎖存器都是透明的D型鎖存器,當使能(G)為高時,Q輸出將隨數據(D)輸入而變。當使能為低時,輸出將鎖存在已建立的數據電平上。輸出控制不影響鎖存器的內部工作,即老數據可以保

14、持,甚至當輸出被關閉時,新的數據也可以置入。這種電路可以驅動大電容或低阻抗負載,可以直接與系統總線接口并驅動總線,而不需要外接口。特別適用于緩沖寄存器,I/O 通道,雙向總線驅動器和工作寄存器。74HC573引腳說明:OE:3態輸出使能輸入(低電平有效)。D0 - D7:數據輸入端。Q0 - Q7:3態鎖存輸出。LE:鎖存使能輸入。GND:接地。VCC:電源電壓。74HC573的引腳圖、邏輯圖及真值表如下:圖6    74HC573引腳圖圖7 74HC573邏輯圖表2 74HC573真值表OELEDQ HXXZLLXNO CHANGE LHLLLHHH(

15、3) 顯示電路將兩片74HC573的數據輸入端D0 - D7都分別與AT89C51單片機的P0.0 - P0.7和RESPACK-8排阻的 2 - 9 引腳連接,兩片74HC573的鎖存使能端L分別接至P2.6和P2.7,74HC573的輸出端接至數碼管234調時模塊設計本系統要進行時間的調整和定時,因此用4個手動按鍵對其進行控制。鍵盤電路設計如圖9所示。當按下時間調整鍵S1時,系統可進行時間調整的小時設置;當再按下S1時,可進行時間調整的分鐘設置;再按下S1時,可進行時間調整的秒鐘設置;再次按下S1時,系統恢復正常時間顯示。當按下設置定時鍵S2時,系統可進行鬧鐘定時時間的小時設置,此時S1作

16、為報警聲選擇鍵,可通過S1選擇報警聲;再按下S2時,可進行定時時間的分鐘設置,此時也可通過S1選擇報警聲;第三次按下S2時,系統恢復正常時間顯示,此時S1恢復為時間調整按鍵。設置時間時都通過加時按鍵S3和減時按鍵S4進行控制。圖9 定時鬧鐘系統的鍵盤電路三、 軟件設計31主程序流程圖開始初始化顯示時間NS1按下?YNS2按下?調整時間NNYS1按下?S3按下?YY選擇報警聲加時調整NNS3按下?S4按下?YY定時加時減時調整NS4按下?Y定時減時圖10主程序流程圖32定時中斷子程序流程圖開始N1秒到?Y秒變量加1N60秒到?Y分變量加1,秒變量清零N60分到?Y時變量加1,分變量清零N24時到

17、?Y時變量清零蜂鳴器響Y定時到?N結 束圖11定時中斷子程序流程圖33程序設計 根據程序流程圖采用匯編語言進行程序設計,其中主程序可根據系統實現的功能劃分為以下幾個子程序模塊。(程序源代碼見附錄1)(1) 時間調整子程序模塊;(2) 鬧鐘時間設置子程序模塊;(3) 蜂鳴器報警子程序模塊;(4) 數碼管顯示子程序模塊。四、 系統的仿真與調試41 proteus軟件仿真使用WAVE軟件編輯程序,在仿真設置中選擇E6000/T仿真器,選擇POD-51仿真頭。為方便系統在proteus中進行仿真,選擇了7SEG-MPX6-CC-BLUE數字顯示器,并改變了一些I/O連接,然后選擇80C51CPU進行匯

18、編程序編輯。經過仿真得知,通過S1、S2、S3和S4四個按鍵,可以對時間進行修改和鬧鐘的設置,定時時間到能發出報警聲,系統非常完善地實現了所有要求的功能。42 系統的調試將所編程序在KEIL軟件里進行編譯,編譯正確后生成HEX文件。 在AT89C51芯片中加載此文件后,對完成的實物作品進行調試。系統運行后,能準確的顯示時間,并能通過S1、S2、S3和S4四個按鍵對時間進行修改和鬧鐘定時時間的設置,定時時間到能發出報警聲。五、設計總結與體會設計是培養學生綜合運用所學知識,發現、提出、分析和解決實際問題,鍛煉實踐能力的重要環節,是對學生實際工作能力的具體訓練和考察過程。隨著科學技術發展的日新日異,

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

20、開始的確遇到了不少困難的問題,比如說芯片管腳不熟悉怎么放置等,同時在這過程中也發現了自己的許多不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。 通過單片機設計之后,我不僅加深了對單片機理論的理解,將理論很好地應用到實際當中去,而且我們還學會了如何去培養創新精神和嚴謹的科學作風,從而不斷地戰勝自己,超越自己。更重要的是,我在這一設計過程中,學會了堅持不懈,絕不放棄。參考文獻1張毅剛.單片機原理及應用.北京:高等教育出版社,20032王幸之.單片機應用系統電磁干擾與抗干擾技術.北京:北京航空航天大學出版社,20063何立民.單片機應用技術大全.北京:北京航空航天大學出版社,19944張

21、毅剛.單片機原理及接口技術.哈爾濱:哈爾濱工業大學出版社,19905譚浩強.單片機課程設計.北京:清華大學出版社,19896余錫純.單片機原理與接口技術.西安:電子科技大學出版社,20037Mak.S, Radford. D.Design considerations for implementation of large scale automatic meter reading systems.Power Delivery, IEEE Tra

22、nsactions on,Volume 10,  Issue 1,  Jan. 1995 附錄1:源程序代碼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 E

23、QU 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 ;按鍵計數變量1 NUM2 EQU 36H ;按鍵計數變量2 COUNT EQU 37H ;計時變量 ORG 0000H LJMP MAIN ORG 000BH LJMP TIME;* MAIN PROGRAM * ORG 1000H

24、MAIN: MOV SP,#50HSTART: MOV HOUR1,#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不為

25、0時轉移 LCALL DISPLAY1 ;顯示當前時間 LCALL KEYTIME ;調用時間調整子程序 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

26、MSTOP1 ;P3.3=0時轉移 INC NUM2 ;按鍵計數變量加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 ;P

27、3.4=0時轉移 MOV A,NUM2 CJNE A,#1,MM1 ;判斷按鍵計數是否為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

28、則復位0 LCALL DISPLAY2 ;顯示定時時間KK2:LCALL 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,NU

29、M2 CJNE A,#2,LL5 ;判斷按鍵計數是否為2DEC MIN2MOV 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

30、TR0 ;定時器中斷關閉L2: CJNE A,#4,L3 ;判斷按鍵計數是否為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

31、DISPLAY1 ;顯示調整時間M1: LCALL DISPLAY1 ;顯示調整時間 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

32、S4,L5 ;P3.5=1時轉移 LCALL DELAY5 ;延時5MSK3: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

33、 ;顯示調整時間M4:LCALL DISPLAY1 ;顯示調整時間MOV 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;* DIS

34、PLAY1 PROGRAM *DISPLAY1: ;顯示子程序1 PUSH 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;打

35、開段選鎖存器鎖存端 CLR DULACLR WELA;關閉位選鎖存器鎖存端 MOV P0,#0FEH;選擇第1位數碼管 SETB WELA;打開位選鎖存器鎖存端 CLR WELA LCALL DELAY5 CLR DULA;關閉段選鎖存器鎖存端MOV A,B1 MOVC A,A+DPTR MOV P0,A;顯示小時個位SETB DULA;打開段選鎖存器鎖存端 CLR DULACLR WELA;關閉位選鎖存器鎖存端 MOV P0,#0FDH;選擇第2位數碼管 SETB WELA;打開位選鎖存器鎖存端 CLR WELA LCALL DELAY5 CLR DULA;關閉段選鎖存器鎖存端MOV A,C

36、1 MOVC A,A+DPTR MOV P0,A;顯示分鐘十位SETB DULA;打開段選鎖存器鎖存端 CLR DULACLR WELA;關閉位選鎖存器鎖存端 MOV P0,#0FBH;選擇第3位數碼管 SETB WELA;打開位選鎖存器鎖存端 CLR WELA LCALL DELAY5 CLR DULA;關閉段選鎖存器鎖存端MOV A,D1 MOVC A,A+DPTR MOV P0,A;顯示分鐘個位SETB DULA;打開段選鎖存器鎖存端 CLR DULACLR WELA;關閉位選鎖存器鎖存端 MOV P0,#0F7H;選擇第4位數碼管 SETB WELA;打開位選鎖存器鎖存端 CLR WE

37、LA LCALL DELAY5 CLR DULA;關閉段選鎖存器鎖存端MOV A,E1 MOVC A,A+DPTR MOV P0,A;顯示秒鐘十位SETB DULA;打開段選鎖存器鎖存端 CLR DULACLR WELA;關閉位選鎖存器鎖存端 MOV P0,#0EFH;選擇第5位數碼管 SETB WELA;打開位選鎖存器鎖存端 CLR WELA LCALL DELAY5 CLR DULA;關閉段選鎖存器鎖存端MOV A,F1 MOVC A,A+DPTR MOV P0,A;顯示秒鐘個位SETB DULA;打開段選鎖存器鎖存端 CLR DULACLR WELA;關閉位選鎖存器鎖存端 MOV P0,

38、#0DFH;選擇第6位數碼管 SETB WELA;打開位選鎖存器鎖存端 CLR WELA LCALL DELAY5POP ACC ;恢復現場 RET;* DISPLAY2 PROGRAM *DISPLAY2: ;顯示子程序2 PUSH ACC ;保護現場 MOV A,HOUR2 ;將時間的十位和個位分別賦給顯示變量 MOV B,#10 DIV AB MOV 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;關閉段選鎖存器鎖存端MOV A,A2 MOVC

39、A,A+DPTR MOV P0,A;顯示定時時間的小時十位SETB DULA;打開段選鎖存器鎖存端 CLR DULACLR WELA;關閉位選鎖存器鎖存端 MOV P0,#0FEH;選擇第1位數碼管 SETB WELA;打開位選鎖存器鎖存端 CLR WELA LCALL DELAY5 CLR DULA;關閉段選鎖存器鎖存端MOV A,B2 MOVC A,A+DPTR MOV P0,A;顯示定時時間的小時個位SETB DULA;打開段選鎖存器鎖存端 CLR DULACLR WELA;關閉位選鎖存器鎖存端 MOV P0,#0FDH;選擇第2位數碼管 SETB WELA;打開位選鎖存器鎖存端 CLR

40、 WELA LCALL DELAY5 CLR DULA;關閉段選鎖存器鎖存端MOV A,C2 MOVC A,A+DPTR MOV P0,A;顯示定時時間的分鐘十位SETB DULA;打開段選鎖存器鎖存端 CLR DULACLR WELA;關閉位選鎖存器鎖存端 MOV P0,#0FBH;選擇第3位數碼管 SETB WELA;打開位選鎖存器鎖存端 CLR WELA LCALL DELAY5 CLR DULA;關閉段選鎖存器鎖存端MOV A,D2 MOVC A,A+DPTR MOV P0,A;顯示定時時間的分鐘個位SETB DULA;打開段選鎖存器鎖存端 CLR DULACLR WELA;關閉位選鎖

41、存器鎖存端 MOV P0,#0F7H;選擇第4位數碼管 SETB WELA;打開位選鎖存器鎖存端 CLR WELA LCALL DELAY5POP ACC ;恢復現場RET;* DELAY PROGRAM *DELAYN: ;N ms延時子程序,R7為參數NDL00: MOV R5,#05H DL11: MOV R6,#0DFHDL22: DJNZ R6,DL22 DJNZ R5,DL11 DJNZ R7,DL00 RETDELAY5: MOV R4,#14H ;5ms延時子程序DL001: MOV R5,#0FFHDL111: DJNZ R5,DL111 DJNZ R4,DL001 RET;

42、* TIME PROCESS *TIME: PUSH ACC ;定時中斷子程序 PUSH PSW ;保護現場 MOV TH0,#0D8H ;初值 MOV TL0,#0EFHINC COUNT ;計時變量加1MOV A,COUNTCJNE A,#18,RET0 ;1秒到否MOV COUNT,#0INC SEC1MOV A,HOUR1 ;判斷定時時間到否MOV B,HOUR2CJNE A,B,HTHTMOV A,MIN1MOV B,MIN2CJNE A,B,HTHTLCALL TIMEPRO ;調用蜂鳴器報警子程序HTHT:MOV A,SEC1CJNE A,#60,RET0 ;1分到否MOV SE

43、C1,#0INC MIN1MOV A,MIN1CJNE A,#60,RET0 ;1小時到否MOV MIN1,#0INC HOUR1MOV A,HOUR1CJNE A,#24,RET0MOV HOUR1,#0RET0: POP PSW ;恢復現場 POP ACC RETITABLE: DB 3FH,06H,5BH,4FH,66H ;七段碼表 DB 6DH,7DH,07H,7FH,6FHEND附錄2:系統原理圖附錄三 液晶顯示一、 實驗目的1 了解液晶工作原理2 熟悉12232F液晶的引腳功能、工作時序及工作方式3 掌握如何根據時序圖編寫程序的方法。二、 實驗內容用實驗箱上提供的12232F液晶模塊,編寫程序,靜態顯示“······

溫馨提示

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

評論

0/150

提交評論