單片機課程設計-數字時鐘的設計.doc_第1頁
單片機課程設計-數字時鐘的設計.doc_第2頁
單片機課程設計-數字時鐘的設計.doc_第3頁
單片機課程設計-數字時鐘的設計.doc_第4頁
單片機課程設計-數字時鐘的設計.doc_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

此文檔收集于網絡,如有侵權,請聯系網站刪除開封大學單片機課程設計題目: 數字時鐘的設計 姓名: 專業: 應用電子技術 學號: 主要內容、基本要求、主要參考資料等1、主要內容:根據單片機課程所學內容,結合其他相關課程知識,設計電子時鐘,以加深對單片機知識的理解,鍛煉實踐動手能力,為以后的畢業設計和工作打下堅實基礎。2、基本要求:本設計以MCS-51系列單片機為核心,采用常用電子器件設計。要求能顯示出分、時、可調整各個時間,可以采用LED顯示,也可以采用液晶顯示。3、主要參考資料: 1 張毅坤,陳善久.單片微型計算機原理及應用.西安電子科技大學出版社,2002. 2 張友德,趙志英,徐時亮.單片微機原理應用與實驗.復旦大學出版社,2000. 3 張毅剛,彭善元,董繼承.單片機原理及應用.高等教育出版社,2003.指導教師 李繼方 摘要近年來隨著計算機在社會領域的滲透和大規模集成電路的發展,單片機的應用正在不斷地走向深入,由于它具有功能強,體積小,功耗低,價格便宜,工作可靠,使用方便等特點,因此特別適合于與控制有關的系統,越來越廣泛地應用于自動控制,智能化儀器,儀表,數據采集,軍工產品以及家用電器等各個領域,單片機往往是作為一個核心部件來使用,在根據具體硬件結構,以及針對具體應用對象特點的軟件結合,以作完善。本次設計中以單片機的發展過程和發展方向為背景,介紹了單片機的輸入輸出的工作原理和操作方法,中斷的工作原理和操作方法,74LS245譯碼器的工作原理和與,LED連接的方法。本次做的數字鐘是以單片機(AT89C51)為核心,結合相關的元器件(共陰極LED數碼顯示器、BCD-鎖存/7段譯碼/驅動器74LS245等),再配以相應的軟件,是它具有時,分,顯示的功能,并且時,分,還可以調整。此次設計電子數字鐘是為了了解電子數字鐘的原理,從而學會制作電子數字鐘。而且通過電子數字鐘的制作進一步的了解各種在制作中用到的中小規模集成電路的作用及實用方法。通過它可以進一步學習與掌握單片機原理與使用方法。關鍵詞:單片機 AT89C51 共陰極LED數碼顯示器 74LS245譯碼器 一 數電字子鐘的背景、意義、應用 20世紀末,電子技術獲得了飛速的發展,在其推動下,現代電子產品幾乎滲透了社會的各個領域,有力地推動了社會生產力的發展和社會信息化程度的提高,同時也使現代電子產品性能進一步提高,產品更新換代的節奏也越來越快。 時間對人們來說總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當前的時間。忘記了要做的事情,當事情不是很重要的時候,這種遺忘無傷大雅。但是,一旦重要事情,一時的耽誤可能釀成大禍。目前,單片機正朝著高性能和多品種方向發展趨勢將是進一步向著CMOS化、低功耗、小體積、大容量、高性能、低價格和外圍電路內裝化等幾個方面發展。下面是單片機的主要發展趨勢。單片機應用的重要意義還在于,它從根本上改變了傳統的控制系統設計思想和設計方法。從前必須由模擬電路或數字電路實現的大部分功能,現在已能用單片機通過軟件方法來實現了。這種軟件代替硬件的控制技術也稱為微控制技術,是傳統控制技術的一次革命。單片機模塊中最常見的是數字鐘,數字鐘是一種用數字電路技術實現時、分、秒計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。數字鐘是采用數字電路實現對時、分、秒數字顯示的計時裝置,廣泛用于個人家庭、車站、碼頭辦公室等公共場所,成為人們日常生活中不可少的必需品,由于數字集成電路的發展和石英晶體振蕩器的廣泛應用,使得數字鐘的精度,遠遠超過老式鐘表,鐘表的數字化給人們生產生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能。諸如定時自動報警、按時自動打鈴、時間程序自動控制、定時廣播、自動起閉路燈、定時開關烘箱、通斷動力設備、甚至各種定時電氣的自動啟用等,所有這些,都是以鐘表數字化為基礎的。因此,研究數字鐘及擴大其應用,有著非常現實的意義。 數字鐘已成為人們日常生活中:必不可少的必需品,廣泛用于個人家庭以及車站、碼頭、劇場、辦公室等公共場所,給人們的生活、學習、工作、娛樂帶來極大的方便。由于數字集成電路技術的發展和采用了先進的石英技術,使數字鐘具有走時準確、性能穩定、攜帶方便等優點,它還用于計時自動報時及自動控制的領域。二 單片機和數字鐘的基本知識l 2.1應用知識簡介51單片機:單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機系統集成到一個芯片上。作為嵌入式系統控制核心的單片機具有其體積小、功能全、性價比高等諸多優點。51 系列單片機是國內目前應用最廣泛的單片機之一,隨著嵌入式系統、片上系統等概念的提出和普遍接受及應用,51 系列單片機的發展又進入了一個新的階段。在今后很長一段時間內51 系列單片機仍將占據嵌入式系統產品的中低端市場。匯編語言:匯編語言是一種面向機器的計算機低級編程語言,通常是為特定的計算機或系列計算機專門設計的。匯編語言保持了機器語言的優點,具有直接和簡捷的特點,其代碼具有效率高實時性強等優點。但是對于復雜的運算或大型程序,用匯編語言編寫將非常耗時。匯編語言可以與高級語言配合使用,應用十分廣泛。ISP:ISP(In-System Programming)在系統可編程,是當今流行的單片機編程模式,指電路板上的空白元器件可以編程寫入最終用戶代碼,而不需要從電路板上取下元器件。已經編程的器件也可以用ISP方式擦除或再編程。本次課程設計便使用ISP方式,直接將編寫好的程序下載到連接好的單片機中進行調試。2.2單片機數字鐘的基本原理它是利用單片機的內部的定時/計數器工作與定時方式,對機器周期計數形成基準時間(如10ms)然后用另外一個計數器或軟件計數的形式對基準時間進行計數形成秒(如對10ms計數100次),“秒”計數60次“分”,“分”計數60次形成“時”,“時”計數24次形成“天”并清零,然后通過譯碼器,數碼管把他們的內容在相應的位置顯示出來。在具體的設計時定時器采用中斷方式工作,對時鐘的形成在終中斷序中實現,在主程序只是對定時/計數器的定義初始化,調用顯示程序和控制程序的初始化。另外為了使用的方便,也設計了按鍵,可以通過按鍵對時分秒進行調整,這樣程序就加了按鍵程序。三 系統硬件電路的設計3.1單片機的基本結構MCS-51單片機內部結構:8051單片機包含中央處理器、程序存儲器(ROM)、數據存儲器(RAM)、定時/計數器、并行接口、串行接口和中斷系統等幾大單元及數據總線、地址總線和控制總線等三大總線,現在我們分別加以說明:中央處理器:中央處理器(CPU)是整個單片機的核心部件,是8位數據寬度的處理器,能處理8位二進制數據或代碼,CPU負責控制、指揮和調度整個單元系統協調的工作,完成運算和控制輸入輸出功能等操作。數據存儲器(RAM)8051內部有128個8位用戶數據存儲單元和128個專用寄存器單元,它們是統一編址的,專用寄存器只能用于存放控制指令數據,用戶只能訪問,而不能用于存放用戶數據,所以,用戶能使用的RAM只有128個,可存放讀寫的數據,運算的中間結果或用戶定義的字型表。程序存儲器(ROM):8051共有4096個8位掩膜ROM,用于存放用戶程序,原始數據或表格。定時/計數器(ROM):8051有兩個16位的可編程定時/計數器,以實現定時或計數產生中斷用于控制程序轉向。并行輸入輸出(I/O)口:8051共有4組8位I/O口(P0、 P1、P2或P3),用于對外部數據的傳輸。MCS-51的引腳說明:MCS-52系列單片機中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結構,右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復用。現在我們對這些引腳的功能加以說明:MCS-51的引腳說明:MCS-52系列單片機中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結構,右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復用。現在我們對這些引腳的功能加以說明: 圖3-2單片機的引腳Pin9:RESET/Vpd復位信號復用腳,當8052通電,時鐘電路開始工作,在RESET引腳上出現24個時鐘周期以上的高電平,系統即初始復位。初始化后,程序計數器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫入07H,其它專用寄存器被清“0”。RESET由高電平下降為低電平后,系統即從0000H地址開始執行程序。然而,初始復位不改變RAM(包括工作寄存器R0-R7)的狀態,8052的初始態。 3.2七段數碼管的引腳圖及使用:數碼管使用條件:a、段及小數點上加限流電阻。b、使用電壓:段:根據發光顏色決定; 小數點:根據發光顏色決定。c、使用電流:靜態:總電流 80mA(每段 10mA);動態:平均電流 4-5mA 峰值電流 100mA上面這個只是七段數碼管引腳圖,其中共陽極數碼管引腳圖和共陰極的是一樣的。LED數碼管根據LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重要的,因為不同類型的數碼管,除了它們的硬件電路有差異外,編程方法也是不同的。右圖是共陰和共陽極數碼管的內部電路,它們的發光原理是一樣的,只是它們的電源極性不同而已。 將多只LED的陰極連在一起即為共陰式,而將多只LED的陽極連在一起即為共陽式。以共陰式為例,如把陰極接地,在相應段的陽極接上正電源,該段即會發光。當然,LED的電流通常較小,一般均需在回路中接上限流電阻。假如我們將b和c段接上正電源,其它端接地或懸空,那么b和c段發光,此時,數碼管顯示將顯示數字“1”。而將a、b、d、e和g段都接上正電源,其它引腳懸空,此時數碼管將顯示“2”。其它字符的顯示原理類同。3.3硬件電路的設計原則在性價比滿足應用系統要求的情況下,選擇更可靠,更熟悉的單片機縮短研制周期。盡可能選擇自己較為熟悉的應用電路,以提高系統的可靠性。單片機內部的資源與外部的擴展資源應在滿足系統設計的基礎上留有余地,為進一步的升級和擴展提供方便。應充分的結合軟件方案考慮硬件的結構,通常硬件功能較完善,其相應的軟件程序就簡單,但硬件的成本較高,而功能較低,其相應的軟件就復雜,其實際常用軟件代替硬件來降低成本。整個系統相關的器件盡可能的做到性能相匹配。充分的考慮系統的抗干擾性,如具有抗干擾的單片機并充分的帥選芯片與器件,在電路中采取隔離或屏蔽的措施等。更具以上的原則我們選擇我們較為熟悉的80c51單片機;為了LED數碼管的顯示和和鍵盤的控制,我們也選擇了74LS245的譯碼器和#1,#2,#3號按鍵作為時鐘的參數修改加一鍵#1鍵修改時,按一下時加一#2鍵修改分,按一下分加一#3鍵修改秒,按一下秒加一時鐘硬件連接圖如下圖所示四 軟件程序的設計4.1 軟件流程內容 本設計的軟件程序包括主程序、中斷子程序、打鈴子程序、時鐘顯示子程序、查詢時間表切換程序和延時子程序等等。另外由于電路中有四個按鍵,還另外設計了防抖動程序來防止干擾。4.2 軟件流程圖4.2.1 系統軟件設計流程圖這次的數字電子鐘設計用到很多子程序,它們的流程圖如下所示。 主程序是先開始,然后啟動定時器,定時器啟動后在進行按鍵檢測,檢測完后,就可以顯示時間。開始啟動定時器按鍵檢測時間顯示圖4-1 主程序流程圖 按鍵處理是先檢測秒按鍵是否按下,秒按鍵如果按下,秒就加1;如果沒有按下,就檢測分按鍵是否按下,分按鍵如果按下,分就加1;如果沒有按下,就檢測時按鍵是否按下,時按鍵如果按下,時就加1;如果沒有按下,就把時間顯示。 4.3 定時程序設計單片機的定時功能也是通過計數器的計數來實現的,此時的計數脈沖來自單片機的內部,即每個機器周期產生一個計數脈沖,也就是每經過1個機器周期的時間,計數器加1。如果MCS-52采用的12MHz晶體,則計數頻率為1MHz,即每過1us的時間計數器加1。這樣可以根據計數值計算出定時時間,也可以根據定時時間的要求計算出計數器的初值。MCS-51單片機的定時器/計數器具有4種工作方式,其控制字均在相應的特殊功能寄存器中,通過對特殊功能寄存器的編程,可以方便的選擇定時器/計數器兩種工作模式和4種工作方式。定時器/計數器工作在方式0時,為13位的計數器,由TLX(X=0、1)的低5位和THX的高8位所構成。TLX低5位溢出則向THX進位,THX計數溢出則置位TCON中的溢出標志位TFX.當定時器/計數器工作于方式1,為16位的計數器。本設計師單片機多功能定時器,所以MCS-51內部的定時器/計數器被選定為定時器工作模式,計數輸入信號是內部時鐘脈沖,每個機器周期產生一個脈沖使計數器增1。4.3.1實時時鐘實現的基本方法:時鐘的最小計時單位是秒,但使用定時器的方式1,最大的定時時間也只能達到131ms。我們可把定時器的定時時間定為50ms。這樣,計數溢出20次即可得到時鐘的最小計時單位:秒。而計數20次可以用軟件實現。秒計時是采用中斷方式進行溢出次數的累積,計滿20次,即得到秒計時。從秒到分,從分到時是通過軟件累加并進行比較的方法來實現的。要求每滿1秒,則“秒”單元中的內容加1;“秒”單元滿60,則“分”單元中的內容加1;“分”單元滿60,則“時”單元中的內容加1;“時”單元滿24,則將時、分、秒的內容全部清零。4.3.2 實時時鐘程序設計步驟:(1)選擇工作方式,計算初值;(2)采用中斷方式進行溢出次數累計;(3)從分時的計時是通過累加和數值比較實現的;(4)時鐘顯示緩沖區:時鐘時間在方位數碼管上進行顯示,為此在內部RAM中要設置顯示緩沖區,共6個地址單元。顯示緩沖區從左到右依次存放時、分、秒數值;(5)主程序:主要進行定時器/計數器的初始化編程,然后反復調用顯示子程序的方法等待中斷的到來。(6)中斷服務程序:進行計時操作(7)加1子程序:用于完成對時、分、秒的加操作,中斷服務程序在秒、分、時加1時共有三種條調用加1子程序,包括三項內容:合字、加1并進行十進制調整、分字。源程序如下:S_SETBITP1.0 ;數字鐘秒控制位M_SETBITP1.1 ;分鐘控制位H_SETBITP1.2 ;小時控制位D_SET BIT P1.3 ;天控制位SECONDEQU30HMINUTEEQU31HHOUREQU32HDAY EQU 33HTCNTEQU34HORG00HSJMPSTARTORG0BHLJMPINT_T0START:MOVDPTR,#TABLEMOVHOUR,#0;初始化MOVMINUTE,#0MOVSECOND,#0MOV DAY,#0MOVTCNT,#0MOVTMOD,#01HMOVTH0,#(65536-50000)/256;定時50毫秒MOVTL0,#(65536-50000)MOD 256MOVIE,#82HSETBTR0;*;判斷是否有控制鍵按下,是哪一個鍵按下A1:LCALLDISPLAYJNBS_SET,S1JNBM_SET,S2JNBH_SET,S3LJMPA1S1:LCALLDELAY;去抖動JBS_SET,A1INCSECOND;秒值加1MOVA,SECONDCJNEA,#60,J0;判斷是否加到60秒MOVSECOND,#0LJMPK1S2:LCALLDELAYJBM_SET,A1K1:INCMINUTE;分鐘值加1MOVA,MINUTECJNEA,#60,J1;判斷是否加到60分MOVMINUTE,#0LJMPK2S3:LCALLDELAYJBH_SET,A1K2:INCHOUR;小時值加1MOVA,HOURCJNEA,#24,J2;判斷是否加到24小時MOVHOUR,#0LJMP K3K3: INC DAY ;天值加1MOVMINUTE,#0MOVSECOND,#0LJMPA1;*;等待按鍵抬起J0:JBS_SET,A1LCALLDISPLAYSJMPJ0J1:JBM_SET,A1LCALLDISPLAYSJMPJ1J2:JBH_SET,A1LCALLDISPLAYSJMPJ2;*;定時器中斷服務程序,對,分鐘和小時的計數INT_T0:MOVTH0,#(65536-50000)/256MOVTL0,#(65536-50000)MOD 256INCTCNTMOVA,TCNTCJNEA,#20,RETUNE;計時1秒INCSECONDMOVTCNT,#0MOVA,SECONDCJNEA,#60,RETUNEINCMINUTEMOVSECOND,#0MOVA,MINUTECJNEA,#60,RETUNEINCHOURMOVMINUTE,#0MOVA,HOURCJNEA,#24,RETUNEMOVHOUR,#0MOVMINUTE,#0MOVSECOND,#0MOVTCNT,#0RETUNE:RETI;*;顯示控制子程序DISPLAY:MOVA,SECOND;顯示秒MOVB,#10DIVABCLRP3.6MOVCA,A+DPTRMOVP0,A

溫馨提示

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

評論

0/150

提交評論