單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘_第1頁
已閱讀1頁,還剩25頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  單片機(jī)技術(shù)課程設(shè)計(jì)說明書</p><p><b>  數(shù) 字 電 子 鐘</b></p><p>  院 、 部: 電氣與信息工程學(xué)院 </p><p>  學(xué)生姓名: </p><p>  指導(dǎo)教師: 職稱 副教授 </p><p>

2、  專 業(yè): 自動(dòng)化 </p><p>  班 級(jí): </p><p>  完成時(shí)間: </p><p><b>  摘 要</b></p><p>  電子鐘在生活中應(yīng)用非常廣泛,而一種簡(jiǎn)單方便的數(shù)字電子鐘則更能受到人們的

3、歡迎。所以設(shè)計(jì)一個(gè)簡(jiǎn)易數(shù)字電子鐘很有必要。本電子鐘采用ATMEL公司的AT89S52單片機(jī)為核心,使用12MHz 晶振與單片機(jī)AT89S52 相連接,通過軟件編程的方法實(shí)現(xiàn)以24小時(shí)為一個(gè)周期,同時(shí)8位7段LED數(shù)碼管(兩個(gè)四位一體數(shù)碼管)顯示小時(shí)、分鐘和秒的要求,并在計(jì)時(shí)過程中具有定時(shí)功能,當(dāng)時(shí)間到達(dá)提前定好的時(shí)間進(jìn)行蜂鳴報(bào)時(shí)。該電子鐘設(shè)有四個(gè)按鍵K1、K2、K3和K4鍵,進(jìn)行相應(yīng)的操作就可實(shí)現(xiàn)校時(shí)、定時(shí)、復(fù)位功能。具有時(shí)間顯示、整點(diǎn)

4、報(bào)時(shí)、校正等功能。走時(shí)準(zhǔn)確、顯示直觀、運(yùn)行穩(wěn)定等優(yōu)點(diǎn)。具有極高的推廣應(yīng)用價(jià)值。</p><p>  關(guān)鍵詞 電子鐘;AT89S52;硬件設(shè)計(jì);軟件設(shè)計(jì)</p><p><b>  ABSTRACT</b></p><p>  Clock is widely used in life, and a simple digital clock is

5、 more welcomed by people. So to design a simple digital electronic clock is necessary.The system use a single chip AT89S52 of ATMEL’s as its core to control The crystal oscillator clock,using of E-12MHZ is connected with

6、 the microcontroller AT89S52, through the software programming method to achieve a 24-hour cycle, and eight 7-segment LED digital tube (two four in one digital tube) displays hours, minutes and seconds requirements, and

7、i</p><p>  顯示對(duì)應(yīng)的拉丁字符的拼音</p><p>  字典 - 查看字典詳細(xì)內(nèi)容</p><p>  Key words Electronic clock;;AT89S52;Hardware Design;Software Design</p><p><b>  目 錄</b></p>

8、<p>  設(shè)計(jì)課題任務(wù)、功能要求說明及方案介紹……………………………………1</p><p>  設(shè)計(jì)課題任務(wù)………………………………………………………………1</p><p>  功能要求說明………………………………………………………………1</p><p>  設(shè)計(jì)總體方案介紹及原理說明……………………………………………1</p>&

9、lt;p>  設(shè)計(jì)課題硬件系統(tǒng)的設(shè)計(jì)………………………………………………………2</p><p>  設(shè)計(jì)課題硬件系統(tǒng)各模塊功能簡(jiǎn)要介紹…………………………………2</p><p>  設(shè)計(jì)課題電路原理圖、PCB圖、元器件布局圖 …………………………2</p><p>  設(shè)計(jì)課題元器件清單………………………………………………………3</p>&

10、lt;p>  設(shè)計(jì)課題軟件系統(tǒng)的設(shè)計(jì)………………………………………………………5</p><p>  設(shè)計(jì)課題使用單片機(jī)資源的情況…………………………………………5</p><p>  設(shè)計(jì)課題軟件系統(tǒng)各模塊功能簡(jiǎn)要介紹…………………………………5</p><p>  設(shè)計(jì)課題軟件系統(tǒng)程序流程框圖…………………………………………5</p><

11、;p>  設(shè)計(jì)課題軟件系統(tǒng)程序清單………………………………………………9</p><p>  設(shè)計(jì)結(jié)論、仿真結(jié)果、誤差分析、教學(xué)建議…………………………………20</p><p>  設(shè)計(jì)課題的設(shè)計(jì)結(jié)論及使用說明…………………………………………20</p><p>  設(shè)計(jì)課題的仿真結(jié)果………………………………………………………20</p>&l

12、t;p>  設(shè)計(jì)課題的誤差分析………………………………………………………21</p><p>  設(shè)計(jì)體會(huì)……………………………………………………………………21</p><p>  教學(xué)建議……………………………………………………………………21</p><p>  參考文獻(xiàn) ……………………………………………………………………………23</p>

13、<p>  致 謝 ……………………………………………………………………………24</p><p>  附 錄 ……………………………………………………………………………25</p><p>  1 設(shè)計(jì)課題任務(wù)、功能要求說明及方案介紹</p><p>  1.1 設(shè)計(jì)課題任務(wù)</p><p>  設(shè)計(jì)一個(gè)具有特

14、定功能的電子鐘。具有時(shí)間顯示、報(bào)時(shí)等功能。并有時(shí)間設(shè)定,時(shí)間調(diào)整功能。</p><p>  1.2 功能要求說明</p><p>  設(shè)計(jì)一個(gè)具有特定功能的電子鐘。該電子鐘上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P.”, 進(jìn)入時(shí)鐘準(zhǔn)備狀態(tài);第一次按電子鐘啟動(dòng)/調(diào)整鍵,電子鐘從0時(shí)0分0秒開始運(yùn)行,進(jìn)入時(shí)鐘運(yùn)行狀態(tài);再次按電子鐘啟動(dòng)/調(diào)整鍵,則電子鐘進(jìn)入時(shí)鐘調(diào)整狀態(tài),此時(shí)可利用各調(diào)整鍵調(diào)整時(shí)

15、間,調(diào)整結(jié)束后可按啟動(dòng)/調(diào)整鍵再次進(jìn)入時(shí)鐘運(yùn)行狀態(tài)。</p><p>  1.3 設(shè)計(jì)課題總體方案介紹及工作原理說明</p><p>  本電子鐘主要由單片機(jī)、4*1獨(dú)立鍵盤、顯示接口電路和復(fù)位電路構(gòu)成,設(shè)計(jì)課題的總體方案如圖1.1所示: </p><p>  圖1.1 總體設(shè)計(jì)方案圖</p><p>  本電子鐘的所有的軟件、參數(shù)均存放

16、在AT89S52的內(nèi)部ROM和內(nèi)部RAM中,減少了芯片的使用數(shù)量簡(jiǎn)化了整體電路也降低了整機(jī)的工作電流。鍵盤采用動(dòng)態(tài)掃描方式。利用單片機(jī)定時(shí)器及計(jì)數(shù)器產(chǎn)生定時(shí)效果通過編程形成數(shù)字鐘效果,再利用數(shù)碼管動(dòng)態(tài)掃描顯示單片機(jī)內(nèi)部處理的數(shù)據(jù),同時(shí)通過端口讀入當(dāng)前外部控制狀態(tài)來改變程序的不同狀態(tài),實(shí)現(xiàn)不同功能。</p><p>  2 設(shè)計(jì)課題硬件系統(tǒng)的設(shè)計(jì)</p><p>  設(shè)計(jì)課題硬件系統(tǒng)各模塊

17、功能簡(jiǎn)要介紹</p><p>  本設(shè)計(jì)的硬件系統(tǒng)主要采用以下基本模塊來實(shí)現(xiàn),單片機(jī)最小系統(tǒng)模塊,輸入模塊、輸出模塊、電源模塊。</p><p> ?。?)單片機(jī)最小系統(tǒng)模塊:包括低功耗、高性能CMOS8位微控制器AT89S52;復(fù)位電路;晶振電路。本模塊AT89S52系統(tǒng)控制核心,單片機(jī)系統(tǒng)復(fù)位由復(fù)位電路完成,單片機(jī)內(nèi)部有一個(gè)高增益、反相放大器,其輸入端為芯片引腳XTAL1,其輸出端位位

18、引腳XTAL2。通過這兩個(gè)引腳在芯片外并接石英晶體振蕩器和兩只電容。這樣就構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。 </p><p> ?。?)輸入模塊:本模塊共用到了5個(gè)按鍵,1個(gè)復(fù)位鍵,單片機(jī)接通電源后,利用按鍵復(fù)位完成復(fù)位操作。,K1鍵控制電子鐘的啟動(dòng)\調(diào)整狀態(tài),做正常走時(shí)狀態(tài)時(shí)K2為電子鐘時(shí)調(diào)整鍵,K3為電子鐘分調(diào)整鍵,K4鍵為電子鐘秒調(diào)整鍵,當(dāng)作為鬧鐘調(diào)整狀態(tài)時(shí)K4鍵為鬧鐘啟動(dòng)/關(guān)閉,K2為鬧鐘時(shí)調(diào)整鍵,K3為鬧鐘分

19、調(diào)整鍵。K1、K2、K3,K4任一鍵都獨(dú)自連一個(gè)I/O(P1.0、P1.1、P1.2)口線,說明它們可以獨(dú)立實(shí)現(xiàn)相應(yīng)的電子鐘功能。</p><p>  (3)輸出模塊:本次設(shè)計(jì)顯示為8位字符,采用兩個(gè)四位一體數(shù)碼管(共陽極)作為顯示窗口,既可以節(jié)約成本又能簡(jiǎn)化電路。數(shù)碼管用8個(gè)PNP三極管驅(qū)動(dòng)。</p><p> ?。?)電源模塊:現(xiàn)在市面上銷售的編程器有很多都是由PC機(jī)的USB口直接供電

20、為了降低本設(shè)計(jì)的成本及節(jié)省設(shè)計(jì)時(shí)間,沒有另外設(shè)計(jì)編程器,而直接購(gòu)買了市場(chǎng)上的USB供電及下載器。</p><p>  設(shè)計(jì)課題電路原理圖、PCB圖、元器件布局圖</p><p>  圖2.1 電路原理圖</p><p><b>  圖2.2 PCB圖</b></p><p>  圖2.3 元器件布局圖</p>

21、<p><b>  設(shè)計(jì)課題元器件清單</b></p><p>  表2.1 設(shè)計(jì)所用元器件清單</p><p>  3 設(shè)計(jì)課題軟件系統(tǒng)的設(shè)計(jì)</p><p>  3.1 設(shè)計(jì)課題使用單片機(jī)資源的情況</p><p>  設(shè)計(jì)課題使用單片機(jī)資源的情況如下:</p><p> 

22、 P0口輸出數(shù)碼管段控信號(hào),P2口輸出數(shù)碼管位控信號(hào);晶振12MHz;時(shí)間調(diào)整開關(guān)鍵K1:P1.0;通過K1切換電子鐘走時(shí)/暫停;時(shí)調(diào)整鍵K2:P1.1;按一次使電子鐘時(shí)加1;分調(diào)整鍵K3:P1.2;按一次使電子鐘分加1;秒調(diào)整鍵K4:P1.3按一次使電子鐘秒加1/鬧鐘開啟或關(guān)閉;蜂鳴器接:P3.1;整點(diǎn)和鬧鐘時(shí)間到時(shí)蜂鳴器報(bào)時(shí);28H-36H;9個(gè)寄存器單元作為顯示單元; </p><p>  28H 鬧鈴小時(shí)

23、緩沖區(qū);29H鬧鈴分鐘緩沖區(qū);</p><p>  30H 位選通控制位; 31H 顯示位數(shù)計(jì)數(shù)器;</p><p>  32H 走時(shí)小時(shí)緩沖區(qū);33H 走時(shí)分鐘緩沖區(qū);</p><p>  34H走時(shí)秒緩沖區(qū); 35H 定時(shí)器中斷次數(shù)計(jì)數(shù)器;</p><p>  36H顯示緩沖區(qū)首地址;</p><p>  設(shè)

24、計(jì)課題軟件系統(tǒng)個(gè)模塊功能簡(jiǎn)要介紹</p><p>  本設(shè)計(jì)的軟件系統(tǒng)主要采用以下基本模塊來實(shí)現(xiàn),主程序、中斷服務(wù)程序、鍵盤輸入程序模塊、數(shù)碼管及其驅(qū)動(dòng)模塊和延時(shí)模塊。</p><p>  主程序:主要是用于對(duì)輸入信號(hào)的處理、輸出信號(hào)的控制和對(duì)各個(gè)功能程序模塊的運(yùn)用及其控制。</p><p>  中斷服務(wù)程序:主要是用于電子鐘的準(zhǔn)確運(yùn)行、數(shù)據(jù)輸入過程中的閃爍。<

25、;/p><p>  鍵盤輸入程序模塊:主要是用于確定按鍵并得到特定的鍵碼值。</p><p>  數(shù)碼管及其驅(qū)動(dòng)模塊:主要是用于驅(qū)動(dòng)數(shù)碼管及利用數(shù)碼管顯示時(shí)間。</p><p>  延時(shí)模塊:程序中有兩種延時(shí)子程序,一種是短延時(shí)用于判鍵按下等,一種是長(zhǎng)延時(shí)。</p><p>  3.3 設(shè)計(jì)課題軟件系統(tǒng)程序流程框圖</p><

26、;p>  系統(tǒng)軟件采用匯編語言按模塊化方式進(jìn)行設(shè)計(jì),然后通過Keil軟件開發(fā)平臺(tái)將程</p><p>  序轉(zhuǎn)變成十六進(jìn)制程序語言,接著使用Proteous 進(jìn)行仿真,讀出顯示數(shù)據(jù)。</p><p>  圖3.1 主程序流程框圖</p><p>  圖3.2 定時(shí)器初始化子程序流程框圖</p><p>  圖3.3 轉(zhuǎn)換子程序&l

27、t;/p><p>  圖3.4動(dòng)態(tài)顯示子程序 圖3.5定時(shí)器1中斷服務(wù)程序</p><p>  圖3.6 按鍵處理子程序流程框圖</p><p>  3.4設(shè)計(jì)課題軟件系統(tǒng)程序清單</p><p>  ;===========================================================

28、============</p><p>  ;課程設(shè)計(jì)名稱:數(shù)字電子鐘</p><p>  ; 要求:<一>.顯示系統(tǒng)提示符“P.”</p><p>  ; <二>.定義5個(gè)功能鍵:分別是復(fù)位鍵,啟動(dòng)/暫停鍵,時(shí)調(diào)整鍵,分調(diào)整鍵,秒調(diào)整鍵</p><p>  ;

29、 <三>.在系統(tǒng)提示符狀態(tài)下,只有按啟動(dòng)鍵/暫停鍵才能開啟電子鐘</p><p>  ; <四>.在電子鐘運(yùn)行狀態(tài)下,只有按啟動(dòng)鍵/暫停鍵才能調(diào)整電子鐘</p><p>  ; 附加功能:<一>.能自動(dòng)正點(diǎn)報(bào)時(shí)</p><p>  ; <二>.能設(shè)定鬧鐘</p>

30、;<p>  ; 作者:自本1004班王文亮</p><p>  ; 完成時(shí)間:2012年12月24日</p><p>  ; 電路描述:P0口為數(shù)碼管段控口,P2口為數(shù)碼管位控口,蜂鳴器接P3.1口,LED燈接P3.7口</p><p>  ;===========================================

31、===========================</p><p>  ;===============================================</p><p>  ; 程序定義段</p><p>  ;===============================================</p>&

32、lt;p>  ALARM BIT 20H.0</p><p>  K1 BIT P1.0</p><p>  K2 BIT P1.1</p><p>  K3 BIT P1.2</p><p>  K4 BI

33、T P1.3</p><p>  HOUR_A EQU 28H</p><p>  MIN_A EQU 29H</p><p>  DISP_DIGIT EQU 30H</p><p>  DISP_SEL EQU 31H</p><

34、;p>  HOUR EQU 32H</p><p>  MIN EQU 33H</p><p>  SEC EQU 34H</p><p>  T1_COUNT EQU 35H</p><p>  DISP_BUF EQU

35、 36H</p><p>  ;================================================</p><p>  ; 主程序開始</p><p>  ;================================================</p><p>  ORG

36、 0000H</p><p>  LOOP: MOV P0, #0CH</p><p>  MOV P2, #7FH</p><p>  JB P1.0, LOOP</p><p>  LCALL DELAY_10ms </p><

37、p>  JB P1.0, LOOP</p><p>  JNB P1.0, $</p><p>  LJMP MAIN</p><p>  ORG 000BH</p><p>  LJMP TIME0</p><p>

38、  ORG 001BH</p><p>  LJMP TIME1</p><p>  ORG 0100H</p><p>  MAIN: MOV SP, #70H</p><p>  MOV P0, #0FFH</p><

39、p>  MOV P2, #0FFH</p><p>  CLR ALARM</p><p>  MOV HOUR_A, #12</p><p>  MOV MIN_A, #00</p><p>  MOV HOUR, #0<

40、/p><p>  MOV MIN, #0</p><p>  MOV SEC, #0</p><p>  MOV T1_COUNT, #0</p><p>  MOV DISP_DIGIT,#7FH</p><p>  MOV

41、DISP_SEL, #0</p><p>  MOV DISP_BUF+2,#10</p><p>  MOV DISP_BUF+5,#10</p><p>  ACALL T0T1_INIT</p><p>  START: ACALL CONV</p><p>

42、  ACALL ALA_CHECK</p><p>  JB K1, K1_NEXT</p><p>  ACALL LIGHT</p><p>  ACALL KEY_PROC</p><p>  AJMP START</p><p>  K1_

43、NEXT: JB K2, K2_NEXT</p><p>  AJMP START</p><p>  K2_NEXT: JB K3, K3_NEXT</p><p>  AJMP START</p><p>  K3_NEXT: JB

44、K4, K4_NEXT</p><p>  ACALL LIGHT</p><p>  ACALL ALARM_SET</p><p>  CPL ALARM</p><p>  JNB ALARM, STOP_BEEP</p><p>  ACAL

45、L LIGHT</p><p>  ACALL LIGHT</p><p>  ACALL LIGHT</p><p>  AJMP START</p><p>  STOP_BEEP:ACALL LIGHT </p><p>  K4_NEXT: A

46、JMP START</p><p>  ;=================================================</p><p>  ; 定時(shí)器T0.T1初始化子程序</p><p>  ;=================================================</p>

47、<p>  T0T1_INIT:MOV TMOD, #11H</p><p>  MOV TH0, #0F8H</p><p>  MOV TL0, #0CCH</p><p>  MOV TH1, #0DCH</p><p>  

48、MOV TL1, #00H</p><p>  SETB EA</p><p>  SETB ET0</p><p>  SETB ET1</p><p>  SETB TR0</p><p>  SETB TR1</

49、p><p><b>  RET</b></p><p>  ;=================================================</p><p>  ; 走時(shí)轉(zhuǎn)換子程序</p><p>  ;===========================================

50、======</p><p>  CONV: MOV A, HOUR</p><p>  MOV B, #10</p><p>  DIV AB</p><p>  MOV DISP_BUF, A</p><p>  MO

51、V A, B</p><p>  MOV DISP_BUF+1,A</p><p>  MOV A, MIN</p><p>  MOV B, #10</p><p>  DIV AB</p><p>

52、  MOV DISP_BUF+3,A</p><p>  MOV A, B</p><p>  MOV DISP_BUF+4,A</p><p>  MOV A, SEC</p><p>  MOV B, #10</p&

53、gt;<p>  DIV AB</p><p>  MOV DISP_BUF+6,A</p><p>  MOV A, B</p><p>  MOV DISP_BUF+7,A</p><p><b>  RET</b></p&g

54、t;<p>  ;==================================================</p><p>  ; 定時(shí)器T0中斷服務(wù)程序,用于數(shù)碼管掃描</p><p>  ;==================================================</p><p>  TIME0

55、: PUSH ACC</p><p>  PUSH PSW</p><p>  MOV TH0, #0F8H</p><p>  MOV TL0, #0CCH</p><p>  ACALL DISP</p><p>  POP

56、 PSW</p><p>  POP ACC</p><p><b>  RETI</b></p><p>  ;===================================================</p><p>  ; 顯示子程序</p>&

57、lt;p>  ;=================================================== </p><p>  DISP: MOV P2, #0FFH</p><p>  MOV A, #DISP_BUF</p><p>  ADD A,

58、 DISP_SEL</p><p>  MOV R0, A</p><p>  MOV A, @R0</p><p>  MOV DPTR, #TAB</p><p>  MOVC A, @A+DPTR</p&g

59、t;<p>  MOV P0, A</p><p>  MOV P2, DISP_DIGIT</p><p>  MOV A, DISP_DIGIT</p><p>  RR A</p><p>  MOV DIS

60、P_DIGIT,A</p><p>  INC DISP_SEL</p><p>  MOV A, DISP_SEL</p><p>  CLR C</p><p>  SUBB A, #8</p><p>  JZ

61、RST_0</p><p>  AJMP DISP_RET</p><p>  RST_0: MOV DISP_SEL, #0</p><p>  DISP_RET: RET</p><p>  ;==================================================</p

62、><p>  ; 定時(shí)器T1中斷服務(wù)程序,用于電子鐘走時(shí)</p><p>  ;==================================================</p><p>  TIME1: PUSH PSW</p><p>  PUSH ACC</p><

63、p>  MOV TH1, #0DCH</p><p>  MOV TL1, #00H</p><p>  INC T1_COUNT</p><p>  MOV A, T1_COUNT</p><p>  CLR C<

64、/p><p>  SUBB A, #100</p><p>  JC END_T1</p><p>  MOV T1_COUNT, #00H</p><p>  INC SEC</p><p>  MOV A, S

65、EC</p><p>  CJNE A, #60, END_T1</p><p>  INC MIN</p><p>  MOV SEC, #0</p><p>  MOV A, MIN</p><p>  

66、CJNE A, #60, END_T1</p><p>  INC HOUR</p><p>  LCALL BEEP</p><p>  LCALL BEEP</p><p>  LCALL BEEP</p><p>  LCALL

67、 BEEP</p><p>  LCALL BEEP</p><p>  MOV MIN, #0</p><p>  MOV A, HOUR </p><p>  CJNE A, #24, END_T1</p&

68、gt;<p>  MOV SEC, #0</p><p>  MOV MIN, #0</p><p>  MOV HOUR, #0</p><p>  END_T1: POP ACC</p><p>  POP PS

69、W</p><p><b>  RETI</b></p><p>  ;==================================================</p><p>  ; 數(shù)碼管段控碼表</p><p>  ;===================================

70、===============</p><p>  TAB: DB 0C0H,0F9H,0A4H,0B0H,099H</p><p>  DB 092H,082H,0F8H,080H,090H</p><p><b>  DB 0BFH</b></p><p><b>  DB 0FFH</b&

71、gt;</p><p>  ;==================================================</p><p>  ; 按鍵處理子程序</p><p>  ;==================================================</p><p>  KEY_PR

72、OC: CLR TR1</p><p>  KEY2: JB K2, KEY3</p><p>  ACALL DELAY_10ms</p><p>  JB K2, KEY3</p><p>  JNB K2, $&

73、lt;/p><p>  INC HOUR</p><p>  MOV A, HOUR</p><p>  CJNE A, #24, KEY2_NEXT</p><p>  MOV HOUR, #0</p><p>

74、  KEY2_NEXT:ACALL CONV</p><p>  AJMP KEY2</p><p>  KEY3: JB K3, KEY4</p><p>  ACALL DELAY_10ms</p><p>  JB K3, KEY4&

75、lt;/p><p>  JNB K3, $</p><p>  INC MIN</p><p>  MOV A, MIN</p><p>  CJNE A, #60, KEY3_NEXT</p><p>  M

76、OV MIN, #0 </p><p>  KEY3_NEXT:ACALL CONV</p><p>  AJMP KEY2</p><p>  KEY4: JB K4, KEY1</p><p>  ACALL DELAY_10ms</

77、p><p>  JB K4, KEY1</p><p>  JNB K4, $</p><p>  INC SEC</p><p>  MOV A, SEC</p><p>  CJNE A,

78、 #60, KEY4_NEXT</p><p>  MOV SEC, #0</p><p>  KEY4_NEXT:ACALL CONV</p><p>  AJMP KEY1</p><p>  KEY1: JB K1, KEY2</

79、p><p>  ACALL DELAY_10ms</p><p>  JB K1, KEY2</p><p>  JNB K1, $</p><p>  ACALL LIGHT</p><p>  SETB TR1</p&g

80、t;<p>  KEY_RET: RET</p><p>  ;=================================================</p><p>  ; LED燈亮子程序</p><p>  ;=================================================</

81、p><p>  LIGHT: CLR P3.7</p><p>  ACALL DELAY_100ms</p><p>  SETB P3.7</p><p>  ACALL DELAY_100ms</p><p><b>  RET</b><

82、/p><p>  ;=================================================</p><p>  ; 蜂鳴器響子程序</p><p>  ;=================================================</p><p>  BEEP: CLR

83、 P3.1</p><p>  ACALL DELAY_100ms</p><p>  SETB P3.1</p><p>  ACALL DELAY_100ms</p><p><b>  RET</b></p><p>  ;=============

84、========================================</p><p>  ; 鬧鐘檢查及處理子程序</p><p>  ;=====================================================</p><p>  ALA_CHECK:JNB ALARM, CHEC

85、K_RET</p><p>  MOV A, HOUR</p><p>  MOV B, HOUR_A</p><p>  CJNE A, B, CHECK_RET</p><p>  MOV A, M

86、IN</p><p>  MOV B, MIN_A</p><p>  CJNE A, B, CHECK_RET</p><p>  TIME_OUT:ACALL BEEP</p><p>  ACALL CONV</p><p&

87、gt;  JB K4, TIME_OUT</p><p>  JNB K4, $</p><p>  CLR ALARM</p><p>  CHECK_RET:RET</p><p>  ;======================================

88、================</p><p>  ; 鬧鐘時(shí)間設(shè)置子程序</p><p>  ;======================================================</p><p>  ALARM_SET:ACALL CONV_A</p><p>  AKEY2: J

89、B K2, AKEY3</p><p>  ACALL DELAY_10ms</p><p>  JB K2, AKEY3</p><p>  JNB K2, $</p><p>  INC HOUR_A</p&g

90、t;<p>  MOV A, HOUR_A</p><p>  CJNE A, #24, AKEY2_NEXT</p><p>  MOV HOUR_A, #0</p><p>  AKEY2_NEXT:ACALL CONV_A</p&

91、gt;<p>  AJMP AKEY2</p><p>  AKEY3: JB K3, AKEY4</p><p>  ACALL DELAY_10ms</p><p>  JB K3, AKEY4</p><p>  JNB

92、 K3, $</p><p>  INC MIN_A</p><p>  MOV A, MIN_A</p><p>  CJNE A, #60, AKEY3_NEXT</p><p>  MOV MIN_A,

93、 #0</p><p>  AKEY3_NEXT:ACALL CONV_A</p><p>  AJMP AKEY2</p><p>  AKEY4: JB K4, AKEY2</p><p>  JNB K4, $</p>&l

94、t;p>  ACALL LIGHT</p><p>  ACALL CONV</p><p>  AKEY_RET: RET</p><p>  ;========================================================</p><p>  ; 鬧鐘時(shí)間轉(zhuǎn)換子程

95、序</p><p>  ;========================================================</p><p>  CONV_A: MOV A, HOUR_A</p><p>  MOV B, #10</p><p>  DIV

96、 AB</p><p>  MOV DISP_BUF, A</p><p>  MOV A, B</p><p>  MOV DISP_BUF+1, A</p><p>  MOV A, MIN_A</p><

97、;p>  MOV B, #10</p><p>  DIV AB</p><p>  MOV DISP_BUF+3, A</p><p>  MOV A, B</p><p>  MOV DISP_BUF+4, A</

98、p><p>  MOV DISP_BUF+6, #0</p><p>  MOV DISP_BUF+6, #0</p><p><b>  RET </b></p><p>  DELAY_100ms:</p><p>  MOV R7,

99、 #13H</p><p><b>  DL1:</b></p><p>  MOV R6, #14H</p><p><b>  DL0:</b></p><p>  MOV R5, #82H</p><p>

100、;  DJNZ R5, $</p><p>  DJNZ R6, DL0</p><p>  DJNZ R7, DL1</p><p><b>  RET</b></p><p>  DELAY_10ms:</p><

101、p>  MOV R7, #01H</p><p><b>  DL3:</b></p><p>  MOV R6, #26H</p><p><b>  DL2:</b></p><p>  MOV R5,

102、 #82H</p><p>  DJNZ R5, $</p><p>  DJNZ R6, DL2</p><p>  DJNZ R7, DL3</p><p><b>  RET</b></p><p><

103、;b>  END</b></p><p>  4 設(shè)計(jì)結(jié)論、仿真結(jié)果、誤差分析、教學(xué)建議</p><p>  4.1 設(shè)計(jì)課題的設(shè)計(jì)結(jié)論及使用說明</p><p>  本設(shè)計(jì)為基于單片機(jī)的電子鐘的設(shè)計(jì)。剛開始,我們很多地方理不清頭緒,無從下手,但通過認(rèn)真研究設(shè)計(jì)課題,找書上網(wǎng)查資料買元件,確定基本設(shè)計(jì)方案,對(duì)所用芯片功能進(jìn)行查找、調(diào)試,然后畫電

104、路圖制PCB板、打孔、溶銅、焊接等,真的經(jīng)歷了許多困難,卻積累了很多寶貴的經(jīng)驗(yàn),本設(shè)計(jì)用2個(gè)四位一體的共陽數(shù)碼管做為顯示器,它顯示時(shí)間值;設(shè)計(jì)中有三個(gè)按鍵,其中S1為啟動(dòng)/選擇調(diào)整位置,S2為加控制鍵 S3為減控制鍵,當(dāng)整點(diǎn)時(shí)間到時(shí),蜂鳴器報(bào)警。這樣的結(jié)果與設(shè)計(jì)要求完全相符,本設(shè)計(jì)成功。完成了設(shè)計(jì)任務(wù)。</p><p>  4.2 設(shè)計(jì)課題的仿真結(jié)果</p><p>  在Proteus

105、 ISIS的Debug菜單中選擇Execute,運(yùn)行程序,系統(tǒng)仿真結(jié)果如圖4.1與4.2所示。</p><p><b>  實(shí)現(xiàn)功能:</b></p><p>  可調(diào)整運(yùn)行的電子鐘具有三種工作狀態(tài):“P.”狀態(tài),運(yùn)行狀態(tài),走時(shí)調(diào)整狀態(tài),鬧鐘調(diào)整狀態(tài)</p><p>  (1)、“P.”狀態(tài):依靠上電或按復(fù)位鍵進(jìn)入,在此狀態(tài)下,按K2,K3,K

106、4鍵均無效,</p><p>  按K1鍵有效,進(jìn)入運(yùn)行狀態(tài);</p><p> ?。?)、運(yùn)行狀態(tài):在此狀態(tài)下,按K2,K3鍵均無效,只有按K1,K4鍵有效,按下K1鍵后,退出運(yùn)行狀態(tài),進(jìn)入調(diào)整狀態(tài)。</p><p> ?。?)、調(diào)整狀態(tài):按K1鍵進(jìn)入在此狀態(tài)下,按K2(時(shí)+1鍵)、K3(分+1鍵),K4(秒+1鍵)鍵均有效;調(diào)整結(jié)束后必須按K1鍵,即可退出調(diào)整狀

107、態(tài),進(jìn)入運(yùn)行狀態(tài)。</p><p>  (4)、鬧鐘調(diào)整狀態(tài):鬧鐘走時(shí)狀態(tài)下按K4鍵進(jìn)入,在此狀態(tài)下,按K2(時(shí)+1鍵)、K3(分+1鍵),鍵均有效;調(diào)整結(jié)束后必須按K4鍵,即可退出鬧鐘調(diào)整狀態(tài),進(jìn)入運(yùn)行狀態(tài)。</p><p>  時(shí)間顯示格式為:時(shí)-分-秒; </p><p>  圖4.1 “P.”運(yùn)行狀態(tài)仿真</p><p>  圖4.

108、2 時(shí)鐘運(yùn)行狀態(tài)仿真</p><p>  4.3 設(shè)計(jì)課題的誤差分析</p><p>  該電子鐘在運(yùn)行中存在一定的誤差,誤差產(chǎn)生有三種可能,首先是采用的計(jì)時(shí)方案是軟件計(jì)時(shí)的,計(jì)時(shí)優(yōu)勢(shì)利用中斷來實(shí)現(xiàn)。而當(dāng)電子鐘運(yùn)行時(shí)間1秒時(shí),又得去執(zhí)行中斷程序,這個(gè)過程是需要時(shí)間的,所以就產(chǎn)生了一定的誤差,當(dāng)然這個(gè)誤差是避免不了的,其次還有硬件系統(tǒng)也有一定的影響。第三,設(shè)計(jì)用到12MHz的晶振,計(jì)算是

109、滿20次為一秒鐘,但實(shí)際會(huì)慢很多。</p><p><b>  4.4 設(shè)計(jì)體會(huì)</b></p><p>  本次課程設(shè)計(jì),讓我受益匪淺,認(rèn)識(shí)到了自己的許多缺點(diǎn)和不足,使我深深的感受到了理論聯(lián)系實(shí)際的必要性及其重要性。在我們以往的學(xué)習(xí)過程中,我們刻意地去加強(qiáng)理論的基礎(chǔ),對(duì)于一個(gè)程序我們只求它在運(yùn)行時(shí)沒有出錯(cuò),我們便以為我們的計(jì)劃成功了豈不知它能否在硬件結(jié)構(gòu)中得以實(shí)現(xiàn)

110、則是另外一回事,這就要求我們的動(dòng)手能力,如果無法使軟件與硬件實(shí)現(xiàn)有機(jī)的結(jié)合,那么再好的程序也只是一堆廢字符。</p><p><b>  4.5 教學(xué)建議</b></p><p>  經(jīng)過一個(gè)學(xué)期王韌老師教導(dǎo)的的單片機(jī)學(xué)習(xí),我掌握了很多單片機(jī)學(xué)習(xí)的寶貴經(jīng)驗(yàn),尤其在編程的思路和PCB實(shí)物的制作上面。編程思路是整個(gè)程序的靈魂,沒有編程思路,程序就不會(huì)編出來,就失去了編程

111、的意義。在開始編程之前,想好編程的思路,編程能力才會(huì)提高,編程的過程才會(huì)順暢,程序的質(zhì)量才會(huì)提高。</p><p>  在王韌老師的教學(xué)過程中,幽默輕松的教學(xué)方式常常讓課堂氣氛很活躍,幽默詼諧,授課內(nèi)容條理清晰,經(jīng)常運(yùn)用各種實(shí)例,娓娓道來,給人印象深刻。王老師在課堂上也十分注重和同學(xué)們的互動(dòng),經(jīng)常會(huì)用一些親身實(shí)踐的經(jīng)驗(yàn)為例,讓同學(xué)們?cè)诨谑聦?shí)的基礎(chǔ)上更好的理解相關(guān)理論,充分做到了理論與實(shí)際的結(jié)合,既形象生動(dòng),又豐

112、富有趣。</p><p>  結(jié)合自己課堂的學(xué)習(xí)和單片機(jī)學(xué)習(xí)效果總結(jié)幾點(diǎn)教學(xué)建議希望老師接納: </p><p>  1:有時(shí)候會(huì)覺得王老師很嚴(yán)厲,甚至不近人情,我們也理解老師是為了讓我多學(xué)一些有用的知識(shí),但是老師過于嚴(yán)厲也會(huì)讓我們覺得壓力很大,所以希望老師在以后的教學(xué)過程中因材施教,對(duì)于不同性格的學(xué)生采用不同的教育方法。讓我們不再是因?yàn)槔蠋煹囊蟛?/p>

113、去學(xué)習(xí),而是主動(dòng)去學(xué)習(xí)。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 鄧紅.張?jiān)?單片機(jī)實(shí)驗(yàn)與應(yīng)用設(shè)計(jì)教程[M].北京:冶金工業(yè)出版社,2004.5 188-195</p><p>  [1]. ZhangYue DengGong. SCM experiment and application design tut

114、orial [M]. Beijing: metallurgical industry press, 2004.5 188-195</p><p>  [2] 李廣第.單片機(jī)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,2006.7. 1-260</p><p>  [2] LiGuang first. Single chip microcomputer based [M]. Beijing:

115、Beijing university of aeronautics &astronautics press, 2006.7. 1-260</p><p>  [3] 劉建清.輕松玩轉(zhuǎn)51單片機(jī)[M].北京:北京航空航天大學(xué)出版社,2011.3. 186-208</p><p>  [3] LiuJianQing. Easy play 51 SCM [M]. Beijing: Bei

116、jing university of aeronautics &astronautics press, 2011.3 186-208</p><p><b>  致 謝</b></p><p>  通過不斷努力,終于完成了此次單片機(jī)的課程設(shè)計(jì)。在此,首先感謝**老師,正是他在萬忙之中還抽出寶貴的時(shí)間對(duì)我們進(jìn)行精心的指導(dǎo),才使我順利完成了此次單片機(jī)課程設(shè)計(jì)。同

溫馨提示

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

評(píng)論

0/150

提交評(píng)論