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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

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

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

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

13、形式元件號(hào)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擴(kuò)展插針sip08j0擴(kuò)展插針sip08j15 單片機(jī)硬件資源的分配本次設(shè)計(jì)用到了單片機(jī)正常工作的硬件資源,如(連接晶振的引腳xtal1和xtal2,復(fù)位引腳reset),對(duì)其硬件資源還做了具體的安排。(1).p0口作為數(shù)碼管顯示器的段控輸出口,對(duì)數(shù)碼管顯示器進(jìn)行控制。(2).p1口p1.0p1.3接了四個(gè)獨(dú)立式分別為a鍵、b鍵、c鍵、

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

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

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

19、;p.點(diǎn)顯示初始化 mov r0, #79h mov r1, #05h pp: mov r0, #0bh inc r0 djnz r1, pp mov r0, #31h;時(shí)、分、秒值存儲(chǔ)單元清零 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)閉定時(shí)器 setb 21h.0 ajmp loop ;返回;b鍵功能子程序* keyb: jb tr0h, keybo ;定時(shí)器是否運(yùn)行,是跳轉(zhuǎn) jnb 21h.0, keyboo mov r0, #36h ;時(shí)值存儲(chǔ)單元地址送r0 lcall daad1 ;調(diào)加1子程序 mov a, r3 ;時(shí)值加1后的值送累加器a xrl a, #24h jnz keybo ;時(shí)值是否到24時(shí),否返回 lcall cl

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

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

23、 setb rs0;選第三組通用寄存器 setb rs1 mov tl0, #0dch;計(jì)數(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次開始計(jì)時(shí)操作 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;時(shí)顯示單元地址 acall daad1;時(shí)加1 mov a, r3;加1后時(shí)值在r3中 xrl a, #24h;判是否到24時(shí) jnz reto;不到轉(zhuǎn)ret0返回 acall clr0;到24時(shí)顯示單元清0 reto: clr rs0;返回第0組通用寄存器 clr rs1 pop a;現(xiàn)場(chǎng)恢復(fù) pop psw mov 79h, 31h;時(shí)、分、秒值放緩沖區(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;個(gè)位數(shù)占低4位 add a, #01h;加1 da a;十進(jìn)制調(diào)整 mov r3, a;全值暫存r3中 anl a, #0fh;屏蔽十位數(shù),取出個(gè)位數(shù) mov r0, a;個(gè)位值送顯示緩沖單元 mov a, r3 inc r0 anl a, #0f0h;屏蔽個(gè)位數(shù)取出十位數(shù) swap a;使十位數(shù)占低四位 mov r0, a;十位數(shù)送緩沖單元 ret;

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

27、sf;等到鍵釋放 key1: mov 20h, b;鍵值送20h單元保存 exit: ret;返回 keychuli: push psw;保護(hù)現(xiàn)場(chǎng) clr rs1;改變寄存器組號(hào) 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;改變寄存器組號(hào) clr rs0 pop psw;恢復(fù)現(xiàn)場(chǎng) ret;顯示子程序* dir: push psw ;恢復(fù)現(xiàn)場(chǎng) setb rs1 ;改變寄存器組號(hào) clr rs0 mov r0, #79h

28、;建立顯示緩沖區(qū)首地址 mov r3, #0fbh;設(shè)置位控碼 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;設(shè)置延時(shí)循環(huán)次數(shù) acall dey;延時(shí)點(diǎn)亮 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;改變寄存器組號(hào) clr rs1 pop psw;恢復(fù)現(xiàn)場(chǎng) 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 ;延時(shí)子程序*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è)計(jì)是使用單片機(jī)的定時(shí)/計(jì)數(shù)器0在工作方式1下定時(shí)62.5ms,根據(jù)定時(shí)時(shí)間和單片機(jī)最小系統(tǒng)的時(shí)鐘周期(1s)使定時(shí)/計(jì)數(shù)器0重復(fù)中斷16次就是一秒的時(shí)間了。定時(shí)/計(jì)數(shù)器0每產(chǎn)生一個(gè)中斷就定時(shí)62.5ms,當(dāng)產(chǎn)生一次中斷后,定時(shí)/計(jì)數(shù)器0并沒有馬上被賦予原來產(chǎn)生62.5ms的初值,而是在中斷服務(wù)程序中重新賦的初值,因而使用定時(shí)/計(jì)數(shù)器實(shí)現(xiàn)電子鐘的運(yùn)行存在著一定的誤差。一個(gè)62.5ms產(chǎn)生后,到下一個(gè)62.5ms開始計(jì)數(shù),中間單片機(jī)要執(zhí)行電子鐘程序中的指令如下所示:org 000bh ajmp pito;轉(zhuǎn)到定時(shí)器0中斷服務(wù)程序;中斷服務(wù)程序* pito: push

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

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

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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)論