單片機(jī)課程設(shè)計(jì)數(shù)字電子鐘_第1頁
單片機(jī)課程設(shè)計(jì)數(shù)字電子鐘_第2頁
單片機(jī)課程設(shè)計(jì)數(shù)字電子鐘_第3頁
單片機(jī)課程設(shè)計(jì)數(shù)字電子鐘_第4頁
單片機(jī)課程設(shè)計(jì)數(shù)字電子鐘_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、華東交通的大學(xué) 單片機(jī)技術(shù)課程設(shè)計(jì)說明書 數(shù) 字 電 子 鐘 系 、 部: 學(xué)生姓名: 指導(dǎo)教師: 專 業(yè): 班 級(jí): 完成時(shí)間: 摘要 本電子鐘采用ATMEL公司的AT89S52單片機(jī)為核心,使用12MHz 晶振與單片機(jī)AT89S52 相連接,通過軟件編程的方法實(shí)現(xiàn)以24小時(shí)為一個(gè)周期,同時(shí)8位7段LED數(shù)碼管(兩個(gè)四位一體數(shù)碼管)顯示小時(shí)、分鐘和秒的要求,并在計(jì)時(shí)過程中具有定時(shí)功能,當(dāng)時(shí)間到達(dá)提前定好的時(shí)間進(jìn)行蜂鳴報(bào)時(shí)。該電子鐘設(shè)有四個(gè)按鍵S1、S2、S3和S4鍵,進(jìn)行相應(yīng)的操作就可實(shí)現(xiàn)校時(shí)、定時(shí)、復(fù)位功能。具有時(shí)間顯示、整點(diǎn)報(bào)時(shí)、校正等功能。走時(shí)準(zhǔn)確、顯示直觀、精度、穩(wěn)定等優(yōu)點(diǎn)。整個(gè)過程

2、就是先設(shè)計(jì)和焊接好硬件電路,再通過匯編語言編寫應(yīng)用程序來實(shí)現(xiàn)我們需要的功能,這期間,進(jìn)行的軟件仿真和調(diào)試是本設(shè)計(jì)的重點(diǎn)和難點(diǎn)。關(guān)鍵詞 電子鐘; AT89S52;硬件設(shè)計(jì);軟件設(shè)計(jì) 1 引言單片機(jī)因?qū)⑵渲饕M成部分集成在一個(gè)芯片上而得名,就是把中央處理器、隨機(jī)存儲(chǔ)器、只讀存儲(chǔ)器、中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器以及I/O接口電路等部件集成在一個(gè)芯片上1。 單片機(jī)自20世紀(jì)70年代問世以來,以其極高的性能價(jià)格比,受到人們的重視和關(guān)注,應(yīng)用很廣、發(fā)展很快。單片機(jī)具有體積小、功能多、價(jià)格低廉、使用方便、系統(tǒng)設(shè)計(jì)靈活等優(yōu)點(diǎn)2。因此,它應(yīng)用廣泛前景美好,它的實(shí)用性大大地提高了我對(duì)畢業(yè)設(shè)計(jì)的興趣。在我國,單片機(jī)的開

3、發(fā)應(yīng)用已有15年左右,已經(jīng)形成一支龐大的技術(shù)開發(fā)隊(duì)伍,為我國單片機(jī)應(yīng)用積累了豐富的經(jīng)驗(yàn)。隨著電子技術(shù)、計(jì)算機(jī)芯片技術(shù)和微電子技術(shù)的飛速發(fā)展促進(jìn)了單片機(jī)技術(shù)一日千里的變化3。隨著半導(dǎo)體技術(shù)的飛速發(fā)展,以及移動(dòng)通信、網(wǎng)絡(luò)技術(shù)、多媒體技術(shù)在嵌入式系統(tǒng)設(shè)計(jì)中的應(yīng)用,單片機(jī)從4位、8位、16位到32位,其發(fā)展歷程一直受到廣大電子愛好者的極大關(guān)注。單片機(jī)功能越來越強(qiáng)大,價(jià)格卻不斷下降的優(yōu)勢(shì)無疑成為嵌入式系統(tǒng)方案設(shè)計(jì)的首選,同時(shí)單片機(jī)應(yīng)用領(lǐng)域的擴(kuò)大也使得更多人加入到基于單片機(jī)系統(tǒng)的開發(fā)行列中,推動(dòng)著單片機(jī)技術(shù)的創(chuàng)新進(jìn)步。然而傳統(tǒng)的單片機(jī)系統(tǒng)開發(fā)除了需要購置諸如仿真器、編程器、示波器等價(jià)格不菲的電子設(shè)備外,開

4、發(fā)過程也較繁瑣。來自英國Labcenter Electronics公司的Proteus軟件很好地詮釋了利用現(xiàn)代EDA工具方便快捷開發(fā)單片機(jī)系統(tǒng)的優(yōu)勢(shì)。它包括PROTEUS VSM(Virtual System Modelling)、PROTEUS PCB DESIGN兩大組成部分,在PC機(jī)上就能實(shí)現(xiàn)原理圖電路設(shè)計(jì)、電路分析與仿真、單片機(jī)代碼級(jí)調(diào)試與仿真、系統(tǒng)測(cè)試與功能驗(yàn)證以及形成PCB文件的完整嵌入式系統(tǒng)設(shè)計(jì)與研發(fā)過程。單片機(jī)系統(tǒng)作為一種典型的嵌入式系統(tǒng),其系統(tǒng)設(shè)計(jì)包括硬件電路設(shè)計(jì)和軟件編程設(shè)計(jì)兩個(gè)方面, 其調(diào)試過程一般分為軟件調(diào)試、硬件測(cè)試、系統(tǒng)調(diào)試3個(gè)過程。如果采用單片機(jī)系統(tǒng)的虛擬仿真軟件

5、Proteus,則不用制作具體的電路板也能夠完成以上工作。數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì)時(shí),分,秒,數(shù)字顯示的計(jì)時(shí)裝置,由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地?cái)U(kuò)展了鐘表的報(bào)時(shí)功能。數(shù)字鐘已成為人們?nèi)粘I钪械谋匦杵?,廣泛應(yīng)用于家庭、車站、碼頭、劇院、辦公室等場(chǎ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è)備、甚至各

6、種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。而且是控制的核心部分。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。電子鐘在工業(yè)控制和日常生活中是很重要的,它不僅可以用于計(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í)控

7、制之中,只要對(duì)上述程序和硬件電路稍加修改,便可以得到實(shí)時(shí)控制的實(shí)用系統(tǒng),從而應(yīng)用到實(shí)際工作與生產(chǎn)中去。數(shù)字電子鐘的設(shè)計(jì)方法有多種,例如,可用中小規(guī)模集成電路組成電子鐘, 也可以利用專用的電子鐘芯片配以顯示電路及其所需要的外圍電路組成電子鐘還可以利用單片機(jī)來實(shí)現(xiàn)電子鐘等等。這些方法都各有特點(diǎn), 其中,利用單片機(jī)實(shí)現(xiàn)的電子鐘具有編程靈活, 便于功能擴(kuò)充, 精確度高等特點(diǎn)5?;谝陨戏治?,在此次設(shè)計(jì)中,我選擇的是利用單片機(jī)制作電子鐘。電子鐘的設(shè)計(jì)本身包括程序的設(shè)計(jì)和硬件電路的設(shè)計(jì)6。我的思路是,先進(jìn)行電路的整體設(shè)計(jì),再根據(jù)電路進(jìn)行編程,在編程的過程中,對(duì)電路進(jìn)行微調(diào),以更好地配合程序。在設(shè)計(jì)完成后,

8、進(jìn)行程序調(diào)試,調(diào)試軟件選擇MedWin,調(diào)試成功后,再根據(jù)電路圖畫出仿真圖,將軟件裝入單片機(jī)芯片,利用Proteus軟件進(jìn)行仿真,仿真中的錯(cuò)誤通過改正程序中的邏輯錯(cuò)誤和電路中的設(shè)計(jì)不當(dāng)進(jìn)行排除,這個(gè)過程是很艱難的但也是很重要的。若仿真可以實(shí)現(xiàn),則硬件電路的實(shí)現(xiàn)就可以有條不紊地進(jìn)行。目 錄1 設(shè)計(jì)課題任務(wù)、功能要求說明及方案介紹11.1 設(shè)計(jì)課題任務(wù)11.2 功能要求說明11.3 設(shè)計(jì)總體方案介紹及原理說明12 設(shè)計(jì)課題硬件系統(tǒng)的設(shè)計(jì)22.1 設(shè)計(jì)課題硬件系統(tǒng)各模塊功能簡要介紹22.2 設(shè)計(jì)課題電路原理圖、元器件布局圖 22.3 設(shè)計(jì)課題元器件清單33 設(shè)計(jì)課題軟件系統(tǒng)的設(shè)計(jì)43.1 設(shè)計(jì)課題使

9、用單片機(jī)資源的情況43.2 設(shè)計(jì)課題軟件系統(tǒng)各模塊功能簡要介紹43.3 設(shè)計(jì)課題軟件系統(tǒng)程序流程框圖43.4 設(shè)計(jì)課題軟件系統(tǒng)程序清單84 設(shè)計(jì)結(jié)論、仿真結(jié)果、誤差分析、教學(xué)建議94.1 設(shè)計(jì)課題的設(shè)計(jì)結(jié)論及使用說明94.2 設(shè)計(jì)課題的仿真結(jié)果94.3 設(shè)計(jì)課題的誤差分析104.4 設(shè)計(jì)體會(huì)104.5 教學(xué)建議10參考文獻(xiàn) 12致 謝 13附 錄 141 設(shè)計(jì)課題任務(wù)、功能要求說明及方案介紹1.1 設(shè)計(jì)課題任務(wù)設(shè)計(jì)一個(gè)具有特定功能的電子鐘。具有時(shí)間顯示、報(bào)時(shí)等功能。并有時(shí)間設(shè)定,時(shí)間調(diào)整功能。1.2 功能要求說明設(shè)計(jì)一個(gè)具有特定功能的電子鐘。該電子鐘上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P.”

10、, 進(jìn)入時(shí)鐘準(zhǔn)備狀態(tài);第一次按電子鐘啟動(dòng)/調(diào)整鍵,電子鐘從0時(shí)0分0秒開始運(yùn)行,進(jìn)入時(shí)鐘運(yùn)行狀態(tài);再次按電子鐘啟動(dòng)/調(diào)整鍵,則電子鐘進(jìn)入時(shí)鐘調(diào)整狀態(tài),此時(shí)可利用各調(diào)整鍵調(diào)整時(shí)間,調(diào)整結(jié)束后可按啟動(dòng)/調(diào)整鍵再次進(jìn)入時(shí)鐘運(yùn)行狀態(tài)。1.3 設(shè)計(jì)課題總體方案介紹及工作原理說明1.3.1 整體設(shè)計(jì)思路這部分主要介紹工作安排和整體設(shè)計(jì)的思想。工作過程規(guī)劃如下:熟悉硬件 了解各引腳功能分塊設(shè)計(jì)各部分電路將分塊的電路組合認(rèn)真學(xué)習(xí)單片機(jī)匯編語言完成整體電路圖確定變成結(jié)構(gòu)和思路綜合各程序完成整體程序編輯各個(gè)程序模塊用Proteus畫出電路圖調(diào)試程序,進(jìn)行修改對(duì)仿真中出現(xiàn)的問題進(jìn)行改正畫出仿真圖進(jìn)行仿真準(zhǔn)備器件、搭

11、接電路仿真成功軟硬件結(jié)合,完成任務(wù)書要求驗(yàn)證硬件電路成功進(jìn)行擴(kuò)展圖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)及80C51引腳結(jié)構(gòu)7。這樣,既能做到經(jīng)濟(jì)合理又能實(shí)現(xiàn)預(yù)期的功能。在程序方面,采用分塊設(shè)計(jì)的方法,這樣既減小了編程難度、使程序易于理解,又能便于添加各項(xiàng)功能。程序可分為鬧鐘的聲音程序、顯示程序、鬧鐘顯示程序、調(diào)時(shí)顯示、定時(shí)程序。運(yùn)用這種方法,關(guān)鍵在

12、于各模塊的兼容和配合,若各模塊不匹配會(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)電路和數(shù)碼管電路等。第三部分是軟件部分:先學(xué)習(xí)理解匯編語言的編程方法再根據(jù)設(shè)計(jì)的硬件電路進(jìn)行分塊的編程調(diào)試,最終完成程序設(shè)計(jì)。第四部分是軟件畫圖部分:設(shè)計(jì)好電路后進(jìn)行畫圖,包括電路圖和仿真圖的繪制。第五部分是軟件仿真部分:軟硬件設(shè)計(jì)好后將軟件載入芯片中

13、進(jìn)行仿真,仿真無法完成時(shí)檢查軟件程序和硬件電路并進(jìn)行修改直到仿真成功。第六部分是硬件實(shí)現(xiàn)部分:連接電路并導(dǎo)入程序檢查電路,若與設(shè)計(jì)的完全一樣一般能實(shí)現(xiàn)想要的功能。最后進(jìn)行功能擴(kuò)展,本設(shè)計(jì)加進(jìn)了日期顯示與調(diào)整功能。本電子鐘主要由單片機(jī)、4*1獨(dú)立鍵盤、顯示接口電路和復(fù)位電路構(gòu)成,設(shè)計(jì)課題的總體方案如圖1.1所示: 圖1.1 總體設(shè)計(jì)方案圖本電子鐘的所有的軟件、參數(shù)均存放在AT89S52的Flash ROM和內(nèi)部RAM中,減少了芯片的使用數(shù)量簡化了整體電路也降低了整機(jī)的工作電流。由于AT89S52芯片內(nèi)部Flash ROM有8KB,RAM有256個(gè)字節(jié),故軟件下載編譯時(shí)有足夠的存儲(chǔ)空間。鍵盤采用動(dòng)

14、態(tài)掃描方式。利用單片機(jī)定時(shí)器及計(jì)數(shù)器產(chǎn)生定時(shí)效果通過編程形成數(shù)字鐘效果,再利用數(shù)碼管動(dòng)態(tài)掃描顯示單片機(jī)內(nèi)部處理的數(shù)據(jù),同時(shí)通過端口讀入當(dāng)前外部控制狀態(tài)來改變程序的不同狀態(tài),實(shí)現(xiàn)不同功能。2 設(shè)計(jì)課題硬件系統(tǒng)的設(shè)計(jì)2.1 設(shè)計(jì)課題硬件系統(tǒng)各模塊功能簡要介紹本設(shè)計(jì)的硬件系統(tǒng)主要采用以下基本模塊來實(shí)現(xiàn),單片機(jī)最小系統(tǒng)模塊,輸入模塊、輸出模塊、電源模塊。(1)單片機(jī)最小系統(tǒng)模塊:包括低功耗、高性能CMOS8位微控制器AT89S52;復(fù)位電路;晶振電路。本本模塊AT89S52系統(tǒng)控制核心,單片機(jī)系統(tǒng)復(fù)位由復(fù)位電路完成,單片機(jī)內(nèi)部有一個(gè)高增益、反相放大器,其輸入端為芯片引腳XTAL1,其輸出端位位引腳XT

15、AL2。通過這兩個(gè)引腳在芯片外并接石英晶體振蕩器和兩只電容。這樣就構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。 (2)輸入模塊:本模塊共用到了5個(gè)按鍵,1個(gè)電源開關(guān),一個(gè)復(fù)位鍵,單片機(jī)運(yùn)行期間,利用按鍵完成復(fù)位操作。3個(gè)按鍵獨(dú)立式鍵盤,S1鍵控制電子鐘的啟動(dòng)狀態(tài),S2鍵為加1鍵,S3鍵為減1鍵。且S1、S2、S3任一鍵都獨(dú)自連一個(gè)I/O(P1.0、P1.1、P1.2)口線,說明它們可以獨(dú)立實(shí)現(xiàn)相應(yīng)的電子鐘功能。(3)輸出模塊:本次設(shè)計(jì)顯示為8位,采用兩個(gè)四位一體數(shù)碼管(共陽極)作為顯示窗口,既可以節(jié)約成本又能簡化電路。數(shù)碼管驅(qū)動(dòng)為74LS245芯片。(4)電源模塊:現(xiàn)在市面上銷售的編程器有很多都是由PC機(jī)的US

16、B口直接供電為了降低本設(shè)計(jì)的成本及節(jié)省設(shè)計(jì)時(shí)間,沒有另外設(shè)計(jì)編程器,而直接購買了市場(chǎng)上的USB供電及下載器。2.2 設(shè)計(jì)課題電路原理圖、PCB圖、元器件布局圖設(shè)計(jì)課題電路原理圖,見附錄二;設(shè)計(jì)課題電路的PCB圖,見附錄三;設(shè)計(jì)課題電路的元器件布局圖,見附錄四;2.3 設(shè)計(jì)課題元器件清單設(shè)計(jì)課題元器件清單如表2.1所示。表2.1 設(shè)計(jì)所用元器件清單名稱數(shù)量參數(shù)電阻5個(gè)1K共陽數(shù)碼管2個(gè)4位一體電阻4個(gè)4.7kISP下載口插座1個(gè)普通插座1個(gè)40PIN電阻8個(gè)470電阻5個(gè)200按鍵5個(gè)插針1排40PIN鎖緊插座1個(gè)40PIN驅(qū)動(dòng)一套74ls245USB供電接口及供電線一套晶振及其插座一套12MH

17、z電容2個(gè)30pF極性電容1個(gè)22F排阻1個(gè)10K芯片1塊AT89S52發(fā)光二極管1個(gè)六角開關(guān)1個(gè)電容 各1個(gè)470f、104P銅柱 (帶螺母)4個(gè)3 設(shè)計(jì)課題軟件系統(tǒng)的設(shè)計(jì)3.1 設(shè)計(jì)課題使用單片機(jī)資源的情況設(shè)計(jì)課題使用單片機(jī)資源的情況如下:P0口輸出數(shù)碼管段選信號(hào),P3口輸出數(shù)碼管位選信號(hào);晶振11.0592M;調(diào)整選擇鍵SET_KEY:P1.0;通過選擇鍵選擇調(diào)整位,選中位閃爍;增加鍵ADD_KEY:P1.1;按一次使選中位加1;減少鍵DEC_KEY:P1.2;按一次使選中位減1;P2.1為蜂鳴器發(fā)聲報(bào)時(shí);50H-5FH;16個(gè)寄存器單元作為顯示單元; 50H 用于控制秒基準(zhǔn)時(shí)鐘源的產(chǎn)生

18、;51H 清零秒寄存器;52H 清零分寄存器;53H 清零時(shí)寄存器;5FH 用于秒個(gè)位;5EH 用于秒十位;5DH 用于分個(gè)位;5CH 用于分十位;5BH 用于時(shí)個(gè)位;5AH 用于時(shí)十位;54H 用于控制調(diào)時(shí)閃爍;堆棧棧底:70H。3.2 設(shè)計(jì)課題軟件系統(tǒng)個(gè)模塊功能簡要介紹 本設(shè)計(jì)的軟件系統(tǒng)主要采用以下基本模塊來實(shí)現(xiàn),主程序、中斷服務(wù)程序、鍵盤輸入程序模塊、數(shù)碼管及其驅(qū)動(dòng)模塊和延時(shí)模塊。主程序:主要是用于對(duì)輸入信號(hào)的處理、輸出信號(hào)的控制和對(duì)各個(gè)功能程序模塊的運(yùn)用及其控制。中斷服務(wù)程序:主要是用于電子鐘的準(zhǔn)確運(yùn)行、數(shù)據(jù)輸入過程中的閃爍。鍵盤輸入程序模塊:主要是用于確定按鍵并得到特定的鍵碼值。數(shù)碼

19、管及其驅(qū)動(dòng)模塊:主要是用于驅(qū)動(dòng)數(shù)碼管及利用數(shù)碼管顯示時(shí)間。延時(shí)模塊:程序中有兩種延時(shí)子程序,一種是短延時(shí)用于判鍵按下等,一種是長延時(shí)。3.3 設(shè)計(jì)課題軟件系統(tǒng)程序流程框圖系統(tǒng)軟件采用匯編語言按模塊化方式進(jìn)行設(shè)計(jì),然后通過Keil軟件開發(fā)平臺(tái)將程序轉(zhuǎn)變成十六進(jìn)制程序語言,接著使用Proteous 進(jìn)行仿真,讀出顯示數(shù)據(jù)。主程序流程框圖如3.1所示;加1子程序如3.2所示;中斷服務(wù)程序程序如3.3所示;鍵盤掃描子程序框圖如3.4所示;顯示子程序框圖如3.5所示; 圖3.1 主程序流程框圖圖3.2 加1子程序流程框圖圖3.3 中斷子程序圖3.4 鍵盤掃描子程序 圖3.5 顯示子程序3.4設(shè)計(jì)課題軟件

20、系統(tǒng)程序清單設(shè)計(jì)課題軟件系統(tǒng)程序清單,詳見附錄一。4 設(shè)計(jì)結(jié)論、仿真結(jié)果、誤差分析、教學(xué)建議4.1 設(shè)計(jì)課題的設(shè)計(jì)結(jié)論及使用說明本設(shè)計(jì)為基于單片機(jī)的電子鐘的設(shè)計(jì)。剛開始,我們很多地方理不清頭緒,無從下手,但通過認(rèn)真研究設(shè)計(jì)課題,找書上網(wǎng)查資料買元件,確定基本設(shè)計(jì)方案,對(duì)所用芯片功能進(jìn)行查找、調(diào)試,然后畫電路圖制PCB板、打孔、溶銅、焊接等,真的經(jīng)歷了許多困難,卻積累了很多寶貴的經(jīng)驗(yàn),本設(shè)計(jì)用2個(gè)四位一體的共陽數(shù)碼管做為顯示器,它顯示時(shí)間值;設(shè)計(jì)中有三個(gè)按鍵,其中S1為啟動(dòng)/選擇調(diào)整位置,S2為加控制鍵 S3為減控制鍵,當(dāng)整點(diǎn)時(shí)間到時(shí),蜂鳴器報(bào)警。這樣的結(jié)果與設(shè)計(jì)要求完全相符,本設(shè)計(jì)成功。完成了

21、設(shè)計(jì)任務(wù)。4.2 設(shè)計(jì)課題的仿真結(jié)果在Proteus ISIS的Debug菜單中選擇Execute,運(yùn)行程序,系統(tǒng)仿真結(jié)果如圖4.1與4.2所示。實(shí)現(xiàn)功能:可調(diào)整運(yùn)行的電子鐘具有三種工作狀態(tài):“P.”狀態(tài)、運(yùn)行狀態(tài)、調(diào)整狀態(tài)。 (1)、“P.”狀態(tài),依靠上電或按復(fù)位鍵進(jìn)入,在此狀態(tài)下,按S2、S3鍵均無效,按S1鍵有效,進(jìn)入運(yùn)行狀態(tài); (2)、運(yùn)行狀態(tài),在此狀態(tài)下,按S2、S3鍵均無效,只有按S1鍵有效,按下S1鍵后,退出運(yùn)行狀態(tài),進(jìn)入調(diào)整狀態(tài); (3)、調(diào)整狀態(tài),按S1鍵進(jìn)入時(shí)、分、秒的閃爍,在此狀態(tài)下,按S2(+1鍵)、S3(-1鍵)鍵均有效;調(diào)整結(jié)束后必須按S1鍵,即可退出調(diào)整狀態(tài),進(jìn)入

22、運(yùn)行狀態(tài)。在調(diào)整狀態(tài)時(shí)長按S2、S3時(shí)可以連加及連減。時(shí)間顯示格式為:時(shí)-分-秒; 圖4.1 “P.”運(yùn)行狀態(tài)仿真圖4.2 時(shí)鐘運(yùn)行狀態(tài)仿真4.3 設(shè)計(jì)課題的誤差分析該電子鐘在運(yùn)行中存在一定的誤差,誤差產(chǎn)生有三種可能,首先是采用的計(jì)時(shí)方案是軟件計(jì)時(shí)的,計(jì)時(shí)優(yōu)勢(shì)利用中斷來實(shí)現(xiàn)。而當(dāng)電子鐘運(yùn)行時(shí)間1秒時(shí),又得去執(zhí)行中斷程序,這個(gè)過程是需要時(shí)間的,所以就產(chǎn)生了一定的誤差,當(dāng)然這個(gè)誤差是避免不了的,其次還有硬件系統(tǒng)也有一定的影響。第三,設(shè)計(jì)用到11.0592MHz的晶振,計(jì)算是滿20次為一秒鐘,但實(shí)際會(huì)慢很多。4.4 設(shè)計(jì)體會(huì) 課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí)、發(fā)現(xiàn)、提出、分析和解決實(shí)際問題,鍛煉實(shí)

23、踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程。 這次我設(shè)計(jì)的課程設(shè)計(jì)內(nèi)容是電子鐘。對(duì)于我們這些工科學(xué)生來說,這是一次考驗(yàn)。怎樣才能找到課堂所學(xué)與實(shí)際運(yùn)用的最佳結(jié)合點(diǎn)?怎樣讓自己業(yè)余更接近專業(yè)?怎樣讓自己的計(jì)劃更具有序性,而不會(huì)忙無一用?這都是我們所要考慮和努力的方向的。這次課程設(shè)計(jì)我學(xué)到了很多很多的東西,學(xué)會(huì)了怎樣去制定計(jì)劃,怎樣去實(shí)現(xiàn)這個(gè)計(jì)劃,并掌握了執(zhí)行這個(gè)計(jì)劃過程中怎樣去克服心理上的不良情緒。不僅鞏固了以前所學(xué)的知識(shí),而且學(xué)到了書本上所沒有的過的知識(shí),掌握了一種系統(tǒng)的研究方法,可以進(jìn)行一些簡單的編程,提高了自己獨(dú)立思考的能力。本次課程設(shè)計(jì),讓我受益匪淺,認(rèn)識(shí)到了自己的許多缺

24、點(diǎn)和不足,使我深深的感受到了理論聯(lián)系實(shí)際的必要性及其重要性。在我們以往的學(xué)習(xí)過程中,我們刻意地去加強(qiáng)理論的基礎(chǔ),對(duì)于一個(gè)程序我們只求它在運(yùn)行時(shí)沒有出錯(cuò),我們便以為我們的計(jì)劃成功了豈不知它能否在硬件結(jié)構(gòu)中得以實(shí)現(xiàn)則是另外一回事,這就要求我們的動(dòng)手能力,如果無法使軟件與硬件實(shí)現(xiàn)有機(jī)的結(jié)合,那么再好的程序也只是一堆廢字符。4.5 教學(xué)建議經(jīng)過一個(gè)學(xué)期陳老師教導(dǎo)的的單片機(jī)學(xué)習(xí),我掌握了很多單片機(jī)學(xué)習(xí)的寶貴經(jīng)驗(yàn),尤其在編程的思路和PCB實(shí)物的制作上面。編程思路是整個(gè)程序的靈魂,沒有編程思路,程序就不會(huì)編出來,就失去了編程的意義。在開始編程之前,想好編程的思路,編程能力才會(huì)提高,編程的過程才會(huì)順暢,程序的

25、質(zhì)量才會(huì)提高。在陳老師的教學(xué)過程中,幽默輕松的教學(xué)方式常常讓課堂氣氛很活躍,幽默詼諧,授課內(nèi)容條理清晰,經(jīng)常運(yùn)用各種實(shí)例,娓娓道來,給人印象深刻。陳師在課堂上也十分注重和同學(xué)們的互動(dòng),經(jīng)常會(huì)用一些親身實(shí)踐的經(jīng)驗(yàn)為例,讓同學(xué)們?cè)诨谑聦?shí)的基礎(chǔ)上更好的理解相關(guān)理論,充分做到了理論與實(shí)際的結(jié)合,既形象生動(dòng),又豐富有趣。參考文獻(xiàn)1 代啟化.基于Proteus的電路設(shè)計(jì)與仿真J.現(xiàn)代電子技術(shù).2006,第19期.2 劉文秀.單片機(jī)應(yīng)用系統(tǒng)仿真的研究J.現(xiàn)代電子技術(shù).2005, 第286 期.3 曹巧媛.單片機(jī)原理及應(yīng)用M,北京:電子工業(yè)出版社,1997.7.4 張洪潤.蘭清華,單片機(jī)應(yīng)用技術(shù)教程M,北京

26、:清華大學(xué)出版社,1997.11.致 謝通過不斷努力,終于完成了此次單片機(jī)的課程設(shè)計(jì)。在此,首先感謝往陳老師,正是他在萬忙之中還抽出寶貴的時(shí)間對(duì)我進(jìn)行精心的指導(dǎo),才使我順利完成了此次單片機(jī)課程設(shè)計(jì)。同時(shí)也感謝電子科技協(xié)會(huì)各位同學(xué)和老師對(duì)我提供的幫助。使我在此次設(shè)計(jì)中學(xué)到了許多寶貴的知識(shí)和經(jīng)驗(yàn)。在此,衷心地感謝你們!附 錄附錄1;-;本電子鐘實(shí)現(xiàn)24小時(shí)制,8位數(shù)碼管顯示時(shí)分秒,可整點(diǎn)報(bào)時(shí);顯示格式:00-00-00(設(shè)置小時(shí)十位為0時(shí),不顯示);通過3只按鍵來調(diào)整時(shí)間;調(diào)整選擇鍵SET_KEY:P1.0;通過選擇鍵選擇調(diào)整位,選中位閃爍; 增加鍵ADD_KEY:P1.1;按一次使選中位加1;

27、減少鍵DEC_KEY:P1.2;按一次使選中位減1;如果長按ADD_KEY或DEC_KEY,可進(jìn)行調(diào)時(shí)、調(diào)分快進(jìn)快減,并停止閃爍;如果選中位是秒,則按增加鍵或減少鍵可實(shí)現(xiàn),但無調(diào)時(shí)快進(jìn)和快減功能;P0口輸出數(shù)碼管段選信號(hào),P3口輸出數(shù)碼管位選信號(hào);晶振11.0592M;P2.1為蜂鳴器發(fā)聲報(bào)時(shí);編程人:鄭振凡 編寫日期:2009年12月2日 修改日期(最終):2009年12月6日;-;-;程序入口;- ORG 0000H ;程序入口地址 LJMP START ORG 000BH ;定時(shí)器0中斷入口地址 LJMP TIMET0ORG 1000H;-;顯P.程序;功能:可以在8個(gè)數(shù)碼閃爍移位進(jìn)行屏

28、保;-START: MOV R6, #2 ;閃爍次數(shù)MOV A, #01H ;位選TT:MOV P3, AMOV P0, #0CH ;段碼"P."LCALL DELAYMOV P3, #00HDJNZ R6, TTLCALL DELAYLCALL DELAY1RR AJB P1.0, TT ;鍵是否按下,沒按下則轉(zhuǎn)移LCALL DELAY ;延時(shí)去抖JNB P1.0, KAI ;再次判斷鍵是否按下KAI:SETB P1.0CLR A ;狀態(tài)恢復(fù)MOV P0, #0FFHLCALL DELAY1SETB 48H ;用于調(diào)時(shí)閃爍標(biāo)志SETB 47H ;用于產(chǎn)生脈沖用于調(diào)時(shí)快進(jìn)的

29、脈沖MOV R1, #0 ;鍵功能標(biāo)志:0計(jì)時(shí)、1調(diào)時(shí)、2調(diào)分、3調(diào)秒;-;清16位寄存器及初始化;50H 用于控制秒基準(zhǔn)時(shí)鐘源的產(chǎn)生;51H 清零秒寄存器;52H 清零分寄存器;53H 清零時(shí)寄存器;5FH 用于秒個(gè)位;5EH 用于秒十位;5DH 用于分個(gè)位;5CH 用于分十位;5BH 用于時(shí)個(gè)位;5AH 用于時(shí)十位;54H 用于控制調(diào)時(shí)閃爍;-MOV R0, #50H ;初始化MOV R6, #10HCLEARJCQ:MOV R0, #00H ;清寄存器INC R0DJNZ R6, CLEARJCQMOV IP, #02HSETB EASETB ET0MOV TMOD, #01H ;設(shè)定定

30、時(shí)器0工作方式1MOV TH0, #3CHMOV TL0, #0B0H ;賦定時(shí)初值,定時(shí)50msSETB TR0 ;啟動(dòng)定時(shí)器0MOV SP, #70H ;堆棧;-;主程序 ;- MAIN:LCALL DISPLAYLCALL KEY_SCANJZ MAINLCALL SET_KEYJB 46H, MAIN ;如果已進(jìn)行調(diào)時(shí)快進(jìn),則不再執(zhí)行下面的調(diào)整LCALL ADD_KEY ;調(diào)用增加鍵處理子程序,加一LCALL DEC_KEY ;調(diào)用減少鍵處理子程序,減一LJMP MAIN ;重新循環(huán);-; 顯示處理程序;-DISPLAY:MOV A, 51HANL A, #0FHMOV 5FH, A

31、;轉(zhuǎn)換出秒個(gè)位,存入5FHMOV A, 51HANL A, #0F0HSWAP AMOV 5EH, A ;轉(zhuǎn)換出秒十位,存入5EHJB 46H, MIN ;如果調(diào)時(shí)快進(jìn),則跳過閃爍處理程序CJNE R1, #3,MIN ;如果R1為3,閃爍秒位待調(diào)整JB 48H, MINMOV 5FH, #0AH ;使該位為10,查表得到使該位不顯示MOV 5EH, #0AHMIN:MOV A, 52HANL A, #0FHMOV 5DH, A ;轉(zhuǎn)換出分個(gè)位,存入5DHMOV A, 52HANL A, #0F0HSWAP AMOV 5CH, A ;轉(zhuǎn)換出分十位,存入5CHJB 46H, HOURCJNE R

32、1, #2,HOUR ;如果R1為2,閃爍分位待調(diào)整JB 48H, HOURMOV 5DH, #0AHMOV 5CH, #0AHHOUR: MOV A, 53HANL A, #0FHMOV 5BH, A ;轉(zhuǎn)換出時(shí)個(gè)位,存入5BHMOV A, 53HANL A, #0F0HSWAP AMOV 5AH, A ;轉(zhuǎn)換出時(shí)十位,存入5AHJB 46H, DISPCJNE R1, #1,DISP ;如果R1為1,閃爍時(shí)位待調(diào)整JB 48H, DISPMOV 5BH, #0AH ;使該位為10,查表得到使該位不顯示MOV 5AH, #0AH;-;數(shù)碼管動(dòng)態(tài)掃描顯示;-DISP:MOV DPTR, #TA

33、BLEMOV A, 5FHMOVC A, A+DPTRMOV P0, ASETB P3.7LCALL DELAYCLR P3.7 ;顯示秒個(gè)位MOV A, 5EHMOVC A, A+DPTRMOV P0, ASETB P3.6LCALL DELAYCLR P3.6 ;顯示秒十位MOV A, #0BFHMOV P0, ASETB P3.5LCALL DELAYCLR P3.5 ;顯示“-”MOV A, 5DHMOVC A, A+DPTRMOV P0, ASETB P3.4LCALL DELAYCLR P3.4 ;顯示分個(gè)位MOV A, 5CHMOVC A, A+DPTRMOV P0, ASETB

34、 P3.3LCALL DELAYCLR P3.3 ;顯示分十位MOV A, #0BFHMOV P0, ASETB P3.2LCALL DELAYCLR P3.2 ;顯示“-”MOV A, 5BHMOVC A, A+DPTRMOV P0, ASETB P3.1LCALL DELAYCLR P3.1 ;顯示時(shí)個(gè)位MOV DPTR, #TABLE1 ;該位使用TABLE1以消除時(shí)的十位置0MOV A, 5AHMOVC A, A+DPTRMOV P0, ASETB P3.0LCALL DELAYCLR P3.0 ;顯示時(shí)十位RET;-;定時(shí)器中斷1s程序;-TIMET0:PUSH ACC ;保護(hù)現(xiàn)場(chǎng)P

35、USH PSWMOV TH0, #3CHMOV TL0, #0B0HCPL 47H ;產(chǎn)生脈沖用于調(diào)時(shí)快進(jìn)INC 54HMOV A, 54HCJNE A, #10,ADD_TIME;產(chǎn)生0.5秒,用于調(diào)時(shí)閃爍CPL 48H ;取反調(diào)時(shí)閃爍標(biāo)志位MOV 54H, #00HADD_TIME:INC 50HMOV A, 50HCJNE A, #10,ZDBACD;整點(diǎn)報(bào)時(shí)時(shí)蜂鳴器響延遲時(shí)間SETB P2.1 ;關(guān)蜂鳴器ZDBACD:CJNE A, #20,RETI1 ;產(chǎn)生1秒時(shí)鐘MOV 50H, #00H ;一秒鐘時(shí)間到,清零50HMOV A, 51HADD A, #01HDA A ;十進(jìn)制調(diào)整M

36、OV 51H,ACJNE A,#60H,RETI1MOV 51H,#00H ;一分鐘到MOV A,52HADD A,#01HDA AMOV 52H,ACJNE A,#60H,RETI1CLR P2.1MOV 52H,#00H ;一小時(shí)到,開蜂鳴器,清分顯示MOV A,53HADD A,#01HDA AMOV 53H,ACJNE A,#24H,RETI1MOV 53H,#00H ;到24點(diǎn),清零小時(shí)RETI1:POP PSWPOP ACC ;恢復(fù)現(xiàn)場(chǎng)RETI ;中斷返回;-;鍵盤掃描程序;R4設(shè)置為00H是為了在進(jìn)入長按處理前加長延時(shí),以區(qū)分長按與短按鍵;-KEY_SCAN:CLR 46H ;關(guān)

37、閉調(diào)時(shí)快進(jìn)標(biāo)志MOV P1,#0FFH ;將P1口設(shè)置成輸入狀態(tài)MOV A,P1CPL AANL A, #07H ;1口低3位連接3個(gè)按鍵,只判斷該3位JZ EXIT_KEYLCALL DELAY ;延時(shí)去抖動(dòng)MOV A, P1 ;重新判斷CPL AANL A, #07HJZ EXIT_KEYMOV R5, AMOV R4, #00H ;用于控制調(diào)時(shí)快進(jìn)速度LOOP: LCALL DISPLAY ;進(jìn)入長按處理MOV A, P1CPL AANL A, #07HJB 47H, LOOP1INC R4 ;調(diào)時(shí)快進(jìn)間隔時(shí)間基準(zhǔn)加1LOOP1: CJNE R1, #03H,LOOP2 ;如果調(diào)秒時(shí)長按

38、,則不處理LJMP LOOP3LOOP2: CJNE R4, #99H,LOOP3MOV R4, #70H ;確認(rèn)長按后,加快調(diào)時(shí)快進(jìn)速度SETB 46HLCALL ADD_KEYLCALL DEC_KEYLOOP3: JNZ LOOP ;等待鍵釋放MOV A, R5 ;輸出鍵值RETEXIT_KEY:RET;-;延時(shí)子程序;- DELAY:MOV R7,#200 DJNZ R7,$ RETDELAY1:MOV R3,#50 MOV TMOD,#00H MOV TH1,#63H MOV TL1,#18H SETB TR1 LP1:JBC TF1,LP2 SJMP LP1 LP2:MOV TH1,#63H MOV TL1,#18H DJNZ R3,LP1 RET ;-;選擇鍵處理子程序;-SET_KEY:CJNE R5,#01

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論