版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 《單片機(jī)技術(shù)》電子鐘課程設(shè)計(jì)---數(shù)字電子鐘
- 單片機(jī)數(shù)字電子鐘課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字鐘電子鐘
- 單片機(jī)課程設(shè)計(jì)---數(shù)字電子鐘的設(shè)計(jì)
- 單片機(jī)電子鐘課程設(shè)計(jì)---數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)數(shù)字電子鐘
- 電子鐘單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)--電子鐘
- 單片機(jī)課程設(shè)計(jì)(電子鐘)
- 單片機(jī)課程設(shè)計(jì)--多功能數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)— 多功能數(shù)字電子鐘
- 課程設(shè)計(jì)----基于單片機(jī)的數(shù)字電子鐘設(shè)計(jì)
- 電子鐘課程設(shè)計(jì)--基于單片機(jī)的電子鐘設(shè)計(jì)
- 單片機(jī)數(shù)字時(shí)鐘課程設(shè)計(jì)--單片機(jī)多功能電子鐘設(shè)計(jì)
- 電子時(shí)鐘數(shù)字電子鐘單片機(jī)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論