可編程作息時間控制器設(shè)計(單片機)_第1頁
可編程作息時間控制器設(shè)計(單片機)_第2頁
可編程作息時間控制器設(shè)計(單片機)_第3頁
可編程作息時間控制器設(shè)計(單片機)_第4頁
可編程作息時間控制器設(shè)計(單片機)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 20132014學年 第2學期 單片機原理與應用課 程 設(shè) 計 報 告 學 校: 北華航天工業(yè)學院題 目: 可編程作息時間控制器設(shè)計 專 業(yè): 惺惺惜惺惺 班 級: Bxxxxx 姓 名: xxxxx 學 號: 惺惺惜惺惺信息學、指導教師: xx 電子工程系2013年6月14日- 1 -可編程作息時間控制器設(shè)計任務書課題名稱可編程作息時間控制器設(shè)計指導教師xx 執(zhí)行時間20132014學年第一學期 第16周學生姓名學號承擔任務ZzzZxxxx設(shè)計目的1、掌握匯編語言的基本結(jié)構(gòu)及應用;2、掌握各個部分功能的設(shè)計及應用;3、學會使用protues軟件進行電路仿真。設(shè)計要求1、 按照給定的時間模擬

2、控制實現(xiàn)上下課打鈴、燈光控制(屏幕顯示);2、 具有各日期和時鐘顯示。摘 要本課題是應用AT89C52為核心控制器件的作息時間控制鐘,由鍵盤、聲音輸出模塊、電源轉(zhuǎn)換模塊和存儲模塊四部分組成。它利用AT89C52的定時/計數(shù)器來計算時間,并用存儲器記錄數(shù)據(jù),保證了系統(tǒng)的可靠性。AT89C52單片機是整個設(shè)計的核心控制器件,根據(jù)從鍵盤接受的數(shù)據(jù)控制整個設(shè)計的工作流程。整體性好,人性化強,可靠性高,實現(xiàn)了對時間控制的智能化,擺脫了傳統(tǒng)由人來控制時間的長短的不便,可對一些以24小時為周期的開關(guān)量進行自動控制。如上下課打鈴及擴音設(shè)備的開與關(guān)。采用AT89C52單片機來實現(xiàn)對上述開關(guān)量的控制,設(shè)有8位數(shù)碼

3、管、可以實時顯示時間、系統(tǒng)還設(shè)有輸入鍵盤,用以修改實時實時時鐘,體現(xiàn)了系統(tǒng)簡單、工作穩(wěn)定可靠、價廉、控制時間精確及系統(tǒng)體積小等特點。首先設(shè)計各個模塊的屏幕顯示,其次是各個模塊需要調(diào)用的小程序,有PC機的日期和時鐘,響鈴聲音,按鍵,屏幕顯示以及延時的調(diào)用等等,最后是將各個功能模塊與其中需要的小程序通過正確的匯編語言組建起來。這樣便完成了源文件的建立。再通過.ASM源文件生成的.EXE可執(zhí)行文件進行仿真。該仿真可以模擬實現(xiàn):與PC機日期時鐘保持一致的顯示功能,仿照已設(shè)定的響鈴時間進行打鈴功能,根據(jù)已設(shè)定的早晚作息時間燈光控制的功能,鍵盤輸入修正響鈴時間,隨時手動按鍵實現(xiàn)響鈴的功能。目 錄摘 要-

4、2 -目 錄- 4 -第一章 緒論- 5 -1.1 課題研究的目的與意義- 5 -1.2 研究內(nèi)容及采用方法- 5 -1.2.1 主要研究內(nèi)容- 5 -1.2.2 主要采用方法- 5 -1.3 課題的研究原理- 6 -第2章 可編程作息時間控制器的方案設(shè)計- 7 -2.1 總體方案組成框圖及設(shè)計流程圖- 7 -2.2 具體步驟實施- 9 -2.2.1 日期和時鐘顯示功能的設(shè)計- 9 -2.2.2 上下課打鈴功能的設(shè)計- 11 -2.2.3 燈光顯示功能的設(shè)計- 14 -2.2.4 修改響鈴時間功能的設(shè)計- 14 -2.2.5 模擬手動控制功能的設(shè)計- 15 -第3章 可編程作息時間控制器的pr

5、otues仿真- 17 -3.1 仿真結(jié)果- 17 -3.2性能及誤差分析- 19 -附 錄- 20 -參 考 文 獻- 27 -第一章 緒論1.1 課題研究的目的與意義20世紀末,電子技術(shù)得到了飛速的發(fā)展。在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透到了社會的各個領(lǐng)域,有力的推動和提高了社會生產(chǎn)力的發(fā)展與信息化程度,同時也使現(xiàn)代電子產(chǎn)品性能進一步提升,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。時間對于人來說總是那么珍貴,工作的忙碌性和繁雜讓人容易忘記當前時間。然而遇到重大事情的時候,一旦忘記時間,就會給自己或他人造成更大的麻煩。對于學校來說作息時間尤為重要。如今,在電子計算機基礎(chǔ)上發(fā)展而來的可編程作息時間控制器,它

6、可以利用電子計算機的內(nèi)部時間,通過程序判斷處理,完成對作息時間的精確控制,并且由于是程序控制,所以可通過改變程序而進而靈活改變作息時間,同時可以實時顯示時間,并實現(xiàn)打鈴功能??删幊虝r間控制器可實現(xiàn)對時間控制的智能化,擺脫由人控制時間的長短不同的不便,并且可以在必要時人工切入控制,完美的滿足作息時間控制。1.2 研究內(nèi)容及采用方法1.2.1 主要研究內(nèi)容用C語言編寫作息時間控制程序,按照給定的時間模擬控制,上下課打鈴、燈光控制(屏幕顯示),并且具備日期和時鐘顯示。給定的時間可修改,可模擬手動控制,用揚聲器模擬打鈴。1.2.2 主要采用方法通過匯編語言編程,先在數(shù)據(jù)段中開幾段緩沖區(qū),以存放需要顯示

7、的提示信息以及存儲PC機內(nèi)部時鐘日期等等,調(diào)用子程序的清屏部分來顯示已經(jīng)設(shè)定好的屏幕部分,再調(diào)用DOS的日期及時鐘調(diào)用功能,讀取PC機內(nèi)部日期和時鐘,并將數(shù)據(jù)存入顯示緩沖區(qū),然后調(diào)用時間和日期顯示功能,把程序設(shè)計成用刷新的方式來不斷獲取系統(tǒng)時間,這樣就有了一秒一秒走動的日期時鐘顯示,在此過程需要用到延時程序,所以把延時程序單獨做成一個子程序,然后在需要的時候調(diào)用它,使得時間顯示程序更加精煉,此時日期和時鐘顯示功能已經(jīng)完成;而后設(shè)計燈光控制(屏幕顯示),采用比較跳轉(zhuǎn)的方式即可,當?shù)竭_設(shè)定的時間區(qū)域時通過比較來判斷是亮燈還是滅燈;隨后是上下課打鈴的模擬,需要調(diào)用DOS顯示功能,將設(shè)定好的時間在屏幕

8、上顯示出來,然后調(diào)用PC機內(nèi)部時鐘,判斷時鐘與給定時間是否相同,進而判斷是否響鈴,若響鈴則調(diào)用設(shè)定好的響鈴程序,并實現(xiàn)屏幕模擬顯示;給定時間修改是調(diào)用鍵盤I/O中斷功能號,獲取鍵值的方法來進入,先確定應該修改哪個響鈴,再將新的響鈴時間數(shù)據(jù)存入要修改時鐘的緩沖區(qū),并將其覆蓋來實現(xiàn);模擬手動控制、用揚聲器模擬打鈴,同樣采用調(diào)用鍵盤I/O中斷功能號,獲取鍵值的方法,判斷是否與設(shè)定的手動按鍵相同,若相同則進入手動控制,進入后調(diào)用響鈴程序,而后自動退出響鈴,開始其他響應功能。1.3 課題的研究原理將定時鬧鐘改造為4路可調(diào)鬧鐘,從而實現(xiàn)打鈴等功能。當四路鬧鐘中的任一路到時,均會點亮燈、打鈴。如有需求,可對

9、程序進行調(diào)整,增加鬧鐘的路數(shù),及到時后的處理方式第2章 可編程作息時間控制器的方案設(shè)計2.1 總體方案組成框圖及設(shè)計流程圖時間作息控制的主體電路應包括秒信號發(fā)生器、時間顯示電路按鍵電路、供電電源以及鬧鈴指示電路等幾部分。時間作息控制的系統(tǒng)組成框圖如圖2-1-1所示:復位、時鐘等電路電源供電電路聲光指示電路LED顯示電路按鈕電路AT89C52圖2-1-1時間作息控制的系統(tǒng)組成框圖圖2-1-2介紹了作息時間控制器的大致設(shè)計思路開始系統(tǒng)日期時間并且轉(zhuǎn)二進制為ACSII碼將日期時間存入顯示器緩沖區(qū)結(jié)束燈光控制顯示顯示日期、時間和界面響鈴設(shè)定和修正時間調(diào)用清屏程序按下Esc?手動控制否 是圖2-1-2

10、方案實施流程圖2.2 具體步驟實施2.2.1 日期和時鐘顯示功能的設(shè)計2.2.1.1日期和時鐘顯示流程圖 數(shù)據(jù)段存儲顯示時間提示開辟存儲日期時間緩沖區(qū) 代碼段中調(diào)用日期二進制轉(zhuǎn)換為ASCII碼存儲緩沖區(qū)調(diào)用時間二進制轉(zhuǎn)換為ASCII碼存儲緩沖區(qū)調(diào)用界面和日期時鐘顯示圖2-2-1是時鐘和日期設(shè)計的大體思路,先在數(shù)據(jù)段中開辟存儲日期時間等的緩沖區(qū),便于后續(xù)程序的使用,再調(diào)日期和時鐘的DOS功能調(diào)用中的顯示功能,將數(shù)據(jù)由二進制轉(zhuǎn)換為ASCII碼,存儲并顯示。圖2-2-1 日期和時鐘顯示流程圖- 11 -2.2.1.2日期和時鐘設(shè)計步驟分析該模塊設(shè)計中,先在數(shù)據(jù)段開了兩段緩沖區(qū),以存儲顯示日期和時間的

11、提示Time is以及從PC機讀到的日期和時間。而后是調(diào)用DOS的日期功能,其功能號是2ah,日期分別存于cx,dx中,在該設(shè)計中調(diào)用出來的日期時間均是二進制數(shù),如果要在界面中顯示必須要轉(zhuǎn)換成ASCII碼。每一次數(shù)制轉(zhuǎn)換后均要將轉(zhuǎn)換后的數(shù)據(jù)存儲于數(shù)據(jù)段開辟的存儲緩沖區(qū)tbuf內(nèi),接下來便可調(diào)用DOS的的9號顯示功能,只需將提示信息、日期及時間的存儲緩沖區(qū)的偏移地址賦予dx,再使用DOS功能,調(diào)用9號的顯示功能即可。這樣,日期和時間的第一次顯示時間完成,由于PC機的日期時間一直在變化,所以需要不斷調(diào)用PC機的顯示時間并顯示,因此需要再回轉(zhuǎn)至最初的調(diào)用日期程序,這樣,顯示日期時間的功能才真正完成。

12、下面是針對數(shù)制轉(zhuǎn)換和日期時間的顯示做的更為細致的解讀。 (1) 數(shù)制轉(zhuǎn)換通常在計算機當中,從鍵盤輸入的十進制數(shù)的每一位數(shù)碼或者是向CRT輸出的十進制的每一位數(shù),均是以它的ASCII碼表示的。而在機器中的一個十進制數(shù),是以相應的二進制數(shù)存放或者是以BCD碼的形式存放。因此,如果我們想將PC機中讀取的日期時間顯示到.EXE的界面中,必須將從中讀取的二進制數(shù)轉(zhuǎn)換為ASCII碼。本設(shè)計是先將二進制數(shù)轉(zhuǎn)換為十進制數(shù),再將十進制數(shù)轉(zhuǎn)換為ASCII碼的,使其在屏幕上顯示出來。由于調(diào)用該小程序段的顯示數(shù)值都是十位數(shù)或個位數(shù),所以該段小程序的設(shè)計思路是使用減法,統(tǒng)計需要轉(zhuǎn)換的數(shù)值中有多少10、1,即為十進制數(shù)中

13、的十、個位上的數(shù),然后將十進制數(shù)轉(zhuǎn)換為ASCII碼輸出。首先,在數(shù)據(jù)段中已經(jīng)設(shè)計好了被減數(shù),即const內(nèi)的數(shù)據(jù),用需要數(shù)據(jù)轉(zhuǎn)換的數(shù)據(jù)已經(jīng)在之前的數(shù)據(jù)中賦值給了ax,使用sub ax,si語句實現(xiàn)上述的減法,若不夠減,則需要重復減,并累計次數(shù),直至不夠減為止,累計的次數(shù)即為該數(shù)據(jù)十位數(shù)的數(shù)值,此時仍舊通過or dI,30h語句轉(zhuǎn)換為ASCII碼,并將轉(zhuǎn)換后的數(shù)據(jù)都存儲于bx中。(2)日期時鐘顯示功能 9號DOS功能調(diào)用可實現(xiàn)日期時鐘顯示功能,由于需要在.EXE界面顯示提示信息mess1中的相關(guān)內(nèi)容,因此調(diào)用BIOS功能,置光標于0行0列,將ah賦值2即可置光標,dh的賦值表示行,dI的賦值表示

14、列,使用Iea dx,messI語句,將messI的偏移地址賦予dx,使用mov ah,9和int 21h語句完成DOS的9號功能調(diào)用,這樣.EXE界面就出現(xiàn)了mess 1中的相關(guān)內(nèi)容;再使用BIOS功能調(diào)用,將光標置于17行21列顯示日期時間的提示信息time is,方法與上述介紹的相同,最后即可將光標置于17行37列,顯示PC機的日期和時間。2.2.2 上下課打鈴功能的設(shè)計2.2.2.1上下課打鈴設(shè)計流程圖如圖是上下課打鈴設(shè)計的大體思路,先于數(shù)據(jù)段設(shè)存儲緩沖區(qū),存儲設(shè)定的響鈴時間,將響鈴時間由二進制換成ASCII代碼,調(diào)用DOS的顯示功能,顯示響鈴時間,再調(diào)PC機時間與設(shè)定的響鈴時間比較,

15、相同時響鈴,不同時跳轉(zhuǎn)。數(shù)據(jù)段設(shè)存儲緩沖區(qū)響鈴時間數(shù)值轉(zhuǎn)換界面顯示響鈴時間設(shè)PC機時間與響鈴比較時間相等?響鈴否 是圖2-2-2 上下課打鈴設(shè)計流程圖 2.2.2.2上下課打鈴設(shè)計步驟分析本部分設(shè)計中,先在數(shù)據(jù)段開辟了四段緩沖區(qū),分別是bel響鈴提示信息,tbufl響鈴時間存儲區(qū),timeh設(shè)定好的響鈴時間中小時的存儲區(qū),timem設(shè)定好的響鈴時間中的分鐘存儲區(qū),進入代碼段后,便開始將timeh和timem中設(shè)定好的響鈴時間由二進制數(shù)轉(zhuǎn)換成ASCII代碼,并將轉(zhuǎn)換后的信息存于tbufl,對于數(shù)制轉(zhuǎn)換的內(nèi)容上文中已有介紹,這里便不再重復了。這是tbufl中已經(jīng)包含我最初設(shè)定的二十個響鈴時間,使用

16、DOS功能調(diào)用中的9號顯示功能即可將上述二十個響鈴時間顯示在界面上。隨后需要調(diào)用PC機的時間與我設(shè)定的時間進行比較,若相等則響鈴,響鈴后返回,若時間不等同樣也返回,去重復上述的顯示、調(diào)用以及比較的過程。接下來我會針對PC機時間與我設(shè)定的時間比較的程序和響鈴程序做較為細致的分析,以使該設(shè)計更加清晰明了。(1)PC機時間與設(shè)定響鈴時間比較首先我將存儲響鈴時間的timeh和timem的偏移地址分別賦給了si和di,隨后使用DOS功能調(diào)用語句中的mov ah,2ch以及int 21h來完成PC機時間的讀取,對于PC機時間的讀取,系統(tǒng)自動將小時、分鐘分別存于ch、cl中。接下來便開始比較,先假設(shè)設(shè)定的響

17、鈴均已比較完,緩沖區(qū)后區(qū)時間為空,則應當先將PC機時間與設(shè)定好的響鈴時間比較,若相同則跳轉(zhuǎn)響鈴程序,若不相等則繼續(xù)進行比較直至將設(shè)定好的響鈴時間均比較完畢,然后進行后續(xù)工作。(2)響鈴功能設(shè)計分析IBM PC機系列計算機的發(fā)聲系統(tǒng)主要由定時器/計數(shù)器8253/8254芯片來提高音頻信號,最后通過并行接口芯片8255的PB端口控制驅(qū)動電路使系統(tǒng)的揚聲器發(fā)聲。8253/8254芯片共有3個獨立的計數(shù)通道,其中2號通道分配給系統(tǒng)的揚聲器頻率控制,它的I/.O端口地址為42H,8253/8254的工作方式與音頻頻率均由8253/8254的控制寄存器(I/O端口地址42H)控制。而且8253/8254有

18、6種工作方式,對于揚聲器發(fā)聲總是選用方式3,因此為了讓發(fā)生器工作,需要通過mov al,0b6h和out 43h,al來完成音頻頻率的設(shè)置,通過mov al,03h及out 61h,al來開揚聲器,實現(xiàn)響鈴。2.2.3 燈光顯示功能的設(shè)計2.2.4 修改響鈴時間功能的設(shè)計2.2.4.1 修改響鈴時間設(shè)計流程圖圖2-2-3介紹了本模塊的大體思路,首先在數(shù)據(jù)段設(shè)置存儲時間的緩沖區(qū),其次是調(diào)用鍵盤輸入功能,算的修改響鈴的個數(shù)和修改的起始位置,最后輸入的時間替代原時間完成修改響鈴時間的功能。數(shù)據(jù)段設(shè)有存儲時間緩沖區(qū)調(diào)用鍵盤輸入功能計算修改幾個響鈴鍵盤輸入時間代替原時間計算從第幾個開始修改 圖2-2-3

19、 修給響鈴時間設(shè)計流程圖2.2.4.2 修改響鈴時間設(shè)計步驟分析在本模塊設(shè)計中,首先需要在數(shù)據(jù)段中開辟出修正提示信息和存儲時間的緩沖區(qū),當接收到手控修正響鈴時間的信號時,調(diào)用鍵盤輸入功能,該功能將掃描到的鍵盤信息均存儲于緩沖區(qū)內(nèi),第一位為緩沖區(qū)位數(shù),第二位為字符個數(shù),將字符個數(shù)除以6即可得到修正響鈴的時間個數(shù)。由于鍵盤輸入的前兩位數(shù)字的意義是沖第幾個響鈴初開始修正,因此需要將前兩位數(shù)由ASCII碼轉(zhuǎn)換成十進制數(shù),將轉(zhuǎn)換得到的數(shù)據(jù)存儲,對于鍵盤輸入時間替代原響鈴時間功能的實現(xiàn),需要根據(jù)前面得到的數(shù)據(jù),先跳轉(zhuǎn)至修正響鈴時間的地址處,然后將鍵盤輸入的響鈴時間覆蓋原時間,直至完成上述得到修正響鈴的個數(shù)

20、為止。在模塊的設(shè)計中計算修改幾個響鈴和應從第幾個開始修改這兩個小部分較為關(guān)鍵,下面是其更為詳細的介紹。(1)計算修改幾個響鈴調(diào)用鍵盤輸入功能,字符串存入緩沖區(qū),第一位為緩沖區(qū)位數(shù),第二位為字符個數(shù),自第三位開始存儲輸入字符串,取緩沖區(qū)內(nèi)第二個數(shù)值將其存于ax中,由于鍵盤輸入的數(shù)據(jù)均為00,00這種形式,所以每兩個響鈴時間均隔五個字符,因此mov cx,06h和div cx兩語句即可得到修改響鈴時間的個數(shù)。(2)計算從第幾個開始修改調(diào)出鍵盤輸入的前兩位數(shù)字即可但由于鍵盤掃描的數(shù)字是以ASCII碼形式表示,而計算機中以二進制數(shù)形成存儲,因此需要通過sub dh,30h這種類似的語句進行數(shù)字轉(zhuǎn)換,并

21、通過地址循環(huán)遞加的方式,找到需要修正響鈴時間的地址。2.2.5 模擬手動控制功能的設(shè)計2.2.5.1 模擬手動控制設(shè)計流程圖圖2-2-4介紹了本模塊設(shè)計的大體思路,調(diào)用鍵盤I/O中斷功能號1,進行鍵盤掃描,判斷當掃描到Esc時,退出界面顯示,為S或s實現(xiàn)響鈴功能,即手動控制響鈴。為C或c時,跳轉(zhuǎn)至修改響鈴時間的程序段。開始掃描鍵值修改響鈴時間響鈴退出為Esc為C或c為S或s是 否是 否否是圖2-2-4模擬手動控制設(shè)計流程圖2.2.5.2 模擬手動控制設(shè)計步驟分析模擬手動控制主要實現(xiàn)的功能是只要按下鍵盤的S或s鍵,便開始響鈴,因此在設(shè)計時先要調(diào)用鍵盤I/O中斷功能號1,獲取鍵值到AL,然后將鍵值

22、AL與lbh作比較,通過cmp al,lbh和jz quit判斷是否按下Esc鍵,若是,則跳出.EXE的界面,若不是,則將鍵值A(chǔ)L與S、s分別作比較,通過cmp al,S以及cmp al,s和jz shou判斷是否按下S或s鍵,若是跳轉(zhuǎn)至響鈴位置,即實現(xiàn)手動控制響鈴的功能,若不是再通過cmp al, C以及cmp al,c和jz correct判斷是否按下C或c鍵,若是則跳轉(zhuǎn)至修改響鈴時間的位置。第3章 可編程作息時間控制器的protues仿真3.1 仿真結(jié)果當K1被按下一次后,“小時”顯示的數(shù)碼管就閃爍,其他位就沒有變化,閃爍就說明可以對該位上進行“小時”上調(diào)整;當K1被按下兩次后,“分鐘”

23、顯示的數(shù)碼閃爍并可以調(diào)整;當K1被按下三次后,“秒”顯示的數(shù)碼閃爍并可以調(diào)整。K2,K3分別作為調(diào)整時間時前進和后退操作。P2最后接的引腳到LED發(fā)光二極管上,當按鍵被按下時,該發(fā)光二級管就會被點亮。P3上接了一個喇叭和開關(guān),當一定時間到了時,喇叭就會發(fā)聲,開關(guān)可以控制喇叭發(fā)聲。3.2性能及誤差分析該作息時間控制器有四個按鍵: K1, K2,K3。初始加電時數(shù)碼管顯示時鐘計數(shù)初值并運行。按K1鍵進行校時,可以分別按K2和K3鍵進行對時及分進行單獨校時,使其校正到標準時間。時鐘正常顯示運行狀態(tài)時,按K2鍵顯示閃爍并進行定時時間設(shè)置,按K1鍵和K3進行分和時的定時時間設(shè)定。該電路顯示的誤差主要由晶

24、振自身的誤差所造成,晶振的誤差約為0. 00010. 000001。在軟件的編程過程中所產(chǎn)生的誤差比較小,另外在中斷的過程中,只會在第一次計時時產(chǎn)生時間的偏移,而它所產(chǎn)生累計誤差很小,可以忽略。綜合以上分析,本次設(shè)計時鐘誤差較小,能得到比較理想結(jié)果,性能穩(wěn)定。課程設(shè)計體會在整個設(shè)計過程中,充分發(fā)揮人的主觀能動性,自主學習,學到了許多沒學到的知識。這次課程設(shè)計的制作過程是我的一次再學習,再提高的過程。在課程設(shè)計中我充分地運用了大學期間所學到的知識。我從資料的收集中,掌握了很多單片機、LED數(shù)碼管的知識,讓我對我所學過的知識有所鞏固和提高,并且讓我對當今單片機、LED的最新發(fā)展技術(shù)有所了解。在整個

25、過程中,我學到了新知識,增長了見識。在今后的日子里,我仍然要不斷地充實自己,爭取在所學領(lǐng)域有所作為。腳踏實地,認真嚴謹,實事求是的學習態(tài)度,不怕困難、堅持不懈、吃苦耐勞的精神是我在這次設(shè)計中最大的收益。我想這是一次意志的磨練,是對我實際能力的一次提升,也會對我未來的學習和工作有很大的幫助。在此次設(shè)計中,知道了做凡事要有一顆平常的心,不要想著走捷徑,一步一腳印。也練就了我的耐心,做什么事都在有耐心。此次課程設(shè)計中學了很多很多東西,這是最重要的。參考文獻:1 胡輝編著. 單片機原理與應用 華北水利水電出版社,2008.源程序:#include<reg52.h>#define uint

26、unsigned int #define uchar unsigned charuchar num=0; /記錄按鍵KEY1的次數(shù)的變量uchar temp=0; /記錄定時器0中斷次數(shù)的變量uchar count=0; /記錄定時器1中斷次數(shù)的變量uchar aa,i,j;uchar hour,min,sec;uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;sbit _led=P27;sbit key1=P20;sbit key2=P21;sbit key3=P22;sbit SPK=P30;sbit K1

27、=P37;void delay(uint z);/延時函數(shù)void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f,uchar aa);/顯示函數(shù)void read_key();/讀按鍵函數(shù)void led();/void Alarm(uchar t);/* 主函數(shù) */void main()P2=0xff;hour=6;min=29;sec=50;TMOD=0x11; /同時控制定時器T1和T0采用模式1工作(16位計數(shù)器)TH0=(65536-50000)/256; TL0=(65536-50000)%256;TH1=(655

28、36-50000)/256;TL1=(65536-50000)%256;EA=1;ET0=1;ET1=1;TR0=1; /運行控制位TR1=1;SPK=0; while(1) if(hour=6)&(min=30)&(sec=0)|(hour=8)&(min=00)&(sec=0)|(hour=9)&(min=50)&(sec=0)|(hour=10)&(min=00)&(sec=0)|(hour=11)&(min=50)&(sec=0)|(hour=14)&(min=00)&(sec=0)|(ho

29、ur=15)&(min=50)&(sec=0)|(hour=16)&(min=00)&(sec=0)|(hour=17)&(min=50)&(sec=0)|(hour=23)&(min=00)&(sec=0) if(K1=1) Alarm(90); Alarm(120); Alarm(90); Alarm(120); read_key();if(temp>=20) temp=0; sec+; if(sec>=60) sec=0; min+; if(min>=60) min=0; hour+; if(hour>

30、;=24) hour=0; if(count<=15) display(tablehour/10,tablehour%10,tablemin/10, tablemin%10,tablesec/10,tablesec%10,0xff);if(count>15) display(tablehour/10,tablehour%10,tablemin/10, tablemin%10,tablesec/10,tablesec%10,0x00); /* 顯示函數(shù) */void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f,uch

31、ar aa) if(num=0) P1=0x24&aa; P0=0xbf; delay(2);else P1=0x24; P0=0xbf; delay(2); if(num=1) P1=0x01&aa; P0=a; delay(2);else P1=0x01; P0=a; delay(2); /hour if(num=1) P1=0x02&aa; P0=b; delay(2);else P1=0x02; P0=b; delay(2); /hour if(num=2) P1=0x08&aa; P0=c; delay(2);else P1=0x08; P0=c; delay(2); /min if(num=2) P1=0x10&aa; P0=d; delay(2);else P1=0x10; P0=d; delay(2); /min if(num=3) P1=0x

溫馨提示

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

評論

0/150

提交評論