單片機課程設計--- 單片機電子時鐘設計_第1頁
已閱讀1頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設計(論文)</b></p><p>  題 目 名 稱 單片機電子時鐘設計 </p><p>  課 程 名 稱 單 片 機 原 理 及 應 用 </p><p>  學 生 姓 名

2、 </p><p>  學 號 </p><p>  系 、專 業(yè) 信息工程系、電氣信息類 </p><p>  指 導 教 師

3、 </p><p>  2011 年 6月 23 日</p><p>  課程設計(論文)任務書</p><p>  注:1.此表由指導教師填寫,經(jīng)系、教研室審批,指導教師、學生簽字后生效;</p><p>  2.此表1式3份,學生、指導教師、教研室各1份。</p><p>  指導教師(簽

4、字): 學生(簽字):</p><p><b>  目 錄</b></p><p>  1 系統(tǒng)概述7</p><p>  1.1課程設計目的7</p><p>  1.2課程設計要求7</p><p>  1.3硬件系統(tǒng)框圖8</p

5、><p>  1.4軟件系統(tǒng)框圖8</p><p>  2 系統(tǒng)硬件設計9</p><p>  2.1晶振復位電路9</p><p>  2.2開關控制電路9</p><p>  2.3顯示電路10</p><p>  2.4硬件電路總圖11</p><p>

6、  3 軟件系統(tǒng)設計12</p><p>  3.1程序概述12</p><p>  3.2 程序流程圖12</p><p><b>  3.3源程序15</b></p><p>  4 系統(tǒng)仿真與調(diào)試20</p><p>  4.1仿真軟件proteus簡介20</p&g

7、t;<p>  4.2仿真結(jié)果20</p><p>  5 總結(jié)與致謝23</p><p><b>  參考文獻:24</b></p><p><b>  摘 要</b></p><p>  單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機系統(tǒng)集成

8、到一個芯片上。它由 CPU 、存儲器(包括 RAM 和 ROM )、 I/O 接口、定時 / 計數(shù)器、中斷控制功能等均集成在一塊芯片上,片內(nèi)各功能通過內(nèi)部總線相互連接起來。它具有優(yōu)異的性能價格比、集成度高、體積小、可靠性高、控制功能強 、低電壓、低功耗等諸多優(yōu)點。</p><p>  單片機內(nèi)部也用和電腦功能類似的模塊,比如CPU,內(nèi)存,并行總線,還有和硬盤作用相同的存儲器件,不同的是它的這些部件性能都相對我們

9、的家用電腦弱很多,不過價錢也便宜得多,一般不超過10元,用它來做一些控制電器一類相對簡單的應用,其功能足矣。日常生活中的全自動滾筒洗衣機、冰箱、電磁爐排煙罩、VCD等家電都可以看到它的身影。它主要是作為控制部分的核心部件。</p><p>  我們這學期開設了這門課,由于課時較少,講授的只能是基礎的理論知識,要想進一步提高單片機技術,我們除了必須了解單片機的硬件結(jié)構,掌握基本的匯編語言的編程方法,還要能熟練使用一

10、些的編程軟件及仿真軟件。另外,基本的電路知識和電路連接方法也是不可或缺的一部分??傊畣纹瑱C的應用必須具備全面的基礎知識和扎實的理論基礎。 </p><p>  關鍵詞:8051單片機、7SEG8位數(shù)碼管、調(diào)時按鍵、數(shù)字</p><p><b>  1系統(tǒng)概述</b></p><p><b>  1.1課程設計目的</b>&

11、lt;/p><p>  單片計算機即單片微型計算機。(Single-Chip Microcomputer ),是 集CPU ,RAM ,ROM ,定時,計數(shù)和多種接口于一體的微控制器。他體積小,成本低,功能強,廣泛應用于智能產(chǎn)品和工業(yè)自動化上。而51單片機是各單片機中最為典型和最有代表性的一種。這次課程設計通過對它的學習,應用,從而達到學習、設計、開發(fā)軟、硬的能力。</p><p>  通過查

12、閱資料、硬件設計、程序設計、安裝調(diào)試、撰寫論文等環(huán)節(jié),初步掌握工程設計方法和組織實踐的基本技能;熟悉科學實踐的程序和辦法,為今后從事生產(chǎn)技術工作打下必要的基礎;學會靈活運用已經(jīng)學過的知識,并能不斷接受新的知識,大膽發(fā)明創(chuàng)造的設計理念。</p><p><b>  1.2課程設計要求</b></p><p>  該課程設計是利用MCS-51單片機內(nèi)部的定時/計數(shù)器、中斷

13、系統(tǒng)、以及行列鍵盤和LED顯示器等部件,設計一個單片機電子時鐘。設計的電子時鐘通過數(shù)碼管顯示,并能通過按鍵實現(xiàn)設置時間和暫停、啟動控制等。用定時/計數(shù)器T0,工作于定時,采用方式1,對12MHZ的系統(tǒng)時鐘進行定時計數(shù),初值設為XXYY(自己計算)。形成定時時間為50ms。用片內(nèi)RAM的7BH單元對50ms計數(shù),計20次產(chǎn)生秒計數(shù)器78H單元加1,秒計數(shù)器加到60則分計數(shù)器79H單元加1,分計數(shù)器加到60則時計數(shù)器7AH單元加1,時計數(shù)器

14、加到24則時計數(shù)器清0。然后把秒、分、時計數(shù)器分成十位和個位放到8個數(shù)碼管的顯示緩沖區(qū),通過數(shù)碼管顯示出來。顯示格式為小時十位、小時個位---分十位、分個位---秒十位、秒個位。在處理過程中加上了按鍵判斷程序,能對按鍵處理</p><p><b>  1.3硬件系統(tǒng)框圖</b></p><p>  圖1.1 硬件系統(tǒng)框圖</p><p>&l

15、t;b>  1.4軟件系統(tǒng)框圖</b></p><p>  圖1.2 軟件系統(tǒng)框 </p><p><b>  2 系統(tǒng)硬件設計</b></p><p><b>  2.1晶振復位電路</b></p><p>  復位是單片機的初始化操作,單片機啟動運行時,都必須復位。他的作用

16、是使CPU和系統(tǒng)中其他的部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。一般,80C51系列單片機本身是不能自動復位的,必須配合相應的外部電路才能實現(xiàn)。</p><p>  圖2.1 晶振及復位電路</p><p><b>  2.2開關控制電路</b></p><p>  開關K1、K2、K3分別接在單片機的P1.0、P1.1、P1.2三

17、個I/0口上,分別具有選定時分秒,加一,減一的功能。程序中的去抖動要求按鍵按下時間必須大于10MS才進行加一操作。</p><p>  圖2.2 開關控制電路</p><p><b>  2.3顯示電路</b></p><p>  顯示電路由一塊8位共陽數(shù)碼管組成,將各數(shù)碼管的各段(A,B,C,D,E,F,G及DP)依次連接到單片機的P0.0-

18、-----P0.7端口上,其公共端則依次連接到P2.0------P2.7,程序匯總采用掃描方法輪流依次點亮各位LED,使每位分時顯示該位顯示的字符。</p><p>  圖2.3 管腳連接圖和引腳圖</p><p>  圖2.4 顯示電路部分</p><p><b>  2.4硬件電路總圖</b></p><p>  

19、將各個部分組裝連接起來,認真檢查并燒入程序,調(diào)試直至結(jié)果正確??傠娐穲D如下:</p><p>  圖2.5 仿真電路總圖 </p><p><b>  3軟件系統(tǒng)設計</b></p><p><b>  3.1程序概述</b></p><p>  本計算器程序通過LED動態(tài)掃描的方法,給數(shù)碼管送數(shù)據(jù)

20、,并通過定時器T0和循環(huán)程序?qū)崿F(xiàn)一秒的精確計時,同時通過外部中斷來控制時分秒的增減操作。程序中包含有顯示、中斷、加一、減一、延時等子程序,通過各個子程序和主程序之間的調(diào)用和跳轉(zhuǎn),最終完成該簡易數(shù)字時鐘。</p><p><b>  3.2 程序流程圖</b></p><p>  1. T0中斷服務程序</p><p>  進入中斷后,判定進入中

21、斷次數(shù)是否等于20,當?shù)扔?0次時,表明已達到延時1秒,此時將顯示的時間秒位上加1,同時判定秒位上是否到達60,如果到達60,則分位上加1,再判定分位上是否到達60,如果到達60,則時位上加1定時器仍賦初值,繼續(xù)進行延時。</p><p>  圖3.1 中斷程序流程圖</p><p><b>  2.主程序流程圖</b></p><p>  初

22、始化時,選用定時器0,設置初值,打開中斷總開關,打開定時器0和中斷允許開關,啟動定時器0,再進行時間初值顯示,并判斷按鍵。</p><p>  圖3.2 程序總流程圖</p><p><b>  3.3源程序</b></p><p>  ORG 0000H</p><p>  LJMP START </p&

23、gt;<p>  ORG 000BH ;定時器0中斷入口 </p><p>  LJMP INTT0 ;中服程序</p><p>  START: ;主程序初始化</p><p>  MOV R0,#70H </p

24、><p>  MOV R7,#0CH ;開辟長度為13,始地址為70H的一段地址</p><p><b>  INIT: </b></p><p>  MOV @R0,#00H </p><p><b>  INC R0</b></p>

25、<p>  DJNZ R7,INIT ;將此段地址的內(nèi)容清0</p><p>  MOV 72H,#10</p><p>  MOV 75H,#10 ;給72H,75H賦定值A,用于顯示“—”</p><p>  MOV TMOD,#01H ;啟動定時器0</p>

26、<p>  MOV TL0,#0B0H</p><p>  MOV TH0,#03CH ;定時器0賦初值,計時時間為50MS</p><p>  SETB EA ;打開中斷總開關</p><p>  SETB ET0 ;允時定時器0中斷</p>

27、<p>  SETB TR0 ;啟動定時器0</p><p>  START1: ;功能程序</p><p>  LCALL SCAN ;時間顯示</p><p>  LCALL KEYSCAN ;判斷按鍵,對時間進行調(diào)節(jié)</p

28、><p>  SJMP START1 ;循環(huán)判斷</p><p>  DL1MS: ;1MS延時程序</p><p>  MOV R6,#14H</p><p><b>  DL1:</b></p><p>  MOV R7,#1

29、9H</p><p><b>  DL2:</b></p><p>  DJNZ R7,DL2</p><p>  DJNZ R6,DL1</p><p><b>  RET</b></p><p>  DL20MS: ;20MS延時

30、程序</p><p>  ACALL SCAN </p><p>  ACALL SCAN </p><p>  ACALL SCAN ;不使顯示中斷,延時程序中繼續(xù)進行顯示</p><p><b>  RET</b></p>

31、<p>  SCAN: ;時間顯示程序</p><p>  MOV A,78H ;秒時間寄存地址</p><p>  MOV B,#0AH </p><p>  DIV AB ;除以10,使尋址地址在指定范圍內(nèi)

32、 </p><p>  MOV 71H,A </p><p>  MOV 70H,B </p><p>  MOV A,79H</p><p>  MOV B,#0AH </p><p><

33、b>  DIV AB</b></p><p>  MOV 74H,A</p><p>  MOV 73H,B</p><p>  MOV A,7AH</p><p>  MOV B,#0AH</p><p><b>  DIV AB</b></p>&l

34、t;p>  MOV 77H,A</p><p>  MOV 76H,B ;使除72H,75H,從70H到77H的一段地址的值為分別為00A00A00</p><p>  MOV R1,#70H ;從70H開始</p><p>  MOV R5,#80H ;設定片選值</p><p>

35、  MOV R3,#08H ;顯示8位數(shù)碼管</p><p><b>  SCAN1:</b></p><p>  MOV A,R5 </p><p>  MOV P2,A ;選定顯示數(shù)據(jù)的數(shù)碼管</p><p>  MOV A,@R1 ;

36、利用累加器進行查表顯示</p><p>  MOV DPTR,#TAB</p><p>  MOVC A,@A+DPTR</p><p>  MOV P0,A ;點亮選定數(shù)碼管</p><p><b>  MOV A,R5</b></p><p>  LCALL

37、DL1MS ;延時1MS</p><p>  INC R1 ;寄存器加1,查表中另一數(shù)據(jù)</p><p>  MOV A,R5 </p><p>  RR A ;累加器右移,選定另一數(shù)碼管</p><p><b>  MOV

38、 R5,A</b></p><p>  DJNZ R3,SCAN1 ;依次點亮8位數(shù)碼管,顯示初始時間</p><p>  MOV P2,#00H </p><p>  MOV P0,#0FFH ;熄滅數(shù)碼管</p><p><b>  RET</b>

39、;</p><p>  TAB: db 0C0h,0f9h,0a4h,0B0h,99h,92h,82h,0F8h,80H,90H,0BFH</p><p>  INTT0: ;定時器0中服程序</p><p>  PUSH ACC </p><p><b>  PUSH

40、 PSW</b></p><p>  CLR ET0 </p><p>  CLR TR0 ;關閉中斷,關閉定時器</p><p>  MOV TL0,#0B0H ;重新給定時器賦初值</p><p>  MOV TH0,#03CH</p>

41、<p>  SETB TR0 ;啟動定時器</p><p>  INC 7BH ;中斷次數(shù)加1</p><p>  MOV A,7BH</p><p>  CJNE A,#14H,OUTT0 ;判斷中斷次數(shù)是否為20次</p><p>  MOV 7BH,#0

42、0 ;剛好為20次,達到1S延時,中斷次數(shù)歸0</p><p>  INC 78H ;秒顯示加1</p><p>  MOV A,78H</p><p>  CJNE A,#3CH,OUTT0 ;判斷秒顯示是否到60秒</p><p>  MOV 78H,#00

43、 ;到達60秒,秒顯示為00</p><p>  INC 79H ;同時分顯示加1</p><p>  MOV A,79H </p><p>  CJNE A,#3CH,OUTT0 ;再判定分顯示是否到60</p><p>  MOV 79H,#00

44、 ;到60分,分顯示為00</p><p>  INC 7AH ;時顯示加1</p><p>  MOV A,7AH</p><p>  CJNE A,#18H,OUTT0 ;最后判定時顯示是否到24</p><p>  MOV 7AH,#00 ;到24時

45、,時顯示為00</p><p>  OUTT0: </p><p><b>  SETB ET0</b></p><p><b>  POP PSW</b></p><p><b>  POP ACC</b></p>&

46、lt;p>  RETI ;未達到延時1S或未到達時分秒溢出時,退出中斷</p><p>  KEYSCAN: ;判鍵程序</p><p><b>  CLR EA</b></p><p>  JNB P1.0,KEYSCAN0 </p>

47、<p>  JNB P1.1,KEYSCAN1</p><p>  JNB P1.2,KEYSCAN2 ;判斷鍵P1.0,P1.1,P1.2是否被按下</p><p><b>  KEYOUT:</b></p><p><b>  SETB EA</b></p><p&

48、gt;<b>  RET</b></p><p>  KEYSCAN0: ;按下P1.0時功能程序</p><p>  LCALL DL20MS ;保持數(shù)碼管顯示</p><p><b>  WAIT0:</b></p><p>  JN

49、B P1.0,WAIT0 ;判定鍵P1.0是否松開</p><p>  INC 7CH </p><p>  MOV A,7CH </p><p>  CLR ET0 ;關閉定時器0中斷,顯示暫停</p>

50、<p>  CJNE A,#04H,KEYOUT ;判定P1.0按鍵次數(shù)</p><p>  MOV 7CH,#00 </p><p>  SETB ET0 ;第四次按下時,激活顯示</p><p>  SJMP KEYOUT</p><p&

51、gt;  KEYSCAN1: ;按下P1.1時,功能程序(加調(diào)節(jié))</p><p>  LCALL DL20MS </p><p><b>  WAIT1:</b></p><p>  JNB P1.1,WAIT1 </p>

52、<p>  MOV A,7CH</p><p>  CJNE A,#03H,KSCAN11 ;判定在第幾次按下P1.0后,按下P1.1</p><p>  INC 78H ;在第三次按下P1.0后按下P1.1,秒顯示加1</p><p>  MOV A,78H</p>&

53、lt;p>  CJNE A,#3cH,KEYOUT </p><p>  MOV 78H,#00 ;當秒達到60時,秒顯示為00</p><p>  SJMP KEYOUT</p><p>  KSCAN11: </p><p>&l

54、t;b>  MOV A,7CH</b></p><p>  CJNE A,#02H,KEYSCAN12 </p><p>  INC 79H ;第二次按下P1.0后,再按下P1.1,則分顯示加1</p><p>  MOV A,79H </p>

55、<p>  CJNE A,#3CH,KEYOUT </p><p>  MOV 79H,#00 ;分達到60時,分顯示為00</p><p>  SJMP KEYOUT</p><p>  KEYSCAN2: ;按下P1.2功能程序(減調(diào)節(jié))</p

56、><p>  LCALL DL20MS</p><p><b>  WAIT2:</b></p><p>  JNB P1.2,WAIT2</p><p>  MOV A,7CH</p><p>  CJNE A,#03H,KSCAN21</p><p>  DEC

57、78H ;第三次按下P1.0后,再按下P1.2,秒顯示減1</p><p>  MOV A,78H</p><p>  CJNE A,#0FFH,KEYOUT </p><p>  MOV 78H,#3BH ;秒為0時,再減一則顯示為59</p><p&g

58、t;  SJMP KEYOUT</p><p><b>  KSCAN21:</b></p><p><b>  MOV A,7CH</b></p><p>  CJNE A,#02H,KEYSCAN22 </p><p>  DEC 79H

59、;第二次按下P1.0后,按下P1.2,分顯減1</p><p><b>  MOV A,79H</b></p><p>  CJNE A,#0FFh,KEYOUT</p><p>  MOV 79H,#3BH ; 分為0時,再減1則顯示為59</p><p>  SJMP KEYOUT&

60、lt;/p><p>  KEYSCAN12:</p><p>  INC 7AH ;第一次按下P1.0后,再按下P1.1,時示加1</p><p><b>  MOV A,7AH</b></p><p>  CJNE A,#18H,KEYOUT </p

61、><p>  MOV 7AH,#00 ;時達到24,則時顯示為00</p><p>  LJMP KEYOUT</p><p>  KEYSCAN22:</p><p>  DEC 7AH ;第一次按下P1.0后,再按下P1.2,時顯示減1</p><p&

62、gt;<b>  MOV A,7AH</b></p><p>  CJNE A,#0FFH,KEYOUT </p><p>  MOV 7AH,#17H ;時為0時,再減1則顯示為23</p><p>  LJMP KEYOUT</p><p><b>  E

63、ND</b></p><p>  4.1仿真軟件proteus簡介</p><p>  Proteus(海神)的ISIS是一款Labcenter出品的電路分析實物仿真系統(tǒng),可仿真各種電路和IC,并支持單片機,元件庫齊全,使用方便,是不可多得的專業(yè)的單片機軟件仿真系統(tǒng)。該軟件的特點:① 全部滿足我們提出的單片機軟件仿真系統(tǒng)的標準,并在同類產(chǎn)品中具有明顯的優(yōu)勢。②具有模擬電路仿

64、真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、RS一232動態(tài)仿真、1 C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。③ 目前支持的單片機類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。④ 支持大量的存儲器和外圍芯片??傊撥浖且豢罴瘑纹瑱C和SPICE分析于一身的仿真軟件,功能

65、極其強大,可仿真51、AVR、PIC。</p><p><b>  4.2 仿真結(jié)果</b></p><p><b>  1.啟動</b></p><p><b>  圖4.1 啟動</b></p><p><b>  2.運行</b></p>

66、<p><b>  圖4.2運行</b></p><p><b>  3.調(diào)時</b></p><p><b>  圖4.3 調(diào)時</b></p><p><b>  4.調(diào)分</b></p><p><b>  圖4.4 調(diào)分&l

67、t;/b></p><p><b>  5.調(diào)秒</b></p><p><b>  4.5調(diào)秒</b></p><p><b>  5 總結(jié)與致謝</b></p><p>  通過本次課程設計,我才知道從理論學習到實踐運用有多么的艱難.在本次設計中,遇到的首要難題是對器

68、件的控制,功能看似很簡單,但是一旦要用程序語言表現(xiàn)出來,是有一定的難度.在程序的邏輯性上有很大的要求.經(jīng)過多方的查找資料以及請教同學尚能勉強寫出程序.在程序的最后階段,遇到了從未有過的問題,程序的語句超過了取址范圍.對于這樣的問題,在思想上就打垮了我.但是我最終還是沒有放棄,硬著頭皮去再把程序從頭至尾分析一遍,看有能不能精簡的地方,出于無奈,我只能把有些語句刪除,但整體上并不影響程序的功能.雖然如此,但我是感到我的學習上有很大缺陷.所以

69、在這次課程設計以后,我想我還要更加努力的學習單片機知識,爭取在下一次的設計中能夠真正靈活運用我學過的知識.在此我還要感謝我的擋搭和老師同學一起幫助我完成這次任務.</p><p><b>  參考文獻:</b></p><p>  [1]付家才.單片機控制工程實踐技術.北京:化學工業(yè)出版社,2004</p><p>  [2]劉湘濤,江世明.單

溫馨提示

  • 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

提交評論