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

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計(論文)</b></p><p>  題 目 名 稱 電子時鐘設(shè)計 </p><p>  課 程 名 稱 單片機原理與接口技術(shù) </p><p>  學 生 姓 名 <

2、;/p><p>  學 號 </p><p>  系 、專 業(yè) 電氣工程系電氣類 </p><p>  指 導 教 師 </p><p>  2009年 7月 2 日</p&g

3、t;<p>  課程設(shè)計(論文)任務(wù)書</p><p>  二級學院:專業(yè):班級:</p><p>  指導教師(簽字): 學生(簽字):</p><p>  課程設(shè)計(論文)評閱表</p><p>  學生姓名 學

4、 號 </p><p>  系 別 電氣工程系 專業(yè)班級 </p><p>  題目名稱 電子時鐘 課程名稱 單片機原理與接口技術(shù)

5、 </p><p><b>  一、學生自我總結(jié)</b></p><p><b>  二、指導教師評定</b></p><p>  注:1、本表是學生課程設(shè)計(論文)成績評定的依據(jù),裝訂在設(shè)計說明書(或論文)的“任務(wù)書”頁后面;</p><p>  2、表中的“評

6、分項目”及“權(quán)重”根據(jù)各系的考核細則和評分標準確定:</p><p><b>  摘 要</b></p><p>  單片計算機即單片微型計算機。由RAM ,ROM,CPU構(gòu)成,定時,計數(shù)和多種接口于一體的微控制器。它體積小,成本低,功能強,廣泛應用于智能產(chǎn)業(yè)和工業(yè)自動化上。而51系列單片機是各單片機中最為典型和最有代表性的一種。這次課程設(shè)計通過對它的學習,應用,從

7、而達到學習、設(shè)計、開發(fā)軟、硬的能力。</p><p>  本設(shè)計主要設(shè)計了一個基于AT89C51單片機的電子時鐘。并在數(shù)碼管上顯示相應的時間。并通過一個控制鍵用來實現(xiàn)時間的調(diào)節(jié)和是否進入省電模式的轉(zhuǎn)換。應用Proteus的ISIS軟件實現(xiàn)了單片機電子時鐘系統(tǒng)的設(shè)計與仿真。該方法仿真效果真實、準確,節(jié)省了硬件資源。</p><p>  關(guān)鍵字:單片機;子時鐘;鍵盤控制。</p>

8、<p><b>  目 錄</b></p><p><b>  摘 要4</b></p><p><b>  1 電子時鐘6</b></p><p>  1.1 電子時鐘簡介6</p><p>  1.2 電子時鐘的基本特點6</p>

9、<p>  1.3 電子時鐘的原理6</p><p>  2 單片機識的相關(guān)知識6</p><p>  2.1 單片機簡介6</p><p>  2.2 單片機的發(fā)展史7</p><p>  2.3 單片機的特點8</p><p>  2.4 89C51單片機介紹8</p&g

10、t;<p>  3 控制系統(tǒng)的硬件設(shè)計10</p><p>  3.1 單片機型號的選擇10</p><p>  3.2 數(shù)碼管顯示工作原理10</p><p>  3.3 鍵盤電路設(shè)計11</p><p>  3.4 整個電路原理圖12</p><p>  4 控制系統(tǒng)的軟件設(shè)計

11、12</p><p>  4.1程序設(shè)計12</p><p>  4.2 程序流程圖15</p><p>  4.3 仿真圖18</p><p>  4.4 仿真結(jié)果分析19</p><p><b>  5 結(jié)束語19</b></p><p><b>

12、  6 附錄20</b></p><p><b>  參考文獻28</b></p><p><b>  電子時鐘 </b></p><p>  1.1 電子時鐘簡介 </p><p>  1957年

13、,Ventura發(fā)明了世界上第一個電子表,從而奠定了電子時鐘的基礎(chǔ),電子時鐘開始迅速發(fā)展起來?,F(xiàn)代的電子時鐘是基于單片機的一種計時工具,采用延時程序產(chǎn)生一定的時間中斷,用于一秒的定義,通過計數(shù)方式進行滿六十秒分鐘進一,滿六十分小時進一,滿二十四小時小時清零。從而達到計時的功能,是人民日常生活補課缺少的工具。</p><p>  1.2 電子時鐘的基本特點

14、 </p><p>  現(xiàn)在高精度的計時工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘、石英鐘、石英表都采用了石英技術(shù),因此走時精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)試,數(shù)字式電子鐘用集成電路計時時,譯碼代替機械式傳動,用LED顯示器代替指針顯示進而顯示時間,減小了計時誤差,這種表具有時、分、秒顯示時間的功能,還可以進行時和分的校對,片選的靈活性好。</p><p>

15、  1.3 電子時鐘的原理 </p><p>  該電子時鐘由89C51,BUTTON,六段數(shù)碼管等構(gòu)成,采用晶振電路作為驅(qū)動電路,由延時程序和循環(huán)程序產(chǎn)生的一秒定時,達到時分秒的計時,六十秒為一分鐘,六十分鐘為一小時,滿二十四小時為一天。而電路中唯一的一個控制鍵卻擁有多種不同的功能,按下又松開,可以實現(xiàn)屏蔽數(shù)碼管顯示的功能,達到省電的目的;直接按下不松

16、開,則可以通過按鍵實現(xiàn)分鐘的累加,每按一次分鐘加一;而連續(xù)兩次按下按鍵不放松,則可實現(xiàn)小時的調(diào)節(jié),同樣每按一次小時加一。</p><p>  2 單片機識的相關(guān)知識 </p><p>  2.1 單片機簡介 </p><p>  單片機全稱為單片機微型計算機(Single Chip Micro

17、softcomputer)。從應用領(lǐng)域來看,單片機主要用來控制,所以又稱為微控制器(Microcontroller Unit)或嵌入式控制器。單片機是將計算機的基本部件微型化并集成在一塊芯片上的微型計算機。</p><p>  2.2 單片機的發(fā)展史</p><p>  1 . 4位單片機

18、 </p><p>  1975年,美國德克薩斯儀器公司首次推出4位單片機TMS-1000;此后,各個計算機公司競相推出四位單片機。日本松下公司的MN1400系列,美國洛克威爾公司的PPS/1系列等。四位單片機的主要應用領(lǐng)域有:PC機的輸入裝置,電池充電器,運動器材,帶液晶顯示的音/視頻產(chǎn)品控制器,一般家用電器的控制及遙控器,電子玩具,鐘表,計算器,多功能電話等。

19、 </p><p>  2 . 8位單片機 </p><p>  1972年,美國Intel公司首先推出8位微處理器8008,并于1976年9月率先推出MCS-48系列單片機。在這以后,8位單片機紛紛面市。

20、例如,莫斯特克和仙童公司合作生產(chǎn)的3870系列,摩托羅拉公司生產(chǎn)的6801系列等。隨著集成電路工藝水平的提高,一些高性能的8位單片機相繼問世。例如,1978年摩托羅拉公司的MC6801系列及齊洛格公司的Z8系列,1979年NEC公司的UPD78XX系列。這類單片機的尋址能力達64KB,片內(nèi)ROM容量達4--8KB,片內(nèi)除帶有并行I\O口外,還有串行I\O口,甚至還有A\D轉(zhuǎn)化器功能。8位單片機由于功能強,被廣泛用于自動化裝置、智能儀器儀

21、表、智能接口、過程控制、通信、家用電器等各個領(lǐng)域。</p><p>  3 . 16位單片機 </p><p>  1983年以后,集成電路的集成度可達幾十萬只管/片,各系列16位單片機紛紛面市。這一階段的代表產(chǎn)品有1983年Intel公

22、司推出的MCS-96系列,1987年Intel推出了80C96,美國國家半導體公司推出的HPC16040,NEC公司推出的783XX系列等。16位單片機主要用于工業(yè)控制,智能儀器儀表,便攜式設(shè)備等場合。</p><p>  4 . 32位單片機 </p><p

23、>  隨著高新技術(shù)只智能機器人,光盤驅(qū)動器,激光打印機,圖像與數(shù)據(jù)實時處理,復雜實時控制,網(wǎng)絡(luò)服務(wù)器等領(lǐng)域的應用與發(fā)展,20世紀80年代末推出了32位單片機,如Motorlora公司的MC683XX系列,Intel的80960系列,以及近年來流行的ARM系列單片機。32位單片機是單片機的發(fā)展趨勢,隨著技術(shù)的發(fā)展及開發(fā)成本和產(chǎn)品價格的下降,將會與8位單片機并駕齊驅(qū)。</p><p>  5 . 64位單片機

24、 </p><p>  近年來,64位單片機在引擎控制,智能機器人,磁盤控制,語音圖像通信,算法密集的實時控制場合已有應用,如英國Inmos公司的Transputer T800是高性能的64位單片機。</p><p>  2.3 單片機的特點

25、 </p><p>  1 . 單片機的存儲器ROM和RAM時嚴格區(qū)分的。ROM稱為程序存儲器,只存放程序,固定常數(shù),及數(shù)據(jù)表格。RAM則為數(shù)據(jù)存儲器,用作工作區(qū)及存放用戶數(shù)據(jù)。 </p><p>  2 . 采用面向控制的指令系統(tǒng)。為滿足控制需要,單片機有更強的邏輯控制能力,特別是單片機具有很強的位處理能力。

26、 3 . 單片機的I/O口通常時多功能的。由于單片機芯片上引腳數(shù)目有限,為了解決實際引腳數(shù)和需要的信號線的矛盾,采用了引腳功能復用的方法,引腳處于何種功能,可由指令來設(shè)置或由機器狀態(tài)來區(qū)分。 4 . 單片機的外部擴展能力很強。在內(nèi)部的各種功能部件不能滿足應用的需求時,均可在外部進行擴展,與許多通

27、用的微機接口芯片兼容,給應用系統(tǒng)設(shè)計帶來了很大的方便。</p><p>  2.4 89C51單片機介紹 </p><p><b>  VCC:電源。</b></p><p><b>  GND:接地。</b></p>

28、<p>  P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程 序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。</p><p>  P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出

29、4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作 輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 </p><p>  P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻 拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。

30、這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存 儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器 的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。</p><p>  圖2.1 89C51單片機</p><p>  P3口:P3口管腳是8個帶內(nèi)部上

31、拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。</p><p>  P3口也可作為AT89C51的一些特殊功能口,如下表所示:</p><p><b>  口管腳 備選功能</b></p><p>  P3

32、.0 RXD(串行輸入口)</p><p>  P3.1 TXD(串行輸出口)</p><p>  P3.2 /INT0(外部中斷0)</p><p>  P3.3 /INT1(外部中斷1)</p><p>  P3.4 T0(記時器0外部輸入)</p><p>  P3.5 T1(記時器1外部輸入)</p>

33、;<p>  P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)</p><p>  P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)</p><p>  P3口同時為閃爍編程和編程校驗接收一些控制信號。</p><p>  RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。</p><p>  ALE/PROG:當訪

34、問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE 端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器 時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處

35、理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。</p><p>  PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。</p><p>  EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時, /EA將內(nèi)部鎖定為

36、RESET;當/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p>  3 控制系統(tǒng)的硬件設(shè)計</p><p>  3.1 單片機型號的選擇 </p><p>  通過

37、對多種單片機性能的分析,最終認為89C51是最理想的電子時鐘開發(fā)芯片。89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS8位微處理器,器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的89C51是一種高效微控制器,而且它與MCS-51兼容,且具有4K字節(jié)可編程閃爍存儲器和1000寫/擦循環(huán),數(shù)據(jù)保留時

38、間為10年等特點,是最好的選擇。</p><p>  3.2 數(shù)碼管顯示工作原理</p><p>  數(shù)碼管是一種把多個LED顯示段集成在一起的顯示設(shè)備。有兩種類型,一種是共陽型,一種是共陰型。共陽型就是把多個LED顯示段的陽極接在一起,又稱為公共端。共陰型就是把多個LED顯示段的陰極接在一起,即為公共商。陽極即為二極管的正極,又稱為正極,陰極即為二極管的負極,又稱為負極。通常的數(shù)碼管又

39、分為8段,即8個LED顯示段,這是為工程應用方便如設(shè)計的,分別為A、B、C、D、E、F、G、DP,其中DP 是小數(shù)點位段。而多位數(shù)碼管,除某一位的公共端會連接在一起,不同位的數(shù)碼管的相同端也會連接在一起。即,所有的A段都會連在一起,其它的段也是如此,這是實際最常用的用法。數(shù)碼管顯示方法可分為靜態(tài)顯示和動態(tài)顯示兩種。靜態(tài)顯示就是數(shù)碼管的8段輸入及其公共端電平一直有效。動態(tài)顯示的原理是,各個數(shù)碼管的相同段連接在一起,共同占用8 位段引管線;

40、每位數(shù)碼管的陽極連在一起組成公共端。利用人眼的視覺暫留性,依次給出各個數(shù)碼管公共端加有效信號,在此同時給出該數(shù)碼管加有效的數(shù)據(jù)信號,當全段掃描速度大于視覺暫留速度時,顯示就會清晰顯示出來。</p><p>  圖3.1 共陰數(shù)碼管</p><p>  3.3 鍵盤電路設(shè)計 </p>

41、<p>  該設(shè)計只用了一個鍵盤,但實現(xiàn)的功能卻是比較完善,減少了硬件資源的損耗,該鍵盤可以實現(xiàn)小時和分鐘的調(diào)節(jié)以及控制是否進入省電模式。當按鍵按下又松開,可以實現(xiàn)屏蔽數(shù)碼管顯示的功能,達到省電的目的;直接按下不松開,則可以通過按鍵實現(xiàn)分鐘的累加,每按一次分鐘加一;而連續(xù)兩次按下按鍵不放松,則可實現(xiàn)小時的調(diào)節(jié),同樣每按一次小時加一。達到時間調(diào)節(jié)的目的。</p><p>  圖3.2 多功能控制鍵&l

42、t;/p><p>  整個電路原理圖 </p><p>  圖3.3 系統(tǒng)電路原理圖</p><p>  4 控制系統(tǒng)的軟件設(shè)計 </p><p>  4.1 程序設(shè)計

43、 </p><p>  本系統(tǒng)的軟件系統(tǒng)主要可分為主程序、定時計數(shù)中斷程序、時間調(diào)整程序、延時程序四大模塊。在程序設(shè)計過程中,加強了部分軟件抗干擾措施,下面對部分模塊作介紹。</p><p><b>  定時計數(shù)中斷程序:</b></p><p>  MOV T

44、MOD,#00H ;寫控制字</p><p>  MOV TH0,#0F0H ;寫定時常數(shù)</p><p>  MOV TLO,#0CH</p><p>  SETB TR0 ;啟動T0</p><p>  SETB

45、 ETO ;允許T0中斷</p><p>  SETB EA ;開放CPU中斷</p><p><b>  AJMP $</b></p><p><b>  時間調(diào)整程序:</b></p><p>  SET

46、MM: cLR ET0 ;關(guān)定時器T0中斷</p><p>  CLR TR0 ;關(guān)閉定時器T0</p><p>  LCALL DL1S ;調(diào)用1秒延時程序</p><p>  JB P3.7,CLOSEDIS ;鍵按

47、下時間小于1秒,關(guān)閉顯示(省電) MOV R2,#06H ;進入調(diào)時狀態(tài),賦閃爍定時初值 SETB ET1

48、 ;允許T1中斷</p><p>  SETB TR1 ;開啟定時器T1</p><p>  SET2: JNB P3.7,SET1 ;P3.7口為0(鍵未釋放),等待</p><p>  SETB 00H ;鍵釋放,分調(diào)整閃爍標志置

49、1</p><p>  SET4: JB P3.7,SET3 ;等待鍵按下</p><p>  LCALL DL05S ;有鍵按下,延時0.5秒</p><p>  JNB P3.7,SETHH ;按下時間大于0.5秒轉(zhuǎn)調(diào)小時狀態(tài)</p><p> 

50、 MOV R0,#77H ;按下時間小于0.5秒加1分鐘操作</p><p>  LCALL ADD1 ;調(diào)用加1子程序</p><p>  MOV A,R3 ;取調(diào)整單元數(shù)據(jù)</p><p>  CLR C

51、 ;清進位標志</p><p>  CJNE A,#60H,HHH ;調(diào)整單元數(shù)據(jù)與60比較</p><p>  HHH: JC SET4 ;調(diào)整單元數(shù)據(jù)小于60轉(zhuǎn)SET4循環(huán)</p><p>  LCALL CLR0 ;調(diào)整單元數(shù)據(jù)大于或等于60時清0</p

52、><p>  CLR C ;清進位標志</p><p>  AJMP SET4 ;跳轉(zhuǎn)到SET4循環(huán)</p><p>  CLOSEDIS:SETB ET0 ;省電(LED不顯示)狀態(tài)。開T0中斷</p><p>  SETB T

53、R0 ;開啟T0定時器(開時鐘)</p><p>  CLOSE: JB P3.7,CLOSE ;無按鍵按下,等待。</p><p>  LCALL DISPLAY ;有鍵按下,調(diào)顯示子程序延時削抖</p><p>  JB P3.7,CLOSE

54、 ;是干擾返回CLOSE等待</p><p>  WAITH: JNB P3.7,WAITH ;等待鍵釋放</p><p>  LJMP START1 ;返回主程序(LED數(shù)據(jù)顯示亮)</p><p>  SETHH: CLR 00H ;分閃爍標志清除(

55、進入調(diào)小時狀態(tài))</p><p>  SETHH1: JNB P3.7,SET5 ;等待鍵釋放</p><p>  SETB 01H ;小時調(diào)整標志置1</p><p>  SET6: JB P3.7,SET7 ;等待按鍵按下</p><p>  

56、LCALL DL05S ;有鍵按下延時0.5秒</p><p>  JNB P3.7,SETOUT ;按下時間大于0.5秒退出時間調(diào)整</p><p>  MOV R0,#79H ;按下時間小于0.5秒加1小時操作</p><p>  LCALL AD

57、D1 ;調(diào)加1子程序</p><p>  MOV A,R3 ;</p><p>  CLR C ;</p><p>  CJNE A,#24H,HOUU ;計時單元數(shù)據(jù)與24比較</p><p>  HOUU:

58、 JC SET6 小于24轉(zhuǎn)SET6循環(huán)</p><p>  LCALL CLR0 ;大于或等于24時清0操作</p><p>  AJMP SET6 ; 跳轉(zhuǎn)到SET6循環(huán)</p><p>  SETOUT: JNB P3.7,SETOUT1

59、 ;調(diào)時退出程序。等待鍵釋放</p><p>  LCALL DISPLAY ;延時削抖</p><p>  JNB P3.7,SETOUT ;是抖動,返回SETOUT再等待</p><p>  CLR 01H ;清調(diào)小時標

60、志</p><p>  CLR 00H ;清調(diào)分標志</p><p>  CLR 02H ;清閃爍標志</p><p>  CLR TR1 ;關(guān)閉定時器T1</p><p>  CLR

61、 ET1 ;關(guān)定時器T1中斷</p><p>  SETB TR0 ;開啟定時器T0</p><p>  SETB ET0 ;開定時器T0中斷(計時開始)</p><p>  LJMP START1

62、 ;跳回主程序</p><p>  SET1: LCALL DISPLAY ;鍵釋放等待時調(diào)用顯示程序(調(diào)分)</p><p>  AJMP SET2 ;防止鍵按下時無時鐘顯示</p><p>  SET3: LCALL DISPLAY ;等待調(diào)分按鍵時

63、時鐘顯示用</p><p>  AJMP SET4</p><p>  SET5: LCALL DISPLAY ;鍵釋放等待時調(diào)用顯示程序(調(diào)小時)</p><p>  AJMP SETHH1 ;防止鍵按下時無時鐘顯示</p><p>  SET7: LCALL D

64、ISPLAY ;等待調(diào)小時按鍵時時鐘顯示用</p><p>  AJMP SET6</p><p>  SETOUT1: LCALL DISPLAY ;退出時鐘調(diào)整時鍵釋放等待</p><p>  AJMP SETOUT ;防止鍵按下時無時鐘顯示</p><p>&l

65、t;b>  延時程序:</b></p><p>  1MS延時程序,LED顯示程序用</p><p>  DL1MS: MOV R6,#14H</p><p>  DL1: MOV R7,#19H</p><p>  DL2: DJNZ R7,DL2</p><p>  DJNZ R6

66、,DL1</p><p><b>  RET</b></p><p>  20MS延時程序,采用調(diào)用顯示子程序以改善LED的顯示閃爍現(xiàn)象</p><p>  DS20MS: ACALL DISPLAY</p><p>  ACALL DISPLAY</p><p>  ACALL DISP

67、LAY</p><p><b>  RET</b></p><p><b>  4.2程序流程圖</b></p><p>  系統(tǒng)的流程圖如圖4.1和圖4.2所示:</p><p>  圖4.1 主程序流程圖</p><p>  圖 4.2 中斷處理流程圖</p&g

68、t;<p><b>  4.3 仿真結(jié)果</b></p><p>  圖4.3 開始運行程序仿真圖</p><p>  圖4.4 運行一段時間后仿真圖</p><p>  4.4 仿真結(jié)果分析</p><p>  功能太過單調(diào),只能實現(xiàn)時分秒的顯示,設(shè)計比較簡單。電路圖的設(shè)計過于單調(diào),用的器件太少,實

69、現(xiàn)調(diào)節(jié)時間的按鈕太少,不能很好的實現(xiàn)時間的調(diào)節(jié)。在測試過程中,六位數(shù)碼顯示管只顯示五位數(shù)字,有一位數(shù)字不亮,通過多次的修改程序并在PROTEUS軟件環(huán)境中進行仿真,最終解決了這個問題,同時也透露出本人在單片機電路設(shè)計和程序設(shè)計方面的不足。不過最后的仿真效果非常好,實現(xiàn)了預期的效果,能過通過多功能控制鍵調(diào)節(jié)時間和是否進入省電模式,是一個比較令人滿意的設(shè)計。</p><p><b>  5 結(jié)束語<

70、/b></p><p>  在李凱南老師耐心的指導下,我順利完成了這次單片機課程設(shè)計課題中的電子時鐘設(shè)計,通過這次的設(shè)計使我認識到本人對單片機方面的知識知道的太少了,對于書本上的很多知識還不能靈活運用,尤其是對程序設(shè)計語句的理解和運用,不能夠充分理解每個語句的具體含義,導致編程的程序過于復雜,使得需要的存儲空間增大。損耗了過多的內(nèi)存資源。</p><p>  本次的設(shè)計使我從中學到了

71、一些很重要的東西,那就是如何從理論到實踐的轉(zhuǎn)化,怎樣將我所學到的知識運用到我以后的工作中去。在大學的課堂的學習只是在給我們灌輸專業(yè)知識,而我們應把所學的用到我們現(xiàn)實的生活中去,此次的電子時鐘設(shè)計給我奠定了一個實踐基礎(chǔ),我會在以后的學習、生活中磨練自己,使自己適應于以后的競爭,同時在查找資料的過程中我也學到了許多新的知識,在和同學協(xié)作過程中增進同學間的友誼,使我對團隊精神的積極性和重要性有了更加充分的理解。</p><

72、p>  最后,感謝李凱南老師對我的細心的指導,正是由于李老師的細心的輔導和他提供給我們的參考資料,使得我的課程設(shè)計能夠順利的完成,同時在課程設(shè)計過程中,我們鞏固和學習了我們的單片機知識。相信這對我以后的課程設(shè)計和畢業(yè)設(shè)計將會有很大的幫助!</p><p><b>  6 附錄</b></p><p>  ORG 0000H ;程序執(zhí)

73、行開始地址</p><p>  LJMP START ;跳到標號START執(zhí)行</p><p>  ORG 0003H ;外中斷0中斷程序入口</p><p>  RETI ;外中斷0中斷返回</p><p>  ORG 000BH

74、 ;定時器T0中斷程序入口</p><p>  LJMP INTT0 ;跳至INTTO執(zhí)行</p><p>  ORG 0013H ;外中斷1中斷程序入口</p><p>  RETI ;外中斷1中斷返回</p><p>  OR

75、G 001BH ;定時器T1中斷程序入口</p><p>  LJMP INTT1 ;跳至INTT1執(zhí)行</p><p>  ORG 0023H ;串行中斷程序入口地址</p><p>  RETI ;串行中斷程序返回</p&g

76、t;<p><b>  主程序開始; </b></p><p>  START: MOV R0,#70H ;清70H-7AH共11個內(nèi)存單元</p><p>  MOV R7,#0BH ;</p><p>  CLEARDISP: MOV @R0,#00H ;</p>&l

77、t;p>  INC R0 ;</p><p>  DJNZ R7,CLEARDISP ;</p><p>  MOV 20H,#00H ;清20H(標志用)</p><p>  MOV 7AH,#0AH ;放入"熄滅符"數(shù)據(jù)</p><p&g

78、t;  MOV TMOD,#11H ;設(shè)T0、T1為16位定時器</p><p>  MOV TL0,#0B0H ;50MS定時初值(T0計時用)</p><p>  MOV TH0,#3CH ;50MS定時初值</p><p>  MOV TL1,#0B0H ;50MS定時初值(T1閃

79、爍定時用)</p><p>  MOV TH1,#3CH ;50MS定時初值</p><p>  SETB EA ;總中斷開放</p><p>  SETB ET0 ;允許T0中斷</p><p>  SETB TR0 ;開

80、啟T0定時器</p><p>  MOV R4,#14H ;1秒定時用初值(50MS×20)</p><p>  START1: LCALL DISPLAY ;調(diào)用顯示子程序</p><p>  JNB P3.7,SETMM1 ;P3.7口為0時轉(zhuǎn)時間調(diào)整程序</p><p>  SJMP

81、 START1 ;P3.7口為1時跳回START1</p><p>  SETMM1: LJMP SETMM ;轉(zhuǎn)到時間調(diào)整程序SETMM</p><p>  ;; 1秒計時程序 ;;</p><p>  INTT0: PUSH ACC ;累加器入棧保護</p>

82、<p>  PUSH PSW ;狀態(tài)字入棧保護</p><p>  CLR ET0 ;關(guān)T0中斷允許</p><p>  CLR TR0 ;關(guān)閉定時器T0</p><p>  MOV A,#0B7H ;中斷響應時間同步修正</p

83、><p>  ADD A,TL0 ;低8位初值修正</p><p>  MOV TL0,A ;重裝初值(低8位修正值) </p><p>  MOV A,#3CH ;高8位初值修正</p><p>  ADDC

84、 A,TH0 ;</p><p>  MOV TH0,A ;重裝初值(高8位修正值) </p><p>  SETB TR0 ;開啟定時器T0</p><p>  DJNZ R4, OUTT0 ;20次中斷未到中

85、斷退出</p><p>  ADDSS: MOV R4,#14H ;20次中斷到(1秒)重賦初值</p><p>  MOV R0,#71H ;指向秒計時單元(71H-72H)</p><p>  ACALL ADD1 ;調(diào)用加1程序(加1秒操作)</p><p>  MOV

86、 A,R3 ;秒數(shù)據(jù)放入A(R3為2位十進制數(shù)組合)</p><p>  CLR C ;清進位標志</p><p>  CJNE A,#60H,ADDMM ;</p><p>  ADDMM: JC OUTT0 ;小于60秒時中斷退出</p><p>

87、;  ACALL CLR0 ;大于或等于60秒時對秒計時單元清0 MOV R0,#77H ;指向分計時單元(76H-77H)</p><p>  ACALL ADD1 ;分計時單元加1分鐘&l

88、t;/p><p>  MOV A,R3 ;分數(shù)據(jù)放入A</p><p>  CLR C ;清進位標志

89、 CJNE A,#60H,ADDHH ;</p><p>  ADDHH: JC OUTT0 ;小于60分時中斷退出</p><p>  ACALL CLR0 ;大于或等于60分時分計時單元清0

90、 MOV R0,#79H ;指向小時計時單元(78H-79H)</p><p>  ACALL ADD1 ;小時計時單元加1小時

91、 MOV A,R3 ;時數(shù)據(jù)放入A</p><p>  CLR C ;清進位標志</p><p>  CJNE A,#24H,HOUR ;</p><p>  HOUR: JC OUTT0 ;小于24小時中斷退出</p><p>

92、;  ACALL CLR0 ;大于或等于24小時小時計時單元清0</p><p>  OUTT0: MOV 72H,76H ;中斷退出時將分、時計時單元數(shù)據(jù)移</p><p>  MOV 73H,77H ;入對應顯示單元</p><p>  MOV 74H,78H ;<

93、;/p><p>  MOV 75H,79H ;</p><p>  POP PSW ;恢復狀態(tài)字(出棧)</p><p>  POP ACC ;恢復累加器</p><p>  SETB ET0 ;開放T0中

94、斷 RETI ;中斷返回</p><p>  ;; 閃動調(diào)時 程 序 ;;</p><p>  ;T1中斷服務(wù)程序,用作時間調(diào)整時調(diào)整單元閃爍指示</p><p>  INTT1: PUSH AC

95、C ;中斷現(xiàn)場保護</p><p>  PUSH PSW ;</p><p>  MOV TL1, #0B0H ;裝定時器T1定時初值 MOV TH1, #3CH

96、 ;</p><p>  DJNZ R2,INTT1OUT ;0.3秒未到退出中斷(50MS中斷6次) </p><p>  MOV R2,#06H

97、 ;重裝0.3秒定時用初值</p><p>  CPL 02H ;0.3秒定時到對閃爍標志取反 JB 02H,FLASH1 ;02H位為1時顯示單元"熄滅"

98、 MOV 72H,76H ;02H位為0時正常顯示</p><p>  MOV 73H,77H ;</p><p>  MOV 74H,78H ;</p><p>  MOV 75H,79H

99、 ;</p><p>  INTT1OUT: POP PSW ;恢復現(xiàn)場</p><p>  POP ACC ;</p><p>  RETI ;中斷退出</p><p>  FLASH1: JB 01H,FLA

100、SH2 ;01H位為1時,轉(zhuǎn)小時熄滅控制</p><p>  MOV 72H,7AH ;01H位為0時,"熄滅符"數(shù)據(jù)放入分</p><p>  MOV 73H,7AH ;顯示單元(72H-73H),將不顯示分數(shù)據(jù)</p><p>  MOV 74H,78H ;<

101、;/p><p>  MOV 75H,79H ;</p><p>  AJMP INTT1OUT ;轉(zhuǎn)中斷退出</p><p>  FLASH2: MOV 72H,76H ;01H位為1時,"熄滅符"數(shù)據(jù)放入小時</p><p>  MOV 73H,77H

102、 ;顯示單元(74H-75H),小時數(shù)據(jù)將不顯示 MOV 74H,7AH ;</p><p>  MOV 75H,7AH ;</p><p>  AJMP INTT1OUT ;轉(zhuǎn)中斷退出<

103、/p><p>  ;; 加1子 程 序 ;;</p><p>  ADD1: MOV A,@R0 ;取當前計時單元數(shù)據(jù)到A</p><p>  DEC R0 ;指向前一地址</p><p>  SWAP A ;A中數(shù)據(jù)高

104、四位與低四位交換</p><p>  ORL A,@R0 ;前一地址中數(shù)據(jù)放入A中低四位 ADD A,#01H ;A加1操作</p><p>  DA A

105、 ;十進制調(diào)整</p><p>  MOV R3,A ;移入R3寄存器</p><p>  ANL A,#0FH ;高四位變0</p><p>  MOV @R0,A ;放回前一地址單元</p><p>  MOV A,R3

106、 ;取回R3中暫存數(shù)據(jù)</p><p>  INC R0 ;指向當前地址單元</p><p>  SWAP A ;A中數(shù)據(jù)高四位與低四位交換</p><p>  ANL A,#0FH ;高四位變0</p><p>  MOV @R0,A

107、 ;數(shù)據(jù)放入當削地址單元中 RET ;子程序返回</p><p>  ;; 清零程序 ;;</p><p><b>  ;對計時單元復零用</b></p><p>  CLR0: C

108、LR A ;清累加器</p><p>  MOV @R0,A ;清當前地址單元</p><p>  DEC R0 ;指向前一地址</p><p>  MOV @R0,A ;前一地址單元清0</p><p>  RET

109、 ;子程序返回</p><p>  ;; 時鐘調(diào)整程序 ;;</p><p>  ;當調(diào)時按鍵按下時進入此程序</p><p>  SETMM: CLR ET0 ;關(guān)定時器T0中斷</p><p>  CLR TR0 ;關(guān)閉

110、定時器T0</p><p>  LCALL DL1S ;調(diào)用1秒延時程序</p><p>  JB P3.7,CLOSEDIS ;鍵按下時間小于1秒,關(guān)閉顯示(省電) MOV R2,#06H

111、 ;進入調(diào)時狀態(tài),賦閃爍定時初值 SETB ET1 ;允許T1中斷</p><p>  SETB TR1 ;開啟定時器T1</p><p>  SET2: JNB P3.7,

112、SET1 ;P3.7口為0(鍵未釋放),等待</p><p>  SETB 00H ;鍵釋放,分調(diào)整閃爍標志置1</p><p>  SET4: JB P3.7,SET3 ;等待鍵按下</p><p>  LCALL DL05S ;有鍵按下,延時0.5秒</p><p>

113、  JNB P3.7,SETHH ;按下時間大于0.5秒轉(zhuǎn)調(diào)小時狀態(tài)</p><p>  MOV R0,#77H ;按下時間小于0.5秒加1分鐘操作</p><p>  LCALL ADD1 ;調(diào)用加1子程序</p><p>  MOV A,R3 ;取調(diào)整單元數(shù)據(jù)<

溫馨提示

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

評論

0/150

提交評論