基于單片機(jī)定時鬧鐘設(shè)計_第1頁
基于單片機(jī)定時鬧鐘設(shè)計_第2頁
基于單片機(jī)定時鬧鐘設(shè)計_第3頁
基于單片機(jī)定時鬧鐘設(shè)計_第4頁
基于單片機(jī)定時鬧鐘設(shè)計_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

前言本設(shè)計是基于單片機(jī)的定時鬧鐘設(shè)計。單片機(jī)是在一塊半導(dǎo)體芯片上集成了CPU、存儲器以及輸入和輸出接口電路的微型計算機(jī);其集成度高、功能強(qiáng)、通用性好,特別是它具有體積小、重量輕、能耗低、價格便宜、抗擾、能力強(qiáng)和使用方便,軟硬件結(jié)合、靈活穩(wěn)定、軟件硬化、硬件軟化,適合應(yīng)用于多種環(huán)境、可在惡劣環(huán)境中工作等特點(diǎn)。它不僅僅是一項(xiàng)技術(shù)性上的突破,同時也是對能源方面的有效節(jié)約與有效利用,因此深受國家有關(guān)技術(shù)部門和能源部門的重視和支持。其組合而成的配件產(chǎn)品在日常生活的使用過程中非常方便、簡單且實(shí)用,深受著廣大消費(fèi)者的喜愛,從而使單片機(jī)技術(shù)在社會中得到了廣泛的發(fā)展和應(yīng)用。目前,已成為測量控制應(yīng)用系統(tǒng)中的優(yōu)選機(jī)種和新電子產(chǎn)品的關(guān)鍵部件。特別是20世紀(jì)70年代問世以來,以其極高的性能價格比,受到人們的重視和關(guān)注,應(yīng)用很廣、發(fā)展很快,推廣率高,市場利潤率高。而51單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。

本次設(shè)計的定時鬧鐘在硬件方面就采用了AT89C51芯片,用2個LED數(shù)碼管來進(jìn)行顯示。第一個LED用P0口進(jìn)行驅(qū)動,第二個LED用P2口進(jìn)行驅(qū)動,能夠比較準(zhǔn)確顯示分鐘數(shù)。通過S1、S2、S3、和S4四個功能按鍵可以實(shí)現(xiàn)對定時鬧鐘的啟動、復(fù)位和定時,定時時間到喇叭可以發(fā)出鬧鈴聲。在軟件方面采用匯編語言編程。整個定時鬧鐘系統(tǒng)能完成時間的顯示,調(diào)時和定時鬧鐘、復(fù)位等功能,并經(jīng)過系統(tǒng)仿真后得到了正確的結(jié)果目錄前言第一章設(shè)計目的及要求 41.1、設(shè)計目的 41.2、設(shè)計要求 41.2.1、課程設(shè)計要求 41.2.2、基本設(shè)計功能要求主要分為以下幾個部分: 4第二章方案設(shè)計 52.1、幾種常見的定時鬧鐘 52.1.1、普通機(jī)械鬧鐘 52.1.2、晶體管鬧鐘 52.1.3、石英電子鬧鐘 52.2、研究背景 52.3、本文研究的主要內(nèi)容 52.4、方案論證 62.4.1、方案 6第三章主要元器件介紹 73.1、AT89C51單片機(jī)介紹 73.1.1、AT89C51芯片簡介 73.1.2、引腳說明 73.2、時鐘電路 93.3、7SEG-BCD 9第四章硬件電路設(shè)計 104.1、晶振時鐘電路設(shè)計 104.2、復(fù)位電路設(shè)計 104.3、定時輸入電路設(shè)計 104.4、顯示電路設(shè)計 114.5、啟動和復(fù)位計時電路 124.6、鬧鐘響鈴電路設(shè)計 12第五章軟件設(shè)計及主要子程序 135.1、軟件設(shè)計思路 135.2、主程序模塊 135.3、定時輸入子程序設(shè)計 145.4、顯示子程序設(shè)計 145.5、啟動和復(fù)位子程序設(shè)計 145.6、計時響鈴子程序設(shè)計 14第六章系統(tǒng)仿真與調(diào)試 156.1、Keil編譯 156.2、Protues仿真平臺 156.2.1、Protues仿真簡介及部分模塊仿真 156.2.2、硬件電路總圖與仿真 16第七章操作方法及效果 17第八章課程設(shè)計總結(jié) 20參考文獻(xiàn) 21附錄1 22匯編程序 22附錄2 25PCB生成圖 25附錄3 26定時鬧鐘原理圖 26

第一章設(shè)計目的及要求1.1、設(shè)計目的本次課程設(shè)計目的在于真正的把所學(xué)單片機(jī)理論知識應(yīng)用于實(shí)際,更加熟悉51單片機(jī)的硬件與軟件。能靈活運(yùn)用Keil進(jìn)行軟件編程調(diào)試以及用proteus軟件仿真。本次設(shè)計組成定時鬧鐘系統(tǒng),畫出系統(tǒng)硬件電路圖,設(shè)計編寫開關(guān)控制定時、LED顯示、聲響鈴、定時啟動及復(fù)位等子程序。在調(diào)試程序時,要求整個系統(tǒng)工作正常、顯示正確、結(jié)果滿意,掌握該芯片的工作原理并完成讀、寫程序的設(shè)計、編寫和調(diào)試。1.2、設(shè)計要求1.2.1、課程設(shè)計要求能熟練運(yùn)用51單片機(jī)實(shí)現(xiàn)硬件與軟件結(jié)合完成電子產(chǎn)品的設(shè)計,把理論真正運(yùn)用于實(shí)踐,會用Keil等軟件編程調(diào)試運(yùn)行,熟悉應(yīng)用Proteus軟件仿真。強(qiáng)化編程練習(xí),注意查詢方式與中斷方式的區(qū)別等等。1.2.2、基本設(shè)計功能要求主要分為以下幾個部分:1)由于要顯示數(shù)字時間,所以需要2個數(shù)碼管。

2)時間的定時用時鐘電路,修改時間和定時用手動按鍵控制,鬧鈴聲通過喇叭發(fā)出3)記時完成后,通過復(fù)位鍵將整個鬧鐘變?yōu)槌跏紶顟B(tài)

4)AT89C51單片機(jī)加上外圍器件(數(shù)字顯示器7SEG-MPX6-CC-BLUE,RESPACK-8排阻和SPEAKER喇叭)和應(yīng)用程序(ISIS

6

Professional軟件和WAVE6000編譯軟件),構(gòu)成相應(yīng)的應(yīng)用系統(tǒng)。

第二章方案設(shè)計2.1、幾種常見的定時鬧鐘2.1.1、普通機(jī)械鬧鐘這種機(jī)械鬧鐘結(jié)構(gòu)簡單、使用方便、價格便宜,其中的原動系以發(fā)條為貯能元件,機(jī)械式音樂鬧鐘上還帶有以鬧發(fā)條驅(qū)動的帶撥針的滾輪,撥針按曲譜排列,撥動音簧,演奏出音樂,但在使用中暴露了很多缺點(diǎn):機(jī)械鬧鐘的發(fā)條是靠金屬制成的,經(jīng)過較長時間的磨損會影響到計時的精度。2.1.2、晶體管鬧鐘一種電機(jī)械鐘。又稱擺輪游絲式電子鐘。它采用機(jī)械式鐘的擺輪游絲振動系統(tǒng),但以電池為能源。電池的能量通過一個晶體管開關(guān)電路直接傳遞給擺輪游絲系統(tǒng),從而維持?jǐn)[輪的不衰減振動。通過\o"快慢針"快慢針調(diào)節(jié)游絲的工作長度,可調(diào)節(jié)振動周期。擺輪通過計數(shù)機(jī)構(gòu)驅(qū)動齒輪傳動系統(tǒng)和指針系統(tǒng),以指示時間。晶體管鐘可帶鬧時機(jī)構(gòu)和日歷機(jī)構(gòu),并可與收音機(jī)結(jié)合構(gòu)成鐘控收音機(jī)。但是這種鬧鐘在實(shí)際應(yīng)用中的計時很不準(zhǔn)確,并且耗電量也比較大,現(xiàn)在基本上已經(jīng)很少有人使用2.1.3、石英電子鬧鐘該類定時鬧鐘采用單片機(jī)作為基礎(chǔ),通過將程序?qū)懭雴纹瑱C(jī)中,來對鬧鐘進(jìn)行多功能的控制,所需要的硬件電路很少,采用這種鬧鐘具有極大的優(yōu)勢,它的結(jié)構(gòu)簡單,維修方便,并且造價低,功耗低,可以長時間工作,并且計時準(zhǔn)確,誤差很小,在現(xiàn)在的生產(chǎn)和生活中的到了廣泛的應(yīng)用。2.2、研究背景電子鬧鐘是采用數(shù)字電路實(shí)現(xiàn)對時間數(shù)字顯示的機(jī)械裝置,廣泛應(yīng)用于個人家庭,車站,碼頭,辦公室等公共場合,稱為人們?nèi)粘I钪胁豢苫蛉钡牡谋匦杵?,由于?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,是的數(shù)字鐘的精度遠(yuǎn)遠(yuǎn)超于老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)和生活帶來了極大的方便,而且大大地拓展了鐘表的報時功能。諸如定時自動報警、自動按時打鈴、時間程序自動控制、定時廣播、自動啟閉路燈、定慧寺開關(guān)烘箱、通斷動力設(shè)備、甚至各種定時電氣的自動啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。數(shù)字鐘已經(jīng)成為人們?nèi)粘I钪斜夭豢缮俚谋匦杵?,給人們的生活、學(xué)習(xí)、工作、娛樂帶來了極大的方便。由于數(shù)字集成電路技術(shù)的發(fā)展和采用了先進(jìn)的技術(shù),是數(shù)字鐘具有走時準(zhǔn)確、性能穩(wěn)定、攜帶方便等優(yōu)勢,它還用于計時自動報時及自動控制領(lǐng)域。因此,研究定時數(shù)字鬧鐘及擴(kuò)大其應(yīng)用有著非?,F(xiàn)實(shí)的意義。2.3、本文研究的主要內(nèi)容設(shè)計內(nèi)容完全按照前面的設(shè)計要求完成,完全滿足前面的設(shè)計要求。2.4、方案論證2.4.1、方案方案:設(shè)計選用單片機(jī)AT89C51作為本設(shè)計的核心元件,利用單片機(jī)靈活的編程設(shè)計和豐富的I/O端口,及其控制的準(zhǔn)確性,實(shí)現(xiàn)基本的電子鬧鐘功能。方案完全按照第1章的基本設(shè)計要求設(shè)計。AT89C51顯示模塊啟動電路AT89C51顯示模塊啟動電路鬧鐘響鈴復(fù)位電路置數(shù)分鐘數(shù)鬧鐘響鈴復(fù)位電路置數(shù)分鐘數(shù)圖2.1單片機(jī)控制方案

第三章主要元器件介紹3.1、AT89C51單片機(jī)介紹3.1.1、AT89C51芯片簡介AT89C51是MCS—51系列單片機(jī)中的一種低功耗、高性能的片內(nèi)含有4KB快閃可編程/擦除只讀存儲器的8位CMOS微控制器,使用高密度、非易失存儲技術(shù)制造,并且與80C51引腳和指令系統(tǒng)完全兼容。主要性能:與MCS-51微控制器產(chǎn)品系列兼容。片內(nèi)有4KB可在線重復(fù)編程的快閃擦寫存儲器存儲數(shù)據(jù)保存時間為10年。寬工作電壓范圍:Vcc可為2.7V到6V全靜態(tài)工作;可從0Hz至16MHz程序存儲器具有3級加密保護(hù)128*8位內(nèi)部RAM32條可編程I/O線、兩個16位定時器/計數(shù)器、中斷結(jié)構(gòu)具有5個中斷源和2個優(yōu)先級、可編程全雙工串行通道、空閑狀態(tài)維持低功耗和掉電狀態(tài)保存存儲內(nèi)容。89C51單片機(jī)是把那些作為控制應(yīng)用所必需的基本內(nèi)容都集成在一個尺寸有限的集成電路芯片上。如果按功能劃分,它由如下功能部件組成,即微處理器、數(shù)據(jù)存儲器、程序存儲器、并行I/O口、串行口、定時器/計數(shù)器、中斷系統(tǒng)及特殊功能寄存器。它們都是通過片內(nèi)單一總線連接而成,其基本結(jié)構(gòu)依舊是CPU加上外圍芯片的傳統(tǒng)結(jié)構(gòu)模式。但對各種功能部件的控制是采用特殊功能寄存器的集中控制方式。微處理器、數(shù)據(jù)存儲器、程序存儲器、并行I/O口、串行口、定時器/計數(shù)器、中斷系統(tǒng)各部分功能及說明類似于8051單片機(jī)內(nèi)部結(jié)構(gòu)說明。特殊功能寄存器共有21個,用于對片內(nèi)的各功能的部件進(jìn)行管理、控制、監(jiān)視。實(shí)際上是一些控制寄存器和狀態(tài)寄存器,是一個具有特殊功能的RAM區(qū)。由上可見,89C51單片機(jī)的硬件結(jié)構(gòu)具有功能部件種類全,功能強(qiáng)等特點(diǎn)。特別值得一提的是該單片機(jī)CPU中的位處理器,它實(shí)際上是一個完整的1位微計算機(jī),這個1位微計算機(jī)有自己的CPU、位寄存器、I/O口和指令集。1位機(jī)在開關(guān)決策、邏輯電路仿真、過程控制方面非常有效;而8位機(jī)在數(shù)據(jù)采集,運(yùn)算處理方面有明顯的長處。MCS-51單片機(jī)中8位機(jī)和1位機(jī)的硬件資源復(fù)合在一起,二者相輔相承,它是單片機(jī)技術(shù)上的一個突破,這也是MCS-51單片機(jī)設(shè)計的精美之處。3.1.2、引腳說明圖3.1是標(biāo)準(zhǔn)的40引腳雙列直插式集成電路芯片。圖3.1AT89C51引腳圖P00~P07P0口8位雙向口線(在引腳的39~32號端子)。P10~P17P1口8位雙向口線(在引腳的1~8號端子)。P20~P27P2口8位雙向口線(在引腳的21~28號端子)。P30~P37P3口8位雙向口線(在引腳的10~17號端子)。1、P0口有三個功能:(1)外部擴(kuò)展存儲器時,用作數(shù)據(jù)總線(如圖中的D0~D7為數(shù)據(jù)總線接口)(2)外部擴(kuò)展存儲器時,用作地址總線(如圖中的A0~A7為地址總線接口)(3)不擴(kuò)展時,可做一般的I/O口使用,但內(nèi)部無上拉電阻,作為輸入或輸出時應(yīng)在外部接上拉電阻。2、P1口功能:P1口只做I/O口使用,其內(nèi)部有上拉電阻。3、P2口有兩個功能:(1)擴(kuò)展外部存儲器時,當(dāng)作地址總線使用;(2)做一般I/O口使用,其內(nèi)部有上拉電阻。4、P3口有兩個功能:除了作為I/O口使用外(其內(nèi)部有上拉電阻),還有一些特殊功能,由特殊寄存器來設(shè)置。當(dāng)作為輸入時,上拉電阻將其電位拉高,若輸入為低電平則可提供電流源;所以如果P0口作為輸入時,處在高阻抗?fàn)顟B(tài),只有外接一個上拉電阻才能有效。5、ALE/PROG地址鎖存控制信號:在系統(tǒng)擴(kuò)展時,ALE用于控制把P0口的輸出低8位地址送鎖存器鎖存起來,以實(shí)現(xiàn)低位地址和數(shù)據(jù)的隔離。PROG為編程脈沖的輸入端,在89C51單片機(jī)內(nèi)部有一個4KB的程序存儲器(ROM),ROM的作用就是用來存放用戶需要執(zhí)行的程序的,那么我們是怎樣把編寫好的程序存入進(jìn)這個ROM中的呢?實(shí)際上是通過編程脈沖輸入才能寫進(jìn)去的,這個脈沖的輸入端口就是PROG。6、PSEN外部程序存儲器讀選通信號:在讀外部ROM時PSEN低電平有效,以實(shí)現(xiàn)外部ROM單元的讀操作:(1)內(nèi)部ROM讀取時,PSEN不動作;(2)外部ROM讀取時,在每個機(jī)器周期會動作兩次;(3)外部RAM讀取時,兩個PSEN脈沖被跳過不會輸出;(4)外接ROM時,與ROM的EA腳相接。7、EA/VPP訪問程序存儲器控制信號:(1)接高電平時:CPU讀取內(nèi)部程序存儲器(ROM)(2)接低電平時:CPU讀取外部程序存儲器(ROM)。8031單片機(jī)內(nèi)部是沒有ROM的,那么在應(yīng)用8031單片機(jī)時,這個腳是一直接低電平的。8、RST復(fù)位信號:當(dāng)輸入的信號連續(xù)2個機(jī)器周期以上高電平時即為有效,用以完成單片機(jī)的復(fù)位初始化操作,當(dāng)復(fù)位后程序計數(shù)器PC=0000H,即復(fù)位后將從程序存儲器的0000H單元讀取第一條指令碼。9、XTAL1和XTAL2:外接晶振引腳。當(dāng)使用芯片內(nèi)部時鐘時,此二引腳用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時鐘時,用于接外部時鐘脈沖信號。10、VCC:電源端接+5V電壓輸入。11、GND:接地端。3.2、時鐘電路單片機(jī)的時鐘產(chǎn)生方法有兩種:內(nèi)部時鐘方式和外部時鐘方式。本系統(tǒng)中AT89C51單片機(jī)采用內(nèi)部時鐘方式。最常用的內(nèi)部時鐘方式是采用外接晶體和電容組成的并聯(lián)諧振回路。振蕩晶體為12MHz。電容值無嚴(yán)格要求,但電容取值對振蕩頻率輸出的穩(wěn)定性、大小和振蕩電路起振速度有少許影響,一般可在20pF~100pF之間取值。

上拉電阻:RESPACK-8

控制按鍵:BUTTON

本系統(tǒng)要進(jìn)行時間的調(diào)整和定時,因此用4個手動按鍵對其進(jìn)行控制。3.3、7SEG-BCD7SEG-BCD是1位4段共陰數(shù)碼管,顯示為紅色。它共有四個引腳,自帶譯碼器,只要將要輸入的二進(jìn)制編碼輸入這四個引腳,就會顯示數(shù)輸入的二進(jìn)制數(shù)對應(yīng)的數(shù)。這里使用了兩個7SEG-BCD,一個接在P0口,顯示分鐘數(shù)的十位,一個接在P2口,顯示分鐘數(shù)的個位。

第四章硬件電路設(shè)計硬件電路的設(shè)計主要包括、晶振時鐘電路設(shè)計、復(fù)位電路設(shè)計、定時輸入電路設(shè)計、顯示電路設(shè)計、啟動和復(fù)位計時電路以及鬧鐘響鈴電路的設(shè)計。4.1、晶振時鐘電路設(shè)計單片機(jī)XTAL1和XTAL2分別接30pF的電容,中間再并一個12MHZ的晶振,形成單片機(jī)的晶振電路。圖4.1晶振電路4.2、復(fù)位電路設(shè)計圖4.2復(fù)位電路4.3、定時輸入電路設(shè)計定時輸入電路由兩個按鍵構(gòu)成,一個按鍵接在外部中斷0上,每次按下這個鍵,定時的分鐘數(shù)的十位數(shù)就加一,另一個按鍵接在外部中斷1上,每次按下這個鍵,定時分鐘數(shù)的個位數(shù)就加一。由這兩個鍵來控制定時的置數(shù)功能。圖4.3定時輸入電路4.4、顯示電路設(shè)計7SEG-BCD是1位4段共陰數(shù)碼管,顯示為紅色。它共有四個引腳,自帶譯碼器,只要將要輸入的二進(jìn)制編碼輸入這四個引腳,就會顯示出輸入的二進(jìn)制數(shù)對應(yīng)的數(shù)。這里使用了兩個7SEG-BCD,一個接在P0口,顯示分鐘數(shù)的十位,一個接在P2口,顯示分鐘數(shù)的個位。如下圖所示:圖4.4.1顯示電路同時P0口作為輸入輸出口使用時需要用到上拉電阻,這里用RESPACK-8

圖4.4.2上拉電阻4.5、啟動和復(fù)位計時電路定時輸入電路由兩個按鍵構(gòu)成,一個按鍵是啟動計時電路按鈕,接在P1.0上,每次按下這個鍵,定時就開始了,另一個按鍵是復(fù)位計時按鈕,接在P1.1上,每次按下這個鍵,整個定時鬧鐘系統(tǒng)就恢復(fù)到開機(jī)時的初始狀態(tài)。由這兩個鍵來控制定時鬧鐘的啟動和復(fù)位功能。圖4.5啟動和復(fù)位計時電路4.6、鬧鐘響鈴電路設(shè)計圖4.6鬧鐘響鈴電路第五章軟件設(shè)計及主要子程序5.1、軟件設(shè)計思路定時鬧鐘工作的主要過程是LED數(shù)碼管顯示初始化的時間分鐘數(shù)的值為59,通過按鍵輸入定時的分鐘數(shù),同時LED實(shí)時顯示時間分鐘數(shù),按下啟動計時鍵后,定時鬧鐘開始計時,每計時一分鐘,LED顯示的分鐘數(shù)減一,當(dāng)時間減到0后,蜂鳴器發(fā)出聲音表示鬧鐘已響,并且此時的LED顯示為0F,并停止繼續(xù)計數(shù),當(dāng)按下復(fù)位鍵后,定時鬧鐘恢復(fù)到初始化后的值。5.2、主程序模塊主程序主要完成初始化、設(shè)置中斷向量、檢查有無按鍵以及調(diào)用顯示等,當(dāng)初始化后就會自動等待有無定時操作、啟動操作和復(fù)位操作。主程序流程圖如下,(此模塊程序見附錄)。開始開始初始化顯示時間復(fù)位操作有誤?啟動按鍵鍵?鍵?各位恢復(fù)到初始狀態(tài)NYNY計時響鈴程序開定時/計數(shù)器0中斷開外部中斷0和1圖5.1主程序流程圖5.3、定時輸入子程序設(shè)計定時輸入程序采用中斷的方式,一個按鍵接在外部中斷0上,每次按下這個鍵,定時的分鐘數(shù)的十位數(shù)就加一,當(dāng)加到6時自動跳變到0;另一個按鍵接在外部中斷1上,每次按下這個鍵,定時分鐘數(shù)的個位數(shù)就加一,當(dāng)加到10,也就是0AH時自動跳變到0。由這兩個鍵來控制定時的置數(shù)功能,完成了從0~60min的定時置數(shù)。(此模塊程序見附錄)5.4、顯示子程序設(shè)計由于是采用兩個7SEG-BCD分別做分鐘數(shù)的十位和各位,并且這兩個7SEG-BCD分別接在P0口和P2口上,因此直接將要輸出的數(shù)據(jù)輸入到P0口和P2口上即可。(此模塊程序見附錄)5.5、啟動和復(fù)位子程序設(shè)計啟動和復(fù)位子程序都采用查詢的方式,先檢測P1.1口是否為1,當(dāng)復(fù)位鍵按下時,P1.1口的值為0,若為0,則跳轉(zhuǎn)到復(fù)位子程序,將各個寄存器的值恢復(fù)成開機(jī)時的狀態(tài);若為1,則跳轉(zhuǎn)到M0子程序,檢測P1.0口是否為1,當(dāng)啟動鍵按下后,P1.0口的值為0,若為0,則跳轉(zhuǎn)到啟動子程序,打開定時/計數(shù)器中斷,并開啟計數(shù)器;若為1,則跳回主程序的開始部分循環(huán)。(此模塊程序見附錄)5.6、計時響鈴子程序設(shè)計給計數(shù)器計入的處置為3CB0H,也就是說每計時50ms,定時/計數(shù)器產(chǎn)生一次中斷,每執(zhí)行一次中斷,在中斷中對寄存器R5中的值減一,因此給R5中寫入20,當(dāng)R5減到0時,正好計時為一秒鐘,R5每次減到0,就給它重新賦值20,并且將R4中的值減1,給R4中計入60,當(dāng)R4減為0時正好計時一分鐘,此時給R4重新賦值60,并將P2口的輸出值減1,當(dāng)該口也減到0后,給他重新賦值10,并且給P0口輸出值減1,當(dāng)這些寄存器中的值均為0時,給P1.7位置1,此時蜂鳴器發(fā)出響聲,并且把定時/計數(shù)器中斷關(guān)閉。(此模塊程序見附錄)

第六章系統(tǒng)仿真與調(diào)試6.1、Keil編譯KeilC51是美國KeilSoftware公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。如果使用C語言編程,那么Keil幾乎就是不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會令你事半功倍。本次設(shè)計采用匯編語言編程,生成.hex文件以供裝載到Protues中的單片機(jī)進(jìn)行仿真。圖6.1程序代碼編寫6.2、Protues仿真平臺 6.2.1、Protues仿真簡介及部分模塊仿真Protues軟件是英國Labcenterelectronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計,真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計。迄今為止是世界上唯一將電路仿真軟件、PCB設(shè)計軟件和虛擬模型仿真軟件三合一的設(shè)計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等。在編譯方面,它也支持IAR、Keil和MATLAB等多種編譯。目標(biāo)代碼的加載方法為,在Protues編輯環(huán)境雙擊AT89C51,彈出下圖所示的對話框,在PROGRAMFILM一欄中單擊打開按鈕,選中Keil中生成的naozhong.hex文件,在CLOCKFREQUENCY欄中設(shè)置系統(tǒng)工作頻率為12MHZ,單擊OK完成目標(biāo)代碼的加載。圖6.2程序代碼加載6.2.2、硬件電路總圖與仿真點(diǎn)擊運(yùn)行按鈕啟動系統(tǒng)仿真,初始狀態(tài)顯示的分鐘數(shù)為59。硬件總圖如下:圖6.2總圖

第七章操作方法及效果點(diǎn)擊運(yùn)行后,開機(jī)是自動顯示的分鐘數(shù)是59圖7.1定時鬧鐘開機(jī)通過對定時輸入電路的兩個按鍵,一個按鍵接在外部中斷0上,每次按下這個鍵,定時的分鐘數(shù)的十位數(shù)就加一,另一個按鍵接在外部中斷1上,每次按下這個鍵,定時分鐘數(shù)的個位數(shù)就加一。由這兩個鍵來控制定時的置數(shù)功能。圖7.2定時鬧鐘定時置數(shù)之后如果按下啟動計時鍵,則開始計時,如果按下復(fù)位鍵,則進(jìn)行復(fù)位操作,將各個寄存器的值變?yōu)槌跏蓟瘯r的值,并將P1.7位清0,即關(guān)閉蜂鳴器。圖7.3定時鬧鐘啟動計時

圖7.4定時鬧鐘復(fù)位

第八章課程設(shè)計總結(jié)通過本次單片機(jī)原理及應(yīng)用課程設(shè)計使我充分認(rèn)認(rèn)到了課程設(shè)計的理要性和必要性,本次設(shè)計使我對已學(xué)過的基礎(chǔ)知識有了更深入的理解。單片機(jī)課程設(shè)計,從理論到實(shí)踐,對所學(xué)的課本知識有了更深一步的認(rèn)識,掌握的更加全面、深入。實(shí)驗(yàn)過程中,遇到了不少困難的問題:對單片機(jī)匯編語言的理解不夠深刻,對于簡短的程序可以明白,但是,到一個大的程序中,理解掌握就有一定的難度了,這樣就需要更近一步地理解其中的知識點(diǎn)。

實(shí)驗(yàn)的設(shè)計當(dāng)中有很多的程序調(diào)用,這就需要認(rèn)真處理好內(nèi)部的程序之間的使用。通過這次的課程設(shè)計加深了對單片機(jī)理論的理解,將理論很好地應(yīng)用到實(shí)際當(dāng)中去。

實(shí)驗(yàn)過程的細(xì)節(jié)讓我更加地確定做什么事情都要細(xì)心、仔細(xì),不放過任何一個小小的點(diǎn),只有這樣,我們才以最高的效率完成任務(wù)。同時,不要忽視了同伴的作用,當(dāng)自己在一個問題上懸而未決,這時同伴的一句話提醒,就可以讓你豁然開朗,柳暗花明。很多實(shí)驗(yàn)當(dāng)中遇到的問題讓我明白:1.

在設(shè)計程序之前,務(wù)必要對所學(xué)單片機(jī)課程的內(nèi)容有一個系統(tǒng)的了解,知道單片機(jī)片內(nèi)片外的內(nèi)容及其功能。

2.

設(shè)計程序關(guān)鍵要有一個清晰的思路和一個完整的軟件流程圖。模塊化的設(shè)計思想在程序設(shè)計中的作用是重大的,它可以為你提供一個比較清晰的思路,并且很容易找到頭緒,不至于在編寫一個程序時感覺到無從下手。

3.

在設(shè)計程序時,不能妄想一次就將整個程序設(shè)計好,"反復(fù)修改,不斷改進(jìn)"是程序設(shè)計的必經(jīng)之路。程序剛開始編好時,一般情況下會存在很多錯誤,要不斷地修改,不斷的改進(jìn)才能達(dá)到預(yù)期的目的,編寫程序的時間并不是很長,主要是花很多時間去修改程序。

4.

要養(yǎng)成注釋程序的好習(xí)慣,讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便。剛開始我在編寫程序時,很不習(xí)慣于寫注釋,感覺很麻煩,而且沒用,但是在修改的過程中我就遇到了較大的麻煩,以至于不得不重新的作了注釋,以增加程序的易讀性,從而使修改過程變得容易一些??傊ㄟ^這次課程設(shè)計不僅使我鞏固了本課程所學(xué)的基本知識,還使我具有了撰寫科研報告的初步訓(xùn)練能力,我相信這些能力在我以后的工作或者是再學(xué)習(xí)中一定會起到不小的作用,一切的辛苦和艱難都是值得的

參考文獻(xiàn)[1].郭文川主編.MCS-51單片機(jī)原理、接口及應(yīng)用.北京:電子工業(yè)出版社,2012

[2].

余發(fā)山主編.單片機(jī)原理及應(yīng)用技術(shù).中國礦業(yè)大學(xué)出版社2003.12[3].

張毅剛.

單片機(jī)原理及接口技術(shù).哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1990

[4].何立民.單片機(jī)應(yīng)用技術(shù)大全.北京:北京航空航天大學(xué)出版社,

1994

[5].譚浩強(qiáng).單片機(jī)課程設(shè)計.

北京:清華大學(xué)出版社,1989

[6].李廣弟.單片機(jī)基礎(chǔ).北京:北京航空航天大學(xué)出版社,1992

附錄1匯編程序;*******************************************************ORG0000HLJMPMAINORG0003HLJMPSETTIME1ORG000BHLJMPTIMEORG0013HLJMPSETTIME2ORG0100HMAIN:MOVSP,#30HMOVR0,#05HMOVR1,#09HMOVR4,#3CHMOVR5,#14HMOVTMOD,#01H;采用定時/計數(shù)器0,方式1MOVTH0,#3CHMOV

溫馨提示

  • 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

提交評論