單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘設(shè)計(jì)_第1頁
已閱讀1頁,還剩28頁未讀, 繼續(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><b>  摘 要</b></p><p>  電子鐘在生活中應(yīng)用非常廣泛,而一種簡(jiǎn)單方便的數(shù)字電子鐘則更能受到人們的歡迎。所以設(shè)計(jì)一個(gè)簡(jiǎn)易數(shù)字電子鐘很有必要。本電子鐘采用ATMEL公司的AT89S52

2、單片機(jī)為核心,使用12MHz 晶振與單片機(jī)AT89S52 相連接,通過軟件編程的方法實(shí)現(xiàn)以24小時(shí)為一個(gè)周期,同時(shí)8位8段LED數(shù)碼管(兩個(gè)四位一體數(shù)碼管)顯示小時(shí)、分鐘和秒的要求,并在計(jì)時(shí)過程中具有定時(shí)功能,當(dāng)時(shí)間到達(dá)提前定好的時(shí)間進(jìn)行蜂鳴報(bào)時(shí)。該電子鐘設(shè)有四個(gè)按鍵S1、S2、S3和S4鍵,進(jìn)行相應(yīng)的操作就可實(shí)現(xiàn)校時(shí)、定時(shí)、復(fù)位功能。具有時(shí)間顯示、整點(diǎn)報(bào)時(shí)、校正等功能。走時(shí)準(zhǔn)確、顯示直觀、運(yùn)行穩(wěn)定等優(yōu)點(diǎn)。具有極高的推廣應(yīng)用價(jià)值。<

3、;/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 more welcomed by people. So to design a s

4、imple 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 the microcontroller AT89S52, through the

5、software programming method to achieve a 24-hour cycle, and eight 8-segment LED digital tube (two four in one digital tube) displays hours, minutes and seconds requirements, and i</p><p>  顯示對(duì)應(yīng)的拉丁字符的拼音</p

6、><p>  字典 - 查看字典詳細(xì)內(nèi)容</p><p>  Key words electronic clock;AT89S52;hardware design;software design</p><p><b>  目 錄</b></p><p>  設(shè)計(jì)課題任務(wù)、功能要求說明及方案介紹…………………………………

7、……1</p><p>  設(shè)計(jì)課題任務(wù) ………………………………………………………………1</p><p>  功能要求說明 ………………………………………………………………1</p><p>  設(shè)計(jì)總體方案介紹及原理說明 ……………………………………………1</p><p>  設(shè)計(jì)課題硬件系統(tǒng)的設(shè)計(jì) …………………………………………

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

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

10、…………………8</p><p>  設(shè)計(jì)結(jié)論、仿真結(jié)果、誤差分析、教學(xué)建議 …………………………………19</p><p>  設(shè)計(jì)課題的設(shè)計(jì)結(jié)論及使用說明…………………………………………19</p><p>  設(shè)計(jì)課題的仿真結(jié)果………………………………………………………19</p><p>  設(shè)計(jì)課題的誤差分析………………………………

11、………………………20</p><p>  設(shè)計(jì)體會(huì)……………………………………………………………………20</p><p>  教學(xué)建議……………………………………………………………………20</p><p>  結(jié) 束 語 ……………………………………………………………………………21</p><p>  致 謝 …………………

12、…………………………………………………………22</p><p>  參考文獻(xiàn) ……………………………………………………………………………23</p><p>  附 錄A …………………………………………………………………………24</p><p>  附 錄B …………………………………………………………………………25</p>

13、<p>  附 錄C …………………………………………………………………………27</p><p>  1 設(shè)計(jì)課題任務(wù)、功能要求說明及方案介紹</p><p>  1.1 設(shè)計(jì)課題任務(wù)</p><p>  設(shè)計(jì)一個(gè)具有特定功能的電子鐘。具有時(shí)間顯示、報(bào)時(shí)等功能。并有時(shí)間設(shè)定,時(shí)間調(diào)整功能。</p><p>  1.2

14、 功能要求說明</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í)間,調(diào)整結(jié)束后可按啟動(dòng)/調(diào)整鍵再次進(jìn)入時(shí)鐘運(yùn)行狀態(tài)。</p><p>  1.3 設(shè)計(jì)課題總體方案

15、介紹及工作原理說明</p><p>  本電子鐘主要由單片機(jī)、獨(dú)立鍵盤、顯示接口電路和復(fù)位電路構(gòu)成,設(shè)計(jì)課題的總體方案如圖1所示: </p><p>  圖1 總體設(shè)計(jì)方案圖</p><p>  本電子鐘的所有的軟件、參數(shù)均存放在AT89S52的Flash ROM和內(nèi)部RAM中,減少了芯片的使用數(shù)量簡(jiǎn)化了整體電路也降低了整機(jī)的工作電流。鍵盤采用動(dòng)態(tài)掃描方式。利用單

16、片機(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)各模塊功能簡(jiǎn)要介紹</p><p>  本設(shè)計(jì)的硬件系統(tǒng)主要采用以下基本模塊來實(shí)現(xiàn),單片機(jī)最小系統(tǒng)模塊,輸入模塊

17、、輸出模塊、電源模塊。</p><p> ?。?)單片機(jī)最小系統(tǒng)模塊:包括低功耗、高性能CMOS8位微控制器AT89S52;復(fù)位電路;晶振電路。本本模塊AT89S52系統(tǒng)控制核心,單片機(jī)系統(tǒng)復(fù)位由復(fù)位電路完成,單片機(jī)內(nèi)部有一個(gè)高增益、反相放大器,其輸入端為芯片引腳XTAL1,其輸出端位位引腳XTAL2。通過這兩個(gè)引腳在芯片外并接石英晶體振蕩器和兩只電容。這樣就構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。 </p>&

18、lt;p>  (2)輸入模塊:本模塊共用到了5個(gè)按鍵,1個(gè)電源開關(guān),1個(gè)復(fù)位鍵,單片機(jī)運(yùn)行期間,利用按鍵完成復(fù)位操作。3個(gè)按鍵獨(dú)立式鍵盤,S1鍵控制電子鐘的啟動(dòng)\調(diào)整狀態(tài),S2鍵為加1鍵,S3鍵為減1鍵。且S1、S2、S3任一鍵都獨(dú)自連一個(gè)I/O(P1.0、P1.1、P1.2)口線,說明它們可以獨(dú)立實(shí)現(xiàn)相應(yīng)的電子鐘功能。</p><p>  (3)輸出模塊:本次設(shè)計(jì)顯示為8位,采用兩個(gè)四位一體數(shù)碼管(共陽極

19、)作為顯示窗口,既可以節(jié)約成本又能簡(jiǎn)化電路。數(shù)碼管用8個(gè)PNP三極管驅(qū)動(dòng)。</p><p>  (4)電源模塊:現(xiàn)在市面上銷售的編程器有很多都是由PC機(jī)的USB口直接供電為了降低本設(shè)計(jì)的成本及節(jié)省設(shè)計(jì)時(shí)間,沒有另外設(shè)計(jì)編程器,而直接購買了市場(chǎng)上的USB供電及下載器。</p><p>  2.1設(shè)計(jì)課題電路原理圖、PCB圖、元器件布局圖</p><p>  電路原理圖

20、見附錄A,PCB附錄B,元器件布局圖見附錄C</p><p><b>  設(shè)計(jì)課題元器件清單</b></p><p>  設(shè)計(jì)課題元器件清單如表1所示。</p><p>  表1 設(shè)計(jì)所用元器件清單</p><p>  3 設(shè)計(jì)課題軟件系統(tǒng)的設(shè)計(jì)</p><p>  3.1 設(shè)計(jì)課題使用單片

21、機(jī)資源的情況</p><p>  設(shè)計(jì)課題使用單片機(jī)資源的情況如下:</p><p>  P0口輸出數(shù)碼管段選信號(hào),P3口輸出數(shù)碼管位選信號(hào);晶振12MHz;調(diào)整選擇鍵SET_KEY:P1.0;通過選擇鍵選擇調(diào)整位,選中位閃爍;增加鍵ADD_KEY:P1.1;按一次使選中位加1;減少鍵DEC_KEY:P1.2;按一次使選中位減1;P2.1為蜂鳴器發(fā)聲報(bào)時(shí);50H-5FH;16個(gè)寄存器單元作

22、為顯示單元; </p><p>  50H 用于控制秒基準(zhǔn)時(shí)鐘源的產(chǎn)生;51H 清零秒寄存器;</p><p>  52H 清零分寄存器;53H 清零時(shí)寄存器;</p><p>  5FH 用于秒個(gè)位;5EH 用于秒十位;</p><p>  5DH 用于分個(gè)位;5CH 用于分十位;</p><p>  5BH 用于時(shí)

23、個(gè)位;5AH 用于時(shí)十位;</p><p>  54H 用于控制調(diào)時(shí)閃爍;堆棧棧底:70H。</p><p>  設(shè)計(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)的處理、輸

24、出信號(hào)的控制和對(duì)各個(gè)功能程序模塊的運(yùn)用及其控制。</p><p>  中斷服務(wù)程序:主要是用于電子鐘的準(zhǔn)確運(yùn)行、數(shù)據(jù)輸入過程中的閃爍。</p><p>  鍵盤輸入程序模塊:主要是用于確定按鍵并得到特定的鍵碼值。</p><p>  數(shù)碼管及其驅(qū)動(dòng)模塊:主要是用于驅(qū)動(dòng)數(shù)碼管及利用數(shù)碼管顯示時(shí)間。</p><p>  延時(shí)模塊:程序中有兩種延時(shí)

25、子程序,一種是短延時(shí)用于判鍵按下等,一種是長(zhǎng)延時(shí)。</p><p>  3.3 設(shè)計(jì)課題軟件系統(tǒng)程序流程框圖</p><p>  系統(tǒng)軟件采用匯編語言按模塊化方式進(jìn)行設(shè)計(jì),然后通過Keil軟件開發(fā)平臺(tái)將程</p><p>  序轉(zhuǎn)變成十六進(jìn)制程序語言,接著使用Proteus 進(jìn)行仿真,讀出顯示數(shù)據(jù)。</p><p>  主程序流程框圖如圖1

26、所示;加1子程序如圖2所示;</p><p>  中斷服務(wù)程序程序如圖3所示;</p><p>  鍵盤掃描子程序框圖如圖4所示;</p><p>  顯示子程序框圖如圖5所示;</p><p>  圖2 主程序流程框圖</p><p>  圖3 加1子程序流程框圖</p><p>  圖4

27、 中斷子程序流程框圖</p><p>  圖5 鍵盤掃描子程序流程框圖</p><p>  圖6 顯示子程序流程框圖</p><p>  3.4設(shè)計(jì)課題軟件系統(tǒng)程序清單</p><p>  ;***********************************************************************<

28、/p><p>  ;項(xiàng)目名稱:電子鐘的設(shè)計(jì)</p><p><b>  ;設(shè)計(jì)者:游天樂</b></p><p>  ;設(shè)計(jì)日期:2011年12月24日</p><p>  ;***********************************************************************<

29、/p><p><b>  ;堆棧棧底7FH;</b></p><p>  ;***********************************************************************</p><p>  ;LED數(shù)碼管顯示器設(shè)定;</p><p>  ;P0.7---P0.0段控線,接LE

30、D的顯示段dp,g,f,e,d,c,b,a</p><p>  ;P2.7---P2.0位控線,從左至右(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0)</p><p>  ;顯示緩沖區(qū)設(shè)定從左至右依次為7FH,7EH,7DH,7CH,7BH,7AH,79H,78H(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0)</

31、p><p>  ;***********************************************************************</p><p><b>  ;獨(dú)立式鍵盤設(shè)定;</b></p><p>  ;8個(gè)按鍵S2至S9分別依次接在P1.0至P1.7口線; </p><p>  ;***

32、******************************************************************** </p><p><b>  ;子程序;</b></p><p>  ;DISP(數(shù)碼管顯示子程序)</p><p>  ;DL(1毫秒延時(shí)子程序,晶振頻率12MHz)</p><p>

33、;  ;***********************************************************************</p><p><b>  ;常數(shù)表格;</b></p><p>  ;TAB(共陽數(shù)碼管字型代碼表)</p><p>  ;DISBH(系統(tǒng)提示符P.字型代碼序號(hào)表)</p>&

34、lt;p>  ;***********************************************************************</p><p><b>  ;中斷服務(wù)程序;</b></p><p>  ;****************************************************************

35、*******</p><p><b>  ;鍵功能程序;</b></p><p>  ;***********************************************************************</p><p>  ;數(shù)據(jù)存儲(chǔ)器變量及常量單元定義;</p><p>  ;******

36、*****************************************************************</p><p>  ;偽指令定義區(qū) </p><p>  ;***********************************************************************</p><p>  ;系統(tǒng)起

37、始程序區(qū) </p><p>  ORG 0000H</p><p>  START: LJMP MAIN</p><p>  ;***********************************************************************</p><p>  ;系統(tǒng)監(jiān)控

38、程序區(qū) </p><p>  ORG 000BH</p><p>  LJMP PIT0</p><p>  ORG 0100H;</p><p>  MAIN: MOV SP, #7FH ;確立堆棧區(qū)</p><p>  MOV R0,

39、 #78H ;顯示緩沖區(qū)首址</p><p>  MOV R7, #08H ;顯示位數(shù) </p><p>  ML1: MOV @R0, #00H ;時(shí)鐘顯示緩沖單元清0</p><p>  INC R0;</p><p>  DJNZ R7,

40、 ML1</p><p>  MOV 7AH, #12H</p><p>  MOV 7DH, #12H</p><p>  MOV TMOD, #01H ;設(shè)置T/C0工作方式1</p><p>  MOV TL0, #0DCH ;裝載計(jì)數(shù)初值<

41、/p><p>  MOV TH0, #0BH;</p><p>  SETB EA;</p><p>  SETB ET0 </p><p>  CLR TR0;</p><p>  MOV 30H, #14H ;計(jì)數(shù)溢出次數(shù),即循環(huán)次數(shù) </p>

42、<p>  ML0: LCALL GEXING</p><p>  LCALL DISP ;調(diào)顯示子程序</p><p>  LCALL KEY ;調(diào)鍵掃描子程序</p><p>  ML3: LCALL ANJIANG;</p><p>  

43、ML2: JNB TR0, PARK</p><p>  LCALL DISP </p><p>  FFT: SJMP ML0</p><p>  ;***********************************************************************</p&

44、gt;<p><b>  ;獨(dú)立式鍵盤設(shè)定;</b></p><p>  ANJIANG:JB 20H.0, KEYAA ;是KEYA鍵,轉(zhuǎn)KEYAA執(zhí)行</p><p>  JB 20H.1, KEYBB ;是KEYB鍵,轉(zhuǎn)KEYBB執(zhí)行 </p><p>  JB

45、20H.2, KEYCC;</p><p>  JB 20H.3, KEYDD</p><p><b>  RET</b></p><p>  ;**********************************************************************</p><p>

46、<b>  ;鍵功能程序;</b></p><p>  KEYAA: MOV R0, #75H ;給加一子程序賦初值 </p><p>  LCALL DADD1 ;時(shí)加一</p><p>  MOV 25H, 75H ;時(shí)的十

47、位送位單元</p><p>  MOV 26H, 74H ;時(shí)的個(gè)位送位單元</p><p>  JB 25H.1, LOOP7 ;判斷十位是否加到2 </p><p>  LJMP ML2 ;</p><p>  KEYBB: MOV R0,

48、 #73H ;給加一子程序賦初值</p><p>  LCALL DADD1 ;分加一 </p><p>  MOV 24H, 73H ;分的十位送位單元</p><p>  JB 24H.2, LOOP5 ;判斷是否為6</p>

49、<p>  LJMP ML2</p><p>  KEYCC: SETB TR0 ;開始按鍵</p><p>  LJMP ML2 ;</p><p>  KEYDD: CLR TR0 ;停止按鍵</p><p>  LJMP ML2

50、 ; </p><p>  PARK : MOV P2, #0FEH ;顯示P.</p><p>  MOV P0, #0CH ;</p><p>  LCALL KEY </p><p>  AJMP ML3</p><p> 

51、 LOOP5: JB 24H.1, LOOP6 ;判斷是否為6 ,分到達(dá)60,轉(zhuǎn)LOOP6分清零</p><p>  LJMP ML2 ;</p><p>  LOOP6: MOV 73H, #00H ;分清零</p><p>  MOV 72H , #00H;</p&g

52、t;<p>  LJMP ML2</p><p>  LOOP7 : JB 26H.2, LOOP8 ;判斷個(gè)位是否加到4 ,時(shí)到達(dá)24 轉(zhuǎn)LOOP8,讓時(shí)清零</p><p>  LJMP ML2 ;</p><p>  LOOP8: MOV 75H, #00H ;

53、時(shí)清零</p><p>  MOV 74H, #00H;</p><p>  LJMP ML2 ;</p><p>  ;**********************************************************************</p><p><b>  ;鍵盤掃描子程

54、序</b></p><p>  KEY: LCALL KEYCHULI ;調(diào)P1口數(shù)據(jù)處理子程序</p><p>  JZ EXIT ;沒有鍵按下,轉(zhuǎn)返回</p><p>  LCALL DISP ;調(diào)顯示子程序去抖動(dòng)<

55、;/p><p>  LCALL DISP</p><p>  LCALL KEYCHULI ;調(diào)P1口數(shù)據(jù)處理子程序</p><p>  JZ EXIT ;沒有鍵按下,轉(zhuǎn)返回</p><p>  MOV B, 20H

56、;保存取反后的鍵值</p><p>  KEYSF: LCALL KEYCHULI ;調(diào)P1口數(shù)據(jù)處理子程序</p><p>  JZ KEY1 ;鍵釋放,轉(zhuǎn)恢復(fù)鍵值</p><p>  LCALL DISP ;調(diào)顯示子程序延時(shí)</p><p>  LJMP

57、KEYSF ;等待鍵釋放</p><p>  KEY1: MOV 20H, B ;鍵值送20H保存 </p><p>  EXIT: RET </p><p>  KEYCHULI: PUSH PSW ;保護(hù)現(xiàn)場(chǎng) </p><p> 

58、 MOV P1 ,#0FFH ;先向P1口寫1 </p><p>  MOV A, P1 ;讀P1口數(shù)據(jù)</p><p>  CPL A ;P1口數(shù)據(jù)取反</p><p>  ANL A, #0FFH;</p><p&

59、gt;  MOV 20H , A </p><p>  POP PSW ;恢復(fù)現(xiàn)場(chǎng)</p><p>  RET ;子程序返回</p><p>  ;*****************************************************************

60、******</p><p><b>  ;常數(shù)表格區(qū)</b></p><p>  ;系統(tǒng)初始化后提示符“P.”字符代碼表</p><p>  DISBH:DB 10H,10H,10H,10H,10H,10H,10H,11H ;提示符“P.”字符序號(hào)</p><p>  ;顯示字符段選碼表(共陽極代碼)

61、</p><p>  TAB:DB 0C0H, 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H ;0-8</p><p>  DB 90H, 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0BFH ;9,A,B,C,D,E,F,滅,</p><p>  ;*******************************

62、****************************************</p><p><b>  ;中斷服務(wù)程序;</b></p><p>  PIT0: PUSH PSW ;現(xiàn)場(chǎng)保護(hù)</p><p>  PUSH ACC;</p><p>  MOV A,

63、 #40H;</p><p>  MOV TL0, #0DCH ;裝載計(jì)數(shù)初值</p><p>  MOV TH0, #0BH </p><p>  SETB PSW.3 ;選第1組通用寄存器</p><p>  MOV A, 30H ;循環(huán)次數(shù)減1&l

64、t;/p><p>  DEC A;</p><p>  MOV 30H, A;</p><p>  JNZ RET0 ;不滿20次,轉(zhuǎn)RET0返回</p><p>  MOV 30H, #14H ;滿20次,開始計(jì)時(shí)操作</p><p>  MOV

65、 R0, #71H ;秒十位顯示緩沖單元地址</p><p>  ACALL DADD1 ;秒加1</p><p>  MOV A, R2 ;加1后秒值在R2中</p><p>  XRL A, #60H ;判是否到60秒</p><p> 

66、 JNZ RET0 ;不到,轉(zhuǎn)RET0返回</p><p>  ACALL CLR0 ;到60秒,秒顯示緩沖單元清0</p><p>  MOV R0, #73H ;分十位顯示緩沖單元地址</p><p>  ACALL DADD1 ;分加1</p&g

67、t;<p>  MOV A, R2 ;加1后分值在R2中</p><p>  XRL A, #60H ;判是否到60分</p><p>  JNZ RET0 ;不到,轉(zhuǎn)RET0返回</p><p>  ACALL CLR0 ;到60分,分

68、顯示緩沖單元清0</p><p>  MOV R0, #75H ;時(shí)十位顯示緩沖單元地址</p><p>  ACALL DADD1 ;時(shí)加1</p><p>  MOV A, R2 ;加1后時(shí)值在R2中</p><p>  XRL A, #24H

69、 ;判是否到24小時(shí)</p><p>  JNZ RET0 ;不到,轉(zhuǎn)RET0返回</p><p>  ACALL CLR0; </p><p>  RET0: POP ACC ;現(xiàn)場(chǎng)恢復(fù)</p><p>  POP PSW;</p&

70、gt;<p><b>  RETI</b></p><p>  ;***********************************************************************</p><p><b>  ;子程序區(qū);</b></p><p>  ;數(shù)碼管顯示子程序DISP&l

71、t;/p><p>  7FH,7EH,7DH,7CH,7BH,7AH,79H,78H(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0)</p><p>  DISP: PUSHDPH</p><p><b>  PUSHDPL</b></p><p><b>  PUSHAC

72、C</b></p><p><b>  PUSHPSW</b></p><p>  CLR RS1 ;改變當(dāng)前寄存器組為組1</p><p>  SETB RS0</p><p>  MOV R1, #78H ;顯示緩沖存儲(chǔ)單元首地址<

73、/p><p>  MOV R2, #0FEH ;從右至左顯示</p><p>  MOV R5, #08H ;循環(huán)次數(shù),即驅(qū)動(dòng)數(shù)碼管的位數(shù)</p><p>  DISP1: MOV A, @R1</p><p>  MOVDPTR, #TAB</p>&l

74、t;p>  MOVC A, @A+DPTR</p><p>  MOVP0, A;送段控</p><p>  MOVP2, R2 ;送位控</p><p>  LCALLDL ;延時(shí)1毫秒</p><p>  MOVA, R2

75、 ;位控碼送A</p><p>  RLA;獲得新的位控碼</p><p>  MOV R2, A;保存新的位控碼</p><p>  INCR1;獲得新的顯示緩沖單元地址</p><p>  DJNZ R5, DISP1;循環(huán)沒有結(jié)束則繼續(xù)</p><p&

76、gt;  DISP2: POPPSW ;恢復(fù)當(dāng)前寄存器組的組號(hào)</p><p><b>  POPACC</b></p><p><b>  POPDPL</b></p><p><b>  POPDPH</b></p><p>

77、<b>  RET</b></p><p>  ;延時(shí)1ms子程序(晶振頻率12MHz)DL</p><p>  DL: MOVR7, #02H</p><p>  DL1:MOV R6, #0FFH</p><p>  DL2:DJNZ R6, DL2<

78、/p><p>  DJNZ R7, DL1</p><p><b>  RET;</b></p><p>  ;***********************************************************************</p><p>  ;更新緩沖區(qū)內(nèi)容子程序</

79、p><p>  GEXING:MOV 78H, 70H</p><p>  MOV 79H, 71H</p><p>  MOV 7BH, 72H</p><p>  MOV 7CH, 73H</p><p>  MOV 7E

80、H, 74H</p><p>  MOV 7FH, 75H</p><p><b>  RET </b></p><p>  ;***********************************************************************</p><p><

81、;b>  ;加一子程序</b></p><p>  DADD1: MOV A, @R0 ;十位數(shù)送A</p><p>  DEC R0</p><p>  SWAP A ;十位數(shù)占高4位</p><p>  ORL

82、 A, @R0 ;個(gè)位數(shù)占低4位</p><p>  ADD A, #01H ;加1</p><p>  DA A ;十進(jìn)制調(diào)整</p><p>  MOV R2, A ;全值暫存R2中</p><p&g

83、t;  ANL A, #0FH ;屏蔽十位數(shù),取出個(gè)位數(shù)</p><p>  MOV @R0, A ;個(gè)位值送顯示緩沖單元</p><p>  MOV A, R2;</p><p>  INC R0;</p><p>  ANL

84、 A, #0F0H ;屏蔽個(gè)位數(shù),取出十位數(shù)</p><p>  SWAP A ;使十位數(shù)占低4位</p><p>  MOV @R0, A ;十位值送顯示緩沖單元</p><p>  RET ;子程序返回</p><

85、;p>  ;***********************************************************************</p><p>  CLR0: CLR A </p><p>  MOV @R0, A ;十位數(shù)緩沖單元清0</p><p><b>  DEC R0<

86、;/b></p><p>  MOV @R0, A ;個(gè)位數(shù)緩沖單元清0</p><p><b>  RET</b></p><p><b>  END</b></p><p>  4 設(shè)計(jì)結(jié)論、仿真結(jié)果、誤差分析、教學(xué)建議</p><p>  

87、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)試,然后畫電路圖制PCB板、打孔、溶銅、焊接等,真的經(jīng)歷了許多困難,卻積累了很多寶貴的經(jīng)驗(yàn),本設(shè)計(jì)用2個(gè)四位一體的共陽數(shù)碼管做為顯示器,它顯示時(shí)間值;設(shè)計(jì)中有三個(gè)按鍵,其中S1為啟動(dòng)/選擇調(diào)

88、整位置,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 ISIS的Debug菜單中選擇Execute,運(yùn)行程序,系統(tǒng)仿真結(jié)果如圖4.1與4.2所示。</p><p><b>  實(shí)現(xiàn)功能:</

89、b></p><p>  可調(diào)整運(yùn)行的電子鐘具有三種工作狀態(tài):“P.”狀態(tài)、運(yùn)行狀態(tài)、調(diào)整狀態(tài)。</p><p> ?。?)、“P.”狀態(tài),依靠上電或按復(fù)位鍵進(jìn)入,在此狀態(tài)下,按S2、S3鍵均無效,</p><p>  按S1鍵有效,進(jìn)入運(yùn)行狀態(tài);</p><p> ?。?)、運(yùn)行狀態(tài),在此狀態(tài)下,按S2、S3鍵均無效,只有按S1鍵有效

90、,按下S1鍵后,退出運(yùn)行狀態(tài),進(jìn)入調(diào)整狀態(tài);</p><p> ?。?)、調(diào)整狀態(tài),按S1鍵進(jìn)入時(shí)、分、秒的閃爍,在此狀態(tài)下,按S2(+1鍵)、</p><p>  S3(-1鍵)鍵均有效;調(diào)整結(jié)束后必須按S1鍵,即可退出調(diào)整狀態(tài),進(jìn)入</p><p>  運(yùn)行狀態(tài)。在調(diào)整狀態(tài)時(shí)長(zhǎng)按S2、S3時(shí)可以連加及連減。</p><p>  時(shí)間顯示格

91、式為:時(shí)-分-秒; </p><p>  圖7 “P.”運(yùn)行狀態(tài)仿真</p><p>  圖8 時(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í)行中斷程序,這

92、個(gè)過程是需要時(shí)間的,所以就產(chǎn)生了一定的誤差,當(dāng)然這個(gè)誤差是避免不了的,其次還有硬件系統(tǒng)也有一定的影響。第三,設(shè)計(jì)用到11.0592MHz的晶振,計(jì)算是滿20次為一秒鐘,但實(shí)際會(huì)慢很多。</p><p><b>  4.4 設(shè)計(jì)體會(huì)</b></p><p>  本次課程設(shè)計(jì),讓我受益匪淺,認(rèn)識(shí)到了自己的許多缺點(diǎn)和不足,使我深深的感受到了理論聯(lián)系實(shí)際的必要性及其重要性。

93、在我們以往的學(xué)習(xí)過程中,我們刻意地去加強(qiáng)理論的基礎(chǔ),對(duì)于一個(gè)程序我們只求它在運(yùn)行時(shí)沒有出錯(cuò),我們便以為我們的計(jì)劃成功了豈不知它能否在硬件結(jié)構(gòu)中得以實(shí)現(xiàn)則是另外一回事,這就要求我們的動(dòng)手能力,如果無法使軟件與硬件實(shí)現(xiàn)有機(jī)的結(jié)合,那么再好的程序也只是一堆廢字符。</p><p><b>  4.5 教學(xué)建議</b></p><p>  經(jīng)過一個(gè)學(xué)期王韌老師教導(dǎo)的的單片機(jī)

94、學(xué)習(xí),我掌握了很多單片機(jī)學(xué)習(xí)的寶貴經(jīng)驗(yàn),尤其在編程的思路和PCB實(shí)物的制作上面。編程思路是整個(gè)程序的靈魂,沒有編程思路,程序就不會(huì)編出來,就失去了編程的意義。在開始編程之前,想好編程的思路,編程能力才會(huì)提高,編程的過程才會(huì)順暢,程序的質(zhì)量才會(huì)提高。</p><p>  在王韌老師的教學(xué)過程中,幽默輕松的教學(xué)方式常常讓課堂氣氛很活躍,幽默詼諧,授課內(nèi)容條理清晰,經(jīng)常運(yùn)用各種實(shí)例,娓娓道來,給人印象深刻。王老師在課堂

95、上也十分注重和同學(xué)們的互動(dòng),經(jīng)常會(huì)用一些親身實(shí)踐的經(jīng)驗(yàn)為例,讓同學(xué)們?cè)诨谑聦?shí)的基礎(chǔ)上更好的理解相關(guān)理論,充分做到了理論與實(shí)際的結(jié)合,既形象生動(dòng),又豐富有趣。</p><p>  結(jié)合自己課堂的學(xué)習(xí)和單片機(jī)學(xué)習(xí)效果總結(jié)幾點(diǎn)教學(xué)建議希望老師接納:</p><p>  (1)、每一位學(xué)生都要發(fā)展,但不必求一樣的發(fā)展;每一位學(xué)生都要提高,但不必是同步的提高;每一位學(xué)生都要合格,但不必是相同的規(guī)格

96、;</p><p>  (2)、不能錯(cuò)過學(xué)生的“過錯(cuò)”;</p><p>  (3)、學(xué)生不會(huì)說的,您鼓勵(lì)他說;學(xué)生說不準(zhǔn)的,您引導(dǎo)他說。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 李廣弟.單片機(jī)基礎(chǔ)[M],北京航空航天大學(xué)出版社,2006.7.</p><p> 

97、 Li Guangdi. Microcontroller based on [M], Beijing Aerospace University Press, 2006.7.</p><p><b>  致 謝</b></p><p>  通過不斷努力,終于完成了此次單片機(jī)的課程設(shè)計(jì)。在此,首先感謝王韌老師,正是他在萬忙之中還抽出寶貴的時(shí)間對(duì)我們進(jìn)行精心的指導(dǎo),才使我

98、順利完成了此次單片機(jī)課程設(shè)計(jì)。同時(shí)也感謝各位同學(xué)和老師對(duì)我提供的幫助。使我在此次設(shè)計(jì)中學(xué)到了許多寶貴的知識(shí)和經(jīng)驗(yàn)。在此,衷心地感謝你們!</p><p><b>  附 錄 A</b></p><p><b>  電路原理圖</b></p><p><b>  附 錄 B</b></p>

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲(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)論