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

下載本文檔

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

文檔簡介

51單片機定時鬧鐘設計摘要本設計是簡單定時鬧鐘系統(tǒng),不僅能實現(xiàn)系統(tǒng)要求的功能:(1)能顯示時時-分分-秒秒,(2)能設定和修改定時時間,(3)定時時間到后能發(fā)出報警聲;而且還有附加功能,即還能設定和修改當前所顯示的時間。本設計采用單片機AT89C51作為核心元件,12MHZ晶振,由P0口輸出所要顯示的字形段碼,由P2口輸出字位信號。在其基礎上擴展外圍芯片與電路,附加時鐘電路及LED電路。LED采用共陰極接法,低電平有效選中相應的LED。單片機具有集成度高、功能強、通用性好、特別是它能耗低、價格便宜、可靠性高、抗干擾能力強和使用方便等獨特的優(yōu)點,所以單片機現(xiàn)在廣泛的應用到家用電器、機電產品、兒童玩具、機器人、辦公自動化產品等領域。為了進一步的熟悉并掌握單片機的應用及開發(fā),認真的做好此次課程設計非常必要。一個單片機的定時鬧鐘系統(tǒng)離不開軟件和硬件,硬件是軟件的依托,軟件是硬件的內核。設計硬件電路時應該先設計一個單片機的最小系統(tǒng),它是單片機應用系統(tǒng)的設計基礎,然后在此基礎上添加外圍器件,如顯示器、按鍵等構成鬧鐘的硬件電路圖。在設計應用程序時遵循模塊化的設計方法,在明確了設計方向之后按照分成的幾大模塊分別畫出流程圖,然后根據(jù)流程圖寫出程序,在每個模塊編寫好之后分別調試、修改、完善。最后在主程序下調用再次調試、修改。軟硬件都設計好之后在Proteus環(huán)境下仿真,看它們是否配套,只有在Proteus下仿真沒有出現(xiàn)問題才能說明設計的定時鬧鐘成功了。本次設計嚴格按照上面的步驟,經過多次的修改、完善后終于可以在Proteus下很好的運行,設計成功。通過這次設計讓我更深入了解單片機基本電路、如何控制和定時器和中斷編程的基本方法,從而鍛煉了我學習、設計和開發(fā)軟、硬件的能力。目錄TOC\o"1-5"\h\z1.概述 21.1單片機簡介 21.2本設計簡介 3\o"CurrentDocument"2?系統(tǒng)總體方案及硬件設計 42.1本設計總體方案 42.2單片機AT89C51簡介 42.3數(shù)碼管顯示電路 72?4本設計輸入輸出電路 10\o"CurrentDocument"3軟件設計 113?1系統(tǒng)軟件設計說明 11LED的編程思想 123.3程序調試 123.4程序流程圖 12\o"CurrentDocument"4Proteus軟件仿真 144.1仿真步驟 144?2仿真過程中出現(xiàn)的錯誤及解決措施 144.3仿真結果 14設定當前時間 15設定定時時間 16\o"CurrentDocument"5課程設計體會 21參考文獻 22\o"CurrentDocument"附1:源程序代碼 23附2:系統(tǒng)原理圖 341.概述1.1單片機簡介?單片機基本概念單片機是一種特殊的計算機,它是在一塊半導體上集成了CPU、存儲器、以及輸入輸出接口電路,這種芯片被稱為單片微型計算機,簡稱單片機。由于單片機的集成度高、功能強、通用性好,貼別是他具有體積小、重量輕、能耗低、價格便宜、可靠性高、抗干擾能力強和使用方便等特點,使的單片機迅速得到了推廣,目前已成為測量控制應用系統(tǒng)中的優(yōu)選機種和新電子產品的關鍵部件。單片機產生與發(fā)展單片機是應工業(yè)測控系統(tǒng)數(shù)字化、智能化的迫切要求提出的。超大規(guī)模集成電路的出現(xiàn),通用CPU及其外圍電路技術的發(fā)展成熟,偉大偏激的誕生和發(fā)展提供了可能。單片機的發(fā)展完全從工業(yè)測控對象、環(huán)境、接口等特點出發(fā),不斷增強其控制功能,保證在工業(yè)測控環(huán)境中的可靠性,器接口界面也是按照能靈活、方便的構成工業(yè)測控用計算機系統(tǒng)而設計的。它的出現(xiàn)標志著計算機技術在工業(yè)領域中的應用開始走向完善與成熟。8位單片機從1976年開始至今,其技術已有了巨大的發(fā)展,目前仍是單片機的主流機型。其發(fā)展階段大致分為單片機探索階段、單片機完善階段、MCU形成階段和MCU完善階段。單片機的發(fā)展方向(1)主流機型發(fā)展趨勢(2) 全盤CMOS化趨勢(3) RISC體系結構的大發(fā)展(4)大力發(fā)展專用性單片機(5)單片機中的軟件嵌入?單片機的應用領域(一) 單機應用(1)智能產品(2)智能儀表(3)測控系統(tǒng)(4)智能接口(二) 多機應用(1)多功能彌散系統(tǒng)(2) 并行多機控制系統(tǒng)(3) 局部網絡系統(tǒng)單片機分類(1) 按應用領域(2) 按通用性(3) 按總線結構分(4)按位數(shù)分類本設計簡介課程設計的目的和意義課程設計是在學完《單片機原理及接口技術》課程之后綜合利用所學單片機知識完成一個單片機應用系統(tǒng)設計并在實驗室實現(xiàn),從而加深對單片機軟硬知識的理解,獲得初步的應用經驗,為走出校門從事單片機應用的相關工作打下基礎.課程設計的要求1)能顯示:時時—分分—秒秒2)能夠設定定時時間、修改定時時間3)定時時間到能發(fā)出報警聲課程設計的內容這一次課程設計,所設計的是一個定時鬧鐘,能顯示時-分-秒,能夠設計定時時間,修改定時時間,并且定時時間到了能發(fā)出報警聲。設計的部分分為軟件及硬件,軟件部分寫出鬧鐘的工作方式以及它是如何工作的,而硬件部分是軟件的載體,畫出正確的電路圖然后在軟件的控制下才能使設計的定時鬧鐘正常工作。2.系統(tǒng)總體方案及硬件設計2.1本設計總體方案本設計使用的是單片機作為核心的控制元件,使得電路的可靠性比較高,功能也比較強大,而且可以隨時的更新系統(tǒng),進行不同狀態(tài)的組合。本系統(tǒng)采用單片機AT89C51作為本設計的核心元件,利用7段共陰LED作為顯示器件。接入共陰LED顯示器,可顯示時,分鐘,秒,單片機外圍接有定時報警系統(tǒng),定時時間到,揚聲器發(fā)出報警聲,提示預先設定時間電器的起停時間到,從而控制電器的起停。電路由下列部分組成:時鐘電路、復位電路、控制電路、LED顯示,報警電路,芯片選用AT89C51單片機。2.2單片機AT89C51簡介AT89C51是一個低電壓,高性能CMOS型8位單片機,片內含4KB的可反復擦寫的Flash只讀程序存儲器(ROM)和128B的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統(tǒng),片內置通用8位中央處理器和Flash存儲單元,內置功能強大的微型計算機的AT89C51為用戶提供了許多高性價比應用場合,可靈活應用于各種控制領域。AT89C51是一個低功耗高性能單片機,40個引腳,32個外部雙向輸入/輸出(I/O)端口同時內含2個外中斷口2個16位可編程定時計數(shù)器,2個全雙工串行通信口,AT89C51可以按照常規(guī)方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結合在一起,特別是可反復擦寫的Flash存儲器可有效地降低開發(fā)成本。主要特性:?與MCS-51兼容?4K字節(jié)可編程閃爍存儲器?壽命:1000寫/擦循環(huán)?數(shù)據(jù)保留時間:10年?全靜態(tài)工作:0Hz-24Hz?三級程序存儲器鎖定?128X8位內部RAM?32可編程I/O線?兩個16位定時器/計數(shù)器?5個中斷源?可編程串行通道?低功耗的閑置和掉電模式?片內振蕩器和時鐘電路引腳使用說明:VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下所示:管腳……備選功能P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 /INTO(外部中斷0)P3.3……/INT1(外部中斷1)P3.4……T0(記時器0外部輸入)P3.5……T1(記時器1外部輸入)P3.6……/WR(外部數(shù)據(jù)存儲器寫選通)P3.7……/RD(外部數(shù)據(jù)存儲器讀選通)P3口同時為閃爍編程和編程校驗接收一些控制信號。ST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,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保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于

施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,XTAL2應不接。有余輸入至內部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度PI.QPi.ipi.iPl.3PI.4PL5PL6Pt.7ftST佩畑Pj.0P3.1{TWTT)P3-2(1ST1)P3,3CTO)4(ID??,,(Wft)P3.biXTAL2XTALiGNDATB3C51VCCFIT即MATB3C51VCCFIT即M冊PO.I/卩0.2/(ADI!PD.3/(AD3)FU?J/(AP4IPO.57CAD3)PO.6/(ADbkFCL7/(AD7I&</VPPALE/PKOCPSFNP2.7/(Al5)P2.6/(A14>P2.5/(A13>P2..4P2,3/(Al]】2/(AIO)P2-.1/fA*JJP2-U/(A8J圖2-1數(shù)碼管顯示電路單片機中通常使用7段LED,LED是發(fā)光二極管顯示器的縮寫。LED顯示器由于結構簡單,價格便宜,體積小,亮度高,電壓低,可靠性高,壽命長,響

應速度快,顏色鮮艷,配置靈活,與單片機接口方便而得到廣泛應用。LED顯示器是由若干個發(fā)光二極管組成顯示字段的顯示部件,當發(fā)光二極管導通時,相應的一個點或一個筆劃發(fā)光,控制不同組合的二極管導通,就能顯示出各種字符。LED七段數(shù)碼顯示器由8個發(fā)光二極管組成顯示字符,根據(jù)內部發(fā)光二極管的連接形式不同,LED有共陰極和共陽極兩種,本系統(tǒng)采用共陰極。LED的結構及連接如圖2-2所示gfGHDbed符號和引腳gfGHDbed符號和引腳圖2-2LED顯示原理當選用共陰極的LED時,所有發(fā)光二極管陰極連在一起接地,當某個發(fā)光二極管的陽極加入高電平時,對應的二極管點亮。因此要顯示某字形就應使此字形的相應段的二極管點亮,實際上就是送一個用不同電平組合代表的數(shù)據(jù)字來控制LED的顯示,此數(shù)據(jù)為字符的段碼或稱為字型碼。字型碼與LED顯示器各段的關系為D7D6D5D4D3D2D1D0dpgfedcba表2-1dp為小數(shù)點,字符0、1、2……F的段碼如表2-2所示

字符段碼(共陰)段碼(共陽)03FHCOH106HF9H25BHA4H34FHB0H466H99H56DH92H67DH82H707HF8H87FH80H96FH90HA77H88HB7CH83HC39HC6HD5EHA1HE79H86HF71H8EH—40HBFH■80H7FH熄滅00HFFH表2-2下圖是本系統(tǒng)采用的共陰極LED七段數(shù)碼顯示器:圖2-3本設計輸入輸出電路該系統(tǒng)輸入電路采用的是P1口以及4個上拉電阻,其阻值為10千歐。其圖如下:E:iT-.當前分鈾Sm啜岀稀M瀚u1■■■■K2 o-匚| ■? ■:■-o -=TE:-:T- _-■■■-■■■-■■卜;-!1■■■-■■- ■=!- ?Q 「「「【「「「【「「「I:*lTTJ:圖2-4系統(tǒng)的輸出電路采用的是P0口和P2口,喇叭口采用P3.7口。其電路如下圖:

AT5QC51圖2-5F'0.7W)7P0.6j(AE:AT5QC51圖2-5F'0.7W)7P0.6j(AE:6PO.SjWESPO.4:A£4P0.SW3Pa.2ZaD2PO.IjWDIpo.cuwe:oP3.&T1PS.^TUP3.^NT1P3.2yiNTOP3.1.-TXDP3.0/RXDP2.&W.14P2.5A13P2.4A12P2.3^11P2.2j^10P2.1iwy軟件設計3.1系統(tǒng)軟件設計說明該系統(tǒng)軟件程序主要有主程序模塊,定時中斷服務程序,中斷等待服務程序,鍵盤服務程序,顯示子程序服務程序等六大模塊組成。在AT89C51外圍的一個17管腳即P3.7管口上加揚聲器,通過軟件與硬件的結合可實現(xiàn)定時報警功能。圖中按鍵從上往下設定為S1,S2,S3,S4,S1與pl?4相連,2與p1.3相連,S3與p1?2相連,S4與p1.1相連。當需要設定當前時間時,按一下S4鍵,進入時間設定狀態(tài),按一下S2,分鐘加1;按一下S3,小時加1。如此反復來設定當前時間。調好時間后按S1退出當前時間設定狀態(tài);當要設定定時時間時,按下S3,進入定時時間設定狀態(tài),按一下S2,小時加1;按一下S4,分鐘加1。如此反復來設定要設定的定時時間。設好后,按下S1退出定時時間設定狀態(tài)。3.2LED的編程思想本設計使用LED數(shù)碼管顯示,LED顯示器具有耗電少、成本低、配置簡單靈活、安裝方便、耐震動、使用壽命長等優(yōu)點,因而應用廣泛。該方案控制最簡單,但是只能顯示有限的符號和數(shù)字,對于設計中復雜的顯示功能顯然不能勝任。雖然點陣液晶可以顯示多種字符和圖形,擁有友好的人機界面及強大的顯示功能。特別適用于智能控制的可編程人性化顯示。但是考慮到本設計的實際要求,使用數(shù)碼管顯示就足以達到要求了。七段LED由七個發(fā)光二極管按日字排開,所有發(fā)光二極管的陽極連在一起成共陽極,陰極連在一塊稱共陰極接法。當采用芯片驅動時不需要加限流電阻,其他情況下一般應外接限流電阻。動態(tài)顯示電路有顯示塊,字形碼封鎖驅動器,字位鎖存驅動器三部分組成。3.3程序調試1)將程序輸入到偉福的環(huán)境下;2) 用單步運行和斷點運行方式調試程序;3) 調試TO中斷服務程序,首先在記數(shù)單元39H、3AH、3BH、3CH單元中預置數(shù),調試秒單元向分單元進位及分單元向時單元的進位,最后將T0中斷服務程序統(tǒng)調通過;4) 在39H、3AH、3BH、3CH單元中預置數(shù),調試顯示程序;5) 調試主程序,使鬧鐘走時系統(tǒng)工作正常。3.4程序流程圖本設計程序流程圖如3-1所示:圖3-1Proteus軟件仿真4.1仿真步驟第一步:用偉福軟件對程序進行編譯,編譯通過后,會自動生成HEX文件。第二步:在Proteus的元件庫中找到AT89C51以及相應的元件,按照硬件設計中的說明把各部件連接起來組成一個定時鬧鐘的硬件系統(tǒng)。第三步:把在偉福環(huán)境調試下生成的.HEX文件裝入到AT89C51里,點擊運行符號就可以使軟硬件的配套設施在Proteus的環(huán)境下仿真實現(xiàn)第四步:驗證系統(tǒng)能否實現(xiàn)所要求的功能,并檢驗錯誤。4.2仿真過程中出現(xiàn)的錯誤及解決措施1) 當把程序生成的.HEX文件裝入到AT89C51后運行時,顯示模塊出現(xiàn)數(shù)字顯示錯誤,但是軟硬件都沒有錯誤,經檢查是它們不配套,在修改掃描顯示控制字而且改變硬件布線順序后方顯示正常。2) 鬧鐘在定時時間到的時候沒有出現(xiàn)報警聲,但是經檢查軟硬件均沒有出現(xiàn)錯誤,而且在這里也不會出現(xiàn)因為軟硬件不配套而出現(xiàn)問題,并且把揚聲器去掉換成發(fā)光二極管后,二極管可以根據(jù)要求明或者滅。在經過反復的檢查以及實驗后才知道應該使接揚聲器的接口輸出交流信號才可以使揚聲器正常工作,經過反復比較決定運用軟件產生一個交流的信號才解決了這個問題,但是還沒有解決聲音小的問題。3) 在設計的初期把主程序設計成順序結構,但是在運行的時候沒有注意到這個問題,沒有按照軟件說明中的順序操作,以至于鬧鐘鬧時出現(xiàn)錯誤,在改變按下按鍵的順序后鬧鐘工作正常。4.3仿真結果圖中按鍵從上往下設定為S1,S2,S3,S4,S1與p1.4相連,S2與p1?3相連,S3與p1.2相連,S4與pl?1相連。

(1)設定當前時間當需要設定當前時間時,按一下S4鍵,進入時間設定狀態(tài),按一下S2,分鐘加1;按一下S3,小時加1。如此反復來設定當前時間。調好時間后按S1退出當前時間設定狀態(tài)。開始仿真時,顯示如圖4-1所示:000093LJE:1?!睅撞穜?000093LJE:1?!睅撞穜?-.'?3'.■^鑒!益腺匚

二“-二F::FlFI二二H亠?--T±±*R=一.「l-rHLL丄圖4-1先按S4,再按S2時,如圖4-2所示:圖4-2先按S4,再按S2,再按S3時,如圖4-3所示:

nio?h?fiBCDEFGDF 1£3453圖4-3如圖4-4:設定當前時間是02:02:54。O^O^SHL51」上3-±>.*F3U—--I- O^O^SHL51」上3-±>.*F3U—--I- --. . .■II. . .■ ■■■■■■■■I.」—— pp ..廿他nr設屜ha呻mu ?■嚴-:.-- '?k*? =:? -Q 屯hd...魚耳紐加.a^Mfcbrfhtai圖4-42)設定定時時間當要設定定時時間時,按下S3,進入定時時間設定狀態(tài),按一下S2,小時加1;按一下S4,分鐘加1。如此反復來設定要設定的定時時間。設好后,按下S1退出定時時間設定狀態(tài)。開始仿真時,直接按S3進行鬧鐘設定,如圖4-5所示:

圖4-5按S2后,如圖4-6所示:圖4-6按S4后,如圖4-7所示:圖4-7如圖4-8所示圖:設定定時時間為07:06LS1■JF3'jKF1H>3VriU-9:卄"■::::::::::::圖4-8圖4-9是達到設定時間的仿真圖:u4T1*>i-wairfF-utn-3"U*-3D叭咱-A-3Mi-?,4■-n-ii:■斗3iTiltFTFfTLS1ipi-jiiiii1VU'i-0105fCKSDEFQg4乏一LS1■JF3'jKF1H>3VriU-9:卄"■::::::::::::圖4-8圖4-9是達到設定時間的仿真圖:u4T1*>i-wairfF-utn-3"U*-3D叭咱-A-3Mi-?,4■-n-ii:■斗3iTiltFTFfTLS1ipi-jiiiii1VU'i-0105fCKSDEFQg4乏一nda_eU>3"dl*<:::::::::::::::圖4-9與圖4-8不同的是:(1)當?shù)竭_時間07:05:59時,“0706”這幾個字匯不停的閃爍,且字型管腳全為高電平,如圖4-11所示.0J0S59AB^DEFGDP 1E345E圖4-10圖4-11(2)揚聲器發(fā)出報警聲,且揚聲器兩端同時變?yōu)楦唠娖?,而在圖4-8中揚聲器一端為高電平,另一端為低電平。圖4-12圖4-8中揚聲器狀態(tài)

圖4-13圖4-9中揚聲器狀態(tài)課程設計體會單片機是一門應用性很強的學科,課程設計是培養(yǎng)我們綜合運用所學知識,發(fā)現(xiàn)、提出、分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對我們實際工作能力的具體訓練和考察過程,為自己今后從事與單片機控制系統(tǒng)有關的工作打下了基礎。雖然在做課程設計以前已經系統(tǒng)的把單片機課本認真的學習了一下,但是在剛開始時還是有點一頭霧水,不知道該從哪里下手。令人欣慰的是經過幾周的學習,雖然過程很艱辛,問了很多朋友,但是總算實現(xiàn)了定時鬧鐘的功能,所有的努力都很值得。這幾周的大部分時間都在研究程序怎么處理,在這個過程中加深了我對匯編語言命令的應用,而且也更加了解到軟硬件配套的重要性。以下是我本次單片機課程設計的幾點心得與體會:在設計程序之前,務必要對所學單片機課程的內容有一個系統(tǒng)的了解,知道單片機片內片外的內容及其功能。設計程序采用什么編程語言并不是非常重要,關鍵要有一個清晰的思路和一個完整的軟件流程圖。模塊化的設計思想在程序設計中的作用是十分大的,它可以為你提供一個比較清晰的思路,并且很容易找到頭緒,不至于在設想一個程序時感覺到無從下手。在設計程序時,不能妄想一次就將整個程序設計好,"反復修改,不斷改進"是程序設計的必經之路。程序剛開始編好時,一般情況下會存在很多錯誤,要不斷地修改,不斷的改進才能達到預期的目的,編寫程序的時間并不是很長,主要是修改程序會花很多時間。要養(yǎng)成注釋程序的好習慣,一個程序的完美與否不僅僅是實現(xiàn)功能,而應該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便。剛開始我在編寫程序時,很不習慣于寫注釋,感覺很麻煩,而且沒用,但是在修改的過程中我就遇到了較大的麻煩,以至于不得不重新的作了注釋,以增加程序的易讀性,從而使修改過程變得容易一些??傊?,通過這次課程設計不僅使我鞏固了本課程所學的基本知識,還使我具有了撰寫設計報告的初步訓練能力,我相信這些能力在我以后的工作或者是再學習中一定會起到不小的作用,看到自己幾周的小成果,感覺一切的辛苦和艱難都是值得的。

參考文獻國5.單片2機00原參考文獻國5.單片2機00原3理及應用技術江蘇:中國術基礎.9(7-第11三8版).北京[3]廖常線概忠東,等工種斛在線字濾波技術.清華大學學報,1993,33(4):62-67陳紹業(yè),王鳳翥.圖書館目錄.北京:[6].康華光.數(shù)字電子技北京:高等教育出版社北北北京[6].康華光.數(shù)字電子技北京:高等教育出版社北北北京[京7]:吳金清戌華大805學1出單版片社機,實2踐00與3應用[8]樓.51系列單片機設計實例京華黃學出版社航原理及爲技術.清亠航立天單200級疇第1版?北京:彊趙曉安冷MCS-51單片'機原理及應用.天津:[天京12津航]大空李學航廣天出第大版.社學單,出片版2機0社0基1,.礎31.999第1版.北京:北京航空航天大學出版社,1999[口社13與,]應1徐9用9惠6.民、第安1德版寧..北單京片:微北型京計郵算電機大原學理出接版京社14,航]空1夏9航9繼6天強大.學單出片版機社實,驗2與00實1踐教程.北京:北京航空航天大學出版社,2001附1:源程序代碼ORG0000HLJMPMAINORG000BHLJMPTIMEBINBINBIN器值動計數(shù)ORG0100HMAIN:MOVSP,#50HMOV20H,#00H;秒鐘MOV21H,#00H;分鐘MOV22H,#00H;小時MOV23H,#01HMOV24H,#01HMOV25H,#00HMOV30H,#00HMOV31H,#00HMOV32H,#00HMOV33H,#00HMOV34H,#00HMOV35H,#00HMOV36H,#01HMOV37H,#00HMOV38H,#01HMOV39H,#00HMOVTMOD,#01H;16位計數(shù)MOVTH0,#03CH;賦計數(shù)初MOVTL0,#0B0HMOVIE,#10000111BSETBTR0;T0啟;XXXXX主程序部分:xxxxxMOVR2,#14HMOVP2,#0FFHLOOP:LCALLTIMEPROLCALLDISPLAY1JBP1.1,M1定時間程序LCALLSETTIME ;調用設定時間程序LJMPLOOPM1:JBP1.2,M2定時間程序LCALLSETATIME;調用設定時間程序LJMPLOOPM2:JBP1.4,M4LCALLLOOKATIME;調用設定鬧鐘時間程序M4:LJMPLOOPDELAY:MOVR4,#030H ;延時時間DL00:MOVR5,#0FFHDL11:MOVR6,#9HDL12:DJNZR6,DL12DJNZR5,DL11DJNZR4,DL00RET;xxxxx設定時間程序:xxxxxSETTIME:L0:LCALLDISPLAY1 ;調用時間允許程序MM1:JBP1.2,L1MOVC,P1.2;調;;調;調用LCALLDELAY1用延時JCMM1MSTOP1: MOVC,P1.2JNCMSTOP1P1.2是否釋放?釋放則繼續(xù)LCALLDELAY1延時MOVC,P1.2

JNCMSTOP1INC22HJNCMSTOP1INC22H時增加1CJNEA,#18H,GO12判斷小時是否到24時?未到繼續(xù)循環(huán)小時復位MOV22H,#00H小時復位MOV34H,#00HMOV35H,#00HLJMPL0L1:JBP1.3,L2MOVC,P1.3JCL1延時LCALLDELAY1延時JCL1MOVC,P1.3JCL1MOVC,P1.3NCMSTOP2釋放則繼續(xù)LCALLDELAY1JNCM判斷P1.3是否釋放?調用延時MOVC,P1.3JNCMSTOP2INC21H分鐘增加一MOVC,P1.3JNCMSTOP2INC21H分鐘增加一分鐘復位CJNEA,#3CH,GO11MOV21H,#00HMOV32H,#00HMOV33H,#00HLJMPL0GO11:MOVB,#0AHA中的內容分成高低兩部分;小;將;小;將DIVMOVMOVLJMPL0MOVB,#0AHAB34H,B35H,AL0用延時GO12:DIVMOVMOVLJMPL2:JBP1.4,L0MOVC,P1.4JCL2LCALLDELAY1MOVC,P1.4JCL2STOP1:MOVC,P1.4斷按鍵P1.4是否釋放?JNCSTOP1LCALLDELAY1用延時\fcEt;調;判、B;調MOVC,P1.4JNCSTOP1LJMPLOOP;XXXXX設置鬧鐘時間XXXXXSETATIME:LCALLDISPLAY2用時間運行N0:LCALLDISPLAY2MM2:JBP1.3,N1斷P1.3是否按下?MOVC,P1.3JCMM2LCALLDELAY1JCMM2斷MST是否釋放?OVC,P1?3?iTf;調;判;判小時增加1復位JNCMSTOP3LCALLDELAY1MOVC,P1.3JNCMSTOP3INC24HMOVA,24HCJNEA,#24,GO22MOV24H,#00HMOV38H,#00HMOV39H,#00HLJMPN0N1:JBP1.1,N2P1.1是否按下?MOVC,P1.1JCN1LCALLDELAY1JCN1MSTOP4:MOVC,P1.1P1.1是否釋放?JNCMSTOP4LCALLDELAY1MOVC,P1.1JNCMSTOP4INC23H鬧鐘分鐘增加1MOVA,23HCJNEA,#60,GO21A是否到60分?MOV23H,#00H復位MOV36H,#00HMOV37H,#00HLJMPN0GO21:MOVB,#0AH中的內容分成高低兩部分MSTOP4:;設定;時鐘;判斷;判斷;設定;判斷;分鐘;將ADIVABMOV 36H,BMOV 37H,ALJMPN0GO22:MOVB,#0AHDIVABMOV 38H,BMOV 39H,A;判斷;判斷N2:JBP1.4,N0P1.4是否按下?MOVC,P1.4JCN2LCALLDELAY1MOVC,P1.4JCN2STOP2:MOVC,P1.4P1.4是否釋放?MOVC,P1.4JCN2STOP2:MOVC,P1.4P1.4是否釋放?JNCSTOP2;判斷LCALLDELAY1MOVC,P1.4JNCSTOP2LJMPLOOP;判;判TIMEPRO:MOVA,21H

MOVB,23H

CJNEA,B,BK

斷分鐘是否運行到設定的鬧鐘的分鐘?

;判;判MOVC,25H.0JCXXXX:LCALLTIMEOUT調用時間鬧鐘響應程序

BK:RETTIMEOUT:X1:LCALLBZ調用喇叭響應程序LCALLDISPLAY2CLR25H.0JBP1.4,X1LCALLDELAYCLR25H.0LJMPDISPLAY1BZ:CLRP3.7喇叭響應程序MOVR7,#250響應延時時間T2:MOVR6,#124T3:DJNZR6,T3DJNZR7,T2SETBP3.7RETLOOKATIME:LCALLDISPLAY2調用時間運行程序MM:JBP1.4,LOOKATIMEMOVC,P1.4JCMMLCALLDE

溫馨提示

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

評論

0/150

提交評論