單片機原理及應用課程設計--基于單片機的電子時鐘設計_第1頁
已閱讀1頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  《單片機原理及應用》</p><p><b>  課程設計報告</b></p><p>  學 院:水利與能源動力工程學院 </p><p>  班 級: </p><p>  學 號: </p>&

2、lt;p>  姓 名: </p><p>  時 間:2014-1-6 ~ 2014-1-10</p><p><b>  目錄</b></p><p><b>  任務書1</b></p><p>  第一章 方案設計2</p&g

3、t;<p>  第二章 硬件系統(tǒng)設計3</p><p>  第三章 軟件設計4</p><p>  第四章 系統(tǒng)調(diào)試6</p><p><b>  小 結(jié)8</b></p><p><b>  附錄1:原理圖9</b></p><p>  附錄

4、2:源程序10</p><p><b>  任務書</b></p><p>  題 目:基于單片機的電子時鐘設計</p><p><b>  設計要求:</b></p><p> ?。?)利用單片機的定時器,實現(xiàn)時、分、秒顯示及設定;</p><p> ?。?)顯示采

5、用ZLG7290;</p><p> ?。?)討論本系統(tǒng)計時誤差。</p><p><b>  課程設計進度安排:</b></p><p>  本次課程設計為期一周。</p><p><b>  第一章 方案設計</b></p><p>  本次課程設計任務是設計一個電子時

6、鐘。電子時鐘可以用數(shù)碼管來顯示時、分、秒的數(shù)字,其中用小數(shù)點分隔。若采用二十四小時計時,“時”的范圍是0到24;若采用十二小時計時,“時”的范圍則是0到12,但要另外用一個數(shù)碼管來顯示“A”或者“P”來表示上下午。</p><p>  程序設計時可采用三個寄存器來存放時、分、秒的當前數(shù)值,每過一秒,代表秒的寄存器加一,秒滿60則清零,同時分鐘加一,小時亦然。若采用二十四小時計時,時滿24清零;若采用十二小時計時,

7、時滿12清零,但要同時翻轉(zhuǎn)一個保存上下午狀態(tài)的位變量來表示上下午狀態(tài)的改變。</p><p>  用按鈕接外部中斷來控制時和分鐘的調(diào)整,每按一下秒清零且相應數(shù)字加一;同時保證數(shù)值滿了就清零不進位,但要改變上下午狀態(tài)。</p><p>  該方案計時有誤差,誤差來源于單片機外接的晶振誤差和執(zhí)行指令帶來的微秒級延時。</p><p>  第二章 硬件系統(tǒng)設計</

8、p><p>  CPU選AT89C51,該單片機有3個并行I/O口,2個外接中斷源,2個定時/計數(shù)器,可外接24MHz以下的晶振。實驗時,可用定時/計數(shù)器1來計時(因為定時/計數(shù)器1的中斷優(yōu)先級較低,避免了在設置時鐘時進入改變秒的中斷,也避免了有時無法修改小時),用外部中斷0來修改分鐘,用外部中斷1來修改小時。外部中斷全部設為邊沿觸發(fā)方式,因為,每按一下按鈕,只需改變相應的值一次。</p><p&

9、gt;  顯示數(shù)碼管可以用ZLG7290。它可以方便地驅(qū)動8個8段的共陰極LED數(shù)碼管,顯示時只需向緩沖區(qū)中放入要顯示的值即可,并且能夠自動刷新,不需要像常規(guī)辦法一樣先通過查表找到段碼再循環(huán)點亮。因此,使用這種方法顯示時鐘可是程序簡潔易懂。</p><p>  連接時只需依次將8951的、、分別與7290的、、相連,8951的外部中斷、分別接外部按鈕即可。</p><p>  實驗時選擇6

10、MHz的晶振。</p><p><b>  第三章 軟件設計</b></p><p>  選用R5、R6、R7作為存放時、分、秒的寄存器,可尋址位07H存放上下午的狀態(tài)。在6MHz的晶振下,選用定時/計數(shù)器1在方式1下工作,定時0.1s,初值設定:=15535,即3CB0H。因為每次只能定時0.1s,所以要使用一個專用的寄存器R4來判定定時是否到了1s。</p

11、><p>  主程序的任務僅為設定初始化并等待中斷到來。</p><p>  在定時/計數(shù)器1的中斷服務子程序里,要先判斷1s的定時是否完成,未完成則直接結(jié)束,完成的話則秒加一,如果秒溢出則考慮分和時的改變。改變后則調(diào)用顯示子程序刷新顯示。</p><p>  在外部中斷0的中斷服務子程序里,將分加一,并判斷溢出(溢出后僅置零而不復位),最后調(diào)用顯示子程序刷新顯示。&l

12、t;/p><p>  外部中斷1的中斷服務子程序與外部中斷0類似,只不過要注意改變上下午的狀態(tài)。</p><p>  下頁圖分別為主程序、定時/計數(shù)器中斷子程序、外部中斷0子程序、外部中斷1子程序的流程圖</p><p><b>  第四章 系統(tǒng)調(diào)試</b></p><p>  在課程設計過程中,我主要遇到如下方面的問題:

13、</p><p>  1、剛開始時我將調(diào)用顯示的程序段放入主函數(shù),但效果不理想。因為,在調(diào)用顯示子函數(shù)時,需要先關閉中斷,但如果正好這時要修改時鐘的值,會導致請求無法得到解決。</p><p>  2、最初編譯時遇到“標號重復”的錯誤。仔細檢查后發(fā)現(xiàn),“START”“LOOP”等標號已在“LEDDISP_ASM.INC”里使用過,修改自己的標號則能編譯通過。</p><

14、p>  3、最初使用CY標志位來存放上下午的標志,結(jié)果導致該功能經(jīng)常出錯。仔細分析后使用可位尋址單元代替,解決了這一問題。</p><p>  4、修改時鐘的值的時候按一下按鈕會導致相應的數(shù)字家很多次,這是開關的抖動噪聲造成的,可以采用硬件或者軟件的消抖實現(xiàn)。</p><p>  5、若晶振選擇錯誤,如選擇了12MHz的晶振,則會導致計時時間變快整整一倍。</p>&l

15、t;p>  部分最終運行結(jié)果如下頁圖:</p><p><b>  小 結(jié)</b></p><p>  我們經(jīng)歷了一個學期的單片機原理及應用的學習,但是除了實驗外并沒有多少實踐的機會。課程設計與理論課程和實驗有著很大的區(qū)別,它是一個綜合性很強的課程環(huán)節(jié),也是我們所必須經(jīng)歷的一個學習階段。在課程設計中,我們在學會理論知識的同時,還會加深自己對這門課程的理解。在這

16、門課程設計當中,我們能結(jié)合到一些其他課程,能鞏固一些軟件的運用。通過知識的互相結(jié)合,相互滲透,來得到我們所需的數(shù)據(jù)、結(jié)論以及使我們掌握更多的知識。</p><p>  這次單片機原理及應用課程設計過程中,我發(fā)現(xiàn)做編程首要的就是邏輯能力,我們要在最開始就規(guī)劃出程序的流程。編程時,一定要細心,盡量避免一些語法錯誤。最后,還需要一顆耐心,不斷地調(diào)試、完善自己的程序。</p><p>  最重要的

17、,這門課教會了我“做什么”要比“怎么做”難得多。做任何事都要有一個目標,從一開始就要有一個明確的方向,這樣才有意義。最后還要感謝吳老師的指導和同學們的幫助,讓我順利完成了課程設計。</p><p><b>  附錄1:原理圖</b></p><p>  說明:本原理圖由“Protel 99 SE”軟件繪制。</p><p><b> 

18、 附錄2:源程序</b></p><p>  ; 定義器件地址及存放單元/變量單元/I2C引腳</p><p>  ZLG7290 EQU 70H ;ZLG7290的器件地址</p><p>  SLA DATA 63H ;器件的從地址</p><p>  SUBA D

19、ATA 64H ;器件的子地址</p><p>  ACK BIT 10H ;應答標志位</p><p>  NUMBYTE DATA 62H ;讀/寫的字節(jié)數(shù)變量</p><p>  MTD EQU 6EH ;發(fā)送數(shù)據(jù)緩沖器</p><p>  DISBU

20、F EQU 66H ;66H~6DH為顯示緩沖區(qū),66H對應最右一位</p><p>  SDA BIT P3.0</p><p>  SCL BIT P3.1</p><p>  RST BIT P3.6</p><p>  ORG 0000H<

21、/p><p>  AJMP START1</p><p>  ORG 0003H</p><p>  AJMP INT0_INT</p><p>  ORG 0013H</p><p>  AJMP INT1_INT</p><p>  ORG 001BH</p&

22、gt;<p>  AJMP T1_INT ;各程序段入口地址</p><p>  ORG 0100H</p><p>  START1: MOV R4,#10</p><p>  MOV R5,#0</p><p>  MOV R6,#0</p><p>  MOV

23、 R7,#0 ;寄存器賦初值</p><p>  MOV SP,#70H ;堆棧的選擇避開緩沖區(qū)</p><p>  MOV TMOD,#10H</p><p>  MOV TL1,#0B0H</p><p>  MOV TH1,#3CH</p><p>  SETB

24、EX0</p><p>  SETB EX1</p><p>  SETB ET1</p><p>  SETB IT0</p><p>  SETB IT1</p><p>  SETB EA ;各類中斷的設置</p><p>  LCA

25、LL RE7290</p><p>  MOV R0,#DISBUF</p><p>  MOV A,#1FH</p><p>  MOV R2,#08H</p><p>  MLOOP: MOV @R0,A</p><p><b>  INC R0</b>&

26、lt;/p><p>  DJNZ R2,MLOOP</p><p>  CLR 07H</p><p>  MOV 66H,#0AH ;數(shù)碼管復位,填入熄滅碼</p><p>  SETB TR1</p><p><b>  SJMP $</b></

27、p><p>  T1_INT: MOV TL1,#0B0H</p><p>  MOV TH1,#3CH ;重設初值</p><p>  DJNZ R4,T1_EXT ;判定時是否滿1s</p><p>  INC R7</p><p>  MOV

28、 R4,#10</p><p>  CJNE R7,#60,LOOP11</p><p>  MOV R7,#0</p><p>  INC R6</p><p>  CJNE R6,#60,LOOP11</p><p>  MOV R6,#0</p><p>

29、;  INC R5</p><p>  CJNE R5,#12,LOOP11</p><p>  MOV R5,#0 ;時分秒的計算</p><p>  CPL 07H</p><p>  JB 07H,APCHANG</p><p>  MOV

30、 66H,#0AH</p><p>  SJMP LOOP11</p><p>  APCHANG: MOV 66H,#16H ;上下午的變換</p><p>  LOOP11: MOV B,#10</p><p>  MOV A,R7</p><p>  DIV

31、 AB ;分離十位和個位</p><p>  MOV 68H,B</p><p>  MOV 69H,A</p><p>  MOV B,#10</p><p>  MOV A,R6</p><p>  DIV AB</p><p&g

32、t;  SETB B.7 ;顯示分隔用的小數(shù)點</p><p>  MOV 6AH,B</p><p>  MOV 6BH,A</p><p>  MOV B,#10</p><p>  MOV A,R5</p><p><b>  DIV

33、AB</b></p><p>  SETB B.7</p><p>  MOV 6CH,B</p><p>  MOV 6DH,A</p><p><b>  CLR EA</b></p><p>  LCALL LEDDISP ;調(diào)用顯示

34、子程序</p><p><b>  SETB EA</b></p><p>  T1_EXT: RETI</p><p>  INT0_INT: CLR EA</p><p>  MOV R7,#0</p><p>  INC R6</p><

35、p>  CJNE R6,#60,E0_EXT</p><p>  MOV R6,#0</p><p>  E0_EXT: LCALL LEDDISP</p><p>  SETB EA</p><p><b>  RETI</b></p><p>  INT1_IN

36、T: CLR EA</p><p>  MOV R7,#0</p><p>  INC R5</p><p>  CJNE R5,#12,E1_EXT</p><p>  MOV R5,#0</p><p>  CPL 07H</p><p>  JB

37、 07H,APCHANG1</p><p>  MOV 66H,#0AH</p><p>  SJMP E1_EXT</p><p>  APCHANG1: MOV 66H,#16H</p><p>  E1_EXT: LCALL LEDDISP</p><p>  SETB

溫馨提示

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

評論

0/150

提交評論