基于單片機精確正反計數(shù)工程文檔_第1頁
基于單片機精確正反計數(shù)工程文檔_第2頁
基于單片機精確正反計數(shù)工程文檔_第3頁
基于單片機精確正反計數(shù)工程文檔_第4頁
基于單片機精確正反計數(shù)工程文檔_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、項目設(shè)計報告課程名稱 單片機基礎(chǔ)題 目基于單片機的精確正反計數(shù)計時系統(tǒng)的設(shè)計與實現(xiàn)學(xué) 院信息科學(xué)與技術(shù)學(xué)院專 業(yè)計算機科學(xué)與技術(shù)(物聯(lián)網(wǎng)方向) 學(xué)生姓名 王朋學(xué) 號 201110411122 班級 1任課教師游磊2013 年12 月19 日摘 要】單片機自 1976 年由 Intel 公司推出 MCS-48 開始,迄今已有三十多年了。由于單片機集成度高、功能強、可靠性高、體積小、功耗地、使用方便、價格低廉等一系列 優(yōu)點,目前已經(jīng)滲入到人們工作和生活的方方面面,幾乎 “無處不在, 無所不為 ”。單片機的 應(yīng)用領(lǐng)域已從面向工業(yè)控制、 通訊、交通、 智能儀表等迅速發(fā)展到家用消費產(chǎn)品、 辦公自動 化、

2、汽車電子、 PC 機外圍以及網(wǎng)絡(luò)通訊等廣大領(lǐng)域。目前,各個行業(yè),各個領(lǐng)域,在新產(chǎn) 品的設(shè)計中,都盡可能的應(yīng)用單片機技術(shù),來提高產(chǎn)品的智能化程度,增強產(chǎn)品的競爭力, 適應(yīng)技術(shù)的進(jìn)步。電子鐘已成為人們?nèi)粘I钪械谋匦杵罚瑥V泛應(yīng)用于家庭、車站、碼頭、劇院、辦公室 等場所。本系統(tǒng)采用本系統(tǒng)以 AT89C52 為主控芯片,設(shè)計并實現(xiàn)一個正計時和倒計時的秒 表,并考慮節(jié)約系統(tǒng)的硬件, 能用軟件實現(xiàn)的功能盡量都用軟件實現(xiàn)。 這款秒表能按人們預(yù) 定的時刻蜂鳴器發(fā)出音響信號來起到提醒的作用。這款秒表, 不僅功能齊全,系統(tǒng)穩(wěn)定度高,顯示數(shù)據(jù)準(zhǔn)確而且成本低, 能夠廣泛應(yīng)用于 各種場合。關(guān)鍵詞】 單片機、秒表、 AT

3、89C52 。目錄一、設(shè)計目的 4.二、實現(xiàn)環(huán)境 4.1. 上位機環(huán)境 4.2. 下位機環(huán)境 5.三、 設(shè)計思路 6.1. 中斷的概念 6.2. 中斷源 7.3. 中斷寄存器 7.4. 寄存器功能與賦值說明 7.5. 中斷結(jié)構(gòu)圖: 9.6. C51 單片機定時器簡介 1.07. 定時器 / 計數(shù)器詳細(xì)說明 1.08. 實驗步驟 1.2.9. 實驗流程圖 1.2.10. 實驗誤差處理 1.3四、 設(shè)計代碼 1.3.五、 運行結(jié)果 1.6.六、 總結(jié) 1.6.七、參考文獻(xiàn) 1.7.附錄 1.( 元件清單 ) 1.8.附錄 2.(51_4 原理圖 ) 2.0.、設(shè)計目的單片機的優(yōu)點:體積小巧,攜帶方

4、便。USB接口通訊及供電,通訊速度快,無須外接電源活動自鎖 40Pin鎖緊座有電源和燒寫狀態(tài)指示燈,可直觀了解編程器當(dāng)前狀態(tài)只需要US供 電,無需使用外部電源。周密的自保護(hù)方式,有效保證不損毀用戶器件或編程器本 身。USB供電系統(tǒng),直接插接到電腦oUSBq即可提供電源,不需另接直流電源。8位數(shù)碼管(可做數(shù)碼管的靜態(tài)掃描以及動態(tài)掃描顯示實驗女0-999計數(shù)器實驗, 溫度檢測實驗,遙控解碼實驗等都可以用數(shù)碼管顯示o8位LEDg光二極管(做跑馬燈實驗交通燈實驗)o一路繼電器控制(通過繼電器可以控制其他電器設(shè)備的工作低壓控制高壓等實郷 過為了安全,建議不要控制電壓超過30V的設(shè)備)蜂鳴器(做單片機發(fā)聲

5、實驗播放音樂實驗,報警實驗等聲響實驗)DS18B20溫度傳感器,(初步掌握單片機操作后即可親自編寫程序獲知當(dāng)時的溫度) MAX23芯片 RS232!訊接口(可以做為與計算機通迅的接口謝也可做為ST(單片機 下載程序的接口及仿真調(diào)試的接口)設(shè)計布局優(yōu)勢,4個按鍵位于左邊,操作更方便。所以選擇單片機作為項目開發(fā)工具。通過項目實踐,進(jìn)一步學(xué)習(xí)和掌握單片機應(yīng)用系統(tǒng)的有關(guān)知識,加深了解單片 機的工作原理。初步掌握單片機應(yīng)用系統(tǒng)設(shè)計,制作和調(diào)試的方法。提高動手實踐 能力,提高科學(xué)的思維能力。二、實現(xiàn)環(huán)境硬件環(huán)境: 電腦型號 操作系統(tǒng)處理器主板1. 上位機環(huán)境華碩K43SJ筆記本電腦Win dows 8 6

6、4 位(DirectX 11 )英特爾第二代酷睿i5-2410M 2.30GHz雙核 華碩K43SJ (英特爾HM65芯片組)內(nèi)存6 GB (金士頓 DDR3 1333MHz / 昱聯(lián) DDR3 1333MHz )主硬盤日立 HTS723232A7A364 ( 320 GB / 7200 轉(zhuǎn)/ 分)顯卡Nvidia GeForce GT 520M ( 1 GB /華碩)顯示器LG LGD02F8 ( 14英寸)光驅(qū)松下DVD-RAM UJ8A0ASW D刻錄機聲卡瑞昱ALC269 英特爾6 Series Chipset 高保真音頻網(wǎng)卡瑞昱 RTL8168E PCI-E Gigabit Ethe

7、rnet NIC / 華碩軟件環(huán)境:本設(shè)計采用 VC6.0+來實現(xiàn)編程,VC6.0+是一種功能強大的面向?qū)ο蟮?Windows編程開發(fā)平臺。VC6.0的優(yōu)點是界面簡潔,占用資源少,操作方便。所 以本設(shè)計采用VC作為串口編程工具。2. 下位機環(huán)境硬件環(huán)境:cdu51-4單片機開發(fā)板,采用 STC89C52單片機,(它具有8K在 系統(tǒng)可編程Flash存儲器。STC89C52使用經(jīng)典的MCS-51內(nèi)核,在單芯片上,擁 有靈巧的8位CPU和在系統(tǒng)可編程Flash。具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash, 512字節(jié)RAM 32位I/O 口線,看門狗定時器,內(nèi)置 4KB EEPRQMMAX81C復(fù) 位電路

8、,3個16位定時器/計數(shù)器,4個外部中斷,一個7向量4級中斷結(jié)構(gòu), 全雙工串行口。)8位數(shù)碼管6個,8位LED發(fā)光二極管,它采用一種以MAX232為 核心的通信接口電路。該接口電路適用于由一臺PC機與多個8051單片機串行通信的設(shè)計,其原理和方 法同樣適用于PC機與其它單片機之間的串行數(shù)據(jù)通信。2-3軟件環(huán)境:本實驗采用Keil uVision3編程軟件,Keil軟件是目前最流行開 發(fā)MCS-5系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持Kei l即可看出。Keil提供了包括C編譯器 宏匯編 連接器、庫管理和一個功能強大的仿真調(diào)試 器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(Us

9、icn)將這些部份組合在一起Keil 軟件需要Pentium或以上的CPU 1 6MB或更多RAM 20M以上空閑的硬盤空間、 WIN98 N、WIN2000 WINXP WIN7/WIN8等操作系統(tǒng)。掌握這一軟件的使用對于 使用51系列單片機的愛好者來說是十分必要的,如果你使用C語言編程,那么Keil幾乎就是你的不二之選。4 51Keil編程軟件圖2-1圖2-1 Keil編程軟件頁面STCSP_V48燒錄軟件圖2-2STC-ISPrexehttp:/www. MC U - M emoryxom 技朮支持J 3922805190(Version :4,&0Sfitct iciji 丁刃

10、?* 選擇單片則1理!號HIE IT TyfM HwffiFir|沉笛工52肚|WOO -Hbji-eb1FFF程康更件|嚴(yán)_ |革口fib壬| t.視立件|W3iT口 QL D2 看口4 DE D£ 07 aa 00 g OB 口亡 QJ1 DE OPStipZ/iHB?: Cun Fil* / fPF立:件攻件屯圍內(nèi)GlflLd朝(|00 起抬堆址(ME時咬蚯和16 I樸開立件前灣“壤沖打幵程序立件|« Torrid送幵 fE 行口 "氐高吱特卡con Icons :.最高床特聿nszoo -倩塞試崔聞母疲持車或慣埼鬲皮存辛=靖曬融車阿-*設(shè)畳本韜相右下甘詛項

11、1中的ii頃Doutla xp««d / 惡倍理: 廠 BT/>?5rfHl®/ J.2I?單值grFJK菇敝大器增由:廣1/2醫(yī)m冷fbii塔5汕盂低功耗以下1H霜邂壇越可送1/E “込下海爭啟動FL.C3/F1" Cff與下藝無鬢廠 尊于口川巧可Kit快禮JB動 內(nèi)官戸廣展畑-RAM: 廠 第1E諂問恒 咒許1*詢E空刊城薦】下衣下黑用戶應(yīng)用殍庫B寸捋數(shù)4KFH“逅一#|髻隔IIS CT 3IDDO ODDOlO 00 000030 00 3D 000040 M 000050 00 & OODOTO 00 0000® M 90

12、 口口 0DDOW go OOOOBO 00 oq oa ODD d>Cl QOOOEO 00 FQ lao oa 0001 to 00goooogmgoomaogm器 mggmg SSSSSSSSS 口 DDCIDDDnD 口 DOD6O 口 DD OODDODDOD Do 口0口 DID 口??诳?oo Do 口 ???: 口 口。 口 口0!口??诳?O Do口 口0口口。 SSSSSSSSS SSSSSSSSS DoaDOQDOaooDOODDO OODOODDOD no口0口口o 口口O口口O口。口aoa 口口??诳???诳?-U o oo 口 口0 口 口。 ssssssss

13、SSSSSSSSS ooaDOQDOaooDOODDO 口口O口口O口口??诳?口口0口口。 口口O QO 口D口 Doa ooo Do 口口。口口??诳诳诳诳?oo oo口口。 SSSSSSSSS SSSSSSSSS OQDOaooDDODDODDO 口UD 口0門6 -U 口!門6 D O O選鎖 自宦丈下戟睨機下或檢査膽嗨頂自站厝魚isf demlJJLl孰叩畀出貽"皿3少下取 先點下戦挾祖冉痕U上電夏位-冷JB幼 匸血E叔下憨RaD-owrJ. a . <.*6T5k Ir 咼虛TSEKl爭前ilfl扎已打幵仕天沖図白衣件*右傅閽ift惶用L出國怖f弋馮繪生奩化后自為潤

14、入您件.幷三即杠醫(yī)下粧矗令毆下功能仮豺屈STe6§C51Et/fLD*承列甲片機新扳本匚阪拜JS20056月以后供瑋用戶軟件啟動內(nèi)部吞門稠后廠 只口更電美舌門狗 席 宴位攤?cè)ラT務(wù)孕片機出廠日姙 F3 O/Em _P3 1/TkD RS-232_虛用廠SWlil數(shù)妣C1H誼提淫f. MCW"y.站.腳打I炯下戟庶空I*空提示rs- TES廠WD雀?(T我叵非H矽)K * I圖2-2 STC_ISP_V480 燒錄軟件頁面三、設(shè)計思路1.中斷的概念CPU在處理某一事件A時,發(fā)生了另一事件B請求CPUS速去處理(中斷發(fā)生);CPU暫時中斷當(dāng)前的工作,轉(zhuǎn)去處理事件 B (中斷響應(yīng)和

15、中斷服務(wù));待CPUW事件B處理完畢后,再回到原來事件 A被中斷的地方繼續(xù)處理事件A (中斷返回),這一過程稱為中斷2.中斷源在51單片機中有5個中斷源中斷號優(yōu)先級中斷源中斷入口地址01(最咼)外部中斷00003H12定時器0000BH23外部中斷10013H34定時器10018H45串口總段0023H3. 中斷寄存器單片機有10個寄存器主要與中斷程序的書寫控制有關(guān)1) .中斷允許控制寄存器IE2) .定時器控制寄存器TCON3) .串口控制寄存器SCON4) .中斷優(yōu)先控制寄存器IP5) .定時器工作方式控制寄存器TMOD6) .定時器初值賦予寄存器(TH0/TH1, TL0/TL1) 4.

16、寄存器功能與賦值說明6-7注:在用到中斷時,必須要開總中斷 EA,即EA=1 /開總中斷1).中斷允許控制寄存器IE位地址AFHAEHADHACH|ABHAAHA9HA8HESET1EX1ETOEKOEX0(EX1):外部中斷允許控制位EX0=1外部中斷0開關(guān)閉合/ 開外部0中斷 EXO=O 外部中斷0開關(guān)斷開ETO(ETI):定時中斷允許控制位ET0=1定時器中斷0開關(guān)閉合/開內(nèi)部中斷0ET0=0定時器中斷0開關(guān)斷開ES:串口中斷允許控制位ES=1串口中斷開關(guān)閉合/ 開串口中斷ES=0串口中斷開關(guān)斷開2).定時器控制寄存器TCON / 控制外部中斷和定時器中斷他地址8FHSENsen8BH8

17、AHTF1TRITFOTROIE】IT!IEO1iro外部中斷:IE0(IE1) :外部中斷請求標(biāo)志位當(dāng)INT0(INT1)引腳出現(xiàn)有效的請求信號,此位由單片機自動置 1, cpu開始響應(yīng),處理終端,而當(dāng)入中斷程序后由單片機自動置0./ 外部中斷,即外部中斷相應(yīng)的引腳接入低電平或下降沿信號時,中斷開始響應(yīng)。IT0(IT1):外部中斷觸發(fā)方式控制位/選擇有效信號IT0(IT1)=1:脈沖觸發(fā)方式,下降沿有效。IT0(IT1)=0:電平觸發(fā)方式,低電平有效。內(nèi)部中斷:TF0(TF1):內(nèi)部定時器/計數(shù)器溢出中斷標(biāo)志位當(dāng)定時器、計數(shù)器計數(shù)溢出的時候,此位由單片機自動置1,cup開始響應(yīng),處理中斷,而

18、當(dāng)進(jìn)入中斷程序后由單片機自動置0./內(nèi)部中斷實際上就是利用內(nèi)部的計數(shù)器,只不過提供計數(shù)的脈沖來自單片機自身。啟動定時器TRO(TRI):定時器/計數(shù)器啟動位/TRO(TR1)=1;啟動定時器/計數(shù)器0TR0(TR1)=0;關(guān)閉定時器/計數(shù)器03).串口控制寄存器SCON位地址9FH9EM9DH9CH9BH硼99H98HSMOSM1別2RENTB8EB8TIRITI:串行口發(fā)送中斷標(biāo)志位當(dāng)單片機串口發(fā)送完一幀數(shù)據(jù)后,此位由單片機自動置1,而當(dāng)進(jìn)入中斷服務(wù)程序后是不會自動清 0的,必須由用戶在中斷服務(wù)中用軟件清 0.RI :串行口接收中斷標(biāo)志位當(dāng)單片機串口接收完一幀數(shù)據(jù)后,此位由單片機自動置1,而

19、當(dāng)進(jìn)入中斷服務(wù)程序后是不會自動清 0的,必須由用戶在中斷服務(wù)軟件中用軟件清 0.(IP以后補上,TMOD TL0/TH0在定時器/計數(shù)器中講)5.中斷結(jié)構(gòu)圖:TCON外寥中斷0血toTTH-1定時中斷0 TITl=i L外部中斷麗一kIT1=1定時中斷TI串行中斷RX-IEOTF1TITFOEl+1JTSCONRIAAEAEllEXOETCEXIE IP一PTO 0 -0PX1自感優(yōu)先級0PT2中斷標(biāo)志柱 源尤許總允祥 優(yōu)先級 低級中斷請求6. C51單片機定時器簡介本課程設(shè)計是利用MCS-51單片機內(nèi)部的定時/計數(shù)器、中斷系統(tǒng)、以及行 列鍵盤和LED顯示器等部件,設(shè)計一個單片機秒表計時器。設(shè)

20、計的計時器通過數(shù) 碼管顯示,并能通過按鍵實現(xiàn)設(shè)置暫停、復(fù)位等。4-6正計時和倒計時分別使用兩個定時器T0/T1,采用方式1,對12MHZ勺系統(tǒng)時鐘進(jìn)行定時計數(shù),初值設(shè)為 XXYY(自己計算)。形成定時時間為50ms用片內(nèi)RAM勺7BH單元對50ms計數(shù), 計920次產(chǎn)生秒計數(shù)器78H單元加1,正秒計數(shù)器加到999則復(fù)位,倒秒表計時 減到000則復(fù)位。然后通過數(shù)碼管顯示出來。在處理過程中加上了按鍵判斷程序, 能對按鍵處理。7-87. 定時器/計數(shù)器詳細(xì)說明1). 計數(shù)的定義:計數(shù)是指對外部事件進(jìn)行計數(shù),外部事件的發(fā)生以輸入脈沖的形式表示,因此計數(shù)功能的實質(zhì)就是對外來的脈沖進(jìn)行計數(shù),在單片機中對應(yīng)

21、引腳 T0和T1,兩個脈沖輸入端。外部輸入的脈沖在負(fù)跳變時有效(即外部脈沖由1變化到0),計數(shù)器加1.2) .定時器:定時器是通過計數(shù)器的計數(shù)來實現(xiàn)的,不過此時的計數(shù)脈沖來自單片機 的內(nèi)部,因此定時器的實質(zhì)是對內(nèi)部脈沖的計數(shù),在單片機中,每個機器周期產(chǎn)生一次計數(shù)脈沖,計數(shù)器加1.3) . 工作方式控制寄存器TMOD 9位號D7D6D5D40302DIDOGATEC/TMlMOCATEC/TMlHOTMOD 的低半字節(jié)(D0,D1,D2,D3)用來控制定時器/計數(shù)器0TMOD 的高半字節(jié)(D4, D5, D6, D7)用來控制定時器/計數(shù)器1 對TMO中的內(nèi)容說明:GATE 門控制。GATE=1

22、 時,由外部中斷引腳INTO、INT1來啟動定時器TO、T1當(dāng)INTO引腳為高電平時TRO置位,啟動定時器TO;當(dāng)INT1引腳為高電平時TR1置位,啟動定時器T1。GATE=O 時,僅由TRO,TR1置位分別啟動定時器TO、T1。C/T功能選擇位C/T=O時為定時功能,C/T=1時為計數(shù)功能。MO 、M1方式選擇功能由于有2位,因此有4種工作方式Ml MO工作方貳功穂0 0工作方式013位計數(shù)器0 1,汕式116 tilt數(shù)器1 0作 6 J't 2自動再裝入Still'數(shù)器1 1T.作方式3崔時器0:分成兩個曲計數(shù)器定時器h停止計數(shù)4).根據(jù)單片機晶振,所選 TMOD勺的工作

23、方式,所要定的時間,來確定 THO 和TLO所要賦予的初值10-11(以12M晶振,工作方式1,16位計數(shù)器為例,設(shè)所定時間為 Xus( 16為計 數(shù)器最大數(shù)65536,即65536us,若所定時間大于 65535,則要用 if 語句控制,現(xiàn)假設(shè) X<65535)1. 時鐘周期的時間 t=1/12M=1/12 us2. 機器周期的時間 T=12*1/12=1 us3. 因為每經(jīng)過一個機器周期計數(shù)器 +1,所以,計數(shù)器 +1,經(jīng)過的時間為 1 us。若所定時間為X,則要求經(jīng)過Xus,中斷響應(yīng),又因為16為計數(shù)器要全部置 1(即達(dá)到 65535)+1 后,中斷才會響應(yīng),所以,初值 =( 65

24、536-X)4. 將初值轉(zhuǎn)化為16進(jìn)制碼,分別付給THC和TLOeg :所定時間 50ms初值=(65536-50000)=15536=3CB0HTH0=0X3C; TL0=0XB0;(當(dāng)工作方式不同時,TH0/TL0的賦值也不同,個人覺得有了 16位計數(shù)器 了,其余的沒什么用,不介紹了)8. 實驗步驟1)啟動 Keil uVision32)新建項目“秒表”,并新建文件“正計時與倒計時 7.c ”3 )在“正計時與倒計時7.C ”中寫入代碼,選擇創(chuàng)建 hex文件,編輯運行產(chǎn) 生 hex 文件4 )使用STC_ISP_V48軟件將產(chǎn)生的hex燒錄到開發(fā)板中(注意com號的選擇, 在設(shè)備管理器中查

25、看com號)。9. 實驗流程圖開始初始化定時器與中斷按鍵4刷新數(shù)碼管、溢岀20次? 卜冬 重置清零J繼綾計數(shù)10.實驗誤差處理由于中斷溢出,晶振和其他硬件原因造成單片機秒表時間可能不準(zhǔn)確,那么我們可以使用軟件來修正,使其計時更加精準(zhǔn)。正常情況下:TC = M - T/T 計數(shù)=65536 - 50ms/1us = 15536 = 3CB0H但是我們在16位計數(shù)機使用3CB0時存在誤差,和標(biāo)準(zhǔn)時間比較5min慢1s, 那么就應(yīng)該修改TC:N = 20 * 50ms * 5 *60,T 計數(shù)=N/299;TC = M - T/T 計數(shù)=3D57四、設(shè)計核心代碼sbit Key1 =卩3八0;sbi

26、tKey2=卩3八1;uint8 a6;uint8 b6;uin t16 time;uin t8 cou nter0=0; /容器uint8 coun ter1=0;void delay( uint8 z);void timer0_i nit();void timer1ni t();#in clude<reg52.h>typedef unsigned char uint8;typedef unsigned int uint16;codeuint8nu mber=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x 82,0xf8,0x80,0x90;/ 01234567

27、89sbit D0 = P0A0;sbit D1 = P0A1;sbit D2 = P0A2;void in terrupt1_i nit();void in terruptOni t();void refreshO();void refresh1(ui nt8data1,ui nt8data2,ui nt8 data3);void delay(ui nt8 z)/ 延遲函數(shù)ui nt8 i;while(z-) for(i=0;i<120;i+); void timer0_i nit() _TMOD|= 0x01; M0 位置 1, M1位置0TMOD&= 0xfd;TH0 =

28、0x3D;TL0 = 0x57;修正成 3D57/ TL0 = 0xB0;/TR0 = 1;/TO開始計數(shù)void timer1ni t() _TMOD |=0x10;TMOD &=0xdf; /TH1 = 0x3D;TL1 = 0x57;修正成 3D57/ TL1 = 0xB0;/TR1 = 1;/T1開始計數(shù)void interrupt0_init() / 中斷 響應(yīng)函 數(shù)_ET0=1; /響應(yīng)tiemer0的中斷 就是打開TF0的中斷功能EA =1; 中斷請求被開放void in terrupt1_i ni t() / 中斷響應(yīng)函 數(shù)_ET1=1; /響應(yīng)tiemer1的中斷 就

29、是打開TF1的中斷功能EA =1; 中斷請求被開放void mai n()time=999;timer0_i nit();timer1n it();in terrupt0_i nit();in terrupt1_i nit();while(1)uin t16 ge,shi,bai; ge=time%10;/通過取余的方法把時間的個位取 出來shi =(time/10)%10;/通過取整的方法把時間的十位取 出來bai = (time/100)%10;/通過取整的方法把時間的百位取 出來refresh0(); /刷新低 3 位 delay(2);/調(diào)用延遲函 數(shù)refresh1(bai,shi,

30、ge);/ 刷新咼3位delay(2);/調(diào)用延遲函 數(shù)if(Key1 = 0) delay(2); if(Key1 = 0) while(!Key1);DO = 0; D1 = 0; D2 = 0;if(Key2 =0) delay(2); if(Key2 = 0) while(!Key1);D0 = 0;D1 = 0; D2 = 0; time =999; ge=time%10;/通過取余的方法把時間的個位取 出來shi=(time/10)%10; / 通 過取整的方法把時間的十位取出來bai=(time/100)%10;/通過取整的方法把時間的百位取 出來refresh0(); /刷新低

31、 3 位 delay(2);/調(diào)用延遲函 數(shù)refresh1(bai,shi,ge); 刷新咼3位delay(2);/調(diào)用延遲函 數(shù)void refresh0()static uint8 j = 0;switch(j) case0:P0=0xff;P2&=0xDF;P2|=0x1F; j+;P0=nu mbera0;break; /?x case1:P0=0xff;P2&=0xEF;P2|=0x2F; j+;P0=nu mbera1;break; ?x? case2:P0=0xff; P2&=0xF7;P2|=0x37; j=0;P0=nu mbera2;break;

32、/x?default:break;void refresh1(ui nt8data1,ui nt8data2,uint8 data3)P0 = numberdata1;P2&=0xFE;P2|=0x3E; 最高位 delay(1); P0 = 0xff;P0 = numberdata2;P2&=0xFD;P2|=0x3D;delay(1);P0 = 0xff;P0 = numberdata3;P2&=0xFB;P2|=0x3B;delay(1);P0 = 0xff;void in terrupt_timer0() in terrupt 1/定時器0溢出中斷static

33、uin t16 sec=0;TH0 =0x3D;/重新對計數(shù)器進(jìn)行賦值TL0 = 0x57;修正成 3D57/ TL0 = 0xB0;/coun ter0+;if(20=counter0)/ 表示記滿20次,即為1Ssec+;coun ter0=0; a0=sec%10;/個位a1=sec/10%10;/十位a2=sec/100%10;/百位void in terrupt_timer1() in terrupt 3/定時器1溢出中斷高3位中 斷TH1 =0x3D;/重新對計數(shù)器進(jìn) 行賦值TL1 = 0x57;修正成 3D57/ TL1 = 0xB0;/coun ter1+;if(20=cou

34、nter1) / 表示記滿 20次,即為1Stime-;coun ter1=0; if(time=65536) time=999;五、運行結(jié)果計時器運行結(jié)果如圖:六、總結(jié)單片機是我所學(xué)專業(yè)的主要課程之一,因此我認(rèn)為單片機課程設(shè)計是十分 必要而且十分重要的。 盡管剛剛拿到課程設(shè)計題目時有點迷惘, 不知道如何著手, 但通過上網(wǎng)和圖書館查閱相關(guān)資料, 自己認(rèn)真鉆研以及虛心詢問同學(xué), 終于解決 了一個又一個的困難和障礙,成功完成了任務(wù)。通過本次的單片機課程設(shè)計, 不僅大大地豐富了我的理論知識, 而且在實踐 過程中更令我學(xué)會了堅持、 耐心和努力。 此次單片機課程設(shè)計需要運用到許多之 前所學(xué)過的知識, 令

35、我認(rèn)識到自己以前學(xué)習(xí)的一些不足之處, 例如對以前所學(xué)知 識的理解不夠深刻, 掌握得不夠牢固, 運用不夠靈活。 這讓我懂得了認(rèn)真學(xué)習(xí)的 重要性,以及要孜孜不倦地鉆研所學(xué)過的知識,做得融會貫通,不能一覽而過, 不求甚解。 在邊學(xué)習(xí)邊動手的過程中, 我對電子時鐘的構(gòu)造以及原理有了進(jìn)一步 的了解,同時也加深和鞏固了我對單片機 C 語言的認(rèn)識。除此之外,由于是第 一次做單片機,因此在此次課程設(shè)計的過程中,無論是電路繪制還是 C 語言編 寫都難免遇到了不少困難和障礙,例如 C 語言編寫出錯、電路元件無從入手等。 在面對困難和障礙時, 我慶幸自己沒有退縮和逃避, 而是通過各種方法, 迎難而 上,以堅持、耐心

36、和努力勇敢無畏地面對困難,克服困難,解決困難。讓我發(fā)現(xiàn) 問題、分析問題、 解決問題以及動手實踐的能力都有了很大的提高, 并了解到理 論知識與實踐相結(jié)合的重要意義。從這次的課程設(shè)計中, 我們真真正正的意識到, 在以后的學(xué)習(xí)中, 要理論聯(lián) 系實際,把我們所學(xué)的理論知識用到實際當(dāng)中, 學(xué)習(xí)單機片機更是如此, 程序只 有在經(jīng)常的練習(xí)的過程中才能提高。本次課程設(shè)計盡管時間不長,但從中所獲, 將令我受益終生。七、參考文獻(xiàn)1 劉守義 ,單片機應(yīng)用技術(shù) M 成都:西安電子科技大學(xué)出版 ,20022 Victor P. Nelson ,Digital Logical Circuits Analysis & Design J, Prentice Hall.2003 年 6 月 出版, P40-943 萬勝前.基于KeilC51軟件的電子鐘設(shè)計與制作J,鄂州大學(xué)學(xué)報,2007年第2期,P16-204 趙秀珍 ,單片微型計算機原理及其應(yīng)用M 中國水利水電出版社 ,2001 向繼文等基于AT89C51的電子鐘系統(tǒng)設(shè)計J,應(yīng)用科技,2007年第2期,P34-376 M.Morris Ma noDigital Desig nM ( Third Edition )Higher Educatio n Press ,20027 何希才社煜.實用電子電路設(shè)計M.北京:電子工業(yè)出版社,1998.28 馬鴻文.基

溫馨提示

  • 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

提交評論