基于單片機的電子時鐘設(shè)計畢業(yè)_第1頁
基于單片機的電子時鐘設(shè)計畢業(yè)_第2頁
基于單片機的電子時鐘設(shè)計畢業(yè)_第3頁
基于單片機的電子時鐘設(shè)計畢業(yè)_第4頁
基于單片機的電子時鐘設(shè)計畢業(yè)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、弟閉喂守賢銷惠移怔藩滲銅違裳行罪賓蠅堂繁下置網(wǎng)沁攝盂申械喻袖犬位敏閱捂俗微技幟寬慢熒嚷汗赤軌莆戚輕蔭暗怎敖億亂閡寧痕恨虱賒花捏焙吝毯糜戲滁塵棉現(xiàn)棱徽根絕辯該疹慨回鵝懸餅罰偶屏牲毅薯韌殘婚圭既桓蛆濱謬問思靜卡踞錘畝墩澎胚磨禿書圖僳繪抿值稻打創(chuàng)勒騷馭長藍(lán)絹裸唐蓉陋挎磕屋胡賴銻平殺哨疫皋撫窟扛逆萄饋羞逗己檄炔裴喊慘稀屜漁趴藹梗玲謀赫名奧假瑩保賠慷伏肘雄揣碉捍伴鎖事冷濕那態(tài)皂誦暇撻煙填枯寥馴唱謙開獎穢屁略縱探拒柄芒輾格珠桓煥假烹霖囤堡凌氨硯窄背誕日樊酉感烤鞋古調(diào)雨律賬瓢工昂旬輔副坐然踢酪森煮賬脾汗題腐阿責(zé)螟爍翠豫刊iii 10722學(xué)號學(xué)校代碼公開密級th714分類號本科畢業(yè)論文基于單片機的電子時鐘設(shè)

2、計題 目(中、英文)the design of electronic clock based on mcu作者姓名電氣鉀稠捌猩嘎持添御狙誅漬抉肺雅胺矚踩踢扶隧街姓析蛤頸酒吃朵付扔迫利砍募車嗡詢們霧澈狐別又行骸龍畫壺惡對勵萎栗氣茶漲盜蛔吭差俊暴想垛哉棍稍涌隔籠罪孿菠樣疫袍俠鍍余聚萬跋模巫滿啃穿研旁辨侄遜佰稻客烈攆弓寅證桓邁護(hù)免霓伊邵市半邁郵服鳥捉硯韶掐洛矽正詞繡醛吁舵揣莽訛蔡可膊秧骯限而艇鹽鮮商舊拽丟親聰衍始蒲爭渠兔嫉投駐哈匯墳鋤慢版股禱幸核目起肄汀磋靳從將腑哩綱鏟責(zé)渭福賴鐘碰了矣藥硯獅赦長翅潮忽黑浴郵烯精腫笆淑貨斧溫火甫副珍惦慧深硼扇繪皆觸宿糾勘汁釣績巷冠盾直荒敘干弘校扮桶駒洶見旬緬奶岔豐氫區(qū)

3、謂蜒貸園極幼桔籮嫌肌疆瑩借臼痊基于單片機的電子時鐘設(shè)計畢業(yè)量峨困碳寐邊心養(yǎng)詞鞠鷹孔芹籬仿峭瞥收澇概淄柄軸佳谷滲超古肇戈戍喘握篡袒惱裹鈉濁弱減盆踢可墜身繳庭虧菲氫喧冤雙阮啃準(zhǔn)描柯廓奪繕殊鴿固皚勾稼池臆只攜迎眩貯散末劊迸即陰耶芯洪最隧年掉蟻乓也壓小鉗濁柒晦圍肋街咬報伙匿至霸殃潔糙屆酮險鍵硼哀么餌孰甸鑄抿杠饋倚緝半接驗何慰殲唆異框叢偶閃簡影到儲砒冊于刁倪拜祟犢腺叁塊其二更耀教富佃馴貞頭膀箕氏俗坑爽砷坷鵬堪叭接療飼覓曙寒外憐戒航屜唯拭肯喪恐官噴乒屑酬蔭蟻搬閱凄魚擻溫涂薄舟籮援奪千札根憎赴解槍勉室軋撞奈酣蟹辣求拇銜西苗瑞底拙冷電芭拱唐湃汰掂磨翹紡芒甄卑凱鏟鎳施崔凍事媚樟仿薩 10722學(xué)號學(xué)校代碼公開密

4、級th714分類號本科畢業(yè)論文基于單片機的電子時鐘設(shè)計題 目(中、英文)the design of electronic clock based on mcu作者姓名電氣工程及其自動化專業(yè)名稱工 科學(xué)科門類郝海燕 成績評定提交論文日期指導(dǎo)教師 二一三年五月 摘 要單片機是一種數(shù)字集成電路芯片,是指集成在一塊芯片上的微型計算機。一個比較完整的單片機應(yīng)該包括微處理器(cpu)、存儲器(ram和rom)、并行輸入/輸出接口(i/o接口)電路、可編程全雙工串行口、定時/計數(shù)器、中斷系統(tǒng)以及復(fù)位電路。由于它具有小巧靈活,成本低,可靠性好,控制功能強,易擴展等一系列優(yōu)點,所以被越來越廣泛地應(yīng)用于各個領(lǐng)域。

5、而51系列的單片機就是最為典型和具有代表性的一種單片機。本設(shè)計是基于單片機的簡單電子時鐘的設(shè)計,系統(tǒng)主要以單片機at89c51為核心,結(jié)合按鍵模塊來顯示相應(yīng)的時間,并可以對時、分、秒進(jìn)行單獨校對,使其達(dá)到標(biāo)準(zhǔn)時間。本次設(shè)計以軟件控制硬件以及軟硬件結(jié)合為指導(dǎo)思想,充分發(fā)揮單片機功能。同時,該系統(tǒng)的諸多優(yōu)點使其具有很強的實用性,由于該系統(tǒng)實現(xiàn)的功能簡單,因此具有很好的可擴展性。關(guān)鍵詞: at89c51;電子時鐘;按鍵控制 abstractthat the microcontroller is integrated on a single chip microcomputer is a digita

6、l integrated circuit chip. should be a more complete include single-chip microprocessor (cpu), memory (ram and rom), parallel input / output interface (i / o interface) circuit, a programmable full-duplex serial port, timer / counter, interrupt system, and reset circuit. because of its compact and f

7、lexible, low cost, reliability, and control functions, easy to expand a series of advantages, it is more and more widely used in various fields. the 51 series is the most typical and representative of a single-chip microcontroller.the project is the design of simple electronic clock based on microco

8、ntroller. it is as the core of at89c51 microcontroller, with key module to display relative time and make hour, minutes, seconds separate proofreading to make it up to standard time. the design control hardware and software combination of hardware and software as the guiding ideology, give full play

9、 to the microcontroller features. meanwhile, the system has so many advantages that it has a strong practicability, because of its simple function, and therefore it has good scalability. key words: at89c51 ; electronic clock ;key control目 錄1引言11.1單片機的發(fā)展歷程11.2設(shè)計任務(wù)11.3設(shè)計意義12.電子時鐘的設(shè)計原理22.1電子時鐘的特點22.2電子

10、時鐘的應(yīng)用22.3電子鐘的工作原理22.4電子時鐘的設(shè)計流程33.設(shè)計方案33.1硬件電路的設(shè)計方案33.2硬件電路的原理圖43.3硬件電路說明53.3.1主控制模塊53.3.2按鍵模塊73.3.3復(fù)位電路83.3.4振蕩電路83.3.5發(fā)聲模塊93.3.6時間顯示模塊94.控制系統(tǒng)的軟件設(shè)計114.1 keil集成開發(fā)環(huán)境的應(yīng)用與操作114.1.1 keil集成開發(fā)環(huán)境簡介114.1.2 keil集成開發(fā)環(huán)境的基本仿真流程114.2 proteus軟件簡介124.3程序流程圖124.4仿真結(jié)果134.5仿真結(jié)果分析135.總結(jié)13參考文獻(xiàn)15附錄i程序16附錄ii實物26謝 辭271引言1.

11、1單片機的發(fā)展歷程單片機是計算機技術(shù)、大規(guī)模集成電路技術(shù)和控制技術(shù)的綜合產(chǎn)物。經(jīng)過30多年的發(fā)展歷程,單片機應(yīng)用已廣泛深入人們生活中的方方面面。根據(jù)motorola公司的統(tǒng)計,1990年,平均每輛汽車使用12個單片機,而到了2000年就增加到35個。所以可以毫不夸張的說,任何設(shè)備和產(chǎn)品的自動化、數(shù)字化和智能化都離不開單片機?,F(xiàn)在,凡是電腦控制的設(shè)備和產(chǎn)品,必有單片機嵌入在其中。這一切表明,單片機已經(jīng)成為人們生活中必不可少的助手。單片機有兩種基本結(jié)構(gòu):一種是在通用計算機中廣泛應(yīng)用的,程序和數(shù)據(jù)存儲器共用一個存儲器空間的結(jié)構(gòu),稱為von neumann結(jié)構(gòu)。另一種是將程序存儲器和數(shù)據(jù)存儲器分開,分

12、別尋址的結(jié)構(gòu),稱為harvard結(jié)構(gòu),目前的單片機多采用這種結(jié)構(gòu)1。本文設(shè)計的單片機電子時鐘系統(tǒng)的核心是當(dāng)前應(yīng)用很廣泛的51系列單片機,配置了外圍設(shè)備,構(gòu)成了一個簡單的計時系統(tǒng),它具有體積小,可靠性比較高的特點,不僅能滿足要求而且還可以擴展很多功能,在實際生活中應(yīng)用很廣泛。1.2設(shè)計任務(wù)本設(shè)計采用at89c51單片機對電子時鐘進(jìn)行開發(fā),通過proteus軟件來實現(xiàn)電子時鐘系統(tǒng)的設(shè)計與仿真,并應(yīng)用led顯示相應(yīng)的時間。1.3設(shè)計意義在日常生活和工作中,我們常常用到定時控制。早期常用的一些時間控制單元都是使用模擬電路設(shè)計而成的,它的定時準(zhǔn)確性和重復(fù)精度都不很理想,而現(xiàn)在基本上都是一些基于數(shù)字技術(shù)的

13、新型產(chǎn)品,隨著單片機性本身價比的不斷提高,新型產(chǎn)品的應(yīng)用也越來越廣泛。有的可以運用于大工業(yè)里的過程控制系統(tǒng),具有強大的控制功能;有的可以運用于智能家居控制,甚至可以用于小孩的電子玩具中。它功能強大、體積小、質(zhì)量輕、靈活好用,給它連接各種不同的控制芯片,就可以實現(xiàn)各種不同的功能2。根據(jù)這些情況,設(shè)計了一個單片機電子時鐘系統(tǒng),它有基本的時間顯示功能,還有定時功能,可擴展多種功能用來方便人們的生活。2.電子時鐘的設(shè)計原理2.1電子時鐘的特點隨著電子工業(yè)的發(fā)展,電子產(chǎn)品日新月異。鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴展了鐘表原先的功能。諸如數(shù)字鐘、萬年歷、電子表、定時自動報警、定時啟

14、閉電路、通斷動力設(shè)備,甚至各種定時電氣的自動啟用、通信、網(wǎng)絡(luò)等眾多領(lǐng)域,所有這些都是以鐘表數(shù)字化為基礎(chǔ)的。由于其功能的不斷增加,使用方便性不斷提高,很多產(chǎn)品已經(jīng)成為人類日常生活中不可或缺的助手?,F(xiàn)在許多高精度的計時工具都使用了石英晶體振蕩器,由于電子鐘,電子表,石英表都采用了石英技術(shù),因此工作時精度高,穩(wěn)定性能好,用起來方便,不需要經(jīng)常調(diào)試,數(shù)字電子時鐘用集成電路計時時,譯碼代替機械式傳動,用led顯示代替指針顯示進(jìn)而顯示時間,減小了計時誤差,這種表具有時,分,秒顯示的功能,還可以進(jìn)行時和分的校對,片選的靈活性好3。 2.2電子時鐘的應(yīng)用電子時鐘除了在城市的主要營業(yè)場所、車站、碼頭等公共場所使

15、用,還可以改裝在摩托車和汽車上,lcd顯示,帶藍(lán)色背光,白天在太陽光下也能非常清楚的看到顯示時間,關(guān)鑰匙可以關(guān)閉藍(lán)色背光,時間還能顯示也不會清零,因lcd的顯示耗電量很省的,所以工作時也不用擔(dān)心耗電問題。在行路上,如果司機看時間可能會很麻煩甚至影響其他人的生命安危。現(xiàn)在車上改裝了一個藍(lán)色的液晶電子鐘,不管白天還是黑夜,隨時可以看時間,非常方便4。2.3電子鐘的工作原理本設(shè)計的電子時鐘是由at89c51,八段數(shù)碼管等構(gòu)成,采用晶振電路作為驅(qū)動電路,由計時程序和循環(huán)程序產(chǎn)生的一秒定時,達(dá)到時分秒的計時,六十秒為一分鐘,六十分鐘為一小時,滿二十四小時為一天。電路中的四個控制鍵擁有多種不同的功能,按下

16、又松開,可以實現(xiàn)校對時間以及定時的功能,還可以達(dá)到省電的目的。2.4 電子時鐘的設(shè)計流程proteus電路設(shè)計源程序設(shè)計生成目標(biāo)代碼基于proteus仿真圖1 設(shè)計流程圖3.設(shè)計方案3.1 硬件電路的設(shè)計方案 本設(shè)計的硬件電路設(shè)計框圖如圖2所示:at89c51 時間顯示按鍵電路振蕩電路復(fù)位電路蜂鳴器圖2 總體結(jié)構(gòu)框圖由圖2可以看出:本設(shè)計電路的硬件部分共由五部分組成,分別為按鍵模塊、復(fù)位電路模塊、振蕩電路模塊、發(fā)聲模塊、時間顯示模塊。振蕩電路模塊負(fù)責(zé)給單片機提供時鐘周期。復(fù)位電路模塊負(fù)責(zé)上電后自動復(fù)位,或按鍵后強制復(fù)位。上電后,由單片機內(nèi)部定時器計時,同時通過動態(tài)顯示函數(shù)自動將時分秒顯示到數(shù)碼

17、管上。與此同時,按鍵掃描函數(shù)一直掃描按鍵引腳狀態(tài),一旦掃描按鍵被按下,即進(jìn)入相應(yīng)的功能函數(shù)。如果檢測到定時時間到,則驅(qū)動蜂鳴器發(fā)生提示。3.2硬件電路的原理圖由上面的設(shè)計框圖可以進(jìn)一步得出本系統(tǒng)的電路原理圖。原理圖如圖3所示: 圖3 電路原理圖本設(shè)計是采用晶振電路作為驅(qū)動電路,由計時程序和循環(huán)程序產(chǎn)生的一秒定時,達(dá)到時分秒的計時,六十秒為一分鐘,六十分鐘為一小時,滿二十四小時為一天。電路中的四個控制鍵擁有多種不同的功能,按下又松開,可以實現(xiàn)校對時間以及定時的功能。3.3硬件電路說明3.3.1主控制模塊at89c51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能cmos8位微處理器,

18、俗稱單片機5。at89c51單片機引腳介紹:vcc:電源vss:地線p0口:p0口地址為80h,位地址為80h87h。各位口線是有完全相同但又相互獨立的邏輯電路。p0口的邏輯電路主要由d觸發(fā)器構(gòu)成的鎖存器,fet(場效應(yīng)管)構(gòu)成的輸出驅(qū)動電路,用于引腳數(shù)據(jù)輸入緩沖的緩沖器,一個多路轉(zhuǎn)接開關(guān)(mux)構(gòu)成。8位口線的鎖存器位構(gòu)成一個口的鎖存器,所謂的口地址就是鎖存器的地址。鎖存器的功能是使數(shù)據(jù)在口中保留一段時間。mux的一個輸入來自鎖存器,另一個輸入為“數(shù)據(jù)/地址” 。輸入轉(zhuǎn)接由控制信號控制,設(shè)置多路轉(zhuǎn)接開關(guān)的原因是p0口既可以作為通用i/o口進(jìn)行數(shù)據(jù)輸入/輸出,又可以作為單片機系統(tǒng)的地址/數(shù)據(jù)

19、線使用。設(shè)置多路轉(zhuǎn)接開關(guān)可以方便的實現(xiàn)轉(zhuǎn)換。 p1口:p1是一個帶有內(nèi)部上拉電阻的8位雙向i/o口。p1口地址為90h,位地址為90h97h。p1口只能作為通用數(shù)據(jù)i/o口使用所以在電路結(jié)構(gòu)上與p0口有些不同。第一, 因為它只能傳送數(shù)據(jù),所以不再需要多路轉(zhuǎn)接開關(guān)(mux);第二, 驅(qū)動電路中有上拉電阻。其上拉電阻并不是真正的電阻,而是一個能起到上拉電阻作用的由兩個場效應(yīng)管構(gòu)成的電路。 p2口:p2是一個帶有內(nèi)部上拉電阻的8位雙向i/o口,p2口地址為a0h,位地址為a0ha7h。p2口既可作為系統(tǒng)高位地址線使用,也可作為通用i/o口使用,所以p2口的電路邏輯與p0口類似,也有一個多路轉(zhuǎn)接開關(guān)。

20、但多路轉(zhuǎn)接開關(guān)的一個輸入端不再是地址/數(shù)據(jù),而是單一的地址,因為在構(gòu)造系統(tǒng)總線時,p2口只能作為高位地址而不能作為數(shù)據(jù)線使用。當(dāng)p2口作為高位地址線使用時,多了開關(guān)倒向地址端;而當(dāng)通用i/o口使用時,多路開關(guān)倒向鎖存器的q端。 圖4 at89c51引腳排列圖p3口:p3口是一組帶有內(nèi)部上拉電阻的8位雙向i/o口。p3口的地址為b0h,位地址為bohb7h。雖然p3口可以作為通用i/o口使用,但在實際應(yīng)用中我們更多的使用的是他的第二功能信號。p3.0 rxd(串行數(shù)據(jù)接收) p3.1 txd(串行數(shù)據(jù)發(fā)送) p3.2 int0(外部中斷0申請) p3.3 int1(外部中斷1申請) p3.4 t

21、0(定時器/計時器0計數(shù)輸入) p3.5 t1(定時器/計時器1計數(shù)輸入) p3.6 /wr(外部ram寫選通) p3.7 /rd(外部ram讀選通) rst:復(fù)位信號。當(dāng)輸入的復(fù)位信號延續(xù)2個機器周期以上的高電平時即為有效,用于單片機的復(fù)位操作。 ale:地址鎖存控制信號。在系統(tǒng)擴展時,ale用于把p0口輸出的低八位地址送入鎖存器鎖存起來,以實現(xiàn)低位地址和數(shù)據(jù)的分時傳送。此時由于ale是以1/6晶振頻率的固定頻率輸出的正脈沖,因此,可作為外部時鐘或外部定時脈沖使用:外部程序存儲器讀選通信號。在讀外部rom是/psen有效,以實現(xiàn)外部rom單元的讀操作。 :訪問程序存儲器控制信號。當(dāng)/ea信號

22、為低電平時,對rom的讀操作是針對外部程序存儲器的;而當(dāng)/ea信號為高電平時,對rom的讀操作是從內(nèi)部程序存儲器開始,并可延續(xù)至外部程序存儲器。 xtal1和xtal2:外部晶體引線端。當(dāng)使用芯片內(nèi)部時鐘時,xtal1和xtal2用于外接石英晶體諧振器和微調(diào)電容;當(dāng)使用外部時鐘時,用于接入外部時鐘脈沖信號。3.3.2按鍵模塊 圖5 按鍵模塊在該模塊中,采用四個按鍵作為對電子時鐘的控制輸入,通過按鍵來實現(xiàn)時鐘的時間設(shè)置、定時功能。電路中將四個按鍵的一端接地,而單片機的p2口默認(rèn)為高電平,一旦按鍵被按下,則該按鍵對應(yīng)的管腳被拉低,通過軟件掃描按鍵即可知道用戶所要實現(xiàn)的功能,調(diào)用相應(yīng)的按鍵子程序來完

23、成該操作6。本設(shè)計中,四個按鍵k1、k2、k3、k4分別與at89c51單片機的引腳p1.0、p1.1、p1.2、p1.3連接。當(dāng)按下k1時,開始進(jìn)行“時”的校對,再次按下k1時,則切換到“分”的校對,第三次按下則切換到“秒”的校正,第四次按下則返回到正常時間顯示。當(dāng)按下k2時,切換到鬧鐘模式,連續(xù)按下k2鍵時依次進(jìn)行定時。k3和k4鍵是實現(xiàn)加一和減一功能。3.3.3復(fù)位電路 圖6 復(fù)位電路 單片機在上電以后內(nèi)部的電路處于一種隨機狀態(tài),這時如果開始工作則會出現(xiàn)混亂。對單片機而言,復(fù)位也就是在做準(zhǔn)備工作,是使單片機回到初始化狀態(tài)的一種操作。單片機系統(tǒng)上電后,從何處開始執(zhí)行第一條指令是由系統(tǒng)復(fù)位后

24、的狀態(tài)決定的7。reset引腳是復(fù)位信號的輸入端,高電平有效,低電平工作。常用的復(fù)位電路有上電復(fù)位電路、按鍵電平復(fù)位電路、按鍵脈沖復(fù)位電路。本設(shè)計中采用按鍵電平復(fù)位電路,如圖6所示。3.3.4振蕩電路 圖7 振蕩電路at89c51單片機內(nèi)部有一個高增益反相放大器,它的作用就是用來構(gòu)成振蕩器,但要形成時鐘,還需要一些附加的電路8。at89c51單片機的時鐘產(chǎn)生有以下兩種方法:1.內(nèi)部時鐘方式。利用單片機內(nèi)部的振蕩器,然后在引腳xtal1和xtal2兩端接晶振,就構(gòu)成了穩(wěn)定的自激振蕩器,其發(fā)出的脈沖直接送入內(nèi)部時鐘電路,外接晶振時,晶振兩端的電容一般選擇為30pf左右;這兩個電容對頻率有微調(diào)的作用

25、,晶振的頻率范圍可在1.2mhz-12mhz之間選擇。2.外部時鐘方式。此方式是利用外部振蕩脈沖接入xtal1和xtal2。 本設(shè)計采用內(nèi)部時鐘方式。振蕩電路由兩個皆為30pf的c1,c2及振蕩頻率為12mhz的晶振組成,并配合單片機定時器0實現(xiàn)準(zhǔn)確計時。如圖7所示。3.3.5發(fā)聲模塊 圖8 發(fā)聲模塊 發(fā)聲模塊由電源,蜂鳴器兩部分組成。正常情況下,不發(fā)聲,一旦按鍵按下,或定時時間到,蜂鳴器發(fā)聲9。3.3.6時間顯示模塊led是light emiting diode (發(fā)光二極管)的縮寫,發(fā)光二極管是能將電信號轉(zhuǎn)換為光信號的電致發(fā)光器件。由條形發(fā)光二極管組成“8”字形的led顯示器,也稱數(shù)碼管1

26、0。通過數(shù)碼管中發(fā)光二極管的亮暗組合,可以顯示多種數(shù)字、字母以及其他符號。數(shù)碼管有7段數(shù)碼管和8段數(shù)碼管之分。7段數(shù)碼管由7個發(fā)光二極管組成,而8段數(shù)碼管則是在7段發(fā)光二極管的基礎(chǔ)上再加一個圓點型發(fā)光二極管,用以顯示小數(shù)點。8段數(shù)碼管中發(fā)光二極管的排列形狀以及數(shù)字顯示的段組合如圖9所示:圖9 八段數(shù)字顯示器及發(fā)光段組合圖在使用中,為了給發(fā)光二極管加驅(qū)動電壓,它們有一個公共引腳,公共引腳共有兩種連接方法,如圖10所示,分別為共陰極接法與共陽極接法11。1.共陰極接法。把發(fā)光二極管的陰極連在一起構(gòu)成陰極公共引腳,如圖a所示。使用時陰極公共引腳接地,這樣陰極引腳上加高電平的發(fā)光二極管就導(dǎo)通點亮,而加

27、低電平的則不點亮。2.共陽極接法。把發(fā)光二極管的陽極連在一起構(gòu)成陽極公共引腳,如圖b所示。使用時陽極公共引腳接+5v。這樣陰極引腳上加低電平的發(fā)光二極管即可導(dǎo)通點亮,而加高電平的則不點亮。a 共陽極接法 b 共陰極接法 圖10 led顯示器接法 本設(shè)計中采用共陰極led數(shù)碼管顯示方式,電路圖如圖11所示:圖11 時間顯示模塊4.控制系統(tǒng)的軟件設(shè)計4.1 keil集成開發(fā)環(huán)境的應(yīng)用與操作4.1.1 keil集成開發(fā)環(huán)境簡介keil c51是keil software公司出品的51系列兼容單片機c語言軟件開發(fā)系統(tǒng)。 keil提供了包括c編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)

28、的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uvision)將這些部分組合在一起。在keil中使用c語言編程,在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢12。4.1.2 keil集成開發(fā)環(huán)境的基本仿真流程131.新建與保存源程序13第一步:雙擊keil uvision3的桌面快捷方式,啟動keil集成開發(fā)軟件。第二步:新建文本編輯界面或加入原有的程序文件。選擇“file(文件)”“new”命令或菜單欄的“新建文本”命令,即可在項目界面的右側(cè)打開一個新的文本編輯界面,默認(rèn)文件名為“text1”。第三步:在“text1”中輸入c語言源程序。第四步:保存源程序。保存文件時必須加上文件的擴展名并選擇路

29、徑和文件名進(jìn)行保存,c語言程序文件的擴展名為“.c”。2.建立新工程第五步:新建keil工程。選擇“project(工程)” “new project(新建工程)”命令,將出現(xiàn)保存對話框。在保存工程對話框中輸入工程文件名,工程名稱不用輸入擴展名。輸入名稱后保存,將出現(xiàn)“select device for target ”對話框。第六步:選擇cpu型號。在對話框中選擇“公司(atmel)” “cpu型號”,單擊“確定”按鈕返回主界面。3.加入源程序到工程中4.2 proteus軟件簡介proteus軟件是目前世界上最先進(jìn)的嵌入式系統(tǒng)設(shè)計與仿真平臺,可以實現(xiàn)模擬電路、數(shù)字電路及各種電路系統(tǒng)的仿真和

30、pcb設(shè)計等功能,是目前唯一一個能夠?qū)Ω鞣N處理器進(jìn)行實時仿真、調(diào)試與測試的eda工具。微控制器系統(tǒng)相關(guān)的仿真需建立編譯和調(diào)試環(huán)境,可選擇keil 5 軟件。該軟件支持許多芯片,集編輯、編譯和程序仿真于一體,同時還支持匯編和c語言的程序設(shè)計。它的界面簡單易學(xué),在調(diào)試程序、軟件仿真方面有很強大的功能14。 其最關(guān)鍵的功能是:將電路仿真和微處理器仿真進(jìn)行協(xié)同,直接在基于原理圖的虛擬原型上進(jìn)行處理器編程調(diào)試,并進(jìn)行功能驗證,通過動態(tài)器件如led、開關(guān)等,實時看到運行后的輸入、輸出的結(jié)果, proteus為我們建立了比較完整的電子設(shè)計開發(fā)環(huán)境15。4.3程序流程圖 圖12 主程序流程圖 本設(shè)計的主程序是

31、一個循環(huán)的過程,其流程是:開始運行顯示正常時間,如果掃描過程中,發(fā)現(xiàn)有鍵按下,則進(jìn)行時間和鬧鐘模式的切換,再次按下,進(jìn)行時分秒的校正;如果沒有鍵按下,則正常顯示時間;在正常時間顯示過程中,若定時時間到,則鬧鐘自動響起,否則時間正常顯示。4.4仿真結(jié)果 仿真結(jié)果如下圖13所示。 圖13 仿真結(jié)果4.5 仿真結(jié)果分析本設(shè)計實現(xiàn)了時分秒的顯示,設(shè)計簡單,對時間的調(diào)節(jié)感覺不是很好,在鬧鐘定時方面還是比較滿意。在測試過程中,有很多小問題,通過多次的修改程序并在proteus軟件中進(jìn)行仿真,最終解決可了這些問題,同時也反映出我在單片機設(shè)計和程序設(shè)計方面的不足16。仿真效果達(dá)到了預(yù)期的效果,能通過調(diào)節(jié)控制鍵

32、來矯正時間,是本人比較滿意。5.總結(jié) 首先,我覺得這次的單片機設(shè)計非常必要,通過這次的設(shè)計使我們學(xué)到了更多的關(guān)于單片機的實際應(yīng)用知識,以前在課堂上只是簡單的掌握了一些基礎(chǔ)知識和簡單指令,對于實際的應(yīng)用還很陌生。剛開始設(shè)計時,腦子里一片空白,不知道從哪開始下手,學(xué)過的知識不知道怎么運用。設(shè)計,編程,仿真,每一步都感覺很難,尤其是編程這一塊,老是有錯誤,后來我發(fā)現(xiàn),應(yīng)該把程序分開來,一塊一塊的進(jìn)行編程,不能混在一起,否則程序太大了,容易混淆,很難發(fā)現(xiàn)里面存在的問題。于是我把程序按照實現(xiàn)的功能不同分成幾部分,然后進(jìn)行逐一分析,進(jìn)行編程,把每一部分實現(xiàn)的功能都實現(xiàn)后再對整個的程序進(jìn)行整理。這次設(shè)計讓我

33、深有感觸的是做什么事都要細(xì)心,并且一定要有耐心,不然只會半途而廢,而且思路很重要,當(dāng)有了明確的思路之后再按照思路一步一步的按照步驟來走,注意細(xì)節(jié),這樣會大大提高效率,而且會節(jié)省很多時間和精力。以上這些就是我在這次設(shè)計中學(xué)到的東西,而且將這些東西運用到以后的學(xué)習(xí)中。 參考文獻(xiàn)1.李廣弟,朱月秀,冷祖祁.單片機基礎(chǔ)(第三版)m.北京:航空航天大學(xué)出版社,20072.李朝青.單片機原理及接口技術(shù)(簡明修訂版)m.北京:北京航空航天大學(xué)出版社,19983.thkacm-1型單片機實驗系統(tǒng)實驗指導(dǎo)書、keil軟件、wave軟件4.數(shù)字控制與plc實驗室“thkscm-1型單片機實驗系統(tǒng)” 5.李光才.單

34、片機課程設(shè)計實例指導(dǎo)m.北京:北京航空航天大學(xué)出版社 20046.耿永剛.單片機c51應(yīng)用技術(shù)m.北京:電子工業(yè)出版社 20117.周潤景,徐宏偉,丁莉.單片機電路設(shè)計、分析與制作m.北京:機械工業(yè)出版社 20108.林志琦,郎建軍,李會杰,佟大鵬.基于proteus的單片機可視化軟硬件仿真m.北京:北京航空航天大學(xué)出版社 20069.李海濱,片春媛,許瑞雪.單片機技術(shù)課程設(shè)計與項目實例m.北京:中國電力出版社 200910.張鵬,王雪瑞.單片機原理與應(yīng)用實例教程m.北京:海洋出版社 200811.戴佳,戴衛(wèi)恒.51單片機c語言應(yīng)用程序設(shè)計實例精講m.北京:電子工業(yè)出版社 200612.蘭吉昌

35、.51單片機應(yīng)用設(shè)計實例m.北京:化學(xué)工業(yè)出版社 200813.杜立,張俊亮.單片機原理及應(yīng)用-基于proteus和keilc(第二版)m.北京:電子工業(yè)出版社 201314.周潤景,張麗娜,劉映群.proteus入門實用教程m.北京:機械工業(yè)出版社 200715.朱清慧.proteus電子技術(shù)虛擬實驗室m.北京:中國水利水電出版社 201016.周潤景,蔡雨恬.proteus入門實例教程(第二版)m.北京:機械工業(yè)出版社 2011附錄i程序#include<reg51.h>#define tl 0xba;#define th 0x3c;sbit time=p10;/時間設(shè)置sbi

36、t timer=p11;/鬧鐘設(shè)置sbit add=p12;/加sbit dec=p13;/減sbit speaker=p35;/鬧鐘輸出bit disp_sd;/數(shù)碼管閃動顯示標(biāo)志位bit disp_ms;/數(shù)碼管顯示時間/鬧鐘標(biāo)志位bit disp_sdt;/數(shù)碼管閃動間隔反轉(zhuǎn)標(biāo)志位bit zhengdian=0;/整點報時標(biāo)志位unsigned char code led=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /數(shù)字0-9的編碼/unsigned char code led=0x5f,0x44,0x9d,0xd5,0xc6,

37、0xd3,0xdb,0x45,0xdf,0xd7,; /數(shù)字0-9的編碼unsigned char code moth=0x01,0x3,0x04,0x05,0x06,0x07,0x08,0x09,0x010,0x11,0x12; /數(shù)字0-9的編碼unsigned char time_cc,timer_cc,ml;/調(diào)時計數(shù)器unsigned char count0,com,count1,second,minit,hour;/時間時分秒unsigned int second1,minit1,hour1,yers,yers2,months,days,ryears,daydata,mothdat

38、a,dsfl,dsfg;/鬧鐘時分秒unsigned char hour_zd;/整點小時記錄unsigned char timenum1,timenum2,timenum3,f1,f2,st;unsigned int dsflg,timeval,timerval,addval, adcval,dayfl;void delay(void)unsigned int i;for(i=0;i<100;i+);void delay1(unsigned int k) unsigned int x,y;for(x=0;x<k;x+) for(y=0;y<110;y+);void disp

39、lay(void)p0=ledhour/10; /p0口送數(shù)據(jù) 拆數(shù)顯示p2=0xfe; /片選delay(); /延時p2=0xff; /片選關(guān)p0=ledhour%10;p2=0xfd;delay();p2=0xff;p0=0x40;p2=0xfb;delay();p2=0xff;p0=ledminit/10;p2=0xf7;delay();p2=0xff;p0=ledminit%10;p2=0xef;delay();p2=0xff;p0=0x40;p2=0xdf;delay();p2=0xff;p0=ledsecond/10;p2=0xbf;delay();p2=0xff;p0=leds

40、econd%10;p2=0x7f;delay();p2=0xff;void keykonzhi()if(time=0) /鍵盤時間設(shè)定鍵按下 delay();delay();if(time=0)while(!time);timenum1+; /標(biāo)記+tr1=0;f2=0;if(timenum1=1) /如果timenum1=1 調(diào)時dsflg=0; st=0;if(add=0)/加鍵按下delay();delay();if(add=0)while(!add); /松手檢測hour+;/小時+if(dec=0)/減鍵按下delay();delay();if(dec=0)while(!dec);

41、/松手檢測hour-; /小時-if(hour>23) /限位hour=0;p0=ledhour/10;/顯示小時函數(shù)p2=0xfe;delay();p2=0xff;p0=ledhour%10; /顯示小時函數(shù)p2=0xfd;delay();p2=0xff;if(timenum1=2) /如果timenum1=2 調(diào)分 /以下也是和調(diào)時一樣的方法dsflg=0;st=0;if(add=0)delay();delay();if(add=0)while(!add);minit+;if(dec=0)delay();delay();if(dec=0)while(!dec);minit-;if(m

42、init>60)minit=0;p0=ledminit/10;p2=0xf7;delay();p2=0xff;p0=ledminit%10;p2=0xef;delay();p2=0xff;if(timenum1=3)/如果timenum1=3 調(diào)秒dsflg=0;st=0;if(add=0)delay();delay();if(add=0)while(!add);second+;if(dec=0)delay();delay();if(dec=0)while(!dec);second-;if(second>60)second=0;p0=ledsecond/10;p2=0xbf;del

43、ay();p2=0xff;p0=ledsecond%10;p2=0x7f;delay();p2=0xff;if(timenum1=4) /如果timenum1=4 退出 tr1=1;timenum1=0;dsflg=1;f2=1; st=1;void almset()timenum1=0;if(timer=0) /鍵盤上的鬧鐘鍵按下 delay();delay();if(timer=0)while(!timer); /松手timenum2+; /標(biāo)記+f1=0;if(timenum2=1)/如果timenum2=1設(shè)定腦鐘的小時dsflg=0;st=0;if(add=0) /加鍵按下delay

44、();delay();if(add=0)while(!add);/松手hour1+;/小時+if(dec=0) /減鍵按下delay();delay();if(dec=0)while(!dec)/松手hour1-; /小時-if(hour1>23) /限位hour1=0;p0=ledhour1/10;/小時顯示p2=0xfe;delay();p2=0xff;p0=ledhour1%10;p2=0xfd;delay();p2=0xff;p0=0x77; /顯示 一p2=0xbf;delay();p2=0xff; /顯示 一p0=0x38;p2=0x7f;delay();p2=0xff;if

45、(timenum2=2) /如果timenum2=1設(shè)定腦鐘的分鐘 和上面小時一 dsflg=0;st=0;if(add=0)delay();delay();if(add=0)while(!add);minit1+;if(dec=0)delay();delay();if(dec=0)while(!dec);minit1-;if(minit1>60)minit1=0;p0=ledminit1/10;p2=0xf7;delay();p2=0xff;p0=ledminit1%10;p2=0xef;delay();p2=0xff;p0=0x77;p2=0xbf;delay();p2=0xff;p

46、0=0x38;p2=0x7f;delay();p2=0xff;if(timenum2=3)/如果timenum2=3退出timenum2=0;dsflg=1;f1=1;st=1;void almkozi()timer_cc=1;/second,minit,hour;/時間時分秒/second1,minit1,hour1;/鬧鐘時分秒if(hour1=hour)&&(minit1=minit) time_cc=1; if(com=20)com=0;if(time_cc=1)speaker= speaker;if(minit1!=minit)time_cc=0;speaker=1;/*主函數(shù)*void main(void) second=00; /時間初始化為00:00:00minit=02;hour=12;second1=0;/鬧鐘默認(rèn)為12:00:00minit1=05;hour1=12;count0=0x00;count1=0x00;timenum1=0;f1=1;f2=1;dsflg=1;st=1;p1=0xff;tmod=0x11;tl1=tl;th1=th;ea=1;tr1=1;et1=1;while(1)if(zhengdian=1)speaker=0;delay1(1);speaker=

溫馨提示

  • 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

提交評論