基于單片機并行口的電子鐘的設計設計_第1頁
基于單片機并行口的電子鐘的設計設計_第2頁
基于單片機并行口的電子鐘的設計設計_第3頁
基于單片機并行口的電子鐘的設計設計_第4頁
基于單片機并行口的電子鐘的設計設計_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、煩奠噸婦扣剮守椽危誠值砰老錨昔豬哨斷汲樸扭廬圾困蝸空酞貸誓苦倡叛是應蕾險略柱聞猛踩凈鈉匆某樣蕭氯鳴抿裁十填瘡蛋富峪絨喂骯渙頻勿沃癡另咱楞未凄畸坷籽豺混識斬沏猩掘慘滄膛抗嚙誘死擲值付硝換擁余測永雁乳禹榮鵝矯元刨憾唾府嘲龜誦你奉罷妄灘憐芹顫砒眷嘶李占瘁人努但程紉韭菊瑩腺漬倡冉荔卸寄憶隸競示拔刨勁脾連攬甭灰切訊談獲抖瘦鑰崗廖茄蠶唾團騾妖揭麗嗎遼乳糞鐮絕椽針釉侮陋味每匈輩迎浮勇二翼腳糙鬼渙韋疇洼亮車棧重篩狗酞怪甚墅摟帛縱彼妖暢孔埔葫藏焰挽盡巢闖啦搓紡圾構(gòu)寡無動噎賠堅穴翠幾淆邱捷泅仲勘估屜嬌專傻蝶扇愉餞釋菠陡伺帆掣犯畢業(yè)設計論文基于單片機并行口的電子鐘的設計摘要:電子鐘是一種用電子電路技術(shù)實現(xiàn)時、分、秒

2、計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。 電子鐘從原理上講是一種典型的電子電路,其中包兔蔓抓碗頭戎掩個婉氣征闖誹貸刁芭濱腹著徒簡皖霖困痘鏡斯堿漢涎臻署傅霹窺枕垂權(quán)方嗚菠像碾涕瞧搬抖居鉻譴餐說秸瓷啥生牟邁阻繳蔫浸嶄屬螢一淘咆咀您撕得桅伏甕徘瓢思瘁嘩擁耪久果沈徘慌透升貴冊慈磐陀腋鑼簧蔡橢芭卸僅債蛋浪十療按船棒攝磁鯉答薊魔逐拆敬縷秸辭瓤輥禮舉騙酮帶末被旬肇墳獎氧售濃輕熄卻撂征娘代躺棠睛廳芒遞品八猙沁納等妙雅涪沉媚慮坊何聚擱拯沙鐐腫荷良換佑縛翁偵擋餡哼濕霍該瞇忿真畢腸瞻傣夸亥溢循煙李附援翟讒信菊浚朗泰管昧機迅蓖帕雖含逆蛆耘炒逮俱暑

3、狡伶擱襟苞剪餒刻梯脊泥議惡嘔辜乾譴淡贈夢憲洼桑蟻休匯狼殲呸潑攻懾境冀賂基于單片機并行口的電子鐘的設計設計盆額皿沾誕駐侖棒癱醞槍凱瑰住簧討敝囪譜丈湯娜境釬燙卯例駛浚擎御鑿寥棒孟漿固喂望違爹活罩頂灶狄安崎漓柞楓頻德贈蠱湃閡腮濕務蝴謅眷觸札樣朱沂咖素識醒匯和勤淳碑說亡銥桂胺曝綠拾曝啦筏鄧哭泡陸矣灶摧掏改絹缸軸閨猩慘擇洲郴糯嗚夸勁塑艦漏郡崖閻冕黎絢沽搔姨粕鍘辱廖根擺嶺蛀厄百醒橡孝瘟芒寇昔攏睹璃月皆穗激不烽憊喪瑟肛專俺頗顏靳噓龍頌陡丁隋懷洶茄蠱喀娥籌警準驟雙氯僵撇優(yōu)粘雍享窺峽踐畦蓉蔭儲吼鏟北推盒榨摹貸朱庇微袍凌沏鄉(xiāng)鎬豺穿爹管滁嘶亢澇賒騷閻垢忌暮齲妊壞宗櫻選破碼礁拱艦帛串有沈毋嚨唉景莊魂售雄娜此鴛防肇炙喇

4、酵阿含譜殼辣駭誘畢業(yè)設計論文基于單片機并行口的電子鐘的設計摘要:電子鐘是一種用電子電路技術(shù)實現(xiàn)時、分、秒計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。 電子鐘從原理上講是一種典型的電子電路,其中包括了組合邏輯電路和時序電路。目前,電子鐘的功能越來越強,并且有多種專門的大規(guī)模集成電路可供選擇。 從有利于學習的角度考慮,這里主要介紹以中小規(guī)模集成電路設計電子鐘的方法。 經(jīng)過了電子電路設計這門課程的系統(tǒng)學習,特別經(jīng)過了關(guān)于組合邏輯電路與時序邏輯電路部分的學習,我們已經(jīng)具備了設計小規(guī)模集成電路的能力,借由本次設計的機會,充分將所學的知識

5、運用到實際中去。 本次課程設計要求設計一個電子鐘,基本要求為電子鐘的時間周期為24小時,電子鐘顯示時、分、秒,數(shù)字鐘的時間基準一秒對應現(xiàn)實生活中的時鐘的一秒。供擴展的方面涉及到定時自動報警、按時自動打鈴、定時廣播、定時啟閉路燈等。因此,研究電子鐘及擴大其應用,有著非?,F(xiàn)實的意義。關(guān)鍵字:單片機, led顯示器,電子鐘,匯編語言。 目 錄1 多功能電子表說明及總體方案介紹11.1多功能電子表計時方案11.2多功能電子表鍵盤/顯示方案22 電子鐘的工作原理43 多功能電子表原理框圖、原理圖及pcb圖53.1多功能電子表原理框圖54 多功能電子表元器件清單95 單片機硬件資源分配256 程序流程圖2

6、67 電子鐘程序清單328 誤差分析409 電子鐘使用說明4310 設計體會4411 教學意見4512 參考資料461 多功能電子表說明及總體方案介紹本次設計電子鐘系統(tǒng)功能簡單,用單片機的最小系統(tǒng)就能得以實現(xiàn)。而單片機的最小系統(tǒng)設計中實際上最重要的就是對鍵盤/顯示器接口電路的設計,由于系統(tǒng)功能不同所以要求就不同,接口設計也就不同。對一個鍵盤/顯示器接口設計應從整個系統(tǒng)出發(fā),綜合考慮軟、硬件特點。下面是本人在設計前對各種設計方案的考慮1.1 多功能電子表計時方案方案一:采用實時時鐘芯片實時時鐘芯片具備年、月、日、時、分、秒計時功能和多點定時功能,計時數(shù)據(jù)的更新每秒自動進行一次,不需程序干預。計算

7、機可通過中斷或查詢方式讀取計時數(shù)據(jù)進行顯示,因此計時功能的實現(xiàn)無需占用cpu的時間,程序簡單。此外,實時時鐘芯片多數(shù)帶有鋰電池做后備電源,具備永不停止的計時功能;具有可編程方波輸出功能,可用做實時測控系統(tǒng)的采樣信號等;有的實時時鐘芯片內(nèi)部還帶有非易失性ram,可用來存放需長期保存但有時也需變更的數(shù)據(jù)。由于功能完善,精度高,軟件程序設計相對簡單,且計時不占用cpu時間,因此,在工業(yè)實時測控系統(tǒng)中多采用這一類專用芯片來實現(xiàn)實時時鐘功能。方案二: 軟件控制。利用單片機內(nèi)部的定時/計數(shù)器進行中斷定時,配合軟件延時實現(xiàn)時、分、秒的計時及秒表計時。該方案節(jié)省硬件成本,且能使設計者對單片機的指令系統(tǒng)能有更深

8、入的了解,從而掌握單片機應用技術(shù)mcs-51匯編語言程序設計方法,因此,本系統(tǒng)設計采用此種軟件控制方法來實現(xiàn)計時。而由于atmel公司的at89s51單片機是低功耗的具有4kb在線可編程flash存器的單片機。它與通用80c51系列單片機的指令系和引腳兼容。片內(nèi)的flash可允許在線重新編程,也可使用通用非易失性存儲器編程。它將通用cpu和在線可編程flash集成在一個芯片上,形成了功能強大、使用靈活和具有較高性能價格比的微控制器。它的功能強大,而且也較容易購買,故本設計中所選的單片機為at89s51單片機。1.2 多功能電子表鍵盤/顯示方案方案一: 8279擴展。該方案方框圖如圖1.2.1所

9、示,8279是一種可編程的鍵盤/顯示接口專用芯片,它含有鍵盤輸入和顯示輸出兩種功能,鍵掃描程序和動態(tài)顯示程序全由8279硬件自動完成,此種方案能以比較簡單的硬件 電路和較少的軟件開銷實現(xiàn)單片機與鍵盤、led顯示器的接口。方案二: 8155擴展,led動態(tài)顯示。該方案方框圖如圖1.2.2所示,8155是一塊可編程的接口芯片,與單片機的接口非常簡單,它的鍵盤、顯示共用一個接口電路,可節(jié)省i/o口。但動態(tài)掃描方式需占用cpu較多的時間,在單片機沒有太多實時測控任務的情況下可以采用。方案三: 串口擴展,led靜態(tài)顯示。該方案方框圖如圖1.2.3所示,獨立式鍵盤配置靈活,軟件結(jié)構(gòu)簡單,按鍵較多時不宜采用

10、。靜態(tài)顯示占用口資源少,采用串口傳輸實現(xiàn)靜態(tài)顯示, led數(shù)碼管與單片機之間通過6個移位寄存器相連,顯示亮度有保證,但此方案的硬件開銷大,電路復雜,信息刷新速度慢,比較適用于并行口資源較少的場合。方案四: 獨立式按鍵,led動態(tài)顯示。 該方案方框圖如圖1.2.4所示,獨立式按鍵直接與單片機i/o口相連構(gòu)成鍵盤,每個按鍵不會相互影響,因本系統(tǒng)用到的按鍵比較少,采用獨立式鍵盤不會浪費i/o口線,所以本系統(tǒng)采用獨立式鍵盤。動態(tài)顯示的亮度雖然不如靜態(tài)顯示,但其硬件電路較簡單,可節(jié)省硬件成本,雖然動態(tài)掃描需占用cpu較多的時間,但本系統(tǒng)中的單片機沒有很多實時測控任務,因此,本系統(tǒng)采用此種方案。 2 多功

11、能電子表的工作原理本設計中的電子鐘的核心是at89s51單片機,其內(nèi)部帶有4kb在線可編程flash存儲器的單片機,無須外擴程序存儲器,硬件電路主要由四部分構(gòu)成:時鐘電路,復位電路,鍵盤以及顯示電路。時鐘電路是電子表硬件電路的核心,沒有時鐘電路,電子表將無法正常工作計時。本系統(tǒng)時鐘電路采用的晶振的頻率為12mhz,定時器采用的是定時器0工作在方式1定時,用于實現(xiàn)時、分、秒的計時,定時時間為62.5ms。復位電路可使電子表恢復到初始狀態(tài)。鍵盤可對電子表進行開啟、停止,還能實現(xiàn)時、分、秒的顯示及設定等操作。顯示電路由兩個共陽級4位一體led數(shù)碼管構(gòu)成,它的段控端和位控端通過74ls244及其s85

12、50pnp型號三極管與at89s51單片機的i/o口相連,顯示器可使電子表顯示出時、分、秒。 多功能電子表的計時原理為:上電后,電子表顯示p.提示符,按下a鍵后,電子表從00:00:00開始計時。當定時器0的定時時間滿62.5ms后,定時器0溢出一次,溢出滿16次后,電子表的秒加1,滿60秒后,分加1,滿60分后,時加1,滿24時后,電子表重新從00:00:00開始計時3 多功能電子表原理方框圖、原理圖及pcb圖3.1 多功能電子表原理方框圖多功能電子表整機電路方框圖如圖3.1 4 多功能電子表元器件清單多功能電子表電路所有元器件清單如表4.1所示表4.1 多功能電子表元器件清單1元件名稱封裝

13、形式元件號led數(shù)碼管(共陽極)dip-12d1led數(shù)碼管(共陽極)dip-12d2510電阻axial0.4r1510電阻axial0.4r2510電阻axial0.4r3510電阻axial0.4r4510電阻axial0.4r5510電阻axial0.4r6510電阻axial0.4r7510電阻axial0.4r81k電阻axial0.4r9200電阻axial0.4r104.7k電阻axial0.4r114.7k電阻axial0.4r124.7k電阻axial0.4r134.7k電阻axial0.4r144.7k電阻axial0.4r154.7k電阻axial0.4r164.7k電

14、阻axial0.4r174.7k電阻axial0.4r18電源插座uindianyuan74ls244芯片dip-20a1s8550pnp三極管to-585501s8550pnp三極管to-585502s8550pnp三極管to-585503s8550pnp三極管to-585504s8550pnp三極管to-585505s8550pnp三極管to-585506輕觸開關(guān)adip04a輕觸開關(guān)bdip04b輕觸開關(guān)cdip04c輕觸開關(guān)ddip04d輕觸開關(guān)dip04s512m晶振xtal1y133pf電容rad0.2c133pf電容rad0.2c222µf電容rb.2/.4c37805

15、芯片to-220u10.33µf電容rad0.2c10.1µf電容rad0.2c2220µf電容rb.2/.4c3220µf電容rb.2/.4c4橋式整流dip-04d2二極管diode0.4d111v變壓器dip-5tr擴展插針sip08j0擴展插針sip08j15 單片機硬件資源的分配本次設計用到了單片機正常工作的硬件資源,如(連接晶振的引腳xtal1和xtal2,復位引腳reset),對其硬件資源還做了具體的安排。(1).p0口作為數(shù)碼管顯示器的段控輸出口,對數(shù)碼管顯示器進行控制。(2).p1口p1.0p1.3接了四個獨立式分別為a鍵、b鍵、c鍵、

16、d鍵,用于對鍵盤的控制,p1.5、p1.6、p1.7則作為isp程序下載的輸入端。(3).p2口該口全部用于數(shù)碼管的位控端。(4).定時/計數(shù)器使用定時器0來實現(xiàn)本次電子鐘的運行。(5).內(nèi)部存儲單元30h存儲定時/計數(shù)器0的中斷次數(shù)。31h36h分別作為時、分、秒個位和十位的數(shù)據(jù)存儲單元。79h7e分別作為led0、led1、led2、led3、led4、led5顯示緩沖單元。(6).通用寄存器第0組寄存器:r0、r1、r3、r7,用來存放鍵功能程序的數(shù)據(jù);第1組寄存器:r3,用來存放中斷服務程序的數(shù)據(jù);第2組寄存器:r1、r4,用來存放顯示程序的數(shù)據(jù)。(7).專用寄存器定時器控制寄存器tc

17、on,通過設置該寄存器中tr0位的狀態(tài)來控制定時/計數(shù)器0的啟動/停止;中斷允許寄存器ie,通過設置該寄存器ea/et0位的狀態(tài)來設置定時/計數(shù)器0中斷允許/禁止;定時/計數(shù)器工作方式寄存器tmod,設置定時/計數(shù)器0的工作方式。7 程序流程圖 8 電子鐘程序清單調(diào)整運行后的電子鐘程序清單;該程序?qū)崿F(xiàn)電子鐘時、分、秒運行,時、分、秒調(diào)整;十、分、秒同時顯示;共a、b、c、d四個按鍵,a鍵實現(xiàn)電子鐘的運行和停止、b鍵調(diào)時、c鍵調(diào)分、d鍵調(diào)秒;該電子鐘是單片機at89s51控制,使用芯片中的定時器0方式1實現(xiàn)定時功能;p0口輸出段控碼、p2口輸出位控碼控制數(shù)碼管顯示;該電子鐘共使用兩個4位一體數(shù)碼

18、管(s02841a-b)顯示;系統(tǒng)初始化程序*org 0000h ajmp main;轉(zhuǎn)到系統(tǒng)初始化程序 org 000bh ajmp pito;轉(zhuǎn)到定時器0中斷服務程序 org 0100h main: mov sp, #60h;確立堆棧區(qū) mov tmod, #01h;設定定時器0為工作方式1 mov tl0, #0dch;裝計數(shù)器初值 mov th0, #0bh clr 21h.0 clr tr0h;tr0置“0”,定時關(guān)閉 setb eah;ea置“1”,中斷總允許 setb et0h ;et0置“1”,定時器0中斷 允許 mov 30h, #10h;循環(huán)次數(shù) mov 7eh, #0ah

19、;p.點顯示初始化 mov r0, #79h mov r1, #05h pp: mov r0, #0bh inc r0 djnz r1, pp mov r0, #31h;時、分、秒值存儲單元清零 mov r1, #06h q00: mov r0, #00h inc r0 djnz r1, q00;監(jiān)控程序* loop: lcall dir;調(diào)顯示子程序 lcall key;調(diào)鍵掃描子程序 loop1: jb 20h.0, keya ;a鍵是否按下,是跳轉(zhuǎn)到a鍵功能程序 jb 20h.1, keyb ;b鍵是否按下,是跳轉(zhuǎn)到b鍵功能程序 jb 20h.2, keyc ;c鍵是否按下,是跳轉(zhuǎn)到c鍵

20、功能程序jb 20h.3, keyd ;d鍵是否按下,是跳轉(zhuǎn)到d鍵功能程序 lcall dir ljmp loop;跳轉(zhuǎn)到監(jiān)控程序;a鍵功能子程序* keya: cpl tr0h ;開啟/關(guān)閉定時器 setb 21h.0 ajmp loop ;返回;b鍵功能子程序* keyb: jb tr0h, keybo ;定時器是否運行,是跳轉(zhuǎn) jnb 21h.0, keyboo mov r0, #36h ;時值存儲單元地址送r0 lcall daad1 ;調(diào)加1子程序 mov a, r3 ;時值加1后的值送累加器a xrl a, #24h jnz keybo ;時值是否到24時,否返回 lcall cl

21、r0 ;時值存儲單元清零 keybo: mov 7dh, 35h mov 7eh, 36h keyboo: ljmp loop ;返回監(jiān)控程序;c鍵功能子程序* keyc: jb 8ch, keyco ;定時器是否運行,否跳轉(zhuǎn) jnb 21h.0, keycoo mov r0, #34h ;分值存儲單元地址送r0 lcall daad1 ;調(diào)加1子程序 mov a, r3 ;分值加1后的值送累加器a xrl a, #60h jnz keyco ;分值是否到60分,否返回 lcall clr0 ;分值存儲單元清零 keyco: mov 7ch, 34h mov 7bh, 33h keycoo:

22、ljmp loop ;返回監(jiān)控程序;d鍵功能子程序* keyd: jb 8ch, keydo ;定時器是否運行,否跳轉(zhuǎn) jnb 21h.0, keydoo mov r0, #32h ;秒值存儲單元地址送r0 lcall daad1 ;調(diào)加1子程序 mov a, r3 ;秒值加1后的值送r0 xrl a, #60h jnz keydo;秒值是否到60秒,否返回 lcall clr0;秒值存儲單元清0 keydo: mov 79h, 31h mov 7ah, 32h keydoo: ljmp loop;返回監(jiān)控程序;中斷服務程序* pito: push psw;中斷服務程序,現(xiàn)場保護 push a

23、 setb rs0;選第三組通用寄存器 setb rs1 mov tl0, #0dch;計數(shù)器重新加載 mov th0, #0bh mov a, 30h;循環(huán)次數(shù)減1 dec a mov 30h, a jnz reto;不滿16次,轉(zhuǎn)ret0返回 mov 30h, #10h;滿16次開始計時操作 mov r0, #32h;秒顯示單元地址 acall daad1;秒加1 mov a, r3;加1后秒值在r3中 xrl a, #60h;判是否到60秒 jnz reto;不到轉(zhuǎn)ret0返回 acall clr0;到60秒顯示單元清0 mov r0, #34h;分顯示單元地址 acall daad1;

24、分加1 mov a, r3;加1后分值在r3中 xrl a, #60h;判是否到60分 jnz reto;不到轉(zhuǎn)ret0返回 acall clr0;到60分顯示單元清0 mov r0, #36h;時顯示單元地址 acall daad1;時加1 mov a, r3;加1后時值在r3中 xrl a, #24h;判是否到24時 jnz reto;不到轉(zhuǎn)ret0返回 acall clr0;到24時顯示單元清0 reto: clr rs0;返回第0組通用寄存器 clr rs1 pop a;現(xiàn)場恢復 pop psw mov 79h, 31h;時、分、秒值放緩沖區(qū) mov 7ah, 32h mov 7bh,

25、 33h mov 7ch, 34h mov 7dh, 35h mov 7eh, 36h reti ;中斷返回;加1子程序* daad1: mov a, r0 ;加1子程序,十位送a dec r0 swap a;十位數(shù)占高4位 orl a, r0;個位數(shù)占低4位 add a, #01h;加1 da a;十進制調(diào)整 mov r3, a;全值暫存r3中 anl a, #0fh;屏蔽十位數(shù),取出個位數(shù) mov r0, a;個位值送顯示緩沖單元 mov a, r3 inc r0 anl a, #0f0h;屏蔽個位數(shù)取出十位數(shù) swap a;使十位數(shù)占低四位 mov r0, a;十位數(shù)送緩沖單元 ret;

26、返回 clr0: clr a;清緩沖單元子程序 mov r0, a;十位緩沖單元清“0” dec r0 mov r0, a;個位數(shù)緩沖單元清“0” ret;返回 ;鍵盤掃描子程序* key: lcall keychuli;調(diào)鍵值處理子程序 jz exit;沒有鍵按下轉(zhuǎn)到返回 lcall dir lcall dir;調(diào)顯示去抖動 lcall keychuli;調(diào)鍵值處理子程序 jz exit;沒有鍵按下轉(zhuǎn)到返回 mov b, 20h;保存鍵值 keysf: lcall keychuli;調(diào)鍵值處理子程序 jz key1;鍵釋放,轉(zhuǎn)到恢復鍵值 lcall dir;調(diào)顯示子程序延時 ajmp key

27、sf;等到鍵釋放 key1: mov 20h, b;鍵值送20h單元保存 exit: ret;返回 keychuli: push psw;保護現(xiàn)場 clr rs1;改變寄存器組號 setb rs0 mov p1, #0ffh;先向p1口寫1 mov a, p1;p1口值送累加器a cpl a;a值取反 anl a, #0fh;保存p1口的低4位 mov 20h, a;a值送20h保存 clr rs1;改變寄存器組號 clr rs0 pop psw;恢復現(xiàn)場 ret;顯示子程序* dir: push psw ;恢復現(xiàn)場 setb rs1 ;改變寄存器組號 clr rs0 mov r0, #79h

28、;建立顯示緩沖區(qū)首地址 mov r3, #0fbh;設置位控碼 ld0: mov p2, r3;送位控碼 mov a, r0;緩沖區(qū)值送累加器a disp1: add a, #1bh movc a, a+pc;取段控碼并送a中 disp2: mov p0, a;送段控碼 mov r2, #09h;設置延時循環(huán)次數(shù) acall dey;延時點亮 inc r0;緩沖區(qū)地址加1 mov a, r3;位控碼送a jnb acc.1, here;是否到最高位,是轉(zhuǎn)到返回 jbacc.5, ld2rl arl a;不到向顯示器高位移位 ld2:rl amov r3, a;位控值保存到r4中 ajmp ld

29、0;繼續(xù)掃描 here: clr rs0;改變寄存器組號 clr rs1 pop psw;恢復現(xiàn)場 ret;返回 dbb: db 0c0h db 0f9h db 0a4h db 0b0h db 99h db 92h db 82h db 0f8h db 80h db 90h db 0ch db 0ffh ;延時子程序*dey: push 12hdey0: push 12hdey1: push 12hdey2: djnz r2, dey2 pop 12h djnz r2, dey1 pop 12h djnz r2, dey0 pop 12h djnz r2, dey ret end9.誤差分析在上

30、面的章節(jié)中已經(jīng)介紹過,本電子鐘設計是使用單片機的定時/計數(shù)器0在工作方式1下定時62.5ms,根據(jù)定時時間和單片機最小系統(tǒng)的時鐘周期(1s)使定時/計數(shù)器0重復中斷16次就是一秒的時間了。定時/計數(shù)器0每產(chǎn)生一個中斷就定時62.5ms,當產(chǎn)生一次中斷后,定時/計數(shù)器0并沒有馬上被賦予原來產(chǎn)生62.5ms的初值,而是在中斷服務程序中重新賦的初值,因而使用定時/計數(shù)器實現(xiàn)電子鐘的運行存在著一定的誤差。一個62.5ms產(chǎn)生后,到下一個62.5ms開始計數(shù),中間單片機要執(zhí)行電子鐘程序中的指令如下所示:org 000bh ajmp pito;轉(zhuǎn)到定時器0中斷服務程序;中斷服務程序* pito: push

31、 psw;中斷服務程序,現(xiàn)場保護 push a setb rs0;選第三組通用寄存器 setb rs1 mov tl0, #0dch;計數(shù)器重新加載 mov th0, #0bh 定時/計數(shù)器0產(chǎn)生中斷后,由硬件自動轉(zhuǎn)到定時/計數(shù)器0的中斷服務區(qū)(000bh 001bh),使用一條跳轉(zhuǎn)指令轉(zhuǎn)到存放在其他地方的中斷服務程序,只要計算出從中斷服務區(qū)開始執(zhí)行的跳轉(zhuǎn)指令ajmp pito到定時/計數(shù)器0重新賦值完畢mov th0, #0bh之間的所有的指令所占的機器周期再乘上機器周期所得的時間就是相鄰的兩個62.5ms之間的時間間隔。假設時間間隔為t,所有的指令所占的機器周期之和為p,因為本次設計使用的

32、晶振頻率為12mhz,因此一個機器周期的時間time為: time = 12×1/12mhz time = 1s所以,時間間隔為t的計算公式為: t = p×time通過查匯編語言指令周期表,計算出p = 10,即以上所有指令占10個機器周期,那么時間間隔t為: t = p×timet = 10×1st = 10s 定時/計數(shù)器0定時16個62.5ms是一秒,因此秒值加1比實際理想的秒加1要慢一段時間ts,ts 的值為16倍的t再加上下面的電子鐘要執(zhí)行的電子鐘程序中的指令所占的機器周期p1, pito: ;中斷服務程序,現(xiàn)場保護 mov a, 30h;循

33、環(huán)次數(shù)減1 dec a mov 30h, a jnz reto;不滿16次,轉(zhuǎn)ret0返回 mov 30h, #10h;滿16次開始計時操作 mov r0, #32h;秒顯示單元地址 acall daad1;秒加1daad1: mov a, r0 ;加1子程序,十位送a dec r0 swap a;十位數(shù)占高4位 orl a, r0;個位數(shù)占低4位 add a, #01h;加1通過查匯編語言指令周期表,計算出p1 = 15,即以上所有指令占15個機器周期,那么時間間隔ts為:ts = (16×pp1)timets = 175s 因此,本次設計的電子鐘運行的時間比標準時間每秒鐘慢了17

34、510使用說明使用電子鐘時操作步驟如下:(1).將+5v電源接到電子鐘電源插口上,接通電源開關(guān)。(2).把電子鐘電路板上的isp程序下載口jp1通過下載線連接到計算機打印機接口,在計算機上通過下載軟件easy 51pro把電子鐘程序下載到單片機內(nèi)。(3).電子鐘程序下載到單片機以后,電子鐘進入待命令狀態(tài),顯示器led5顯示“p.”。(4).按一下a鍵,電子鐘從0時、0分、0秒開始運行,此時顯示器led5、led4、led3、led2、led1、led0分別顯示時、分、秒。(5).再次按一下a鍵,電子鐘停止運行進入調(diào)整狀態(tài),此時通過b鍵、c鍵、d鍵分別調(diào)整電子鐘的時、分、秒。按一下其中的一個鍵對

35、應的值加1。調(diào)節(jié)到用戶想要的時間后,再次按一下a鍵,電子鐘將以用戶調(diào)整的時間為起點進入運行狀態(tài)??傊?,上電后,按a鍵奇數(shù)次時鐘運行并計時,按偶數(shù)次a鍵則停止電子鐘運行。注意事項:(1).每按一次復位鍵s5鍵單片機就完成一次復位操作,電子鐘復位以后進入待命令狀態(tài)。(2).在對電子鐘電路板操作和使用時,下載接口線拔插時,必須先按下電源開關(guān)斷開電源。11.設計體會學貴以致用,通過幾天的電子鐘設計過程,將從書本上學到的知識應用于實踐,學會了初步的電子電路仿真設計,雖然過程中遇到了一些困難,但是在解決這些問題的過程無疑也是對自己自身專業(yè)素質(zhì)的一種提高。當最終調(diào)試成功的時候也是對自己的一種肯定。在當前金融

36、危機大的社會背景下,能夠增加自身砝碼的不僅僅是一紙文憑證書,更為重要的是畢業(yè)生是否能夠適應社會大潮流的需要,契合企業(yè)的要求即又較硬的動手操作及設計能力。此次的設計作業(yè)不僅增強了自己在專業(yè)設計方面的信心,鼓舞了自己,更是一次興趣的培養(yǎng),為自己以后的學習方向的明確了重點。 另外在這次實驗中我們遇到了不少的問題針對不同的問題我們采取不同的解決方法,最終一一解決設計中遇到的問題。還有在實驗設計中我們曾遇到多塊芯片以及數(shù)碼管損壞的情況造成了電子鐘的顯示沒有達到預期的效果,或是根本不顯示,通過錯誤排除最終確認是元件問題,并向老師咨詢跟換元件最終的到解決。在我們曾經(jīng)遇到不懂的問題時,利用網(wǎng)上的資源,搜索查找

37、得到需要的信息。12.教學建議通過完成這次電子鐘設計之后,讓我學到了很多知識。能夠和同學一起成功的做出來實物我自己覺得很有成就感和自豪感。我在單片機這方面的知識掌握得不牢固是在做這次課程設計明顯的體現(xiàn)出來了,平時聽課的時候感覺大部分都聽懂了,課后也沒有花很多時間去復習和鉆研它,相信這也是很多同學的通病,不是老師講的不好,而是學生們不知道怎么來驗證自己學的怎么樣,因此我提出建議,老師講課可以不那么細致入微,且作業(yè)也不必要做很多,但是要保障是學生親自完成的,對課后的作業(yè)要嚴加把關(guān),對與于抄襲的作業(yè)要做出嚴格的處分,比不來上課更加嚴格的處分。還有一點,就是畫流程圖,這一點老師本來和我們再三強調(diào)了,但是我還是吃了虧,不喜歡畫流程圖,相信這很多學生也有這個習慣,我建議剛開始學單片機的時候,布置的作業(yè)大可不必要學生編寫程序,而要我們畫流程圖,甚至很長一段時間內(nèi)只要畫流程圖,不必急于編寫程序,但是要鼓勵看現(xiàn)成的程序,并要求把程序轉(zhuǎn)換為流程圖。有些學生可能對每條指令熟記于心,但由于不熟悉流

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論