基于51單片機(jī)的定時(shí)鬧鐘設(shè)計(jì).doc_第1頁(yè)
基于51單片機(jī)的定時(shí)鬧鐘設(shè)計(jì).doc_第2頁(yè)
基于51單片機(jī)的定時(shí)鬧鐘設(shè)計(jì).doc_第3頁(yè)
基于51單片機(jī)的定時(shí)鬧鐘設(shè)計(jì).doc_第4頁(yè)
基于51單片機(jī)的定時(shí)鬧鐘設(shè)計(jì).doc_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

摘 要單片計(jì)體積小、能耗低、成本低、功能強(qiáng),廣泛應(yīng)用于智能產(chǎn)品和工業(yè)自動(dòng)化上。本次設(shè)計(jì)通過(guò)理論學(xué)習(xí)與應(yīng)用,從而達(dá)到設(shè)計(jì)、開(kāi)發(fā)單片機(jī)簡(jiǎn)單系統(tǒng)的目的。本次設(shè)計(jì)是一個(gè)定時(shí)鬧鐘,以單片機(jī)為基礎(chǔ),實(shí)現(xiàn)顯示時(shí)間,能夠調(diào)整時(shí)間和設(shè)定鬧鐘時(shí)間,并且到設(shè)定的鬧鐘時(shí)間可以發(fā)出報(bào)警聲?;趩纹瑱C(jī)的定時(shí)鬧鐘在設(shè)計(jì)時(shí)需要解決三個(gè)方面的主要問(wèn)題:一是LED顯示模塊的驅(qū)動(dòng)和編程,二是有關(guān)單片機(jī)中定時(shí)器的使用,三是如何利用單片機(jī)的按鍵鍵盤(pán)實(shí)現(xiàn)時(shí)鐘調(diào)整時(shí)間的功能和運(yùn)行模式的轉(zhuǎn)化。在本設(shè)計(jì)的電路中,除了基本的單片機(jī)系統(tǒng)和外圍電路外,還需按鍵鍵盤(pán)作控制裝置,LED七段數(shù)碼管作顯示裝置。該定時(shí)鬧鐘是由AT89C52單片機(jī)控制的,可以達(dá)到以下效果:1、能夠顯示“時(shí)時(shí)-分分”。2、能夠調(diào)整時(shí)間,設(shè)定鬧鐘時(shí)間。3、鬧鐘時(shí)間到時(shí)間到能夠發(fā)出“滴滴滴”報(bào)警聲。4、可以通過(guò)串口在PC上設(shè)定時(shí)間和鬧鐘。關(guān)鍵詞:?jiǎn)纹瑱C(jī) 定時(shí)鬧鐘 仿真目 錄1 系統(tǒng)設(shè)計(jì)11.1 實(shí)驗(yàn)箱主要組件11.2 系統(tǒng)框圖及說(shuō)明31.3 系統(tǒng)軟件設(shè)計(jì)3 1.3.1 C51的編程基礎(chǔ)3 1.3.2 系統(tǒng)軟件設(shè)圖 4 1.3.3 部分復(fù)雜函數(shù)流程圖 52 系統(tǒng)仿真62.1 仿真軟件62.2 仿真結(jié)果73 結(jié)論73.1 本課程設(shè)計(jì)的主要特點(diǎn)及貢獻(xiàn)73.2 改善建議73.3 自我體會(huì)8參考文獻(xiàn)9附錄 101 單片機(jī)定時(shí)鬧鐘程序源代碼 102 仿真軟件Proteus ISIS使用方法簡(jiǎn)單介紹203.1 本課程設(shè)計(jì)的主要特點(diǎn)及貢獻(xiàn)71 系統(tǒng)設(shè)計(jì)1.1 實(shí)驗(yàn)箱主要組件本課程設(shè)計(jì)使用的是河海大學(xué)常州校區(qū)劉玉宏老師設(shè)計(jì)的單片機(jī)課程實(shí)驗(yàn)箱中的“基礎(chǔ)型實(shí)驗(yàn)”部分。該部分主要由單片機(jī)最小系統(tǒng),LED數(shù)碼管顯示部分,外部中斷控制部分,獨(dú)立式與行列式鍵盤(pán)按鍵輸入部分,串行口通信部分,蜂鳴器與繼電器等部分組成。詳細(xì)電路圖見(jiàn)圖1。圖1 實(shí)驗(yàn)箱“基礎(chǔ)型實(shí)驗(yàn)”部分電路圖單片機(jī)最小系統(tǒng)部分由內(nèi)含F(xiàn)LASH ROM的STC89C52RC,EA接高電平;各并行口都加了10K的上拉電阻;晶振為11.0592M。設(shè)置了上電復(fù)位和手動(dòng)復(fù)位。LED數(shù)碼管顯示部分由4位一體的數(shù)碼管LED1、單個(gè)數(shù)碼管LED2和8個(gè)獨(dú)立的發(fā)光二極管L1L7組成,都是共陰結(jié)構(gòu)并聯(lián)在一起接在單片機(jī)的P0口上。LED1用于完成LED動(dòng)態(tài)顯示,用于本課程設(shè)計(jì)的時(shí)間顯示,各個(gè)位選線(xiàn)為P2.4P2.7,段碼由P0口輸出。行列式和獨(dú)立式鍵盤(pán)按鍵輸入部分主要由P2.0-P2.3為行,P2.4-P2.7為列構(gòu)成的4*4行列式鍵盤(pán),K20-K27構(gòu)成的獨(dú)立式按鍵構(gòu)成。本課程設(shè)計(jì)中使用K20-K27構(gòu)成的獨(dú)立式按鍵,分別接在P2.0-P2.7上,當(dāng)按鍵按下時(shí),對(duì)應(yīng)的口線(xiàn)輸入0,同時(shí)相應(yīng)的LED點(diǎn)亮。蜂鳴器部分采用9012三極管驅(qū)動(dòng),其基極接到RD端,當(dāng)RD端為低電平時(shí),三極管導(dǎo)通,蜂鳴器響,否則關(guān)斷。串行口通信部分主要由USB轉(zhuǎn)URAT電路構(gòu)成,本課程設(shè)計(jì)中由此部分完成PC機(jī)與單片機(jī)的串行口通信,同時(shí)PC機(jī)的USB口同時(shí)承擔(dān)給實(shí)驗(yàn)板供電的任務(wù)。實(shí)驗(yàn)箱“基礎(chǔ)型試驗(yàn)”其他電路部分介紹略,“基礎(chǔ)型實(shí)驗(yàn)”部分實(shí)物圖見(jiàn)圖2。圖2 實(shí)驗(yàn)箱“基礎(chǔ)型實(shí)驗(yàn)”部分實(shí)物圖1.2 系統(tǒng)框圖及說(shuō)明本課程設(shè)計(jì)中的基于52單片機(jī)的定時(shí)鬧鐘系統(tǒng)主要由單片機(jī)最小系統(tǒng)模塊,數(shù)碼管譯碼和顯示模塊,鍵盤(pán)控制模塊,串口通信模塊,蜂鳴器模塊等組成,系統(tǒng)框圖見(jiàn)圖3,其中箭頭表示數(shù)據(jù)傳送的方向。52單片機(jī)數(shù)碼管顯示 鍵盤(pán)控制 串口通信圖3 單片機(jī)定時(shí)鬧鐘系統(tǒng)框圖1.3 系統(tǒng)軟件設(shè)計(jì)1.3.1 C51編程基礎(chǔ)由于本課程設(shè)計(jì)硬件模塊主要依靠劉玉宏老師設(shè)計(jì)的單片機(jī)實(shí)驗(yàn)箱,所以本課程設(shè)計(jì)的重點(diǎn)放在在定時(shí)鬧鐘的軟件設(shè)計(jì)上。本課程設(shè)計(jì)的系統(tǒng)軟件設(shè)計(jì)采用C語(yǔ)言,C語(yǔ)言是一種通用的程序設(shè)計(jì)高級(jí)語(yǔ)言,其代碼利用率高,數(shù)據(jù)類(lèi)型及運(yùn)算符豐富,并具有良好的程序結(jié)構(gòu),適用于各種應(yīng)用的程序設(shè)計(jì),是目前使用較為廣泛的單片機(jī)編程語(yǔ)言。使用C語(yǔ)言對(duì)單片機(jī)進(jìn)行編程具有以下優(yōu)點(diǎn):(1) C51管理內(nèi)部寄存器和存儲(chǔ)器的分配,編程時(shí),無(wú)需考慮不同存儲(chǔ)器的尋址和數(shù)據(jù)類(lèi)型等細(xì)節(jié)問(wèn)題。(2) 程序由若干函數(shù)組成,具有良好的模塊化結(jié)構(gòu)。(3) 有豐富的子程序庫(kù)可以直接使用,從而減少用戶(hù)編程的工作量。(4) C語(yǔ)言和匯編語(yǔ)言可以交叉使用,提高開(kāi)發(fā)效率。本課程設(shè)計(jì)采用的C語(yǔ)言編譯器為Keil C51,該編譯器以其代碼緊湊和使用方法方便的特點(diǎn)優(yōu)于其他編譯器。Keil C51開(kāi)發(fā)單片機(jī)程序的大致步驟為:輸入源程序,新建工程,工程詳細(xì)設(shè)置,源程序編譯到目標(biāo)代碼文件等。編譯完成后通過(guò)少些軟件和串口,可以將代碼燒進(jìn)單片機(jī)內(nèi)部的FLASH程序存儲(chǔ)器內(nèi)。1.3.2 系統(tǒng)軟件設(shè)計(jì)框圖單片機(jī)定時(shí)鬧鐘系統(tǒng)由多個(gè)函數(shù)構(gòu)成,其中包括主函數(shù),初始化函數(shù),延時(shí)函數(shù),鍵盤(pán)掃描函數(shù)等,圖4為單片機(jī)定時(shí)鬧鐘軟件系統(tǒng)各個(gè)函數(shù)框圖。圖4 單片機(jī)定時(shí)鬧鐘軟件系統(tǒng)各個(gè)函數(shù)框圖初始化函數(shù)延時(shí)函數(shù)顯示子函數(shù)時(shí)間子函數(shù)鍵盤(pán)掃描函數(shù)時(shí)間加1函數(shù)時(shí)間減1函數(shù)鬧鈴子函數(shù)串口通信函數(shù)數(shù)碼管掃描與顯示鍵盤(pán)掃描與控制 主 函 數(shù)1.3.3 部分復(fù)雜函數(shù)流程圖鍵盤(pán)掃秒函數(shù)相對(duì)比較復(fù)雜,同時(shí)該函數(shù)也本課程設(shè)計(jì)中相對(duì)較為重要的一個(gè)函數(shù),在設(shè)計(jì)中,我們使用到了四個(gè)按鍵,分別是K20、K21、K22、K23,其功能分別是,K21為調(diào)整時(shí)間/回復(fù)計(jì)時(shí)模式控制鍵,K20為調(diào)時(shí)/調(diào)鬧鐘時(shí)間模式控制按鍵,K22與K23分別為時(shí)間調(diào)整中加1與減1功能按鍵。通過(guò)四個(gè)按鍵的配合使用,可以完成停止計(jì)時(shí),修改時(shí)間,顯示鬧鐘時(shí)間,修改鬧鐘時(shí)間等功能。鍵盤(pán)掃描函數(shù)設(shè)計(jì)流程圖如圖5,同時(shí)圖5也可以作為單片機(jī)定時(shí)鬧鐘實(shí)現(xiàn)功能操作的流程圖。圖5 鍵盤(pán)掃描函數(shù)流程圖另外在設(shè)計(jì)中,我們?cè)黾恿艘粋€(gè)新的功能,即通過(guò)串口在PC機(jī)上設(shè)定時(shí)間和鬧鐘,具體由程序中的串口通信函數(shù)實(shí)現(xiàn)。利用PC上的串口調(diào)試助手軟件向單片機(jī)一次性傳送4個(gè)十六進(jìn)制數(shù)依次作為調(diào)整時(shí)間的小時(shí),調(diào)整時(shí)間的分,設(shè)定鬧鐘的小時(shí),設(shè)定鬧鐘的分。系統(tǒng)中串口通信函數(shù)的流程圖見(jiàn)圖6。圖6 串口通信函數(shù)流程圖2 系統(tǒng)仿真2.1 仿真軟件圖 7 單片機(jī)定時(shí)鬧鐘的Proteus ISIS仿真圖為了更好的驗(yàn)證系統(tǒng)軟件設(shè)計(jì)的正確性,我們使用了Proteus ISIS軟件對(duì)系統(tǒng)進(jìn)行了仿真。我們使用Proteus ISIS繪制了與實(shí)驗(yàn)向“基礎(chǔ)型實(shí)驗(yàn)”部分相同的電路圖,將使用Keil編譯后的hex加載進(jìn)入了單片機(jī)里面,結(jié)合仿真結(jié)果調(diào)整源代碼,最終實(shí)現(xiàn)了設(shè)計(jì)要求的全部功能。圖7為我們根據(jù)本課程設(shè)計(jì)的要求結(jié)合實(shí)驗(yàn)箱繪制的仿真圖。2.2 仿真結(jié)果通過(guò)軟件仿真和對(duì)源代碼的調(diào)整,我們實(shí)現(xiàn)以下功能:1、 四個(gè)LED數(shù)碼管從左到右顯示“時(shí)時(shí)-分分”,無(wú)小數(shù)點(diǎn),使用24小時(shí)計(jì)時(shí)制。2、 使用K20、K21、K22、K23、可以調(diào)整時(shí)間,設(shè)定鬧鐘時(shí)間,具體使用方法為:系統(tǒng)復(fù)位前,按一次K20,可以顯示目前所設(shè)定的鬧鐘時(shí)間;第一次操作時(shí),按一次K21,停止計(jì)時(shí),此時(shí)按一次K20,分位顯示“99”,可以使用K22和K23調(diào)整分位的時(shí)間,此時(shí)再按一次K20,時(shí)位顯示“99”,可以使用K22和K23調(diào)整時(shí)位的時(shí)間,此時(shí)再按K20,分位顯示“88”,可以使用K22和K23設(shè)定鬧鐘分位的時(shí)間,再按下K20,時(shí)位顯示“88”,可以使用K22和K23設(shè)定鬧鐘時(shí)位的時(shí)間。調(diào)整時(shí)間和設(shè)定鬧鐘完成后,再按下一次K21,恢復(fù)計(jì)時(shí)。第一次操作以后每次按K21兩下進(jìn)入調(diào)整時(shí)間和設(shè)定鬧鐘模式,再按K21一下恢復(fù)計(jì)時(shí)。3、 鬧鐘時(shí)間到時(shí)間到時(shí),蜂鳴器發(fā)出“滴滴滴”鬧鈴聲,另外,每一個(gè)整點(diǎn)蜂鳴器會(huì)發(fā)出“滴”的整點(diǎn)報(bào)時(shí)聲。4、 可以通過(guò)串口在PC上設(shè)定時(shí)間和鬧鐘。利用PC機(jī)上的軟件串口調(diào)時(shí)助手可以和單片機(jī)定時(shí)鬧鐘系統(tǒng)進(jìn)行通信。向單片機(jī)傳送“03300430”四個(gè)十六進(jìn)制數(shù)以后,則此時(shí)鐘時(shí)間為“03:30”,設(shè)定的鬧鐘時(shí)間為“04:30”,所以傳送的四個(gè)十六進(jìn)制數(shù)分別為“時(shí)間時(shí)位時(shí)間分位鬧鐘時(shí)位鬧鐘分位”,需要注意的是,想單片機(jī)傳送的是十六進(jìn)制數(shù)而不是十進(jìn)制數(shù),在傳送時(shí)應(yīng)預(yù)先把時(shí)間調(diào)整為十六進(jìn)制數(shù)。3 結(jié)論3.1 本課程設(shè)計(jì)的主要特點(diǎn)及貢獻(xiàn)本課程設(shè)計(jì)主要特點(diǎn)是利用C51編程實(shí)現(xiàn)基于單片機(jī)的定時(shí)鬧鐘,C51編程時(shí)本課程設(shè)計(jì)的核心和關(guān)鍵,如何編程實(shí)現(xiàn)定時(shí)鬧鐘的基本功能,如何修改和完善程序源代碼,如何使源代碼做到簡(jiǎn)潔可讀性和可移植性強(qiáng),等等都是我們?cè)谡n程設(shè)計(jì)中關(guān)注的問(wèn)題;本課程設(shè)計(jì)另外一個(gè)特點(diǎn)是利用仿真軟件對(duì)單片機(jī)的定時(shí)鬧鐘程序進(jìn)行了仿真,本次課程設(shè)計(jì)使用Proteus ISIS軟件進(jìn)行了仿真,學(xué)習(xí)仿真軟件的使用方法也是我們課程設(shè)計(jì)中很重要的一個(gè)步驟。本課程設(shè)計(jì)主要完成了基于單片機(jī)的定時(shí)鬧鐘的設(shè)計(jì),對(duì)學(xué)習(xí)和掌握單片機(jī)C語(yǔ)言編程有一定幫助,為日后深入學(xué)習(xí)單片機(jī)打下了一定的基礎(chǔ)。3.2 改善建議本課程設(shè)計(jì)中還有一些需要改善的方面:1、 按鍵只有四個(gè),部分按鍵功能及操作過(guò)于復(fù)雜,在實(shí)際使用過(guò)程中不是特別的方便;2、 定時(shí)鬧鐘系統(tǒng)的穩(wěn)定性有待提高,特別是對(duì)于用戶(hù)的誤操作處理能力不夠強(qiáng);3.3 自我體會(huì)本通過(guò)本次課程設(shè)計(jì),我學(xué)習(xí)到了很多,也收獲了很多??偨Y(jié)如下:1、 我對(duì)單片機(jī)的理論知識(shí)有了進(jìn)一步的掌握,特別是對(duì)本次課程設(shè)計(jì)單片機(jī)兩個(gè)比較核心的硬件擴(kuò)展部分,即單片機(jī)的外接鍵盤(pán),外接顯示器的原理和實(shí)際應(yīng)用有了熟練地理解和掌握。2、 我對(duì)單片機(jī)的C語(yǔ)言編程有了更深刻的認(rèn)識(shí)和更扎實(shí)的掌握,雖然本次編寫(xiě)的源代碼只有不到500行,只能算是一個(gè)很小的程序,但是這不到500行的程序,我們不斷修改,不斷嘗試,對(duì)源代碼各個(gè)模塊的函數(shù)都有了一個(gè)非常深入的掌握。3、 本次課程設(shè)計(jì),我們自學(xué)了仿真軟件Proteus ISIS,我們的自學(xué)能力和分析問(wèn)題解決問(wèn)題的能力有了提高,我們更是深刻掌握了仿真這種重要的細(xì)想方法,為以后進(jìn)行較大項(xiàng)目的設(shè)計(jì)與開(kāi)發(fā)奠定了初步的基礎(chǔ)。4、 本次課程設(shè)計(jì)我們還體會(huì)到了團(tuán)隊(duì)協(xié)作精神和創(chuàng)新精神。5、 本次課程設(shè)計(jì)要感謝劉玉宏老師和劉艷老師對(duì)本課程設(shè)計(jì)的悉心指導(dǎo)。參考文獻(xiàn)1 田希暉,薛亮儒.C51單片機(jī)技術(shù)教程M.北京:人民郵電出版社,20072 楊欣等.電子設(shè)計(jì)從零開(kāi)始M.北京:清華大學(xué)出版社,2005 3 劉玉宏.單片機(jī)實(shí)驗(yàn)和課程設(shè)計(jì)任務(wù)書(shū)Z附錄1 單片機(jī)定時(shí)鬧鐘程序源代碼#include /頭文件#include#define uchar unsigned char/宏定義#define uint unsigned int/宏定義#define fmq RDsbit key1=P20; /位聲明 /MODIFIEDsbit key2=P21;sbit key3=P22;sbit key4=P23;uchar code table=0x3f,0x06,0x5b,/數(shù)碼管顯示的數(shù)值0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0xbf,0x86,0xdb,/帶小數(shù)點(diǎn)的數(shù)值0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;void plus(); /函數(shù)聲明void minus();void sint();uchar table_16; /定義數(shù)組,數(shù)組內(nèi)含有6個(gè)數(shù)值uchar table_26;uchar shi=1,fen=1,miao=30; /顯示初始值uchar shi1,fen1,miao1,shi2,fen2,miao2,shi3,fen3,miao3;/定義全局變量uchar flag,flag1,flag2,cnt,cnt1,count;/定義全局變量void delay(uchar i) /延時(shí)函數(shù),用于動(dòng)態(tài)掃描數(shù)碼管 uchar x,y; for(x=i;x0;x-) for(y=110;y0;y-);void init() /初始化函數(shù) TMOD=0X21; /工作方式1 TH0=(65536-50000)/256; /定時(shí)時(shí)間為:50ms TL0=(65536-50000)%256; ET0=1; /打開(kāi)定時(shí)器 EA=1; /開(kāi)總中斷 TR0=1; /啟動(dòng)定時(shí)器 SCON = 0x50; /0101 0000 SM1SM2=10,方式二 REN=1允許接受 (串口初始化) TH1 = 0xFD; TR1 = 1; /啟動(dòng)T/C1 ES = 1; void display() /顯示子函數(shù),用于顯示時(shí)間數(shù)值 uchar i,j; table_10=miao%10; /分離秒的各位與十位 table_11=miao/10; table_12=fen%10+11; /分離分的各位與十位 table_13=fen/10; table_14=shi%10+11; /分離時(shí)的各位與十位 table_15=shi/10; j=0x7f; /從秒到時(shí)的掃描 for(i=2;i6;i+) P2=j; P0=tabletable_1i;/顯示數(shù)值 delay(10); j=_cror_(j,1);/循環(huán)右移 void display_1() /顯示子函數(shù),用于顯示定時(shí)時(shí)間 uchar i,j; table_20=miao2%10; /以下含義同上 table_21=miao2/10; table_22=fen2%10+11; table_23=fen2/10; table_24=shi2%10+11; table_25=shi2/10; j=0x7f; for(i=2;i=20) /判斷是否到一秒 flag=0; /到了,則標(biāo)志位清零 miao+; /秒加1 if(miao=60) /判斷秒是否到60s miao=0;/到了,則清零 fen+; /分加1 if(fen=60) /以下含義同上/MODIFIED fen=0; shi+; if(shi23) shi=0; void key_scan() /鍵盤(pán)掃描子函數(shù) uchar i; /定義局部變量 if(key1=0)/判斷key1是否按下 while(!key1) /防止掉顯 if(cnt=0) display(); if(cnt=3|cnt=4) display_1(); if(cnt=1&(cnt1=0|cnt1=2) display_1();if(cnt=2&(cnt1=0|cnt1=2) display();cnt=0; if(cnt1=1&(cnt=1|cnt=2) display(); cnt+; /記下按鍵key1按下的次數(shù) cnt=cnt%5; if(cnt=1&cnt1=1) /以下含義同上 fen1=fen; fen=99; for(i=0;i100;i+) display(); fen=fen1; if(cnt=2&cnt1=1) shi1=shi; shi=99; for(i=0;i100;i+) display(); shi=shi1; if(cnt=3&cnt1=1) fen1=fen2; fen2=88; for(i=0;i100;i+) display_1(); fen2=fen1; if(cnt=4&cnt1=1) shi1=shi2; shi2=88; for(i=0;i59) fen=0; if(cnt=2) shi+; if(shi23) shi=0; if(cnt=3) fen2+; if(fen259) fen2=0; if(cnt=4) shi2+; if(shi223) shi2=0; void minus() /減1子函數(shù) if(cnt=1) fen-; if(fen=255) fen=59; if(cnt=2) shi-; if(shi=255) shi=23; if(cnt=3) fen2-; if(fen2=255) fen2=59; if(cnt=4) shi2-; if(shi2=255) shi2=23; void clock() /鬧鈴子函數(shù) if(cnt1!=1&miao=0&miao3) if(fen2=fen) /是,在判斷分是否相等 if(shi2=shi) /是,再判斷時(shí)是否相等 flag1=0; /是,則標(biāo)志位,flag1清零 while(!(flag1=10) /判斷flag1是否到20 fmq=0; /沒(méi)有,則,繼續(xù)驅(qū)動(dòng)蜂鳴器響,時(shí)間約為:1s shijian(); /調(diào)用時(shí)間子函數(shù) display(); /調(diào)用顯示子函數(shù) fmq=1;/關(guān)閉蜂鳴器flag1=0;while(!(flag1=10) /判斷flag1是否到20 fmq=1; /繼續(xù)驅(qū)動(dòng)蜂鳴器停,時(shí)間約為:1s shijian(); /調(diào)用時(shí)間子函數(shù) display(); /調(diào)用顯示子函數(shù) fmq=1; if(cnt1!=1&fen=0&table_11=0)if(table_10=0)fmq=0;if(table_10=1)fmq=1;if(table_10=2)fmq=0;if(table_10=3)fmq=1;void main() init();/調(diào)用初始化子函數(shù) while(1) key_scan(); /調(diào)用鍵盤(pán)掃描子函數(shù) shijian(); /時(shí)間子函數(shù) clock(); /鬧鐘子函數(shù) /顯示子函數(shù) if(cnt=0) display(); if(cnt=3|cnt=4) display_1(); if(cnt=1&(cnt1=0|cnt1=2) display_1();if(cnt=2&(cnt1=0|cnt1=2) display();cnt=0; if(cnt1=1&(cnt=1|cnt=2) display(); void time0() interrupt 1 /定時(shí)器0 TH0=(65536-50000)/256; /初值50ms TL0=(65536-50000)%256; flag+; /標(biāo)志位 flag1+; void sint(void) interrupt 4 unsigned char temp; flag2+;flag2=flag2%4; if(RI&flag2=1) RI=0; temp=SBUF; shi=temp; if(RI&flag2=2) RI=0; temp=SBUF; fen=temp; if(RI&flag2=3) RI=0; temp=SBUF; shi2=temp; if(RI&flag2=0) RI=0; temp=SBUF; fen2=temp; if(TI) TI=0; 2 仿真軟件Proteus ISIS使用方法簡(jiǎn)單介紹2.1 簡(jiǎn)介Proteus軟件是一款強(qiáng)大的單片機(jī)仿真軟件,對(duì)于單片機(jī)學(xué)習(xí)和開(kāi)發(fā)幫助極大。Proteus ISIS是英國(guó)Labcenter公司開(kāi)發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和數(shù)字集成電路,包括單片機(jī)。在單片機(jī)課程中我們主要利用它實(shí)現(xiàn)下列功能:1、繪制硬件原理圖,并設(shè)置元件參數(shù)。2、仿真單片機(jī)及其程序以及外部接口電路,驗(yàn)證設(shè)計(jì)的可行性與合理性,為實(shí)際的硬件實(shí)驗(yàn)做好準(zhǔn)備。3、如有必要可以利用它來(lái)設(shè)計(jì)電路板??傊撥浖且豢罴瘑纹瑱C(jī)和SPICE分析于一身的仿真軟件,可以實(shí)現(xiàn)從構(gòu)想到實(shí)際項(xiàng)目完成全部功能。2.2 界面介紹雙擊桌面上的ISIS 7 Professional圖標(biāo)或者單擊屏幕左下方的“開(kāi)始”“程序”“Proteus 7 Professional” “ISIS 7 Professional”,出現(xiàn)如圖8所示屏幕,表明進(jìn)入Proteus ISIS集成環(huán)境。圖8 Proteus ISIS集成環(huán)境進(jìn)入之后的界面類(lèi)似如圖9 所示。圖中已經(jīng)標(biāo)注各個(gè)部分的作用,我們現(xiàn)在就使用軟件提供的功能進(jìn)行工作。圖9 ISIS主窗口2.3 簡(jiǎn)單項(xiàng)目設(shè)計(jì)過(guò)程1、建立新項(xiàng)目啟動(dòng)軟件之后,首先,新建一個(gè)項(xiàng)目:點(diǎn)擊菜單:FileNew Design,如圖10所示,即可出現(xiàn)如圖11所示的對(duì)話(huà)框,以選擇設(shè)計(jì)模板。一般選擇A4圖紙即可,點(diǎn)擊OK,關(guān)閉對(duì)話(huà)框,完成設(shè)計(jì)圖紙的模板選擇,出現(xiàn)一個(gè)空白的設(shè)計(jì)空間。 圖10 新設(shè)計(jì) 圖11選模板這時(shí)設(shè)計(jì)名稱(chēng)為 UNTITLED (未命名),你可以點(diǎn)擊菜單 filesave design 來(lái)給設(shè)計(jì)命名。也可以在設(shè)計(jì)的過(guò)程中任何時(shí)候命名。2、調(diào)入元件在新設(shè)計(jì)窗口中,點(diǎn)擊對(duì)象選擇器上方的按鈕P(如圖12所示),即可進(jìn)入元件拾取對(duì)話(huà)框,如圖13所示。圖12 調(diào)入元件圖13 查找元件在圖13所示的對(duì)話(huà)框左上角,有一個(gè)Keywords輸入框,可以在此輸入要用的元件名稱(chēng)(或名稱(chēng)的一部分),右邊出現(xiàn)符合輸入名稱(chēng)的元件列表。我們要用的單片機(jī)是AT89C52,輸入AT89C,就出現(xiàn)一些元件,選中AT89C52,雙擊,就可以將它調(diào)入設(shè)計(jì)窗口的元件選擇器。在Keywords中重新輸入要用到的元件,比如LED,雙擊需要用的具體元件,比如LED-YELLOW,調(diào)入。繼續(xù)輸入,調(diào)入,直到夠用。點(diǎn)擊OK,關(guān)閉對(duì)話(huà)框。以后如果需要其他元件,還可以再次調(diào)入。3、設(shè)計(jì)原理圖3-1放置元件在對(duì)象選擇器中的元件列表中,單擊所用元件,再在設(shè)計(jì)窗口單擊,出現(xiàn)所用元件的輪廓,并隨鼠標(biāo)移動(dòng),找到合適位置,單擊,元件被放到當(dāng)前位置。至此,一個(gè)元件放置好了。繼續(xù)放置要用的其他元件。3-2移動(dòng)元件如果要移動(dòng)元件的位置,可以先右擊元件,元件顏色變紅,表示被選中,然后拖動(dòng)到需要的位置放下即可。放下后仍然是紅色,還可以繼續(xù)拖動(dòng),直到位置合適,在空白處單擊鼠標(biāo)左鍵,取消選中。3-3移動(dòng)多個(gè)元件如果幾個(gè)元件要一起移動(dòng),可以先把它們都選中,然后移動(dòng)。選中多個(gè)元件的方法是,在空白處開(kāi)始,點(diǎn)擊左鍵并拖動(dòng),出現(xiàn)一個(gè)矩形框,讓矩形框包含需要選中的元件再放開(kāi),就可以了(參看圖14)。如果選擇的不合適,可以在空白處單擊,取消選中,然后重新選擇。圖14 選中多個(gè)元件移動(dòng)元件的目的主要是為了便于連線(xiàn),當(dāng)然也要考慮美觀。3-4連線(xiàn)就是把元件的引腳按照需要用導(dǎo)線(xiàn)連接起來(lái)。方法是,在開(kāi)始連線(xiàn)的元件引腳處點(diǎn)擊左鍵(光標(biāo)接近引腳端點(diǎn)附近會(huì)出現(xiàn)紅色小方框,這時(shí)就可以了),移動(dòng)光標(biāo)到另一個(gè)元件引腳的端點(diǎn),單擊即可。移動(dòng)過(guò)程中會(huì)有一根線(xiàn)跟隨光標(biāo)延長(zhǎng),直到單擊才停?。▓D14)。(a 畫(huà)線(xiàn)開(kāi)始) (b 劃線(xiàn)中) (c 畫(huà)線(xiàn)完畢)圖14

溫馨提示

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

評(píng)論

0/150

提交評(píng)論