單片機(jī)電子時鐘的設(shè)計優(yōu)秀畢業(yè)設(shè)計(論文)_第1頁
單片機(jī)電子時鐘的設(shè)計優(yōu)秀畢業(yè)設(shè)計(論文)_第2頁
單片機(jī)電子時鐘的設(shè)計優(yōu)秀畢業(yè)設(shè)計(論文)_第3頁
單片機(jī)電子時鐘的設(shè)計優(yōu)秀畢業(yè)設(shè)計(論文)_第4頁
單片機(jī)電子時鐘的設(shè)計優(yōu)秀畢業(yè)設(shè)計(論文)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)電子時鐘的設(shè)計單片機(jī)白20世紀(jì)70年代問世以來,以其極高的性能價格比,受到人們的重視和關(guān)注,應(yīng)用 很廣、發(fā)展很快。單片機(jī)體積小、重量輕、抗干擾能力強(qiáng)、環(huán)境要求不高、價格低廉、可靠性高、 靈活性好、開發(fā)較為容易。由于具有上述優(yōu)點,在我國,單片機(jī)已廣泛地應(yīng)用在工業(yè)自動化控制、 自動檢測、智能儀器儀表、家用電器、電力電子、機(jī)電一體化設(shè)備等各個方而,而51單片機(jī)是各 單片機(jī)中最為典型和最有代表性的一種。這次畢業(yè)設(shè)計通過對它的學(xué)習(xí)、應(yīng)用,以at89s51芯片 為核心,輔以必要的電路,設(shè)計了一個簡易的電子時鐘,它由4.5v直流電源供電,通過數(shù)碼管能 夠準(zhǔn)確顯示時間,調(diào)整時間,從而到達(dá)學(xué)習(xí)、設(shè)計、開發(fā)

2、軟、碩件的能力。關(guān)鍵詞:單片機(jī) at89s摘 要iabstract錯誤! 未定義書簽。第一章 前吞1第二章 方案論證與比較22數(shù)字吋鐘方案22.2數(shù)碼管顯示方案2第三章 系統(tǒng)設(shè)計33.1總體設(shè)計33系統(tǒng)說明33.1.2系統(tǒng)框圖33.2模塊設(shè)計43.2.1電源部分4322復(fù)位電路4323程序下載接口5324位選部分53.2.5數(shù)碼管的連接電路6326控制部分6第四章 原理圖與pcb圖8第五章 軟件設(shè)計95.1程序流程圖95.2源程序11第六章 總結(jié)186.1物品清單與元件特性186.2設(shè)計總結(jié)19參考文獻(xiàn)(references) : 19致謝錯誤!未定義書簽。第一章前s時鐘,口從它發(fā)明的那天起,

3、就成為人類的朋友,但隨著時間的推移,科學(xué)技術(shù)的不斷發(fā)展, 人們對時間計量的精度要求越來越高,應(yīng)用越來越廣。怎樣讓時鐘更好的為人民服務(wù),怎樣讓我 們的老朋友煥發(fā)青春呢?這就要求人們不斷設(shè)計出新型時鐘?,F(xiàn)今,高精度的計時工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘,石英表,石英鐘都 采用了石英技術(shù),因此走時精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)校,數(shù)字式電子鐘用集 成電路計吋吋,譯碼代替機(jī)械式傳動,用led顯示器代替顯示器代替指針顯示進(jìn)而顯示吋間,減 小了計時誤差,這種表具有時,分,秒顯示時間的功能,述對以進(jìn)行時和分的校對,片選的靈活 性好。時鐘電路在計算機(jī)系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)止

4、常工作的基礎(chǔ)。在一個單片機(jī) 應(yīng)川系統(tǒng)屮,時鐘有兩方面的含義:一是指為保障系統(tǒng)正常工作的棊準(zhǔn)振蕩定時信號,主要由晶 振和外圍電路組成,晶振頻率的人小決定了單片機(jī)系統(tǒng)工作的快慢;二是指系統(tǒng)的標(biāo)準(zhǔn)定時時鐘, 即定時時間,它通常有兩種實現(xiàn)方法:一是用軟件實現(xiàn),即用單片機(jī)內(nèi)部的可編程定時/計數(shù)器來 實現(xiàn),但誤差很大,主要用在對時間精度要求不高的場合;二是用專門的時鐘芯片實現(xiàn),在對時 間精度要求很高的情況下,通常釆用這種方法,典型的時鐘芯片有:ds1302, ds12887, xi203 等都可以滿足髙精度的要求。本文主要介紹用單片機(jī)內(nèi)部的定時/計數(shù)器來實現(xiàn)電子時鐘的方法,本設(shè)計由單片機(jī)at89s51 芯

5、片和led數(shù)碼管為核心,輔以必要的電路,構(gòu)成了一個單片機(jī)電子時鐘。第二章方案論證與比較2.1數(shù)字時鐘方案數(shù)字時鐘是本設(shè)計的最主要的部分。根據(jù)需要,可利用兩種方案實現(xiàn)。方案一:本方案采用dallas公司的專用時鐘芯片ds12887ao該芯片內(nèi)部釆用石英晶體振蕩 器,其芯片秸度不人于10ms/年,且具有完備的時鐘鬧鐘功能,因此,可直接對其以川于顯示或 設(shè)置,使得軟件編程相對簡單。為保證時鐘在電網(wǎng)電壓不足或突然掉電等突發(fā)情況下仍能正常工 作,芯片內(nèi)部包含鋰電池。當(dāng)電網(wǎng)電壓不足或突然掉電時,系統(tǒng)口動轉(zhuǎn)換到內(nèi)部鋰電池供電系統(tǒng)。 而且即使系統(tǒng)不上電,程序不執(zhí)行時,鋰電池也能保證芯片的正常運行,以備隨時提供

6、正確的時 間。方案二:本方案完全用軟件實現(xiàn)數(shù)字時俳。原理為:在氓片機(jī)內(nèi)部存儲器設(shè)三個字節(jié)分別存 放時鐘的時、分、秒信息。利川定時器與軟件結(jié)合實現(xiàn)1秒定時中斷,每產(chǎn)生一次中斷,存儲器 內(nèi)相應(yīng)的秒值加1;若秒值達(dá)到60,則將其清零,并將相應(yīng)的分字節(jié)值加1;若分值達(dá)到60,則 清零分字節(jié),并將時字節(jié)值加1;若時值達(dá)到24,則將十字節(jié)清零。該方案具有硬件電路簡單的 特點。但由于每次執(zhí)行程序時,定時器都要亜新賦初值,所以該時鐘精度不高。而且,山于是軟 件實現(xiàn),當(dāng)單片機(jī)不上電,程序不執(zhí)行時,時鐘將不工作?;趰{件電路的考慮,木設(shè)計采用方案二完成數(shù)字吋鐘的功能。2.2數(shù)碼管顯示方案方案一:靜態(tài)顯示。所謂靜態(tài)

7、顯示,就是當(dāng)顯示器顯示某一字符時,相應(yīng)的發(fā)光二極管恒定 的導(dǎo)通或截止。該方式每一位都需耍一個8位輸出口控制。靜態(tài)顯示時較小的電流能獲得較高的 亮度,且字符不閃爍。但當(dāng)所顯示的位數(shù)較多時,靜態(tài)顯示所需的i/o 口太多,造成了資源的浪 費 ° .方案二:動態(tài)顯示。所謂動態(tài)顯示就是一位一位的輪流點亮各個位,對于顯示器的每一位來 說,每隔一段吋間點亮一次。利用人的視覺暫留功能可以看到整個就示,但必須保證掃描速度足 夠快,字符才不閃爍。顯示器的亮度既與導(dǎo)通電流有關(guān),也于點亮?xí)r間與間隔時間的比例有關(guān)。 調(diào)整參數(shù)可以實現(xiàn)較高穩(wěn)定度的顯示。動態(tài)顯示節(jié)省了 1/0 口,降低了能耗。從節(jié)省i/o 口和降

8、低能耗出發(fā),木設(shè)計采用方案二。第三章系統(tǒng)設(shè)計31總體設(shè)計3.1.1系統(tǒng)說明利用單片機(jī)(at89s51)制作簡易電子時鐘,由六個led數(shù)碼管分別顯示小時十位、小時個 位、分鐘十位、分鐘個位、秒鐘十位、秒鐘個位。6個pnp管(9012)分別控制六個數(shù)碼管的亮 滅,一個按鍵用于時間調(diào)整。3.1.2系統(tǒng)框圖電源部分直流電源4.5v.廠"復(fù)位電路按鍵s2控制部分單片機(jī)(at89s51);顯示部分v:位選部分;6個pnp三極管(9012)6個七段共陰極數(shù)碼管顯示秒,分鐘及小時位圖3-13.2模塊設(shè)計3.2.1電源部分j2j3|1丄vccp30134p311=丄vcc如圖32所示,圖3-2從外部引

9、入4.5v的直流電,為單片機(jī)、.復(fù)位電路提供電源3.2.2復(fù)位電路sireset圖3-3如圖33所示,復(fù)位電路主要由型號為1n4148的二極管,型號為10uf/16v的電解電容,型 號為104的瓷片電容,10k的電阻以及按鍵s1構(gòu)成,s1接芯片的相應(yīng)引腳rst,當(dāng)開關(guān)按下時 引腳rst為高電平1,斷開吋引腳為低電平0。3.2.3程序下載接口圖3-4如圖3-4所示,由at89s isp構(gòu)成的兩排十針下載口,板圖上有一個小方框,為1號引角;下 載線的凸口為正方向,凸口的右側(cè)邊的第-個插孔為1號引角。324位選部分12393q4q6r2r3r4r5r6r74.7k4.7k4.7k4.7k4.7k20

10、212425012圖3-5圖3-5為位選電路,三極管的集電極接數(shù)碼管的公共端,當(dāng)p2 口對應(yīng)的引腳輸出高電平時三 極管導(dǎo)通,對應(yīng)的數(shù)碼管顯示數(shù)據(jù)。這樣,在同一時刻,6位led中只有選通的那1位顯示岀字 符,而其他5位則是熄滅的。同樣,在下一時刻,只讓下一位的位選線處于選通狀態(tài),而其他個 位的位選線處于關(guān)閉狀態(tài),在段碼線上輸出將要顯示字符的段碼,則同一時刻,只有選通位顯示 出相應(yīng)的字符,而其他各位則是熄滅的。如此循環(huán)下去,就可以使各位顯示出將要顯示的字符。 雖然這些字符是在不同吋刻出現(xiàn)的,而在同一吋刻,只有一位顯示,其他各位熄滅,但由于led 的余輝和人眼的視覺暫留作用,只要每位紀(jì)示間隔足夠短,

11、則可以造成多位同吋亮的假象,達(dá)到 同時顯示的效果。325數(shù)碼管的連接電路seg6mojj vc金1bllh亠bi 1bkb2b12<l4, 114i屯jj3r13乙f 一b一 ba fbd勺4014j£ f4a r g ts t f g t5b15j;仁cj卄j pj6p16j* f 11* /d 't /ur.7b17*4&dp8* gnd呻 gnd噌 gndp gnd密gndgnd圖3-6seg6d圖36為數(shù)碼管的引腳圖,每位的段碼線(a,b,c,d,e,f,g,dp) 分別為1個8位的鎖存器輸出相連,由at89s51控制組合09 十個數(shù)據(jù),如令其顯示1則b

12、,c引腳(即2, 3引腳)送高電平, 此時數(shù)碼管顯示1。由于各位的段碼線并聯(lián),8位i/o 口輸出段 碼對各個顯示位來說都是相同的。12343.2.6控制部分u1at89s51p10 1p11 2p12p13 4p145p15 6p167p17 8rsf9p30 10ktttp32 12p34 14 kft?p36 1618c4y1 12mhz1920bcldgndpiovccpllpoop12p01p13p02p14p03p15p04p16p05p17p06resetp07p30eap31alep32psenp33p27p34p26p35p25p36p24p37p23xtal1p22xtal2

13、p21vssp20vcc40 t39 pqq 38 p01 37 p02 36 p03 35pq4 34p05 33p06 32pq7 31 30 29 vcc 藍(lán)p272? p26 2百 p2525 p2424 p2323 p2222 p2121 p20at89s51是美國atmel公司生產(chǎn)的低功耗,髙性能cmos 8位單片機(jī),片內(nèi)含4k bytes的 可系統(tǒng)編程的flash只讀程序存儲器,器件采川atmel公司的高密度,非易失性存儲技術(shù)生產(chǎn), 兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳。at89s51捉供以下標(biāo)準(zhǔn)功能:4k字節(jié)flash閃速存儲器,128 字節(jié)內(nèi)部ram, 321/0 口線,看門狗(w

14、dt),兩個數(shù)據(jù)指針,兩個16位定時/計數(shù)器,一個5 向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。如圖37所示,at89s51有40引腳,雙列直插(dip)封裝,所用引腳功能如下:1. vcc運行吋加+ 4.5v2. gnd接地3. xtal1振蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端4. xtal2振蕩器反相放大器的輸出端5. rst復(fù)位輸入,高電平有效,在晶振工作時,在rst引腳上作用2個機(jī)器周期以上的高電平,將使單片機(jī)復(fù)位。wdt溢出將使該引腳輸出高電平,設(shè)置sftauxr 的disrto位(地址8eh)可打開或關(guān)閉該功能。disrto位缺省為reset輸出高電平 打開狀

15、態(tài)。6. ea/vpp 片外程序存儲器訪問允許信號。欲使cpu僅訪問外部程序存儲器(地址 為0000h-ffffh), ea端必須保持低電平(接地),如果ea端為高電平(接vcc端), cpu則執(zhí)行內(nèi)部程序存儲器中的指令。7. p1 口,p2 口pl, p2是一組帶內(nèi)部上拉電阻的8位雙向i/o 口。運行時通過p1 口控制 驅(qū)動電路的工作,將數(shù)據(jù)送到數(shù)碼管,顯示相應(yīng)的段碼,為了達(dá)到減少功耗或滿足端口 對最大電流的限制,應(yīng)加上一限流電阻。p2.0p2.5 口控制數(shù)碼管的位選,使六個數(shù)碼 管輪流顯示數(shù)據(jù),等于1時位選三極管導(dǎo)通,等于0時位選三極管截止。8. 無白鎖開關(guān)(s2-p3.7)開關(guān)接相應(yīng)引腳

16、p3.7,當(dāng)開關(guān)按下吋,相應(yīng)引腳為低電平0, 斷開吋引腳為高電平1。第四章原理圖與pcb圖ropum2亟pbseg1xeg2mfletwcgndxeg452xeg5sugndcrth11丄口丁 _一匸吋啣u1 alspri pio 1 pll 2 kl2 p13k4 f p15<莎7 p17 s rbt9 p30 10 pittl p32 12 wot p34 14 p3sl? p3( 1< w7j7 is 19 20*novccphpoopdp01pijp0pup03m5poiplip05p17p0(kexeip07p30eablalep32pffiefp3jw7p3ip2ipj

17、5k5p36pmm7p23xiaup22xiai2p21vwpiovcc »o t39 poo 3s p01 )7p023 p04 5fp05 d p06 n pq7 5i ez1 29 vcc 5fp2727 p2<25 p2422 p2121 p20第五章軟件設(shè)計5.1程序流程圖時鐘調(diào)整程序分鐘閃爍,調(diào)時狀態(tài)時值清零返冋顯示 <5-35.2源程序表5j pl 口對應(yīng)段碼及數(shù)值:顯示數(shù) 字p1.7p1.6pl.5pl.4pl.3pl.2pl.lp1.016進(jìn)制 代碼dpgfedcba0001i11113fh10000011006h2010110115bh30100111

18、14fh40110011066h5011011016dh6011111017dh111170000011107h8011111117fh9011011116fh” ”99”;中斷入口程序;,”9org 0000h ump startorg 0003hretiorgooobhump inttoorg 0013hretiorg 001bhumpintt1org 0023hreti;程序執(zhí)行開始地址;跳到標(biāo)號start執(zhí)行 汐卜中斷0中斷程序入口;外中斷0中斷返回 淀時器t0中斷程序入口;跳至intto執(zhí)行汐卜中斷1屮斷程序入口 汐卜中斷1中斷返回 淀時器t1小斷程序入口;跳至intt1執(zhí)行;串行中

19、斷程序入口地址;串行屮斷程序返回;主程序;;start: movr0,#70h;清70h-7ah共11個內(nèi)存單元movr7,#0bh;clrp3.7cleardisp: movr0,#00hincrodjnzr7,cleardispmov20h,#00h20h (標(biāo)志用)mov7ah,#0ah;放入“熄滅符”數(shù)據(jù)movtmod,#11h;設(shè)丁0、t1為16位定時器movtl0,#0b0h;50ms定時初值(to計時用)movth0,#3ch;50ms定時初值movtl1,#oboh;50ms定時初值(ti閃爍定時用)movth1,#3ch;50ms定吋初值setbea;總中斷開放setbeto

20、;允許to中斷setbtro;開啟to定時器movr4,#14h;1秒定時用初值(50msx20)start 1: lcalldisplay;調(diào)用顯示子程序jnbp3.7,setmm1;p3.7 口為0時轉(zhuǎn)時間調(diào)整程序sjmpstart1:p3.7 口為 1 時跳回 start 1setmm1:ump setmm;轉(zhuǎn)到時間調(diào)整程序setmm;1秒計時程序;;t0中斷服務(wù)程序intto: pushacc;累加器入棧保護(hù)pushpsw;狀態(tài)字入棧保護(hù)clreto;關(guān)to中斷允許clrtro;關(guān)閉定吋器tomova,#0b7h;中斷響應(yīng)時間同步修止adda,tl0;低8位初值修正movtl0,a;重

21、裝初值(低8位修止值)mova,#3ch;高8位初值修止addca,th0movth0,a;垂裝初值(高8位修正值)setbtro;開啟定時器todjnzr4, outto;20次中斷未到中斷退出addss: movr4,#14h;20次中斷到(1秒)重賦初值movr0,#71h;指向秒計時單元(71h-72h)acall add1;調(diào)用加1程序(加1秒操作)movar3;秒數(shù)據(jù)放入a (r3為2位十進(jìn)制數(shù)組合)clrc;清進(jìn)位標(biāo)志cjnea,#60h,addmmaddmm: jcoutto;小于60秒?yún)贾袛嗤顺鯽call clromov r0,#77hacall add1movclrcjne

22、a,r3ca,#60h,addhh;人于或等于6()秒時對秒計時單元清0;指向分計時單元(76h-77h);分計時單元加1分鐘;分?jǐn)?shù)據(jù)放入a;清進(jìn)位標(biāo)志addhh: jc outtoacall clromovacallmovclrcjnehour: jcr0,#79hadd1a,r3ca,#24h,hourouttooutto: mov72h,76hmov73h,77hmov74h,78hmov75h,79hpoppswpopaccsetbetoretiacall clro;小于60分時中斷退出;人于或等于60分時分計時單元清0;指向小時計時單(78h-79h);小時計時單元加1小時;時數(shù)據(jù)放

23、入a;清進(jìn)位標(biāo)志;小于24小吋中斷退出;大于或等于24小時小時計時單元淸0 沖斷退出時將分、時計時單元數(shù)據(jù)移 ;入對應(yīng)顯示單元;恢復(fù)狀態(tài)字(出棧);恢復(fù)累加器;開放t0中斷;中斷返回; 閃動調(diào)時程序;;t1中斷服務(wù)程序,用作吋i'可調(diào)整吋調(diào)整單元閃爍指示intt1:pushaccpushpswmovtl1, #()b0hmovth1, #3chdjnzr2jntt1outmovr2,#06hcpl02hjb02h,flash 1mov72h,76hmov73h/77hmov74h,78hmov75h,79hinttiout:poppswpopaccretiflash 1:jb01h,f

24、lash2mov72h,7ahmov73h,7ahmov74h,78hmov75h,79hajmpintt1outflash2:mov72h,76h;中斷現(xiàn)場保護(hù);裝定時器t1定時初值;0.3秒未到退出中斷(50ms中斷6次);垂裝0.3秒定時川初值;0.3秒定時到對閃爍標(biāo)志取反;02h位為1時顯示單元“熄滅“;02h位為0時正常顯示;恢復(fù)現(xiàn)場沖斷退出;01h位為1吋,轉(zhuǎn)小吋熄滅控制;01h位為0時,“熄滅符“數(shù)據(jù)放入分;顯示單元(72h-73h),將不顯示分?jǐn)?shù)據(jù);轉(zhuǎn)中斷退出;01h位為1時,"熄滅符“數(shù)據(jù)放入小時;顯示單元(74h-75h),小時數(shù)據(jù)將不顯示mov 73hj7hmo

25、v 74h,7ah;轉(zhuǎn)中斷退出mov 75hjahajmp intt1out;加1子程序;add i: mov a,r0decroswapaorla,r0adda,#01hdaamovr3,aanla,#0fhmovr0,amova,r3incroswapaanla,#0fhmovr0,aret” 9” 9 ”;清零程戶f ;,9,"9,;對計時單元復(fù)零川clr0:'clralmovr0,adecromovr0,aret;取當(dāng)前計時單元數(shù)據(jù)到a;指向前一地址:a中數(shù)據(jù)高以位與低四位交換;前一地址中數(shù)據(jù)放入a中低四位;a加1操作;十進(jìn)制調(diào)整;移入r3寄存器;髙四位變0;放回前一

26、地址單元;取回r3中暫存數(shù)據(jù);指向當(dāng)前地址單元;a中數(shù)據(jù)高四位低以位交換;高四位變0;數(shù)據(jù)放入當(dāng)削地址單元中;子程序返回;清累加器;清當(dāng)前地址單元;指向前一地址;前-地址單元清0;子程序返冋吋鐘調(diào)整程序;當(dāng)調(diào)時按鍵按下時進(jìn)入此程序setmm: clr et0clr trolcall dl1s;關(guān)定時器to屮斷;關(guān)閉定時器to;調(diào)用1秒延時程序jb p3.7,closedis ;鍵按下時間小于1秒,關(guān)閉顯示(省電)mov r2,#06h;進(jìn)入調(diào)時狀態(tài),賦閃爍定時初值setbet1setbtriset2:jnbp3.7,set1setboohset4:jbp3.7,set3lcalldl05sjn

27、bp3.7,sethhmovr0,#77hlcalladd1mova,r3clrccjnea,#60h,hhhhhh: jcset4lcallclr0clrcajmpset4closedis:setbet0setbtroclose:jbp3.7,closelcalldisplayjbp3.7,closewaith:jnbp3.7,waithljmpstart 1sethh:clroohsethii1:jnbp3.7,set5setb01hset6:jbp3.7,set7lcalldl05sjnbp3.7,setoutmovr0,#79hlcalladd1mova,r3clrccjnea,#24

28、h,houuhouu: jcset6lcallclroajmpset6setout: jnbp3.7,setout 1lcalldisplayjnbp3.7,setoutclr0ihclroohclr02hclrtri;允許t1中斷;開啟定時器t1;p3.7 口為0 (鍵未釋放),等待;鍵釋放,分調(diào)整閃爍標(biāo)志置1;等待鍵按下;有鍵按下,延吋0.5秒;按下吋間大于0.5秒轉(zhuǎn)調(diào)小吋狀態(tài);按下吋間小于0.5秒加1分鐘操作;調(diào)用加1子程序;取調(diào)整單元數(shù)據(jù);清進(jìn)位標(biāo)志;調(diào)整單元數(shù)據(jù)與60比較;調(diào)整單元數(shù)據(jù)小于60轉(zhuǎn)set4循環(huán);調(diào)整單元數(shù)據(jù)大于或等于60時清0;清進(jìn)位標(biāo)志;跳轉(zhuǎn)到set4循環(huán);省電(le

29、d不顯示)狀態(tài)。開t0中斷;開啟t0定時器(開時鐘);無按鍵按下,等待。;冇鍵按下,調(diào)顯示子程序延時削抖;是干擾返回close等待;等待鍵釋放;返冋主程序(led數(shù)據(jù)顯示亮);分閃爍標(biāo)志淸除(進(jìn)入調(diào)小時狀態(tài));等待鍵釋放;小時調(diào)整標(biāo)志置1;等待按鍵按下;有鍵按下延時0.5秒;按下時間大于0.5秒退出時間調(diào)整;按下時間小于0.5秒加1小時操作;調(diào)加1子程序;計時單元數(shù)據(jù)與24比較;小于24轉(zhuǎn)set6循環(huán);大于或等于24時清0操作;跳轉(zhuǎn)到set6循環(huán);調(diào)吋退出程序。等待鍵釋放涎時削抖;是抖動,返回setout再等待 ;清調(diào)小時標(biāo)志;淸調(diào)分標(biāo)志;清閃爍標(biāo)志;關(guān)閉定時器t1clret1;關(guān)定時器t1中

30、斷setbtro;開啟定時器tosetbeto;開定時器to中斷(計時開始)ljmpstart1;跳冋主程序setl:lcalldisplay;鍵釋放等待時調(diào)用顯示程序(調(diào)分)ajmpset2;防止鍵按下吋無時鐘顯示set3:lcalldisplay;等待調(diào)分按鍵時吋鐘顯示用ajmpset4set5:lcalldisplay;鍵釋放等待時調(diào)用顯示程序(調(diào)小時)ajmpsethh1;防止鍵按下時無時鐘顯示set7:lcalldisplay;等待調(diào)小時按鍵時時鐘顯示用ajmpset6setout1:lcalldisplay;退出時鐘調(diào)整時鍵釋放等待ajmpsetout;防止鍵按下時無時鐘顯示;顯示

31、程序;;顯示數(shù)據(jù)在70h75h單元內(nèi),用六位led共陽數(shù)碼管顯示,p0 口輸出段碼數(shù)據(jù),p3 口作 ;掃描控制,每個led數(shù)碼管亮ims時間再逐位循環(huán)。display: movr1 ,#70h;指向顯示數(shù)據(jù)首址movr5,#0feh;掃描控制字初值play: mova,r5;掃描字放入amovp2,a;從卩2 口輸出mova,r1;取顯示數(shù)據(jù)到amovdptr,#tab;取段碼表地址movca,a+dptr;查顯示數(shù)據(jù)對應(yīng)段碼movpl,a;段碼放入p0 口lcalldl1ms;顯示imsincr1;指向下一地址mova,r5;掃描控制字放入ajnbacc.5,endout;acc.5=0時一

32、次顯ar5,aplayp2.5p1,#offhrlmovajmpendout: setbmovret4中數(shù)據(jù)循環(huán)左移;放回r5內(nèi);跳回play循環(huán);一次顯示結(jié)束,p2 口復(fù)位;p0 口復(fù)位;子程序返冋tab: db 3fhq6hjbh4fh,66h,6dh7dh,()7h,7fh,6fh;1ms延時程序,led顯示程序用dlims: mov r6,#14hdl1:dl2:movr7,#19hdjnzr7,dl2djnzr6ql1ret;20ms延時程序,采川調(diào)川顯示子程序以改善led的顯示閃爍現(xiàn)象ds20ms: acallacallacalldisplaydisplaydisplayret涎吋

33、程序,用作按鍵吋間的長短判斷dl1s:lcalllcallretdl05s:movdl05s1:lcalldjnzretdl05sdl05sr3,#20h;8 亳秒*32=0.196 秒displayr3ql05s1end;程序結(jié)束第六章總結(jié)6.1物品清單與元件特性表61物品清單:元件名稱規(guī)格型號單位數(shù)量瓷片電容104只1瓷片電容30p只2電解電容47uf/16v只1電解電容10uf/16v只2電阻10k只1電阻4. 7k只611 -心片at89s51片1芯片座dip40只1無源晶折12m只17段數(shù)碼管0. 5寸/共陰貝6三極管9012個6二極管1n4148只1按鍵無口鎖只2單排插釗-條1雙排插針條1電池盒個1電路板9. 55*5. 664(:m21表62 at89s51功能特性:兼容mcs-51指令系統(tǒng) 4k 可反復(fù)擦寫( 1000 次)isp flash rom 32個可編程i/o 口-4.0-5.5v工作電壓范用2個16位可編程定時/計數(shù)器全靜態(tài)工作模式:時鐘頻率0-33mhz全雙工uart串行中斷口線 128x8bit 內(nèi)部 ram6個中斷源

溫馨提示

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

評論

0/150

提交評論