單片機課程設計—定時鬧鐘設計_第1頁
單片機課程設計—定時鬧鐘設計_第2頁
單片機課程設計—定時鬧鐘設計_第3頁
單片機課程設計—定時鬧鐘設計_第4頁
單片機課程設計—定時鬧鐘設計_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課 程 設 計 說 明 書課程名稱: 通信電子線路 設計題目: 定時鬧鐘設計 院 系: 電子信息與電氣工程學院 學生姓名: 學 號: 專業(yè)班級: 指導教師: 2012年 5月 18 日5課 程 設 計 任 務 書設計題目定時鬧鐘設計學生姓名付文軍所在院系電子信息與電氣學院專業(yè)、年級、班09通信設計要求:本設計主要是對51單片機的一個方面的拓展,是能實現(xiàn)一般定時鬧鐘功能的設計。需要實現(xiàn)某一功能時,按對應的按鍵即可,可以實現(xiàn)顯示,定時,修改定時,定時時間到能發(fā)出報警聲的功能。系統(tǒng)采用單片機at89s52作為本設計的核心元件,在其基礎上外圍拓展芯片和外圍電路,附加時鐘電路,復位電路,鍵盤接口及l(fā)ed

2、顯示。鍵盤采用獨立連接式。還有報警系統(tǒng),及定時時間到,通過揚聲器發(fā)出警報聲,提示預先預定時間到,從而起到定時作用。學生應完成的工作:硬件電路的總體設計和硬件電路原理圖的繪制;軟件程序的總體設計方案及軟件流程圖的繪制軟件程序的編輯和調試工作;軟件電路結合應電路的仿真和測試工作;電路板的制作,以及實物元器件的焊接工作。在整個課程設計中,我負責資料的查找和硬件電路的設計參考文獻閱讀:1 杜尚豐. can總線測控技術及其應用.北京:電子工業(yè)出版社,2007.12 杜樹春.單片機c語言和匯編語言混合編程實例詳解.北京:北京航空航天大學出版社,2006.63 張毅剛單片機原理及應用北京:高等教育出版社,2

3、0092工作計劃:5月7號 接受任務,分析題目并查閱相關資料,做出整體硬件電路的設計方案。5月8號-9號 根據(jù)所提出電路的設計方案,繪制硬件電路。5月10號 查閱資料,分析所設計系統(tǒng)的軟件結構,并做出設計方案。5月11號-12號 由系統(tǒng)軟件的設計方案,繪制程序流程圖,并且根據(jù)流程圖編寫系統(tǒng)程序。5月15號 結合程序和硬件電路,用proteus、 keil、matlab進行電路仿真調試,5月16號-18號 進行焊接,調試仿真,完成設計驗收上交設計報告。任務下達日期:2012 年5月 7 日 任務完成日期:2012 年5月 18 日指導教師(簽名): 學生(簽名): 定時鬧鐘設計摘 要:定時鬧鐘設

4、計主要有硬件部分和軟件部分組成,硬件部分以單片機為核心,在其周圍有電源電路、時鐘電路、復位電路、驅動電路和顯示電路組成。軟件部分用匯編語言編程,用keil軟件編譯、調試。最后用proteus軟件仿真,形成以單片機為樞紐,以程序為動力,使鬧鐘實現(xiàn)功能。關鍵詞:at89s52 定時鬧鐘 keil proteus 匯編語言目 錄1. 設計背景 11.1設計課題及目的11.2相關技術與應用領域12.設計方案12.1總體方案12.2硬件設計22.3軟件設計73.方案實施83.1方案流程圖83.2 proteus的系統(tǒng)仿真84. 結果與結論94.1 課程設計結果94.2課程設計結論95.收獲與致謝96.參

5、考文獻107.附件117.1系統(tǒng)總體電路圖117.2系統(tǒng)實物圖117.3 程序源代碼127.4元器件清單161. 設計背景1.1設計課題及目的本課題是以單片機為核心,通過動態(tài)掃面的方式,實現(xiàn)定時鬧鐘功能。單片機即單片微型計算機,是集cpu,ram,rom,定時,計數(shù),和多種接口于一體的微控制器,他體積小,成本低,功能強,廣泛應用于智能產品和工業(yè)自動化上,at89s52單片機是各單片機中比較具有代表性的一種。這次課程設計通過對他的學習,應用,從而達到學習,設計,開發(fā)軟硬件的能力.1.2相關技術與應用領域電子鬧鐘是采用數(shù)字電路實現(xiàn)對時分秒數(shù)字顯示的機試裝置,廣泛用于個人家庭,車站,碼頭辦公室等公共

6、場所,稱為人們日常生活中不可缺少的必需品,由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應用,使得數(shù)字鐘的精度,遠遠超于老式鐘表,中標的數(shù)字化給人們生產生活帶來了極大的方便,而且大大地拓展了鐘表的報時功能。諸如定時自動報警、按時自動打鈴、時間程序自動控制、定時廣播、自動啟閉路燈、定時開關烘箱、通斷動力設備、甚至各種定時電氣的自動啟用等,所有這些,都是以鐘表數(shù)字化為基礎的。數(shù)字鐘已經(jīng)成為人們日常生活中必不可少的必需品,廣泛用于個人家庭、車站、碼頭、辦公室等公共場所,給人們的生活、學習、工作、娛樂帶來極大的方便。由于數(shù)字集成電路技術的發(fā)展和采用了先進的石英技術,使數(shù)字鐘具有走時準確、性能穩(wěn)定、攜帶方

7、便等優(yōu)勢,它還用于計時自動報時及自動控制的領域。因此,研究定時數(shù)字鬧鐘及擴大其應用,有著非?,F(xiàn)實的意義。2.設計方案2.1總體方案2.1.1方案比較方案一:采用數(shù)字電路實現(xiàn)。數(shù)字電子鐘是用數(shù)字集成電路構成的,用數(shù)碼管顯示“時”,“分”,“秒”的現(xiàn)代計時裝置。若用數(shù)字電路完成,所設計的電路相當復雜,大概需要十幾片數(shù)字集成塊,其功能也主要依賴于數(shù)字電路的各功能模塊的組合來實現(xiàn),焊接的過程比較復雜,成本也非常高。方案二:用單片機來設計制作完成,由于其功能的實現(xiàn)主要通過軟件編程來完成,那么就降低了硬件電路的復雜性,而且其成本也有所降低,另外,使用是單片機作為核心的控制元件,使得電路的可靠性比較高,功能

8、也比較強大,而且可以隨時的更新系統(tǒng),進行不同狀態(tài)的組合。經(jīng)過上面的對比本設計采用單片機作為設計的主體本系統(tǒng)采用單片機at89s52作為本設計的核心元件,利用7段共陽led作為顯示器件。接入共陽led顯示器,可顯示,分鐘,秒,單片機外圍接有定時報警系統(tǒng),定時時間到,揚聲器發(fā)出報警聲,提示預先設定時間到。電路有下列部分組成:時鐘電路、復位電路、控制電路、led顯示,報警電路,芯片選用at89s51單片機。系統(tǒng)基本框圖:at89s52報警器數(shù)碼顯示鍵盤電路時鐘電路圖1系統(tǒng)基本框圖2.2硬件設計2.2.1 單片機at89s52at89s52為 atmel 所生產的一種低功耗、高性能cmos8位微控制器

9、,具有8k在系統(tǒng)可編程flsah存儲器。(一)、at89s52主要功能列舉如下:1、擁有靈巧的8位cpu和在系統(tǒng)可編程flash2、晶片內部具時鐘振蕩器(傳統(tǒng)最高工作頻率可至 12mhz)3、內部程序存儲器(rom)為 8kb4、內部數(shù)據(jù)存儲器(ram)為 256字節(jié)5、32 個可編程i/o 口線6、8 個中斷向量源7、三個 16 位定時器/計數(shù)器8、三級加密程序存儲器9、全雙工uart串行通道(二)、at89s52各引腳功能介紹:圖2at89s52管腳圖vcc:at89s52電源正端輸入,接+5v。vss:電源地端。xtal1:單芯片系統(tǒng)時鐘的反相放大器輸入端。xtal2:系統(tǒng)時鐘的反相放大

10、器輸出端,一般在設計上只要在 xtal1 和 xtal2 上接上一只石英振蕩晶體系統(tǒng)就可以動作了,此外可以在兩引腳與地之間加入一 20pf 的小電容,可以使系統(tǒng)更穩(wěn)定,避免噪聲干擾而死機reset:at89s52的重置引腳,高電平動作,當要對晶片重置時,只要對此引腳電平提升至高電平并保持兩個機器周期以上的時間,at89s51便能完成系統(tǒng)重置的各項動作,使得內部特殊功能寄存器之內容均被設成已知狀態(tài),并且至地址0000h處開始讀入程序代碼而執(zhí)行程序。ea/vpp:ea為英文external access的縮寫,表示存取外部程序代碼之意,低電平動作,也就是說當此引腳接低電平后,系統(tǒng)會取用外部的程序代

11、碼(存于外部eprom中)來執(zhí)行程序。因此在8031及8032中,ea引腳必須接低電平,因為其內部無程序存儲器空間。如果是使用 8751 內部程序空間時,此引腳要接成高電平。此外,在將程序代碼燒錄至8751內部eprom時,可以利用此引腳來輸入21v的燒錄高壓(vpp)。ale/prog:ale是英文address latch enable的縮寫,表示地址鎖存器啟用信號。at89s52可以利用這支引腳來觸發(fā)外部的8位鎖存器(如74ls373),將端口0的地址總線(a0a7)鎖進鎖存器中,因為at89s52是以多工的方式送出地址及數(shù)據(jù)。平時在程序執(zhí)行時ale引腳的輸出頻率約是系統(tǒng)工作頻率的1/6

12、,因此可以用來驅動其他周邊晶片的時基輸入。此外在燒錄8751程序代碼時,此引腳會被當成程序規(guī)劃的特殊功能來使用。psen:此為program store enable的縮寫,其意為程序儲存啟用,當8051被設成為讀取外部程序代碼工作模式時(ea=0),會送出此信號以便取得程序代碼,通常這支腳是接到eprom的oe腳。at89s52可以利用psen及rd引腳分別啟用存在外部的ram與eprom,使得數(shù)據(jù)存儲器與程序存儲器可以合并在一起而共用64k的定址范圍。port0(p0.0p0.7):端口0是一個8位寬的開路汲極(open drain)雙向輸出入端口,共有8個位,p0.0表示位0,p0.1表

13、示位1,依此類推。其他三個i/o端口(p1、p2、p3)則不具有此電路組態(tài),而是內部有一提升電路,p0在當做i/o用時可以推動8個ls的ttl負載。如果當ea引腳為低電平時(即取用外部程序代碼或數(shù)據(jù)存儲器),p0就以多工方式提供地址總線(a0a7)及數(shù)據(jù)總線(d0d7)。設計者必須外加一鎖存器將端口0送出的地址栓鎖住成為a0a7,再配合端口2所送出的a8a15合成一完整的16位地址總線,而定址到64k的外部存儲器空間。port2(p2.0p2.7):端口2是具有內部提升電路的雙向i/o端口,每一個引腳可以推動4個ls的ttl負載,若將端口2的輸出設為高電平時,此端口便能當成輸入端口來使用。p2

14、除了當做一般i/o端口使用外,若是在at89s52擴充外接程序存儲器或數(shù)據(jù)存儲器時,也提供地址總線的高字節(jié)a8a15,這個時候p2便不能當做i/o來使用了。port1(p1.0p1.7):端口1也是具有內部提升電路的雙向i/o端口,其輸出緩沖器可以推動4個ls ttl負載,同樣地若將端口1的輸出設為高電平,便是由此端口來輸入數(shù)據(jù)。如果是使用8052或是8032的話,p1.0又當做定時器2的外部脈沖輸入腳,而p1.1可以有t2ex功能,可以做外部中斷輸入的觸發(fā)腳位。port3(p3.0p3.7):端口3也具有內部提升電路的雙向i/o端口,其輸出緩沖器可以推動4個ttl負載,同時還多工具有其他的額

15、外特殊功能,包括串行通信、外部中斷控制、計時計數(shù)控制及外部數(shù)據(jù)存儲器內容的讀取或寫入控制等功能。其引腳分配如下:p3.0:rxd,串行通信輸入。p3.1:txd,串行通信輸出。p3.2:int0,外部中斷0輸入。p3.3:int1,外部中斷1輸入。p3.4:t0,計時計數(shù)器0輸入。p3.5:t1,計時計數(shù)器1輸入。p3.6:wr:外部數(shù)據(jù)存儲器的寫入信號。p3.7:rd,外部數(shù)據(jù)存儲器的讀取信號。rst:復位輸入。當振蕩器復位器件時,要保持rst腳兩個機器周期的高電平時間。ale/prog:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編

16、程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。/psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/psen信號將不出現(xiàn)。/ea/vpp:當/ea保持低電平時,則在此期間外部程序存儲器(

17、0000h-ffffh),不管是否有內部程序存儲器。注意加密方式1時,/ea將內部鎖定為reset;當/ea端保持高電平時,此間內部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。xtal1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。xtal2:來自反向振蕩器的輸出。2.2.2時鐘電路單片機的時,鐘產生方法有兩種:內部時鐘方式和外部時鐘方式。本系統(tǒng)中at89s52單片機采用內部時鐘方式。最常用的內部時鐘方式是采用外接晶體和電容組成的并聯(lián)諧振回路。震蕩晶體為1.2mhz12mhz之間。電容值無嚴格要求,但電容取值對振蕩頻率輸出的穩(wěn)定性、大小和振蕩電路起振速度有少許

18、影響。at89s52單片機的時鐘電路如圖3所示。圖3 時鐘電路2.2.3數(shù)碼管顯示電路單片機中通常使用7段led,led是發(fā)光二極管顯示器的縮寫。led顯示器由于結構簡單,價格便宜,體積小,亮度高,電壓低,可靠性高,壽命長,響應速度快,顏色鮮艷,配置靈活,與單片機接口方便而得到廣泛使用。圖4引腳配置led七段數(shù)碼管顯示器由8個發(fā)光二極管組成顯示字符,根據(jù)內部發(fā)光二極管的連接形式不同,led有共陽和共陰極兩種,如上圖4所示: 采用高亮共陰型數(shù)位數(shù)碼管,為示區(qū)別,顯示秒的兩個數(shù)碼管個頭較小,另外4個較大。共陰數(shù)碼管接線如下:一般用7個發(fā)光二極管構成顯示數(shù)字和符號,另外還用一段發(fā)光二極管顯示小數(shù)點。

19、這種顯示器一般分為兩種,共陰極顯示器是把每個二極管的陰極連在一起,共陽極顯示器是把每個二極管的正端連在一起。一只顯示器是有8個發(fā)光二級管構成,當把某段加正向電壓時,則該段所對應的筆劃亮,不加正向電壓則暗,為了保護各種不收損壞需要加限流電阻,無論是共陽極顯示器還是共陰極顯示器,它的8段排列順序都是一樣的:a段、b段、c段、d段、e段、f段、g段、和dp段。在單片機中通常使用7段led。2.3軟件設計2.3.1系統(tǒng)軟件設計該系統(tǒng)軟件主要是有主程序模塊,定時中斷服務程序,終端等待服務程序,鍵盤程序,顯示子程序等六大模塊組成,因為匯編語言使用助記符,符號和數(shù)字等來表示指令程序的語言,容易理解和記憶,所

20、以我們用匯編語言來寫程序。2.3.2 led七段led由七個發(fā)光二級管按日字排開,所有發(fā)光二極管的陽極連在一起成共陽極。當采用芯片驅動時不需要加限流電阻,其他情況下一般應用外接限流電阻。動態(tài)顯示電路有顯示快,字型碼封鎖驅動器,字位鎖存驅動器三部分組成。2.3.3蜂鳴報警電路在at89s52外圍的一個管口上加蜂鳴器,通過軟件與硬件的結合可實現(xiàn)定時鬧鐘功能。2.3.4電源電路電源電壓穩(wěn)壓流程方框圖如圖5。220v交流電51單片機7805穩(wěn)壓器變壓器橋式整流圖5電源電壓穩(wěn)壓流程方框圖電源電路如圖6所示,220v交流電經(jīng)過變壓器,再經(jīng)過橋堆2w10整流,然后由電容c6濾波后變?yōu)槊}動比較穩(wěn)定的直流電,最

21、后通過三端穩(wěn)壓器7805輸出穩(wěn)定的5v直流電壓。圖中c5用于抵消輸入線產生的電感效應,以防止電路產生自激振蕩其容較小,一般小于1f。電容c4用于消除輸出電壓的高頻噪聲,可取小于1f的電容,也可取幾微法甚至幾十微法的電容,以便輸出較大的脈動電流。圖6電源電路3. 方案實施3.1系統(tǒng)流程圖開始初始化判斷鬧鐘時間是否到位調用時間設定程序調用顯示程序p1.2是否按下調用鬧鐘時間設定程序p1.1是否按下nyny圖7程序流程圖3.2proteus的系統(tǒng)仿真操作過程:設幾個按鍵從上往下為k1,k2,k3,k4。k1與p1.0相連,k2與p1.1相連,k3與p1.2相連,k4與p1.4相連。 當需要設定當前時

22、,按一下k1鍵,進入時間設定狀態(tài),按一下k2,小時加1,按一下k3,分加1.如此反復來設定當前時間。調好時間后按k4退出當前設定狀態(tài)。如下圖6:4. 結果與結論4.1課程設計結果經(jīng)過多次的軟件仿真測試,該系統(tǒng)均能夠產生與我們設計目標相符的結果。但是在元器件焊接完畢之后,卻不能夠正常的工作,經(jīng)過多方查證,覺得可能是由于電阻電容等器件參數(shù)設置有誤,導致電源模塊不能夠正常供電。之后我們對電路的原理圖又進行了進一步的分析,更換了幾個電阻和電容之后,定時鬧鐘終于能夠正常工作了。4.2課程設計結論對電路的分析,對元器件參數(shù)的設置,這些都是影響一件產品能否正常運行的重要指標,有時候理論上成功,并不代表實際生

23、產能夠成功,我們必須進行反復的、細致的研究。5. 收獲與致謝這是我第一次用單片機設計制作系統(tǒng),在設計過程中,我對單片機了解進一步加深,學會了對keil軟件和proteus軟件的使用。程序是整個系統(tǒng)的核心,沒有程序,硬件就無法運行,所以程序成為了我們組重點解決的問題。學好每一個軟件的使用方法,自己就可以在軟件里做自己想實現(xiàn)的功能。單片機作為我們的主要專業(yè)課之一,雖然在開學初我們對這門課并沒有什么興趣,覺得那些程序枯燥乏味,但在這次課程設計后,我發(fā)現(xiàn)自己在一點一滴的努力對單片機的興趣也在逐漸增加,我覺得做單片機課程設計是十分有意義的,而且是十分必要的,在一度過的大學時間里,我們大多數(shù)接觸的是專業(yè)課

24、,我們在課堂上掌握的僅僅是專業(yè)課的理論知識,如何去鍛煉我們的實踐能力,如何把我們所學的專業(yè)基礎理論知識運用到實踐中去呢?我想做課程設計就為我們提供了良好的實踐平臺。要做好一個課程設計,就必須做到:在設計程序之前,對所用單片機的內部結構有一個系統(tǒng)的了解,知道該單片機內部有哪些資源,要有一個清晰的思路和一個完整的軟件流程圖,再設計程序時,不要妄想一次就將整個程序設計好,反復修改,不斷改進是程序設計的必經(jīng)之路?;仡櫞舜螁纹瑱C課程設計,從理論到實踐的日子這兩個星期了,自己之前對單片機課程學習的不夠,最后吃了很大的苦頭,由于之前知識的欠缺導致在本次實習中,遇到很多問題,程序的編寫,硬件和軟件的設計。第一

25、星期大家主要是對軟件和硬件的設計,第二星期,主要負責元器件的焊接,之前有多焊接的實操,所以進行起來比較上手,出現(xiàn)的問題就是用萬用板時元器件的排版和布局。最后,通過這次的課程設計使我懂得自己的知識還遠遠不夠,只有不斷的學習才能成就一個自我。同時要感謝我們的指導老師郭麗霞老師對我們這兩個星期的指導和講解,也感謝我們的團隊。6. 參考文獻1 杜尚豐. can總線測控技術及其應用.北京:電子工業(yè)出版社,2007.12 杜樹春.單片機c語言和匯編語言混合編程實例詳解.北京:北京航空航天大學出版社,2006.63 張毅剛單片機原理及應用北京:高等教育出版社,200927. 附件7.1系統(tǒng)總體電路圖7.2系

26、統(tǒng)實物圖7.3程序源代碼2org 0000h ljmp mainorg 000bhljmp time主程序部分org 0100hmain:mov sp,#50hmov 20h,#00h mov 21h,#00h mov 22h,#00h mov 23h,#01hmov 24h,#01h mov 25h,#00h mov 30h,#00h mov 31h,#00hmov 32h,#00h mov 33h,#00h mov 34h,#00hmov 35h,#00hmov 36h,#01h mov 37h,#00h mov 38h,#01h mov 39h,#00hmov tmod,#01h ;16

27、 位計數(shù)器mov th0,#03ch ;賦計數(shù)初值mov tl0,#0b0h mov ie,#10000111b setb tr0 ;t0 啟動計數(shù)mov r2,#14h mov p2,#0ffh loop: lcall timepro lcall display1 jb p1.0,m1 lcall settime ;調用設定時間程序ljmp loopm1:jb p1.1,m2 lcall setatime ljmp loop m2:jb p1.3,m4 lcall lookatime m4:ljmp loop delay:mov r4,#030h dl00:mov r5,#0ffh dl11

28、:mov r6,#9h dl12:djnz r6,dl12 djnz r5,dl11 djnz r4,dl00 ret ;設定時間程序settime:l0:lcall display1mm1: jb p1.1,l1 mov c,p1.1 jc mm1 lcall delay1 ;調用延時jc mm1mstop1: mov c,p1.1jnc mstop1 ;判斷 p1.1 是否釋放?釋放則繼續(xù) lcall delay1 ;調用延時mov c,p1.1 jnc mstop1 inc 22h mov a,22h cjne a,#18h,go12 mov 22h,#00h mov 34h,#00h

29、mov 35h,#00h ljmp l0 l1:jb p1.2,l2 mov c,p1.2 jc l1 lcall delay1 jc l1 mstop2: mov c,p1.2 jnc mstop2;判斷 p1.2 是否釋放?釋放則繼續(xù)lcall delay1 ;調用延時mov c,p1.2 jnc mstop2 inc 21h mov a,21h cjne a,#3ch,go11 mov 21h,#00h mov 32h,#00h mov 33h,#00h ljmp l0 go11:mov b,#0ah div ab mov 34h,b mov 35h,a ljmp l0l2:jb p1.

30、3,l0mov c,p1.3jc l2lcall delay1mov c,p1.3 jc l2stop1: mov c,p1.3 jnc stop1 lcall delay1 mov c,p1.3 jnc stop1 ljmp loop設置鬧鐘時間setatime:lcall display2 n0:lcall display2 mm2: jb p1.2,n1;判斷 p1.2 是否按下?mov c,p1.2 jc mm2 lcall delay1 jc mm2 mstop3: mov c,p1.2 jnc mstop3 lcall delay1 13mov c,p1.2 jnc mstop3

31、inc 24h mov a,24h cjne a,#24,go22 mov 24h,#00h mov 38h,#00h mov 39h,#00h ljmp n0 n1:jb p1.0,n2mov c,p1.0 jc n1 lcall delay1 jc n1mstop4: mov c,p1.0 jnc mstop4 lcall delay1 mov c,p1.0 jnc mstop4 inc 23h mov a,23h cjne a,#60,go21 mov 23h,#00h mov 36h,#00h mov 37h,#00h ljmp n0 go21:mov div ab mov 36h,b

32、 mov 37h,a ljmp n0 go22: mov b,#0ah ;將 a 中的內容分成高低兩部分div ab mov 38h,bmov 39h,aljmpn0n2:jb p1.3 ,n0 ;判斷 p1.3 是否按下?mov c,p1.3 jc n2 lcall delay1 mov c,p1.3 jc n2 stop2: mov c,p1.3 ;判斷 p1.3 是否釋放?jnc stop2 lcall delay1mov c,p1.3 jnc stop2 ljmp looptimepro:mov a,21h mov b,23h cjne a,b,bk mov a,22h mov b,2

33、4h cjne a,b,bk setb 25h.0 mov c,25h.0 jc xx xx: lcall timeout ;調用時間鬧鐘響應程序bk:ret timeout:x1:lcall bz lcall display2 clr 25h.0 jb p1.3, x1 ;調用喇叭響應程序lcall delay clr 25h.0 ljmp display1 bz: clr p3.7 mov r7,#250 t2: mov r6,#124 t3: djnz r6,t3djnz r7,t2 setb p3.7 ret lookatime:lcall display2 mm: jb p1.3,l

34、ookatime ;判斷按鍵 p1.3 是否按下mov c,p1.3 jc mm lcall delay1 mov c,p1.3 jc mmstop3:mov c,p1.3 jnc stop3 lcall delay1mov c,p1.3 jnc stop3 ljmp loopdelay1: mov r4,#14h dl001: mov r5,#0ffh dl111: djnz r5,dl111djnz r4,dl001ret時間運行程序time: push acc push psw mov th0,#03ch mov tl0,#0b0h djnz r2,ret0mov r2,#14h mov a,20h clr c inc a ;秒鐘自加 1cjne a,#3ch,go1 ;判斷秒鐘是否到 60 秒?mov 20h,#0 ;到 60 秒復位mov 30h,#0 mov 31h,#0 mov a,21h inc a ;分鐘自加 1cjne a,#3ch,go2 ;判斷分鐘是否到 60 分?mov 21h,#0h ; 到 60 分復位mov 32h,#0 mov 33h,#0mov a,22h inc a ;時鐘自加 1cjne a,#18h,go3 ;判斷時

溫馨提示

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

評論

0/150

提交評論