單片機課程設(shè)計--帶有l(wèi)cd顯示的定時鬧鐘_第1頁
已閱讀1頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  大作業(yè)(論文)</b></p><p>  課程名稱: 單片機課程設(shè)計 </p><p>  題 目: 帶有LCD顯示的定時鬧鐘 </p><p>  院 (系): 信息與控制工程學(xué)院 <

2、;/p><p>  專業(yè)班級: </p><p>  姓 名: </p><p>  學(xué) 號: </p><p>  指導(dǎo)教師:

3、 </p><p>  2013年6月17日到2013年6月23日</p><p>  課程設(shè)計(論文)任務(wù)書</p><p>  專業(yè)班級: 學(xué)生姓名: 指導(dǎo)教師(簽名): </p><p><b>  設(shè)計總說明</b></p><p&g

4、t;  單片機自20世紀(jì)70年代問世以來,以其極高的性能價格比,受到人們的重視和關(guān)注,應(yīng)用很廣、發(fā)展很快。而51單片機是各單片機中最為典型和最有代表性的一種。本設(shè)計以AT89C51芯片為核心,輔以必要的外圍電路,設(shè)計了一個結(jié)構(gòu)簡單,功能齊全的電子時鐘,它5V直流電源供電。在硬件方面,除了CPU外,使用6個7段LCD顯示器來進行顯示,LCD采用的是動態(tài)掃描顯示,使用74LS245芯片進行驅(qū)動。通過LCD能夠較為準(zhǔn)確地顯示時、分、秒,利用四

5、個簡單的按鍵實現(xiàn)對時間的調(diào)整。軟件方面采用匯編語言編程,整個電子鐘系統(tǒng)能完成時間的顯示、調(diào)時、校時和定時的功能。選用單片機最小系統(tǒng)應(yīng)用程序,添加比較程序、時間調(diào)整程序及蜂鳴程序,通過時間比較程序觸發(fā)蜂鳴,實現(xiàn)鬧鐘功能,完成設(shè)計所需求的軟件環(huán)境。介紹并使用Keil單片機模擬調(diào)試軟件,測試程序的可行性并用Proteus進行仿真。</p><p>  關(guān)鍵詞:單片機,LCD,定時器,鬧鐘</p><

6、p><b>  目 錄</b></p><p>  1設(shè)計要求與實現(xiàn)思路8</p><p><b>  1.1設(shè)計要求8</b></p><p><b>  1.2實現(xiàn)思路8</b></p><p><b>  2電子時鐘9</b>

7、</p><p>  2.1電子時鐘簡介9</p><p>  2.2電子時鐘的基本特點9</p><p><b>  3單片機9</b></p><p>  3.1程序存儲器9</p><p>  3.2 MCS-51內(nèi)部數(shù)據(jù)存儲器10</p><p>  4控

8、制系統(tǒng)的硬件設(shè)計11</p><p>  4.1器件的選擇及功能原理11</p><p>  4.1.1單片機型號的選擇11</p><p>  4.1.2液晶顯示器的選擇11</p><p>  4.1.3按鍵的選擇11</p><p>  4.1.4電源的選擇12</p><p>

9、;  4.1.5計時部分的選擇12</p><p>  4.2總體設(shè)計思想及原理13</p><p>  4.2.1時鐘電路的設(shè)計13</p><p>  4.2.2鍵盤電路設(shè)計14</p><p>  4.2.3鬧鈴功能的實現(xiàn)15</p><p>  4.2.4中斷服務(wù)的設(shè)計17</p>&

10、lt;p>  4.3整個電路原理圖18</p><p>  5控制系統(tǒng)的軟件設(shè)計19</p><p>  5.1程序設(shè)計19</p><p>  5.2程序流程圖20</p><p><b>  5.3仿真圖20</b></p><p>  5.4仿真結(jié)果分析22</p&g

11、t;<p><b>  設(shè)計總結(jié)24</b></p><p><b>  參考文獻25</b></p><p><b>  程序代碼26</b></p><p>  1設(shè)計要求與實現(xiàn)思路</p><p><b>  1.1設(shè)計要求</b>

12、;</p><p>  基本功能要求為:字符型LCD(16*2)顯示器;顯示格式為“時時:分分:秒秒”;一旦時間到,發(fā)出聲響,同時繼電器啟動,可控制家電開啟和關(guān)閉。</p><p>  程序執(zhí)行后工作指示燈LED閃爍,表示程序開始執(zhí)行,LCD顯示“00:00:00”,按下列順序控制:</p><p> ?。?)K1鍵-----設(shè)置現(xiàn)在時間</p>&l

13、t;p>  (2)K2鍵------設(shè)置鬧鈴時間</p><p> ?。?)K3鍵------顯示鬧鈴設(shè)置的時間</p><p> ?。?)K4鍵------定時“開始”按鍵,啟動定時。</p><p><b>  1.2實現(xiàn)思路</b></p><p>  電子鐘設(shè)計與制作既可以采用數(shù)字電路來實現(xiàn),也可以采用單片

14、機來完成。</p><p>  本次課程設(shè)計用單片機來實現(xiàn) </p><p>  電子鬧鐘的系統(tǒng)框圖如下所示:</p><p>  圖1-1 電子鬧鐘的系統(tǒng)框圖</p><p>  電子鬧鐘的主電路指的是圖1-1中虛線框內(nèi)部分,主要涉及到CPU電路和按鍵按鈕電路。主機的設(shè)計具體地說有:1)系統(tǒng)時鐘電路設(shè)計;2)系統(tǒng)復(fù)位電路設(shè)計;3)

15、按鍵與按鈕電路設(shè)計;4)鬧鈴聲指示電路設(shè)計。</p><p><b>  2電子時鐘 </b></p><p><b>  2.1電子時鐘簡介</b></p><p>  時鐘是將小時、分鐘、秒鐘顯示于人的肉眼的計時裝置。而單片機模塊中最常見的正是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實現(xiàn)時、分、秒計時的裝置,與機械式時鐘相比

16、具有更高的準(zhǔn)確性和直觀性,且無機械裝置,具有更長的使用壽命,因此得到了廣泛的使用。</p><p>  由于時鐘的實用性和在人們生活中的重要性,所以嘗試設(shè)計以單片機為核心的數(shù)字時鐘是很有意義的。鐘表原先的報時功能已經(jīng)原不能滿足人們?nèi)找嬖鲩L的要求,現(xiàn)代的電子時鐘多帶有類似自動報警、按時自動打鈴、時間程序自動控制、定時廣播、自動起閉路燈、通斷動力設(shè)備、甚至各種定時電氣的自動啟用等功能,本設(shè)計中LCD電子時鐘采用LCD

17、顯示時間,直觀實用,而且可以方便的校調(diào)。</p><p>  2.2電子時鐘的基本特點</p><p>  LCD電子定時鬧鐘是以單片機為基礎(chǔ)的數(shù)字電路實現(xiàn)對時、分、秒的數(shù)字顯示的數(shù)字計時裝置,它的計時周期24小時,另外應(yīng)有校時功能和一些顯示日期、鬧鐘等附加功能。一個基本的數(shù)字鐘電路主要由計數(shù)器、校時電路、報時電路、振蕩器和顯示電路組成。目前電子鐘廣泛用于各種私人和公眾場合,成為我們生活、

18、工作和學(xué)習(xí)中不可缺少的好幫手。</p><p><b>  3單片機</b></p><p><b>  3.1程序存儲器</b></p><p>  MCS-51單片機的程序存儲器用于存放應(yīng)用程序和表格之類的固定常數(shù)??蓴U充的程序存儲器空間最大為64K字節(jié)。程序存儲器的使用應(yīng)注意以下兩點:</p><

19、p> ?。?)整個程序存儲器空間可以分為片內(nèi)和片外兩部分,CPU訪問片內(nèi)和片外程序存儲器,可由引腳所接的電平來確定。</p><p>  EA=1,即引腳接高電平時,程序?qū)钠瑑?nèi)程序存儲器開始執(zhí)行;當(dāng)PC值超出片內(nèi)ROM的容量時,會自動轉(zhuǎn)向片外程序存儲器空間執(zhí)行程序;EA=0,即引腳接低電平時,單片機只執(zhí)行片外程序存儲器中的程序。</p><p> ?。?)各中斷服務(wù)程序的入口地址&

20、lt;/p><p>  MCS-51單片機復(fù)位后,程序存儲器PC的內(nèi)容為0000H,故系統(tǒng)從0000H單元開始取指令,執(zhí)行程序。</p><p>  64K程序存儲器中有5個單元具有特殊用途,如下:</p><p>  0003H:外部中斷0入口地址。</p><p>  000BH:定時器0中斷入口地址。</p><p>

21、;  0013H:外部中斷1入口地址。</p><p>  001BH:定時器1中斷入口地址。</p><p>  0023H:串行口中斷入口地址。</p><p>  在系統(tǒng)中斷相應(yīng)之后,將自動轉(zhuǎn)各中斷入口地址處執(zhí)行序,而中斷服務(wù)程序一般無法存放于幾個單元之內(nèi),因此在中斷入口地址處往往存放一條無條件轉(zhuǎn)移指令進行跳轉(zhuǎn),以便執(zhí)行中斷服務(wù)程序。</p>&

22、lt;p>  3.2 MCS-51內(nèi)部數(shù)據(jù)存儲器</p><p>  MCS-51單片機的片內(nèi)數(shù)據(jù)存儲器單元共有128個,字節(jié)地址為00H-7FH。 </p><p>  地址為00H-1FH的32個單元是4組通用工作寄存器區(qū),每個區(qū)含8個8位寄存器,編號為R7-R0。</p><p>  地址為20H-2FH的16個單元可進行共128位的位尋址。</p

23、><p>  地址為30H -7FH的單元為用戶RAM區(qū),只能進行字節(jié)尋址。</p><p>  4控制系統(tǒng)的硬件設(shè)計</p><p>  4.1器件的選擇及功能原理</p><p>  4.1.1單片機型號的選擇</p><p>  由于傳統(tǒng)的8031單片機內(nèi)部沒有存儲器,需要另擴展外部程序存儲器,系統(tǒng)構(gòu)成較為復(fù)雜. 在

24、眾多的51系列單片機中,要算 ATMEL 公司的AT89C51更實用,它是低功耗、高性能的CMOS型8位單片機。AT89C51采用了高性能的處理器結(jié)構(gòu),指令執(zhí)行時間只需2到4個時鐘周期。AT89C51集成了許多系統(tǒng)級的功能,這樣可大大減少元件的數(shù)目和電路板面積并降低系統(tǒng)的成本。另外,AT89C51是一種高效微控制器,而且它與MCS-51兼容,且具有4K字節(jié)可編程序存儲器和1000次擦寫循環(huán),數(shù)據(jù)保留時間為10年,是最好的選擇。</

25、p><p>  AT89C51單片機內(nèi)部主要有以下部件:8031CPU、振蕩電路、總線控制部件、中斷控制部件、片內(nèi)Flash存儲器、并行I/O接口、定時器和串行I/O接口。</p><p>  4.1.2液晶顯示器的選擇</p><p>  為減少連接線路的復(fù)雜性,在此選用八位一體的共陰數(shù)碼管,八位一體液晶顯示器在內(nèi)部已將段碼相連,位選線則相互獨立,可以很方便地外接為動

26、態(tài)顯示電路。其外部結(jié)構(gòu)如下圖4-1:</p><p>  圖4-1 LCD液晶顯示器</p><p>  4.1.3按鍵的選擇</p><p>  方案一:4×4矩陣式鍵盤。如果選擇此方案,那么在修改時鐘或設(shè)置鬧鈴時間時就可以直接從鍵盤輸入,方便、快捷,但程序較為復(fù)雜。 方案二:獨立式按鍵。如果設(shè)置過多按鍵,將會占用較多I/O口,而且會給布線帶來不

27、便,因此,此方案適用于按鍵較少的情況。如果選擇此方案,由于按鍵較少,在修改時間或設(shè)置鬧鈴時間時就不能直接輸入,只能通過加或減完成,稍為麻煩一些,但其程序簡單。 由于并不需要經(jīng)常修改時間和設(shè)置鬧鈴時間,而且方案二的程序簡單,按鍵少、成本低,因此,選擇方案二。AT89C5的引腳如下圖4-2:</p><p>  圖4-2 AT89C51引腳</p><p>  4.1.4電源的選擇&

28、lt;/p><p>  如果是用電池供電,就比較方便攜帶,但是本系統(tǒng),采用了數(shù)碼管作為顯示器,功耗較大,需要經(jīng)常更換電池。況且,本系統(tǒng)的體積較大,即使使用電池供電也不能隨身攜帶,因此,用電池供電不大合適,所以用5V外部穩(wěn)壓電源來供電。</p><p>  4.1.5計時部分的選擇</p><p>  如果使用時鐘芯片,系統(tǒng)就不怕掉電且時間精確。但這種芯片比較貴,況且,設(shè)

29、計本系統(tǒng)主要是為了學(xué)習(xí)單片機程序的編寫和調(diào)試以及設(shè)計硬件電路的一些方法,因此采用軟件的方法來計時而沒有采用價格較高的時鐘芯片。</p><p>  4.2總體設(shè)計思想及原理</p><p>  設(shè)計的總思路如圖4-3:</p><p>  圖4-3 設(shè)計的總流程圖</p><p>  4.2.1時鐘電路的設(shè)計</p><p

30、>  AT89C51系列的單片機的時鐘方式分為內(nèi)部方式和外部方式。內(nèi)部方式就是在單片機的XTAL1和XTAL2的兩引腳外接晶振,就夠成了自激振蕩器在單片機內(nèi)部產(chǎn)生時鐘脈沖信號。外部時鐘方式是把外部已經(jīng)有的時鐘信號引入到單片機內(nèi)部。時鐘電路在計算機系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎(chǔ)。在一個單片機應(yīng)用系統(tǒng)中,時鐘有兩方面的含義:一是指為保障系統(tǒng)正常工作的基準(zhǔn)振蕩定時信號,主要由晶振和外圍電路組成,晶振頻率的大小決定了單

31、片機系統(tǒng)工作的快慢;二是指系統(tǒng)的標(biāo)準(zhǔn)定時時鐘,即定時時間。</p><p>  本LCD電子鬧鐘設(shè)計是采用內(nèi)部時鐘方式,用一個12MHz晶振和兩個30Pf瓷片電容組成,為單片機提供標(biāo)準(zhǔn)時鐘,其中兩個瓷片電容起微調(diào)作用。</p><p><b>  圖4-4 時鐘電路</b></p><p>  單片機之所以采用高性能的振蕩電路,因為:</

32、p><p>  1)單片機電子鐘的計時脈沖基準(zhǔn)是由外部晶振的頻率經(jīng)過12分頻后提供,采用內(nèi)部的定時/計數(shù)器來實現(xiàn)計時功能。所以,外接晶振頻率精確度直接影響電子鐘計時的準(zhǔn)確性。 </p><p>  2)片機電子鐘利用內(nèi)部定時/計數(shù)器溢出產(chǎn)生中斷(12M晶振一般為50ms)再乘以相應(yīng)的倍率來實現(xiàn)秒、分、時的轉(zhuǎn)換。大家都知道從定時/計數(shù)器產(chǎn)生中斷請求到響應(yīng)中斷需要3-8個機器周期,定時中斷子程序中

33、的數(shù)據(jù)入棧和重裝定時/計數(shù)器的初值還需要占用數(shù)個機器周期,還有從中斷入口轉(zhuǎn)到中斷子程序也要占用一定的機器周期。</p><p>  4.2.2鍵盤電路設(shè)計</p><p>  鍵盤采用4個獨立按鍵配以4個上拉電阻實現(xiàn)對時鐘和鬧鐘的設(shè)定及修改。</p><p>  圖4-5 獨立按鍵 圖4-6 鍵盤輸入電路</p><p>

34、  4.2.3鬧鈴功能的實現(xiàn)</p><p>  鬧鈴功能的實現(xiàn)涉及到兩個方面:鬧鈴時間設(shè)定和是否鬧鈴判別與相應(yīng)處理。鬧鈴時間設(shè)定模塊的設(shè)計可參照時間設(shè)定模塊,這里著重闡述鬧鈴判別與處理模塊的設(shè)計問題。鬧鈴判別與鬧鈴處理的關(guān)鍵在于判別何時要進行鬧鈴。當(dāng)時十位、時個位、分十位、分個位中任一位發(fā)生改變(進位)時,就必須進行鬧鈴判別。譯碼顯示電路將“時”、“分”、“秒”計數(shù)器的輸出送到七段顯示譯碼驅(qū)動器譯碼驅(qū)動,通過六

35、個七段LCD顯示器顯示出來。鬧鈴電路根據(jù)計時系統(tǒng)的輸出狀態(tài)產(chǎn)生脈沖信號,然后加上一個高頻或低頻信號送到放大電路驅(qū)動蜂鳴器發(fā)聲實現(xiàn)報時。校時電路是直接加一個脈沖信號到時計數(shù)器或者分計數(shù)器或者秒計數(shù)器來對“時”、“分”、“秒”顯示數(shù)字進行校對調(diào)整。</p><p>  圖4-7 鬧鐘判別流程圖</p><p>  考慮到實用性,在該電子鐘的設(shè)計中修改定時或調(diào)整時間時采用了閃爍,而且以定時20組

36、鬧鐘。在編程上,首先進行了初始化定義了程序的入口地址以及中斷的入口地址,在主程序的開始定義了一組固定單元用來存儲計數(shù)的秒,分,時以及定時時間的序號等。</p><p>  在顯示程序段中主要進行了閃爍的處理,采用定時器中斷置標(biāo)志位,再與位選相互結(jié)合的方法來控制調(diào)時或定時中的閃爍。時, 分,秒顯示則是用了軟件譯碼(查表)的方式,再用了一段固定的程序段進行進制轉(zhuǎn)化。初始化之后,用中斷方式對其計數(shù),計數(shù)的同時采用了定時

37、器比較的方法,比較當(dāng)前計數(shù)時間與定時時間是否相等,若相等則將鬧鈴標(biāo)志位置數(shù)。由于定義了定時鬧鐘組,在這里采用中斷組次,每</p><p>  中斷一次比較一組鬧鐘,避免了 圖4-8 鬧鐘的實現(xiàn)流程圖</p><p>  一次比較中斷時間過長,影響下次中斷時間。顯示之后查詢鬧鈴標(biāo)志位是否與前面所置數(shù)相等,若相等則響鈴。</p><p>  為了避免

38、響鈴影響顯示,采用了每顯示幾屏以后在顯示程序中出現(xiàn)脈沖,驅(qū)動喇叭,不會影響顯示。之后用查詢方式對按鍵進行判斷,若有鍵按下,則進行軟件延時消抖,避免了抖動引起的干擾,執(zhí)行相應(yīng)的定時,選時或調(diào)時程序段。對當(dāng)前時間或定時時間修改后又返回到最初的顯示程序段,如此循環(huán)下去。</p><p>  4.2.4中斷服務(wù)的設(shè)計</p><p>  數(shù)字電子鐘設(shè)計中主要使用定時器T0中斷ET0,利用ET0中斷

39、進行計時時間的自增,從而實現(xiàn)計時功能。</p><p>  AT89C51有兩個通用定時/計數(shù)器。兩者均可配置為定時器或事件計數(shù)器。另外增加了定時器T0/T1,溢出時T0/T1腳自動翻轉(zhuǎn)的功能選項。用作“定時器”功能時,每經(jīng)過一個機器周期,寄存器值加1。用作“計數(shù)器”功能時,寄存器在對應(yīng)的外部輸入管腳T0/T1上每發(fā)生一次1到0的跳變時加1。使用該功能時,外部輸入每個機器周期被采樣一次。 設(shè)計中采用了中斷方式1作

40、為定時中斷,其定時計數(shù)初值的設(shè)置可由以下公式計算得到,中斷服務(wù)流程圖如下圖4-9。</p><p>  圖4-9 中斷處理流程圖</p><p>  4.3整個電路原理圖</p><p>  圖4-11 總電路圖</p><p>  定時鬧鐘以單片機AT89C51為核心來完成,使用12MHZ晶振與單片機AT89C51相連接,通過軟件編程的方法

41、實現(xiàn)了以24小時為一個周期同時顯示小時、分鐘和秒的要求,并在計時過程中具有報時功能,當(dāng)時間到達整點進行蜂鳴報時。</p><p>  在硬件電路中采用P0口作為6位LCD顯示器的驅(qū)動接口,這是由于P0口輸出驅(qū)動電路工作處于開漏狀態(tài),它的驅(qū)動能力強,故只需外接上拉電阻便可以把LCD顯示器點亮。因為共陰的LCD顯示器它的驅(qū)動電流是分開的,在單片機進行動態(tài)掃描的時候不會影響彼此的電流,故該電路中的LCD顯示器采用共陰極

42、的顯示器。6位LCD顯示器的位選線分別由相應(yīng)的P2.0~P2.5控制,相應(yīng)的段選線由8位的I/O口控制,即P0口。</p><p>  該電子鐘設(shè)有四個按鍵: K1、K2、K3和K4鍵(如圖所示分別為K1,K2,K3,K4),他們分別與單片機的P1.5、P1.3、P1.4和P1.2口相連接。</p><p>  K1、K2、K3和K4鍵Proteus仿真圖如下:</p>&l

43、t;p>  圖4-12 安裝控制圖</p><p>  5控制系統(tǒng)的軟件設(shè)計 </p><p><b>  5.1程序設(shè)計</b></p><p>  考慮到實用性,在該電子鐘的設(shè)計中修改定時或調(diào)整時間時采用了閃爍。在編程上,首先進行了初始化定義了程序的入口地址以及中斷的入口地址,在主程序的開始定義了一個固定單元用來存儲計數(shù)的秒、分、時。

44、在顯示程序段中主要進行了閃爍的處理,采用定時器中斷置標(biāo)志位,再與位選相互結(jié)合的方法來控制調(diào)時或定時中的閃爍。時、分、秒的顯示則是用了軟件譯碼(查表)的方式,再用了一段固定的程序段進行進制轉(zhuǎn)化。初始化之后,用中斷方式對其計數(shù),計數(shù)的同時采用了定時器比較的方法,比較當(dāng)前計數(shù)時間與定時時間是否相等,若相等則將鬧鈴標(biāo)志位置數(shù)。為了避免響鈴影響顯示,采用了每顯示幾屏以后在顯示程序中出現(xiàn)脈 圖5-1 設(shè)計主線</p>&

45、lt;p>  沖,驅(qū)動喇叭,不會影響顯示。之后用查詢方式對按鍵進行判斷,若有鍵按下,則進行軟件延時消抖,避免了抖動引起的干擾,執(zhí)行相應(yīng)的定時,選時或調(diào)時程序段。對當(dāng)前時間或定時時間修改后又返回到最初的顯示程序段,如此循環(huán)下去。 </p><p>  5.2程序流程圖                  </p><p>  圖5-2 主函數(shù)流程圖</p><p&g

46、t;<b>  5.3仿真圖</b></p><p>  Proteus仿真圖如下:</p><p>  1)按K2鍵開始對響鈴時間設(shè)置:</p><p>  圖5-3 開始設(shè)置響鈴時間</p><p>  圖5-4 定時時間為01:09</p><p>  3)按K4鍵回到鬧鐘運行模式</

47、p><p>  圖5-5 返回正常運行</p><p><b>  5.4仿真結(jié)果分析</b></p><p>  該電子鐘有三個按鍵: K1、 K2、K3和K4鍵。按K1鍵進行校時,可以分別對時及分進行單獨校時,使其校正到標(biāo)準(zhǔn)時間,操作位就閃爍;按K2鍵是對閃爍位進行加一或返回的操作;按K3鍵調(diào)整定時時間和定時組數(shù),調(diào)整位就閃爍,該電子鐘最多可定

48、時20組鬧鐘。經(jīng)測試該電子鐘在一天的累計誤差約為0. 1秒;K4用于返回正常計時功能。該電子鐘的誤差主要由晶振自身的誤差所造成,晶振的誤差約為0.0001~0.000001。在軟件的編程過程中所產(chǎn)生的誤差比較小,在重裝初值的過程中大概需要約8個機器周期,但在程序開始對定時器賦初值時,多加了8個機器周期,減小了這方面的誤差。另外在中斷的過程中,只會在第一次計時中產(chǎn)生時間的偏移,而它所產(chǎn)生累計誤差很小,可以忽略。</p>&l

49、t;p>  結(jié)構(gòu)化軟件程序的調(diào)試一般可以將重點放在分模塊調(diào)試上,統(tǒng)調(diào)是最后一環(huán)。軟件調(diào)試可以采取離線調(diào)試和在線調(diào)試兩種方式。前者不需要硬件仿真器,可借助于軟件仿真器即可;后者一般需要仿真系統(tǒng)的支持。本次課設(shè),采用keil集成調(diào)試軟件來調(diào)試程序,通過各個模塊程序的單步或跟蹤調(diào)試,使程序逐漸趨于正確,最后統(tǒng)調(diào)程序。</p><p>  仿真部分采用proteus 7professional軟件,此軟件功能強大且

50、操作較為簡單,可以很容易的實現(xiàn)各種系統(tǒng)的仿真。首先打開proteus7professional軟件,在元件庫中找到要選用的所有元件,然后進行原理圖的繪制;繪制好后再選擇keil已經(jīng)編譯好的*.hex文件,選擇運行,觀察顯示結(jié)果,根據(jù)顯示的結(jié)果和課設(shè)的</p><p>  要求再修改程序,再運行查,直到滿足要求。</p><p><b>  設(shè)計總結(jié)</b></p

51、><p>  通過這次一個禮拜的課程設(shè)計,使我對所學(xué)的知識進行了系統(tǒng)的復(fù)習(xí)與鞏固,在以前的學(xué)習(xí)中不夠清晰的概念得到了更好地理解。這段時間的學(xué)習(xí),使我了解到了理論和實際之間的差別,第一次真正接觸到了實際中的問題,并通過和老師,同學(xué)交流,加強了自身的分析問題,解決問題的能力。同時,我也發(fā)現(xiàn)了自己在某寫方面的不足,這是我以后要加以改進的方面。</p><p>  課程設(shè)計過程也使我了解了自己能力的不

52、足,不過通過資料收集和文獻查詢等方法,找出了設(shè)計過程中的一些問題以及解決問題的方法,從而比較順利的完成了這個設(shè)計任務(wù)。這次自己所做的設(shè)計取得了一些寶貴的經(jīng)驗,提高了自己的動手能力,為將來的學(xué)習(xí)和工作很有好處。</p><p>  總之,理論必須和實際結(jié)合才有威力,知識必須通過應(yīng)用才能實現(xiàn)其價值!所學(xué)的東西最終是要面向社會,是在以后的工作能夠更好的應(yīng)用,此時的知識積累是為以后的工作做好堅實的基礎(chǔ)。這個設(shè)計總體上不算

53、完美,但是在這個課程設(shè)計的經(jīng)歷的好處是不可估量的。</p><p><b>  參考文獻</b></p><p>  1)《單片機原理及應(yīng)用》 西安電子科技大學(xué)出版社 李建忠</p><p>  2)《基于Proteus的單片機應(yīng)用技術(shù)》 電子工業(yè)出版社 江世明</p><p>  3) 《MCS-51單片機應(yīng)用設(shè)計》

54、,哈爾賓:哈爾賓工業(yè)大學(xué)出版社 張毅剛 </p><p>  4) 《AT89系列單片機原理與接口技術(shù)》北京航空航天大學(xué)出版社 王幸之、鐘愛琴、王雷、王閃</p><p><b>  程序代碼</b></p><p>  ORG 0000H ;開辟代碼首地址</p><p><b>  LJ

55、MP MAIN</b></p><p>  ORG 000BH ;定時器/計數(shù)器T0溢出中斷服務(wù)子程序入口地址</p><p><b>  LJMP TIME</b></p><p><b>  ORG 0100H</b></p><p>  MAIN:MOV SP,#50H

56、 ;設(shè)置堆棧指針首地址</p><p>  MOV 20H,#00H ;十六進制轉(zhuǎn)化時分秒</p><p>  MOV 21H,#00H </p><p>  MOV 22H,#00H </p><p>  MOV 23H,#01H ;鬧鈴設(shè)置時分位 </p><p>  MOV 24H,#01H

57、 </p><p>  MOV 25H,#00H ;定義一個標(biāo)志位</p><p>  MOV 30H,#00H ;時分秒十進制轉(zhuǎn)化 </p><p>  MOV 31H,#00H </p><p>  MOV 32H,#00H </p><p>  MOV 33H,#00H </p>

58、<p>  MOV 34H,#00H </p><p>  MOV 35H,#00H </p><p>  MOV 36H,#01H ;鬧鈴十進制轉(zhuǎn)化</p><p>  MOV 37H,#00H </p><p>  MOV 38H,#01H </p><p>  MOV 39

59、H,#00H </p><p>  MOV TMOD,#01H ;選用16位計數(shù)器 T0,方式1</p><p>  MOV TH0,#03CH ;賦初值</p><p>  MOV TL0,#0B0H </p><p>  MOV IE,#10000111B ;開中斷T0,EA=1</p><p&

60、gt;  SETB TR0 ;T0啟動計數(shù)</p><p>  MOV R2,#14H ;計數(shù)器</p><p>  MOV P2,#0FFH</p><p>  LOOP:LCALL TIMEPRO ;調(diào)用現(xiàn)在時間與鬧鈴時間比較程序</p><p>  LCALL DISPLAY1 ;調(diào)用現(xiàn)

61、在時間顯示子程序</p><p>  JB K1,M1 ;判斷按鍵是否按下</p><p>  LCALL XIAOZHEN1 ;調(diào)用消抖程序</p><p>  MOV C,25H.0</p><p><b>  JC A1</b></p><p>  A1:CLR 25H

62、.0</p><p>  LCALL SETTIME ;調(diào)用設(shè)置現(xiàn)在時間子程序</p><p><b>  LJMP LOOP</b></p><p>  M1:JB K2,M2</p><p>  LCALL XIAOZHEN2</p><p>  MOV C,25H.0</p&g

63、t;<p><b>  JC A2</b></p><p>  A2:CLR 25H.0</p><p>  LCALL SETATIME ;調(diào)用鬧鐘設(shè)置程序</p><p><b>  LJMP LOOP</b></p><p>  M2:JB K4,M3</p>

64、<p>  A3:LCALL XIAOZHEN3</p><p>  MOV C,25H.0</p><p><b>  JC A4</b></p><p>  A4:CLR 25H.0</p><p>  M3:LJMP LOOP</p><p><b>  SETTIME:

65、</b></p><p>  L0:LCALL DISPLAY1 ;鬧鐘設(shè)置子程序</p><p><b>  JB K2,L1</b></p><p>  LCALL XIAOZHEN4</p><p>  MOV C,25H.0</p><p><b>  JC A

66、5</b></p><p>  A5:CLR 25H.0</p><p><b>  INC 22H</b></p><p><b>  MOV A,22H</b></p><p>  CJNE A,#18H,GO12</p><p>  MOV 22H,#00H

67、</p><p>  MOV 34H,#00H</p><p>  MOV 35H,#00H</p><p><b>  LJMP L0</b></p><p>  L1:JB K3,L2</p><p>  LCALL XIAOZHEN5</p><p>  MOV C,

68、25H.0</p><p><b>  JC A6</b></p><p>  A6:CLR 25H.0</p><p><b>  INC 21H</b></p><p><b>  MOV A,21H</b></p><p>  CJNE A,#3C

69、H,GO11</p><p>  MOV 21H,#00H</p><p>  MOV 32H,#00H</p><p>  MOV 33H,#00H</p><p><b>  LJMP L0</b></p><p>  GO11:MOV B,#0AH</p><p>&

70、lt;b>  DIV AB</b></p><p><b>  MOV 32H,B</b></p><p><b>  MOV 33H,A</b></p><p><b>  LJMP L0</b></p><p>  GO12:MOV B,#0AH</

71、p><p><b>  DIV AB</b></p><p><b>  MOV 34H,B</b></p><p><b>  MOV 35H,A</b></p><p><b>  LJMP L0</b></p><p>  L2:

72、JB K4,L0</p><p>  LCALL XIAOZHEN3</p><p>  MOV C,25H.0</p><p><b>  JC AX</b></p><p>  AX:CLR 25H.0</p><p><b>  RET</b></p>&

73、lt;p>  SETATIME:LCALL DISPLAY2 ;調(diào)用鬧鐘設(shè)置,鬧鈴響時的顯示程序</p><p>  N0:LCALL DISPLAY2</p><p><b>  JB K3,N1</b></p><p>  LCALL XIAOZHEN6</p><p>  MOV C,25H.0</

74、p><p><b>  JC A7</b></p><p>  A7:CLR 25H.0</p><p><b>  INC 24H</b></p><p><b>  MOV A,24H</b></p><p>  CJNE A,#24,GO22</

75、p><p>  MOV 24H,#00H</p><p>  MOV 38H,#00H</p><p>  MOV 39H,#00H</p><p><b>  LJMP N0</b></p><p>  N1:JB K1,N2</p><p>  LCALL XIAOZHEN

76、7</p><p>  MOV C,25H.0</p><p><b>  JC A8</b></p><p>  A8:CLR 25H.0</p><p><b>  INC 23H</b></p><p><b>  MOV A,23H</b><

77、;/p><p>  CJNE A,#60,GO21</p><p>  MOV 23H,#00H</p><p>  MOV 36H,#00H</p><p>  MOV 37H,#00H</p><p><b>  LJMP N0</b></p><p>  GO21:MOV

78、 B,#0AH</p><p><b>  DIV AB</b></p><p><b>  MOV 36H,B</b></p><p><b>  MOV 37H,A</b></p><p><b>  LJMP N0</b></p>&l

79、t;p>  GO22:MOV B,#0AH</p><p><b>  DIV AB</b></p><p><b>  MOV 38H,B</b></p><p><b>  MOV 39H,A</b></p><p><b>  LJMP N0</b&

80、gt;</p><p>  N2:JB K4,N0</p><p>  LCALL XIAOZHEN3</p><p>  MOV C,25H.0</p><p><b>  JC A9</b></p><p>  A9:CLR 25H.0</p><p><b>

81、;  RET</b></p><p>  TIMEPRO:MOV A,21H</p><p><b>  MOV B,23H</b></p><p>  CJNE A,B,BK</p><p><b>  MOV A,22H</b></p><p><b&g

82、t;  MOV B,24H</b></p><p>  CJNE A,B,BK</p><p>  SETB 25H.0</p><p>  MOV C,25H.0</p><p><b>  JC XX</b></p><p>  XX:LCALL TIMEOUT</p>

83、<p><b>  BK:RET</b></p><p><b>  TIMEOUT:</b></p><p>  X1:LCALL BZ </p><p>  LCALL DISPLAY2</p><p><b>  CLR 25H.0</b></p&

84、gt;<p><b>  JB K4, X1</b></p><p><b>  RET</b></p><p>  BZ:CLR P3.7</p><p>  MOV R7,#250</p><p>  T2:MOV R6,#124</p><p>  T3:

85、DJNZ R6,T3</p><p>  DJNZ R7,T2</p><p><b>  SETB P3.7</b></p><p><b>  JB K4,XY</b></p><p>  LCALL XIAOZHEN3</p><p>  MOV C,25H.0<

86、/p><p><b>  JC XY1</b></p><p><b>  XY:RET</b></p><p>  XY1:LJMP LOOP</p><p>  XIAOZHEN1:LCALL DISPLAY1 ;鬧鐘的設(shè)定值與現(xiàn)行時間的對比及響應(yīng)</p><p>  

87、JB K1,XIAOZHEN1</p><p><b>  MOV C,K1</b></p><p>  JC XIAOZHEN1</p><p>  LCALL DELAY</p><p><b>  MOV C,K1</b></p><p>  JC XIAOZHEN1&

88、lt;/p><p>  STOP1:MOV C,K1</p><p><b>  JNC STOP1</b></p><p>  LCALL DELAY</p><p><b>  MOV C,K1</b></p><p><b>  JNC STOP1</b&g

89、t;</p><p>  SETB 25H.0</p><p><b>  RET</b></p><p>  XIAOZHEN2:LCALL DISPLAY2</p><p>  JB K2,XIAOZHEN2</p><p><b>  MOV C,K2</b></

90、p><p>  JC XIAOZHEN2</p><p>  LCALL DELAY</p><p><b>  MOV C,K2</b></p><p>  JC XIAOZHEN2</p><p>  STOP2:MOV C,K2</p><p><b>  JN

91、C STOP2</b></p><p>  LCALL DELAY</p><p><b>  MOV C,K2</b></p><p><b>  JNC STOP2</b></p><p>  SETB 25H.0</p><p><b>  RET

92、</b></p><p>  XIAOZHEN3:LCALL DISPLAY1</p><p>  JB K4,XIAOZHEN3</p><p><b>  MOV C,K4</b></p><p>  JC XIAOZHEN3</p><p>  LCALL DELAY</p

93、><p><b>  MOV C,K4</b></p><p>  JC XIAOZHEN3</p><p>  STOP3:MOV C,K4</p><p><b>  JNC STOP3</b></p><p>  LCALL DELAY</p><p&g

94、t;<b>  MOV C,K4</b></p><p><b>  JNC STOP3</b></p><p>  SETB 25H.0</p><p><b>  RET</b></p><p>  XIAOZHEN4:LCALL DISPLAY1</p>&

95、lt;p>  JB K2,XIAOZHEN4</p><p><b>  MOV C,K2</b></p><p>  JC XIAOZHEN4</p><p>  LCALL DELAY</p><p><b>  MOV C,K2</b></p><p>  JC

96、XIAOZHEN4</p><p>  STOP4:MOV C,K2</p><p><b>  JNC STOP4</b></p><p>  LCALL DELAY</p><p><b>  MOV C,K2</b></p><p><b>  JNC STO

97、P4</b></p><p>  SETB 25H.0</p><p><b>  RET</b></p><p>  XIAOZHEN5:LCALL DISPLAY1</p><p>  JB K3,XIAOZHEN5</p><p><b>  MOV C,K3</

98、b></p><p>  JC XIAOZHEN5</p><p>  LCALL DELAY</p><p><b>  MOV C,K3</b></p><p>  JC XIAOZHEN5</p><p>  STOP5:MOV C,K3</p><p><

99、;b>  JNC STOP5</b></p><p>  LCALL DELAY</p><p><b>  MOV C,K3</b></p><p><b>  JNC STOP5</b></p><p>  SETB 25H.0</p><p><

100、b>  RET</b></p><p>  XIAOZHEN6:LCALL DISPLAY2</p><p>  JB K3,XIAOZHEN6</p><p><b>  MOV C,K3</b></p><p>  JC XIAOZHEN6</p><p>  LCALL D

101、ELAY</p><p><b>  MOV C,K3</b></p><p>  JC XIAOZHEN6</p><p>  STOP6:MOV C,K3</p><p><b>  JNC STOP6</b></p><p>  LCALL DELAY</p>

102、;<p><b>  MOV C,K3</b></p><p><b>  JNC STOP6</b></p><p>  SETB 25H.0</p><p><b>  RET</b></p><p>  XIAOZHEN7:LCALL DISPLAY2<

103、;/p><p>  JB K1,XIAOZHEN7</p><p><b>  MOV C,K1</b></p><p>  JC XIAOZHEN7</p><p>  LCALL DELAY</p><p><b>  MOV C,K1</b></p><

104、p>  JC XIAOZHEN7</p><p>  STOP7:MOV C,K1</p><p><b>  JNC STOP7</b></p><p>  LCALL DELAY</p><p><b>  MOV C,K1</b></p><p><b>

105、;  JNC STOP7</b></p><p>  SETB 25H.0</p><p><b>  RET</b></p><p>  DELAY:MOV R4,#14H</p><p>  DL00:MOV R5,#0FFH</p><p>  DL11:DJNZ R5,DL11

106、</p><p>  DJNZ R4,DL00</p><p><b>  RET</b></p><p>  TIME:PUSH ACC</p><p><b>  PUSH PSW</b></p><p>  MOV TH0,#03CH</p><p&

107、gt;  MOV TL0,#0B0H</p><p>  DJNZ R2,RET0</p><p>  MOV R2,#14H</p><p><b>  MOV A,20H</b></p><p><b>  CLR C</b></p><p><b>  INC

108、 A</b></p><p>  CJNE A,#3CH,GO1</p><p>  MOV 20H,#0</p><p>  MOV 30H,#0</p><p>  MOV 31H,#0</p><p><b>  MOV A,21H</b></p><p&g

109、t;<b>  INC A</b></p><p>  CJNE A,#3CH,GO2</p><p>  MOV 21H,#0H</p><p>  MOV 32H,#0</p><p>  MOV 33H,#0</p><p><b>  MOV A,22H</b><

110、;/p><p><b>  INC A</b></p><p>  CJNE A,#18H,GO3</p><p>  MOV 22H,#00H</p><p>  MOV 34H,#0</p><p>  MOV 35H,#0</p><p><b>  AJMP

111、RET0</b></p><p>  GO1:MOV 20H,A</p><p>  MOV B,#0AH</p><p><b>  DIV AB</b></p><p><b>  MOV 31H,A</b></p><p><b>  MOV 30

112、H,B</b></p><p><b>  AJMP RET0</b></p><p>  GO2:MOV 21H,A</p><p>  MOV B,#0AH</p><p><b>  DIV AB</b></p><p><b>  MOV 33H

113、,A</b></p><p><b>  MOV 32H,B</b></p><p>  AJMP RET0 ;長跳轉(zhuǎn)至恢復(fù)現(xiàn)場指令</p><p>  GO3:MOV 22H,A</p><p>  MOV B,#0AH</p><p><b>  DIV AB

114、</b></p><p><b>  MOV 35H,A</b></p><p><b>  MOV 34H,B</b></p><p><b>  AJMP RET0</b></p><p>  RET0:POP PSW</p><p>&

115、lt;b>  POP ACC</b></p><p><b>  RETI</b></p><p>  DISPLAY1:MOV R0,#30H</p><p>  MOV R3,#0FEH</p><p><b>  MOV A,R3</b></p><p&g

116、t;  PLAY1:MOV P2,A ;現(xiàn)在時間分的顯示</p><p><b>  MOV A,@R0</b></p><p>  MOV DPTR,#DSEG1</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p>&

117、lt;p><b>  LCALL DL1</b></p><p>  MOV P2,#0FFH</p><p><b>  MOV A,R3</b></p><p><b>  RL A</b></p><p>  JNB ACC.6,LD1</p><

118、;p><b>  INC R0</b></p><p><b>  MOV R3,A</b></p><p>  LJMP PLAY1</p><p><b>  LD1:RET</b></p><p>  DISPLAY2:PUSH ACC ;響應(yīng)中斷服務(wù)子

119、程序</p><p><b>  PUSH PSW</b></p><p>  MOV R0,#36H</p><p>  MOV R3,#0FBH</p><p><b>  MOV A,R3</b></p><p>  PLAY2:MOV P2,A ;現(xiàn)在時間時的顯示

120、</p><p><b>  MOV A,@R0</b></p><p>  MOV DPTR,#DSEG1</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p><b>  LCALL DL1<

121、;/b></p><p>  MOV P2,#0FFH</p><p><b>  MOV A,R3</b></p><p><b>  RL A</b></p><p>  JNB ACC.6,LD2</p><p><b>  INC R0</b&g

122、t;</p><p><b>  MOV R3,A</b></p><p>  LJMP PLAY2</p><p>  LD2:POP PSW</p><p><b>  POP ACC</b></p><p><b>  RET</b></p&

123、gt;<p>  DL1:MOV R7,#05H ;延時子程序</p><p>  DL:MOV R6,#0FFH</p><p>  DL6:DJNZ R6,$</p><p>  DJNZ R7,DL</p><p><b>  RET</b></p><p>  DSEG1

溫馨提示

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

評論

0/150

提交評論