基于單片機(jī)的簡易時(shí)鐘設(shè)計(jì)畢業(yè)設(shè)計(jì)
《基于單片機(jī)的簡易時(shí)鐘設(shè)計(jì)畢業(yè)設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于單片機(jī)的簡易時(shí)鐘設(shè)計(jì)畢業(yè)設(shè)計(jì)(31頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 廣西理工職業(yè)技術(shù)學(xué)院 畢業(yè)設(shè)計(jì)(論文)說明書 題 目: 簡易電子時(shí)鐘設(shè)計(jì) 系 別: 電氣工程系 專業(yè)班級(jí): 11機(jī)電2 姓 名: 黃武錦 學(xué) 號(hào): 20112323 指導(dǎo)教師: 黎有好 二〇一三
2、年七月二十四日 目錄 1.概論 1 2.整體設(shè)計(jì)思路 2 2.1硬件各部分所能完成的功能 3 2.2系統(tǒng)工作原理 4 2.3時(shí)鐘各功能分析及圖解 4 2.4.1電路各功能圖解分析 4 2.4.2電路功能使用說明 7 3. 軟件設(shè)計(jì)思路 8 3.1 主程序模塊 8 3.2 數(shù)碼管動(dòng)態(tài)掃描模塊 9 3.3 當(dāng)前時(shí)間計(jì)時(shí)模塊 9 3.4 鬧鐘輸入輸出模塊 10 3.5 當(dāng)前時(shí)間調(diào)整模塊 12 3.6復(fù)位模塊 13 4.系統(tǒng)的調(diào)試和性能分析 14 4.1系統(tǒng)的調(diào)試方法 14 4.1.1輸入按鍵的調(diào)試 14 4.1.2復(fù)位電路的調(diào)試 14 4.1.3顯示電路的調(diào)
3、試 14 4.1.4整個(gè)系統(tǒng)的聯(lián)調(diào) 14 4.2心得體會(huì) 15 參考文獻(xiàn) 15 附錄 16 附錄A 系統(tǒng)原理圖 16 附錄B 程序源代碼 17 電氣信息學(xué)院課程設(shè)計(jì)評(píng)分表 28 1.概論 單片機(jī)系統(tǒng)作為一種典型的嵌入式系統(tǒng),其系統(tǒng)設(shè)計(jì)包括硬件電路設(shè)計(jì)和軟件編程設(shè)計(jì)兩個(gè)方面, 其調(diào)試過程一般分為軟件調(diào)試、硬件測試、系統(tǒng)調(diào)試3個(gè)過程。如果采用單片機(jī)系統(tǒng)的虛擬仿真軟件——Proteus,則不用制作具體的電路板也能夠完成以上工作。數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì)時(shí),分,秒,數(shù)字顯示的計(jì)時(shí)裝置,由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)
4、超過老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地?cái)U(kuò)展了鐘表的報(bào)時(shí)功能。數(shù)字鐘已成為人們?nèi)粘I钪械谋匦杵?,廣泛應(yīng)用于家庭、車站、碼頭、劇院、辦公室等場所,給人們的生活、學(xué)習(xí)、工作帶來極大的方便[4]。不僅如此,在現(xiàn)代化的進(jìn)程中,也離不開電子鐘的相關(guān)功能和原理,比如機(jī)械手的控制、家務(wù)的自動(dòng)化、定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、定時(shí)開關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。而且是控制的核心部分。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。 電子鐘在工業(yè)控制和日常生活中是很重要的,它不僅可
5、以用于計(jì)時(shí)、提醒又可用于對(duì)機(jī)器的控制,在自動(dòng)化的過程中必然有電子鐘的參與,因此電子鐘的應(yīng)用會(huì)越來越廣泛。而且向著精確、低功耗、多功能發(fā)展?;趩纹瑱C(jī)設(shè)計(jì)的數(shù)字鐘精確度較高, 因?yàn)樵诔绦虻膱?zhí)行過程中, 任何指令都不影響定時(shí)器的正常計(jì)數(shù),即便程序很長也不會(huì)影響中斷的時(shí)間。從而,使數(shù)字鐘的精度僅僅取決于單片機(jī)的產(chǎn)生機(jī)器周期電路和定時(shí)器硬件電路的精確度。另外,程序較為簡潔,具有可靠性和較好的可讀性。如果我們想將它應(yīng)用于實(shí)時(shí)控制之中,只要對(duì)上述程序和硬件電路稍加修改,便可以得到實(shí)時(shí)控制的實(shí)用系統(tǒng),從而應(yīng)用到實(shí)際工作與生產(chǎn)中去。 數(shù)字電子鐘的設(shè)計(jì)方法有多種,例如,可用中小規(guī)模集成電路組成電子鐘, 也可以
6、利用專用的電子鐘芯片配以顯示電路及其所需要的外圍電路組成電子鐘還可以利用單片機(jī)來實(shí)現(xiàn)電子鐘等等。這些方法都各有特點(diǎn), 其中,利用單片機(jī)實(shí)現(xiàn)的電子鐘具有編程靈活, 便于功能擴(kuò)充, 精確度高等特點(diǎn)。 2.整體設(shè)計(jì)思路 這部分主要介紹工作安排和整體設(shè)計(jì)的思想。工作過程規(guī)劃如下: 熟悉硬件了解各引腳功能 分塊設(shè)計(jì)各部分電路 完成整體電路圖 將分塊的電路組合 認(rèn)真學(xué)習(xí)單片機(jī)C語言 確定編程結(jié)構(gòu)和思路 綜合各程序完成整體程序 編輯各個(gè)程序模塊 用Proteus畫出電路圖 調(diào)試程序
7、,進(jìn)行修改 對(duì)仿真中出現(xiàn)的問題 進(jìn)行改正 畫出仿真圖進(jìn)行仿真 準(zhǔn)備器件、搭接電路 仿真成功 軟硬件結(jié)合,完成任務(wù)書要求 驗(yàn)證硬件電路 成功 對(duì)設(shè)計(jì)進(jìn)行總結(jié)和分析 圖2.1 整體設(shè)計(jì)思路 針對(duì)要實(shí)現(xiàn)的功能,擬采用AT89C51單片機(jī)進(jìn)行設(shè)計(jì),AT89C51 單片機(jī)是一款低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4KB在線可編程(ISP)的可反復(fù)擦寫1000次的Flash只讀程序存儲(chǔ)器,器件采用高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS- 51指令系統(tǒng)及8
8、0C51引腳結(jié)構(gòu)[7]。這樣,既能做到經(jīng)濟(jì)合理又能實(shí)現(xiàn)預(yù)期的功能。 在程序方面,采用分塊設(shè)計(jì)的方法,這樣既減小了編程難度、使程序易于理解,又能便于添加各項(xiàng)功能。程序可分為顯示程序、調(diào)時(shí)顯示運(yùn)用這種方法,關(guān)鍵在于各模塊的兼容和配合,若各模塊不匹配會(huì)出現(xiàn)意想不到的錯(cuò)誤。 本電子鐘設(shè)計(jì)主要是依照?qǐng)D2.1中的流程做出來的,時(shí)間分配比較均勻。首先,在編程之前必須了解硬件結(jié)構(gòu)尤其是各引腳的用法,以及內(nèi)部寄存器、存儲(chǔ)單元的用法,否則,編程無從下手,電路也無法設(shè)計(jì)。這是前期準(zhǔn)備工作。第二部分是硬件部分:依據(jù)想要的功能分塊設(shè)計(jì)設(shè)計(jì),比如輸入需要開關(guān)電路,輸出需要顯示驅(qū)動(dòng)電路和液晶電路等。第三部分是軟件部分:
9、先學(xué)習(xí)理解C語言的編程方法再根據(jù)設(shè)計(jì)的硬件電路進(jìn)行分塊的編程調(diào)試,最終完成程序設(shè)計(jì)。第四部分是軟件畫圖部分:設(shè)計(jì)好電路后進(jìn)行畫圖,包括電路圖和仿真圖的繪制。第五部分是軟件仿真部分:軟硬件設(shè)計(jì)好后將軟件載入芯片中進(jìn)行仿真,仿真無法完成時(shí)檢查軟件程序和硬件電路并進(jìn)行修改直到仿真成功。第六部分是硬件實(shí)現(xiàn)部分:連接電路并導(dǎo)入程序檢查電路,若與設(shè)計(jì)的完全一樣一般能實(shí)現(xiàn)想要的功能。 2.1硬件各部分所能完成的功能 (1)單片機(jī)發(fā)送的信號(hào)通過程序控制最終在數(shù)碼管上顯示出來。 (2)單片機(jī)通過輸出各種電脈沖信號(hào)來驅(qū)動(dòng)控制各部分正常工作。 (3)為使時(shí)鐘走時(shí)與標(biāo)準(zhǔn)時(shí)間一致,校時(shí)電路是必不可少的,鍵盤
10、用來校正數(shù)碼管上顯示的時(shí)間。 (4)單片機(jī)通過控制鬧鈴電路來完成定時(shí)鬧鐘的功能。 (5)單片機(jī)通過程序?qū)︳[鈴信號(hào)燈進(jìn)行控制,可方便我們對(duì)鬧鈴的開關(guān)以及是否在鬧鈴進(jìn)行觀察。 (6)由于要設(shè)置定時(shí)功能,所以配置了對(duì)鬧鐘設(shè)置的鍵盤。 2.2系統(tǒng)工作原理 設(shè)計(jì)的電路主要由四模塊構(gòu)成:時(shí)間顯示電路、信號(hào)顯示電路、鍵盤控制電路、外設(shè)鬧鈴電路以及核心控制電路 詳細(xì)電路功能圖如圖2-2: 圖2-2 詳細(xì)電路功能圖 本設(shè)計(jì)采用匯編語言程序設(shè)計(jì),使單片機(jī)控制數(shù)碼管顯示時(shí)、分、秒,當(dāng)秒計(jì)數(shù)計(jì)滿60時(shí)就向分進(jìn)位,分計(jì)數(shù)器計(jì)滿60后向時(shí)計(jì)數(shù)器進(jìn)位,小時(shí)計(jì)數(shù)器按“23翻0”規(guī)律計(jì)數(shù)。
11、時(shí)、分、秒的計(jì)數(shù)結(jié)果經(jīng)過數(shù)據(jù)處理可直接送顯示器顯示。設(shè)計(jì)采用的是時(shí)、分、秒顯示,單片機(jī)對(duì)數(shù)據(jù)進(jìn)行處理同時(shí)在數(shù)碼管上顯示。 2.3時(shí)鐘各功能分析及圖解 2.4.1電路各功能圖解分析 (1) 時(shí)鐘運(yùn)行圖 仿真開始運(yùn)行時(shí),或按下K7鍵時(shí),時(shí)鐘從00:00:00開始運(yùn)行,其中按下K1鍵可進(jìn)入當(dāng)前時(shí)間調(diào)節(jié),K2和K3分別負(fù)責(zé)加一和減一,K5鍵為確認(rèn)鍵。 時(shí)鐘運(yùn)行圖如圖 2-3 所示: 圖2-3 時(shí)鐘運(yùn)行圖 (2) 鬧鐘開關(guān)指示圖 當(dāng)按下K4鍵后,可進(jìn)入鬧鐘設(shè)時(shí)控制,設(shè)置完后按確認(rèn),按下K6,即開鬧鐘,信號(hào)顯示區(qū)得開/關(guān)鬧鐘信號(hào)燈點(diǎn)亮,表示當(dāng)時(shí)間到達(dá)鬧鐘的時(shí)間時(shí),鬧鈴響
12、;再次按下鬧鈴,為關(guān)鬧鈴,此時(shí)的信號(hào)顯示區(qū)得開/關(guān)鬧鐘信號(hào)燈熄滅。如下圖2-4: 圖2-4鬧鐘開關(guān)指示圖 (3)鬧鈴運(yùn)行圖 當(dāng)時(shí)間到達(dá)鬧鐘設(shè)置的時(shí)間時(shí),蜂鳴器會(huì)按每秒兩次的頻率響,鬧鐘指示燈也會(huì)閃爍。如下圖2-5: 圖2-5鬧鈴運(yùn)行圖 該數(shù)字鐘是用一片AT89C51單片機(jī)通過編程去驅(qū)動(dòng)8個(gè)數(shù)碼管實(shí)現(xiàn)的。通過7個(gè)開關(guān)控制,從上到下7個(gè)開關(guān)K1-K7的功能分別為: K1:設(shè)置當(dāng)前時(shí)間時(shí)/分/秒 K2:加一按鍵 K3:減一按鍵 K4:設(shè)置鬧鐘時(shí)間時(shí)/分/秒 K5: 確認(rèn)/關(guān)閉鬧鈴 K6:開/關(guān)鬧鐘 K7: 復(fù)
13、位 控制鍵分別與P1.0~P1.6口連接,通過P2口和P3口去控制數(shù)碼管的顯示如圖所示P2口接數(shù)碼管的a——g端,是控制輸出編碼,P3口接數(shù)碼管的1——8端,是控制動(dòng)態(tài)掃描輸出. 從P3.6輸出一個(gè)信號(hào)使二極管發(fā)光,二極管在設(shè)置的鬧鐘時(shí)間到了時(shí)候發(fā)光,P3.7接一個(gè)蜂鳴器,若有樂曲可以去驅(qū)動(dòng)揚(yáng)聲器實(shí)現(xiàn)。 2.4.2電路功能使用說明 (1) 各個(gè)控制鍵的功能:可對(duì)時(shí)間進(jìn)行校準(zhǔn)調(diào)節(jié)(只能加1);按下設(shè)置鍵數(shù)字時(shí)鐘進(jìn)入鬧鐘設(shè)置狀態(tài),設(shè)置鬧鐘的時(shí)間;時(shí)加1、分加1鍵是在校準(zhǔn)時(shí)間時(shí)或設(shè) 置鬧鐘時(shí)間對(duì)小時(shí)數(shù)或分鐘數(shù)調(diào)節(jié)而設(shè)置的;按下秒切換鍵就可以進(jìn)入秒表模式,同時(shí)秒表也開始計(jì)時(shí),按下秒表暫停、
14、復(fù)位鍵就暫停、歸零,如果要重新對(duì)秒計(jì)時(shí)則可以按秒表開始、復(fù)位;清零鍵可以對(duì)鬧鐘清零。 (2)AT89C51單片機(jī),通過編寫程序?qū)?shù)碼顯示進(jìn)行控制。 (3) 八個(gè)7段數(shù)碼管顯示時(shí)鐘信號(hào)。 3. 軟件設(shè)計(jì)思路 根據(jù)設(shè)計(jì)的要求與內(nèi)容,我們將該軟件設(shè)計(jì)成七個(gè)模塊,他們包括:主程序、數(shù)碼管動(dòng)態(tài)掃描模塊、當(dāng)前時(shí)間計(jì)時(shí)模塊、鬧鐘輸入輸出模塊、當(dāng)前時(shí)間調(diào)整模塊、數(shù)制轉(zhuǎn)換模塊以及復(fù)位模塊。 3.1 主程序模塊 主程序模塊是單片機(jī)最先編譯運(yùn)行的模塊,所以在這個(gè)模塊里,我們要設(shè)置主程序和各個(gè)中斷
15、服務(wù)程序的入口地址、各種初始化以及開關(guān)掃描等。 MCS-51系列單片機(jī)復(fù)位后,(PC)=0000H,而0003H~002BH分別為各中斷的入口地址。所以,編程時(shí)應(yīng)在0000H處寫一條跳轉(zhuǎn)指令。當(dāng)CPU接受到中斷請(qǐng)求信號(hào)并予以相應(yīng)后,CPU把當(dāng)前的PC內(nèi)容壓入棧中進(jìn)行保護(hù),然后轉(zhuǎn)入相應(yīng)的只能中斷服務(wù)程序入口處執(zhí)行。一般應(yīng)在相應(yīng)的中斷服務(wù)程序入口處寫一條跳轉(zhuǎn)指令,并以跳轉(zhuǎn)指令的目標(biāo)地址作為中斷服務(wù)程序的起始地址進(jìn)行編程。 初始化,是對(duì)將要用到的MCS-51系列單片機(jī)內(nèi)部部件或擴(kuò)展芯片進(jìn)行初始工作狀態(tài)設(shè)定。 下圖3-1是我們?cè)O(shè)計(jì)該主程序模塊的程序框圖。 圖3-1主程序設(shè)計(jì)框圖 3.
16、2 數(shù)碼管動(dòng)態(tài)掃描模塊 在數(shù)碼管動(dòng)態(tài)掃描模塊里,包含了兩個(gè)子程序,一個(gè)是顯示子程序,另一個(gè)是顯示延時(shí)1MS子程序。其中顯示延時(shí)1MS子程序是用軟件延時(shí)的方法進(jìn)行的,過程較簡單,這里就不畫出它的程序框圖,下圖3-2為顯示子程序的程序框圖。 圖3-2顯示子程序 3.3 當(dāng)前時(shí)間計(jì)時(shí)模塊 本軟件中的當(dāng)前時(shí)間計(jì)時(shí)模塊實(shí)際上是T0定時(shí)器的中斷服務(wù)程序,我們將T0定時(shí)器工作在方式一中,并讓它每50MS產(chǎn)生一次中斷。 每產(chǎn)生一次中斷,進(jìn)入中斷服務(wù)程序后,T0定時(shí)器重新轉(zhuǎn)載初始值。MS50(它是對(duì)50MS中斷次數(shù)統(tǒng)計(jì)的存儲(chǔ)單元地址標(biāo)號(hào))就會(huì)自加一,接著對(duì)MS50進(jìn)行判斷,如果MS50沒有到達(dá)
17、20次(即一秒的時(shí)間),就返回到主程序。如果到達(dá)20次,MS50將清零,并將MIAO(MIAO是對(duì)秒進(jìn)行計(jì)數(shù)的存儲(chǔ)單元地址標(biāo)號(hào))將自加一。接著判斷MIAO是否到達(dá)60次,沒到就返回,到了60秒,MIAO將被清零,F(xiàn)EN(FEN是對(duì)分進(jìn)行計(jì)數(shù)的存儲(chǔ)單元地址標(biāo)號(hào))自加一。再判斷FEN,過程與判斷MIAO相識(shí),也是到達(dá)60分就進(jìn)1時(shí)并對(duì)分清零,時(shí)的寄存器地址標(biāo)號(hào)是SHI,因?yàn)橐惶熘挥?4小時(shí),所以,如果SHI計(jì)數(shù)到了24時(shí),它將對(duì)SHI、FEN、MIAO同時(shí)清零。 下圖3-3為該中斷服務(wù)的程序框圖 圖3-3T0中斷服務(wù)程序 3.4 鬧鐘輸入輸出模塊 由于鬧鐘輸入輸出模塊要實(shí)現(xiàn)的功
18、能較多,所以它是我們?cè)撥浖性O(shè)計(jì)耗時(shí)最長的一個(gè)模塊,也是最復(fù)雜的一個(gè)模塊。而我們對(duì)其采取再分子模塊策略,我們對(duì)該模塊劃分了6個(gè)子模塊:設(shè)置鬧鐘時(shí)間子模塊、鬧鐘開關(guān)子模塊、檢查鬧鐘子模塊、鬧鐘指示燈亮子模塊、鬧鐘轉(zhuǎn)換子模塊、蜂鳴器子模塊。下面將逐個(gè)說明各個(gè)子模塊的功能。 設(shè)置鬧鐘時(shí)間子模塊:該模塊實(shí)現(xiàn)的功能是,當(dāng)設(shè)置鬧鐘時(shí)間的鍵盤被按下時(shí),則進(jìn)入該子模塊,通過對(duì)各個(gè)指定按鍵的操作來實(shí)現(xiàn)鬧鐘時(shí)間的設(shè)置。 鬧鐘開關(guān)子模塊:該模塊實(shí)現(xiàn)的功能是,對(duì)鬧鐘的工作狀態(tài)進(jìn)行開關(guān),當(dāng)為開時(shí),鬧鐘時(shí)間到后,鬧鐘指示燈會(huì)亮以及蜂鳴器會(huì)響;當(dāng)為關(guān)時(shí),即便鬧鐘時(shí)間到了,鬧鐘指示燈不會(huì)亮以及蜂鳴器不會(huì)響。 檢查鬧鐘子
19、模塊:該模塊實(shí)現(xiàn)的功能是,它是在主程序中被循環(huán)調(diào)用的,每調(diào)用一次,它會(huì)把當(dāng)前時(shí)間與鬧鐘時(shí)間進(jìn)行比較,如果當(dāng)前時(shí)間與鬧鐘時(shí)間相同且鬧鐘開關(guān)為開,則調(diào)用鬧鐘指示燈亮子模塊和蜂鳴器子模塊;否則繼續(xù)運(yùn)行主程序。 鬧鐘指示燈亮子模塊:該模塊的功能是,當(dāng)時(shí)間到時(shí),它將使鬧鐘指示燈以每秒兩次的頻率閃爍,閃爍三十秒后熄滅。 蜂鳴器子模塊:該模塊的功能是,當(dāng)時(shí)間到時(shí),它將使鬧鐘指示燈以每秒兩次的頻率響,響三十秒后停止響聲。 鬧鐘轉(zhuǎn)換子模塊:由于在寄存器中存儲(chǔ)的是十六進(jìn)制的數(shù),不能存儲(chǔ)十進(jìn)制的數(shù),且我們用的LED燈是共陽極的,所以在要輸出顯示鬧鐘的時(shí)間前,要進(jìn)行鬧鐘數(shù)制轉(zhuǎn)換。故該模塊的功能是實(shí)現(xiàn)對(duì)鬧鐘時(shí)間寄
20、存器中的內(nèi)容進(jìn)行數(shù)制轉(zhuǎn)換。 對(duì)鬧鐘設(shè)計(jì)成六個(gè)子模塊,使我們更容易得設(shè)計(jì)出鬧鐘所要實(shí)現(xiàn)的功能,這也就是模塊化的好處,將一個(gè)大型的問題劃分為若干個(gè)小問題,對(duì)這若干小問題進(jìn)行設(shè)計(jì),最好通過參數(shù)把這些小模塊連成一個(gè)大的模塊,從而解決問題。下圖3-4是對(duì)這六個(gè)模塊之間的聯(lián)系的描述。 圖3-4 鬧鐘輸入輸出模塊 3.5 當(dāng)前時(shí)間調(diào)整模塊 當(dāng)前時(shí)間調(diào)整模塊是用來按用戶的需要對(duì)當(dāng)前所顯示的時(shí)間進(jìn)行設(shè)置,本軟件的設(shè)計(jì)思路是通過對(duì)相關(guān)的時(shí)間設(shè)置按鍵的掃描進(jìn)行時(shí)間設(shè)置。具體思路如下圖3-5: 圖3-5 時(shí)間調(diào)整模塊 3.6復(fù)位模塊 復(fù)位模塊是對(duì)當(dāng)前時(shí)
21、間和鬧鐘時(shí)間進(jìn)行復(fù)位,復(fù)位后的結(jié)果是當(dāng)前時(shí)間變?yōu)?0-00-00,鬧鐘時(shí)間變?yōu)?0-00-00。由于該模塊較為簡單,就不展示其設(shè)計(jì)思路了。就將其結(jié)果仿真圖展示如下圖3-6。 圖3-6復(fù)位結(jié)果圖 4.系統(tǒng)的調(diào)試和性能分析 4.1系統(tǒng)的調(diào)試方法 整個(gè)系統(tǒng)調(diào)試的主要思想是:先每個(gè)模塊進(jìn)行調(diào)試,然后整個(gè)系統(tǒng)一起調(diào)試。先軟硬件分開調(diào)試,然后一起調(diào)試。遵循先部分后整體的原則。 系統(tǒng)的在調(diào)試過程中要注意以下幾點(diǎn): (1)硬件電路焊完之后,在上電之前一定要先用萬用表檢測電源和地之間是否短路。 (2)上電之后要用示波器觀察信號(hào)的在電路中變化的情況,與
22、設(shè)計(jì)當(dāng)初的情況相比較,找出差別,并進(jìn)行分析。 (3)軟件調(diào)試過程中可以使用斷點(diǎn)、單步執(zhí)行等常用的方法。 (4)軟硬件聯(lián)調(diào)時(shí),要注意軟件部分要一個(gè)功能一個(gè)功能的調(diào)試。 4.1.1輸入按鍵的調(diào)試 輸入按鍵的調(diào)試,只要按鍵按下去時(shí),按鍵有相應(yīng)的反應(yīng)就行,通過程序來判斷,單片機(jī)I/O是否能夠識(shí)別出。 4.1.2復(fù)位電路的調(diào)試 當(dāng)電源剛接通時(shí),接通電源就完成了系統(tǒng)的初始化。 4.1.3顯示電路的調(diào)試 在本設(shè)計(jì)中,顯示電路只需完成,當(dāng)輸入數(shù)字時(shí)能正確顯示數(shù)字。 4.1.4整個(gè)系統(tǒng)的聯(lián)調(diào) 在系統(tǒng)各個(gè)部分都調(diào)試完畢之后,即可以進(jìn)行整個(gè)系統(tǒng)的調(diào)試。由于前面各個(gè)部分的調(diào)試做的都比較
23、充分,所以在實(shí)際調(diào)試過程中,能夠較順利的實(shí)現(xiàn)整個(gè)系統(tǒng)預(yù)期的功能。 4.2心得體會(huì) 課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域, 在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握單片機(jī)的開發(fā)技術(shù)是十分重要的。 回顧起此次單片機(jī)課程設(shè)計(jì),我仍感慨頗多,的確,從選題到定稿,從理論到實(shí)踐,在這兩個(gè)星期的日子里,可以說得是苦多于甜,但是可以學(xué)到很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)
24、到過的知識(shí)。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會(huì)遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固,比如說不懂一些元器件的使用方法,對(duì)單片機(jī)匯編語言掌握得不好……通過這次課程設(shè)計(jì)之后,一定把以前所學(xué)過的知識(shí)重新溫故。 這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多編程問題,最后在老師的辛勤指導(dǎo)下,終于游逆
25、而解。同時(shí),在老師那里我學(xué)得到很多實(shí)用的知識(shí),在次我表示感謝! 參考文獻(xiàn) 1、《單片機(jī)原理及應(yīng)用》李建忠 編 西安電子科技大學(xué)出版社 2、《單片微型計(jì)算機(jī)原理與接口技術(shù)》 高峰 編 電子工業(yè)出版社 3、《單片機(jī)應(yīng)用新技術(shù)教程》鄒逢興 編 高等教育出版社 4、《16位微型計(jì)算機(jī)原理接口及其應(yīng)用》 朱宇光 編 電子工業(yè)出版社 5、《微型計(jì)算機(jī)原理與接口技術(shù)》 吳秀清 編 中國科學(xué)技術(shù)出版社 6、《微型計(jì)算機(jī)接口技術(shù)》 鄧亞平 編 清華大學(xué)出版社 7、《單片機(jī)原理及及應(yīng)用》 王迎旭 編 機(jī)械工業(yè)出版社 附錄 附錄A 系統(tǒng)原理圖 附錄B
26、程序源代碼 MS50 EQU 30H SHI EQU 31H FEN EQU 32H MIAO EQU 33H BUF EQU 34H HH EQU 40H FF EQU 41H MM EQU 42H DENG BIT P3.5 BIAOZ BIT P3.6 SPK BIT P3.7 ALB EQU 20H.0 K1 BIT P1.0 K2 BIT P1.1 K3 BIT P1.2 K4 BIT P1.3 K5 BIT P1.
27、4 K6 BIT P1.5 K7 BIT P1.6 MOV SP,#60H ;-------------------------------------------- ORG 00H AJMP MAIN ORG 0BH AJMP TIME0 MAIN: SETB DENG CLR ALB ACALL CHUSHI ACALL INTO LOOP: ACALL NAOPRO ACALL CONV
28、 ACALL DISPLAY JB K6,LOOP1 ACALL BIAO SJMP LOOP LOOP1: JB K1,LOOP2 ACALL SETTIME SJMP LOOP LOOP2: JB K4,LOOP3 ACALL SETNAO SJMP LOOP LOOP3: JB K7,LOOP ACALL RST SJMP LOOP ;--------------------
29、------------------------------------ CONV: ;轉(zhuǎn)換子程序 MOV A,SHI ;轉(zhuǎn)換小時(shí) 存到34 35H MOV B,#10 DIV AB MOV DPTR,#TAB MOVC A,@A+DPTR MOV BUF,A MOV A,B MOVC A,@A+DPTR MOV BUF+1,A MOV A,FEN ;轉(zhuǎn)換分
30、 存到37 38H MOV B,#10 DIV AB MOV DPTR,#TAB MOVC A,@A+DPTR MOV BUF+3,A MOV A,B MOVC A,@A+DPTR MOV BUF+4,A MOV A,MIAO ;轉(zhuǎn)換秒 存到40 41H MOV B,#10 DIV AB MOV DPTR,#TAB MOVC A,@A+DPT
31、R MOV BUF+6,A MOV A,B MOVC A,@A+DPTR MOV BUF+7,A MOV BUF+2,#0BFH ;第三個(gè)位置顯示一杠 MOV BUF+5,#0BFH ;第五個(gè)位置顯示一杠 RET TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;陽碼表 ;---------------------------------------------------
32、---------------- DISPLAY: ;顯示子程序 MOV R1,#BUF MOV A,#01H MOV R2,#8 Dp1:MOV P2,A PUSH ACC MOV A,@R1 MOV P0,A ACALL DELAY POP ACC RL A INC R1 CJNE R1,#BUF+8,DY MOV R1,#BUF DY:
33、 DJNZ R2,Dp1 RET ;------------------------------------------------------------------ BIAO: CPL ALB ;鬧鐘開關(guān) CPL BIAOZ BIAO1: ACALL CONV ACALL DISPLAY JNB K6,BIAO1 RET ;--------------------------------------------------------------------- SETTIME:
34、 ;設(shè)置時(shí)間 CLR TR0 TT: ACALL DISPLAY ;設(shè)置小時(shí) TS: JNB K1,TT TSS: ACALL DISPLAYS JNB K1,TF JNB K2,JIAS JNB K3,JIANS JNB K5,QUE SJMP TSS JIAS: INC SHI ;加時(shí)子程序 MOV A,SHI CJNE A,#24,K2S MOV SH
35、I,#0 K2S: ACALL CONV ACALL DISPLAY JNB K2,K2S SJMP TSS JIANS: DEC SHI ;減時(shí)子程序 MOV A,SHI CJNE A,#255,K3S MOV SHI,#23 K3S: ACALL CONV ACALL DISPLAY JNB K3,K3S SJMP TSS QUE: ACALL BZ
36、 SETB TR0 QQ: ACALL CONV ACALL DISPLAY JNB K5,QQ LJMP LOOP ;------------------------------------------------ TM: ACALL DISPLAY ;設(shè)置秒 JNB K1,TM TMM: ACALL DISPLAYM JNB K1,TS JNB K2,JIAM JNB K3,JIANM JNB K5,QUE JMP TMM J
37、IAM: INC MIAO ;加秒 MOV A,MIAO CJNE A,#60,K2M MOV MIAO,#0 K2M: ACALL CONV ACALL DISPLAY JNB K2,K2M JMP TMM JIANM: DEC MIAO ;減秒 MOV A,MIAO CJNE A,#255,K3M MOV MIAO,#59 K3M: ACALL CONV ACALL DISPLAY JNB K3,K3M
38、 JMP TMM ;------------------------------------------------------------- TF: ACALL DISPLAY ;設(shè)置分鐘 JNB K1,TF TFF: ACALL DISPLAYF JNB K1,TM JNB K2,JIAF JNB K3,JIANF JNB K5,QUE JMP TFF JIAF: INC FEN ;加分鐘 MOV A,FEN CJN
39、E A,#60,K2F MOV FEN,#0 K2F: ACALL CONV ACALL DISPLAY JNB K2,K2F JMP TFF JIANF: DEC FEN ;減分鐘 MOV A,FEN CJNE A,#255,K3F MOV FEN,#59 K3F: ACALL CONV ACALL DISPLAY JNB K3,K3F JMP TFF ;-----
40、------------------------------------------------------- DISPLAYS: ;時(shí)閃子程序 MOV R3,#20 DISS: MOV R1,#BUF+2 MOV A,#04H MOV R2,#6 ACALL DP1 DJNZ R3,DISS MOV R3,#20 DIS2: MOV R1,#BUF MOV A,#01H
41、 MOV R2,#8 ACALL DP1 DJNZ R3,DIS2 RET DISPLAYF: ;分閃子程序 MOV R3,#20 DISF: MOV R1,#BUF+5 MOV A,#20H MOV R2,#6 ACALL DP1 DJNZ R3,DISF MOV R3,#20 ACALL DIS2
42、 RET DISPLAYM: ;秒閃子程序 MOV R3,#20 DISM: MOV R1,#BUF MOV A,#01H MOV R2,#6 ACALL DP1 DJNZ R3,DISM MOV R3,#20 ACALL DIS2 RET ;------------------------------------------------- SET
43、NAO: ;設(shè)置鬧鐘時(shí)間 TTN: ACALL CONVNAO ACALL DISPLAY ;鬧設(shè)置小時(shí) TSN: JNB K4,TTN TSSN: ACALL DISPLAYS JNB K4,TFN JNB K2,JIASN JNB K3,JIANSN JNB K5,QUEN SJMP TSSN JIASN: INC HH ;鬧加時(shí)子程序 MOV
44、A,HH CJNE A,#24,K2SN MOV HH,#0 K2SN: ACALL CONVNAO ACALL DISPLAY JNB K2,K2SN SJMP TSSN JIANSN: DEC HH ;鬧減時(shí)子程序 MOV A,HH CJNE A,#255,K3SN MOV HH,#23 K3SN: ACALL CONVNAO ACALL DI
45、SPLAY JNB K3,K3SN SJMP TSSN QUEN: ACALL BZ SETB TR0 LJMP LOOP ;------------------------------------------------ TMN: ACALL CONVNAO ACALL DISPLAY ;鬧設(shè)置秒 JNB K4,TMN TMMN: ACALL DISPLAYM JNB K4,T
46、SN JNB K2,JIAMN JNB K3,JIANMN JNB K5,QUEN JMP TMMN JIAMN: INC MM ;鬧加秒 MOV A,MM CJNE A,#60,K2MN MOV MM,#0 K2MN: ACALL CONVNAO ACALL DISPLAY JNB K2,K2MN JMP TMMN JIANMN
47、: DEC MM ;鬧減秒 MOV A,MM CJNE A,#255,K3MN MOV MM,#59 K3MN: ACALL CONVNAO ACALL DISPLAY JNB K3,K3MN JMP TMMN ;------------------------------------------------------------- TFN: ACALL CONVNAO ACALL DISP
48、LAY ;鬧設(shè)置分鐘 JNB K4,TFN TFFN: ACALL DISPLAYF JNB K4,TMN JNB K2,JIAFN JNB K3,JIANFN JNB K5,QUEN JMP TFFN JIAFN: INC FF ;鬧加分鐘 MOV A,FF CJNE A,#60,K2FN MOV FF,#0 K2FN
49、: ACALL CONVNAO ACALL DISPLAY JNB K2,K2FN JMP TFFN JIANFN: DEC FF ;減分鐘 MOV A,FF CJNE A,#255,K3FN MOV FF,#59 K3FN: ACALL CONVNAO ACALL DISPLAY JNB K3,K3FN JMP TFFN ;-----------
50、---------------------------------- RST: ;復(fù)位 MOV SHI,#0 MOV FEN,#0 MOV MIAO,#0 MOV MS50,#0 RET ;--------------------------------------------- NAOPRO: ;檢查鬧鐘 JB ALB,TI3 RET TI3: MOV
51、A,SHI MOV B,HH CJNE A,B,BK MOV A,FEN MOV B,FF CJNE A,B,BK MOV A,MIAO MOV B,MM CJNE A,B,BK ACALL TIMEOUT BK: RET ;-------------------------------- CONVNAO: ;轉(zhuǎn)換子程序
52、 MOV A,HH ;轉(zhuǎn)換小時(shí) 存到34 35H MOV B,#10 DIV AB MOV DPTR,#TAB MOVC A,@A+DPTR MOV BUF,A MOV A,B MOVC A,@A+DPTR MOV BUF+1,A MOV A,FF ;轉(zhuǎn)換分
53、 存到37 38H MOV B,#10 DIV AB MOV DPTR,#TAB MOVC A,@A+DPTR MOV BUF+3,A MOV A,B MOVC A,@A+DPTR MOV BUF+4,A MOV A,MM ;轉(zhuǎn)換秒 存到40 41H MOV B,#10
54、 DIV AB MOV DPTR,#TAB MOVC A,@A+DPTR MOV BUF+6,A MOV A,B MOVC A,@A+DPTR MOV BUF+7,A MOV BUF+2,#10111111B ;第三個(gè)位置顯示一杠 MOV BUF+5,#10111111B ;第五個(gè)位置顯示一杠 RET ;---------------------------------- TIMEOUT: ;鬧鐘指
55、示燈亮 MOV R0,#30 X4: MOV R3,#2 X3: MOV R4,#10 X1: CPL DENG ACALL CONV JB K5,X9 SJMP X6 X9: ACALL DISPLAY DJNZ R4,X1 JB K5,X8 SJMP X6 X8: ACALL BZ DJNZ R3,X3 JB
56、K5,X7 SJMP X6 X7: MOV R4,#95 X2: CPL DENG ACALL CONV JB K5,X10 SJMP X6 X10: ACALL DISPLAY DJNZ R4,X2 DJNZ R0,X5 SETB DENG LJMP LOOP X5: JB K5,X4 X6: SETB DENG RET ;------------------------------
57、--------------- BZ: ;蜂鳴器 MOV R5,#100 BZ2: CPL SPK ACALL DELAYB DJNZ R5,BZ2 RET DELAYB: ;蜂鳴延時(shí)1MS MOV R6,#2 DLB: MOV R7,#98 DJNZ R7,$ DJNZ R6,DLB RET ;----------------------
58、----------------------------------- DELAY: ;顯示延時(shí)1MS MOV R6,#5 DL1: MOV R7,#98 DJNZ R7,$ DJNZ R6,DL1 RET ;------------------------------------------------------------ CHUSHI: ;設(shè)置初始時(shí)間 MOV SHI,#0
59、 MOV FEN,#0 MOV MIAO,#0 MOV MS50,#0 MOV HH,#0 ;鬧鐘初始值 MOV FF,#0 MOV MM,#0 RET ;------------------------------------------------------------ INTO: ;定時(shí)器T0初始化 MOV TMOD,#01H MOV TL0,#0B0H MOV T
60、H0,#3CH MOV IE,#82H SETB TR0 RET ;-------------------------------------------------------------------- TIME0: ;中斷服務(wù) PUSH ACC MOV TL0,#(65536-49980)MOD 256;考慮到軟件因素減少賦定時(shí)器為49980 MOV TH0,#(65536-49980)/256 INC MS50 MOV A,MS5
61、0 CJNE A,#20,TT1 MOV MS50,#0 INC MIAO MOV A,MIAO CJNE A,#60,TT1 MOV MIAO,#0 INC FEN MOV A,FEN CJNE A,#60,TT1 MOV FEN,#0 INC SHI MOV A,SHI CJNE A,#24,TT1 MOV SHI,#0 MOV FEN,#0 MOV MIAO,#0
62、TT1: POP ACC RETI END 電氣信息學(xué)院課程設(shè)計(jì)評(píng)分表 項(xiàng) 目 評(píng) 價(jià) 優(yōu) 良 中 及格 差 設(shè)計(jì)方案的合理性與創(chuàng)造性 軟件設(shè)計(jì)完成情況 硬件調(diào)試完成情況 設(shè)計(jì)說明書與設(shè)計(jì)圖紙質(zhì)量 答辯情況 獨(dú)立工作能力 完成任務(wù)情況 出勤情況 綜 合 評(píng) 分 指導(dǎo)教師簽名:_______________ 日 期:_______________ 30
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識(shí)競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案