




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、項(xiàng)目設(shè)計(jì)報(bào)告課程名稱 單片機(jī)基礎(chǔ)題 目基于單片機(jī)的精確正反計(jì)數(shù)計(jì)時(shí)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)學(xué) 院信息科學(xué)與技術(shù)學(xué)院專 業(yè)計(jì)算機(jī)科學(xué)與技術(shù)(物聯(lián)網(wǎng)方向) 學(xué)生姓名 王朋學(xué) 號(hào) 201110411122 班級(jí) 1任課教師游磊2013 年12 月19 日摘 要】單片機(jī)自 1976 年由 Intel 公司推出 MCS-48 開(kāi)始,迄今已有三十多年了。由于單片機(jī)集成度高、功能強(qiáng)、可靠性高、體積小、功耗地、使用方便、價(jià)格低廉等一系列 優(yōu)點(diǎn),目前已經(jīng)滲入到人們工作和生活的方方面面,幾乎 “無(wú)處不在, 無(wú)所不為 ”。單片機(jī)的 應(yīng)用領(lǐng)域已從面向工業(yè)控制、 通訊、交通、 智能儀表等迅速發(fā)展到家用消費(fèi)產(chǎn)品、 辦公自動(dòng) 化、
2、汽車電子、 PC 機(jī)外圍以及網(wǎng)絡(luò)通訊等廣大領(lǐng)域。目前,各個(gè)行業(yè),各個(gè)領(lǐng)域,在新產(chǎn) 品的設(shè)計(jì)中,都盡可能的應(yīng)用單片機(jī)技術(shù),來(lái)提高產(chǎn)品的智能化程度,增強(qiáng)產(chǎn)品的競(jìng)爭(zhēng)力, 適應(yīng)技術(shù)的進(jìn)步。電子鐘已成為人們?nèi)粘I钪械谋匦杵?,廣泛應(yīng)用于家庭、車站、碼頭、劇院、辦公室 等場(chǎng)所。本系統(tǒng)采用本系統(tǒng)以 AT89C52 為主控芯片,設(shè)計(jì)并實(shí)現(xiàn)一個(gè)正計(jì)時(shí)和倒計(jì)時(shí)的秒 表,并考慮節(jié)約系統(tǒng)的硬件, 能用軟件實(shí)現(xiàn)的功能盡量都用軟件實(shí)現(xiàn)。 這款秒表能按人們預(yù) 定的時(shí)刻蜂鳴器發(fā)出音響信號(hào)來(lái)起到提醒的作用。這款秒表, 不僅功能齊全,系統(tǒng)穩(wěn)定度高,顯示數(shù)據(jù)準(zhǔn)確而且成本低, 能夠廣泛應(yīng)用于 各種場(chǎng)合。關(guān)鍵詞】 單片機(jī)、秒表、 AT
3、89C52 。目錄一、設(shè)計(jì)目的 4.二、實(shí)現(xiàn)環(huán)境 4.1. 上位機(jī)環(huán)境 4.2. 下位機(jī)環(huán)境 5.三、 設(shè)計(jì)思路 6.1. 中斷的概念 6.2. 中斷源 7.3. 中斷寄存器 7.4. 寄存器功能與賦值說(shuō)明 7.5. 中斷結(jié)構(gòu)圖: 9.6. C51 單片機(jī)定時(shí)器簡(jiǎn)介 1.07. 定時(shí)器 / 計(jì)數(shù)器詳細(xì)說(shuō)明 1.08. 實(shí)驗(yàn)步驟 1.2.9. 實(shí)驗(yàn)流程圖 1.2.10. 實(shí)驗(yàn)誤差處理 1.3四、 設(shè)計(jì)代碼 1.3.五、 運(yùn)行結(jié)果 1.6.六、 總結(jié) 1.6.七、參考文獻(xiàn) 1.7.附錄 1.( 元件清單 ) 1.8.附錄 2.(51_4 原理圖 ) 2.0.、設(shè)計(jì)目的單片機(jī)的優(yōu)點(diǎn):體積小巧,攜帶方
4、便。USB接口通訊及供電,通訊速度快,無(wú)須外接電源活動(dòng)自鎖 40Pin鎖緊座有電源和燒寫(xiě)狀態(tài)指示燈,可直觀了解編程器當(dāng)前狀態(tài)只需要US供 電,無(wú)需使用外部電源。周密的自保護(hù)方式,有效保證不損毀用戶器件或編程器本 身。USB供電系統(tǒng),直接插接到電腦oUSBq即可提供電源,不需另接直流電源。8位數(shù)碼管(可做數(shù)碼管的靜態(tài)掃描以及動(dòng)態(tài)掃描顯示實(shí)驗(yàn)女0-999計(jì)數(shù)器實(shí)驗(yàn), 溫度檢測(cè)實(shí)驗(yàn),遙控解碼實(shí)驗(yàn)等都可以用數(shù)碼管顯示o8位LEDg光二極管(做跑馬燈實(shí)驗(yàn)交通燈實(shí)驗(yàn))o一路繼電器控制(通過(guò)繼電器可以控制其他電器設(shè)備的工作低壓控制高壓等實(shí)郷 過(guò)為了安全,建議不要控制電壓超過(guò)30V的設(shè)備)蜂鳴器(做單片機(jī)發(fā)聲
5、實(shí)驗(yàn)播放音樂(lè)實(shí)驗(yàn),報(bào)警實(shí)驗(yàn)等聲響實(shí)驗(yàn))DS18B20溫度傳感器,(初步掌握單片機(jī)操作后即可親自編寫(xiě)程序獲知當(dāng)時(shí)的溫度) MAX23芯片 RS232!訊接口(可以做為與計(jì)算機(jī)通迅的接口謝也可做為ST(單片機(jī) 下載程序的接口及仿真調(diào)試的接口)設(shè)計(jì)布局優(yōu)勢(shì),4個(gè)按鍵位于左邊,操作更方便。所以選擇單片機(jī)作為項(xiàng)目開(kāi)發(fā)工具。通過(guò)項(xiàng)目實(shí)踐,進(jìn)一步學(xué)習(xí)和掌握單片機(jī)應(yīng)用系統(tǒng)的有關(guān)知識(shí),加深了解單片 機(jī)的工作原理。初步掌握單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì),制作和調(diào)試的方法。提高動(dòng)手實(shí)踐 能力,提高科學(xué)的思維能力。二、實(shí)現(xiàn)環(huán)境硬件環(huán)境: 電腦型號(hào) 操作系統(tǒng)處理器主板1. 上位機(jī)環(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 )主硬盤(pán)日立 HTS723232A7A364 ( 320 GB / 7200 轉(zhuǎn)/ 分)顯卡Nvidia GeForce GT 520M ( 1 GB /華碩)顯示器LG LGD02F8 ( 14英寸)光驅(qū)松下DVD-RAM UJ8A0ASW D刻錄機(jī)聲卡瑞昱ALC269 英特爾6 Series Chipset 高保真音頻網(wǎng)卡瑞昱 RTL8168E PCI-E Gigabit Ethe
7、rnet NIC / 華碩軟件環(huán)境:本設(shè)計(jì)采用 VC6.0+來(lái)實(shí)現(xiàn)編程,VC6.0+是一種功能強(qiáng)大的面向?qū)ο蟮?Windows編程開(kāi)發(fā)平臺(tái)。VC6.0的優(yōu)點(diǎn)是界面簡(jiǎn)潔,占用資源少,操作方便。所 以本設(shè)計(jì)采用VC作為串口編程工具。2. 下位機(jī)環(huán)境硬件環(huán)境:cdu51-4單片機(jī)開(kāi)發(fā)板,采用 STC89C52單片機(jī),(它具有8K在 系統(tǒng)可編程Flash存儲(chǔ)器。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 口線,看門狗定時(shí)器,內(nèi)置 4KB EEPRQMMAX81C復(fù) 位電路
8、,3個(gè)16位定時(shí)器/計(jì)數(shù)器,4個(gè)外部中斷,一個(gè)7向量4級(jí)中斷結(jié)構(gòu), 全雙工串行口。)8位數(shù)碼管6個(gè),8位LED發(fā)光二極管,它采用一種以MAX232為 核心的通信接口電路。該接口電路適用于由一臺(tái)PC機(jī)與多個(gè)8051單片機(jī)串行通信的設(shè)計(jì),其原理和方 法同樣適用于PC機(jī)與其它單片機(jī)之間的串行數(shù)據(jù)通信。2-3軟件環(huán)境:本實(shí)驗(yàn)采用Keil uVision3編程軟件,Keil軟件是目前最流行開(kāi) 發(fā)MCS-5系列單片機(jī)的軟件,這從近年來(lái)各仿真機(jī)廠商紛紛宣布全面支持Kei l即可看出。Keil提供了包括C編譯器 宏匯編 連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試 器等在內(nèi)的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境(Us
9、icn)將這些部份組合在一起Keil 軟件需要Pentium或以上的CPU 1 6MB或更多RAM 20M以上空閑的硬盤(pán)空間、 WIN98 N、WIN2000 WINXP WIN7/WIN8等操作系統(tǒng)。掌握這一軟件的使用對(duì)于 使用51系列單片機(jī)的愛(ài)好者來(lái)說(shuō)是十分必要的,如果你使用C語(yǔ)言編程,那么Keil幾乎就是你的不二之選。4 51Keil編程軟件圖2-1圖2-1 Keil編程軟件頁(yè)面STCSP_V48燒錄軟件圖2-2STC-ISPrexehttp:/www. MC U - M emoryxom 技朮支持J 3922805190(Version :4,&0Sfitct iciji 丁刃
10、?* 選擇單片則1理!號(hào)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時(shí)咬蚯和16 I樸開(kāi)立件前灣“壤沖打幵程序立件|« Torrid送幵 fE 行口 "氐高吱特卡con Icons :.最高床特聿nszoo -倩塞試崔聞母疲持車或慣埼鬲皮存辛=靖曬融車阿-*設(shè)畳本韜相右下甘詛項(xiàng)
11、1中的ii頃Doutla xp««d / 惡倍理: 廠 BT/>?5rfHl®/ J.2I?單值grFJK菇敝大器增由:廣1/2醫(yī)m冷fbii塔5汕盂低功耗以下1H霜邂壇越可送1/E “込下海爭(zhēng)啟動(dòng)FL.C3/F1" Cff與下藝無(wú)鬢廠 尊于口川巧可Kit快禮JB動(dòng) 內(nèi)官戸廣展畑-RAM: 廠 第1E諂問(wèn)恒 咒許1*詢E空刊城薦】下衣下黑用戶應(yīng)用殍庫(kù)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口??赼oa 口口。口口??诳?-U o oo 口 口0 口 口。 ssssssss
13、SSSSSSSSS ooaDOQDOaooDOODDO 口口O口口O口口。口口0口口0口口。 口口O QO 口D口 Doa ooo Do 口口??诳???诳诳诳诳?oo oo口口。 SSSSSSSSS SSSSSSSSS OQDOaooDDODDODDO 口UD 口0門6 -U 口!門6 D O O選鎖 自宦丈下戟睨機(jī)下或檢査膽嗨頂自站厝魚(yú)isf demlJJLl孰叩畀出貽"皿3少下取 先點(diǎn)下戦挾祖冉痕U上電夏位-冷JB幼 匸血E叔下憨RaD-owrJ. a . <.*6T5k Ir 咼虛TSEKl爭(zhēng)前ilfl扎已打幵仕天沖図白衣件*右傅閽ift惶用L出國(guó)怖f弋馮繪生奩化后自為潤(rùn)
14、入您件.幷三即杠醫(yī)下粧矗令毆下功能仮豺屈STe6§C51Et/fLD*承列甲片機(jī)新扳本匚阪拜JS20056月以后供瑋用戶軟件啟動(dòng)內(nèi)部吞門稠后廠 只口更電美舌門狗 席 宴位攤?cè)ラT務(wù)孕片機(jī)出廠日姙 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 燒錄軟件頁(yè)面三、設(shè)計(jì)思路1.中斷的概念CPU在處理某一事件A時(shí),發(fā)生了另一事件B請(qǐng)求CPUS速去處理(中斷發(fā)生);CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)去處理事件 B (中斷響應(yīng)和
15、中斷服務(wù));待CPUW事件B處理完畢后,再回到原來(lái)事件 A被中斷的地方繼續(xù)處理事件A (中斷返回),這一過(guò)程稱為中斷2.中斷源在51單片機(jī)中有5個(gè)中斷源中斷號(hào)優(yōu)先級(jí)中斷源中斷入口地址01(最咼)外部中斷00003H12定時(shí)器0000BH23外部中斷10013H34定時(shí)器10018H45串口總段0023H3. 中斷寄存器單片機(jī)有10個(gè)寄存器主要與中斷程序的書(shū)寫(xiě)控制有關(guān)1) .中斷允許控制寄存器IE2) .定時(shí)器控制寄存器TCON3) .串口控制寄存器SCON4) .中斷優(yōu)先控制寄存器IP5) .定時(shí)器工作方式控制寄存器TMOD6) .定時(shí)器初值賦予寄存器(TH0/TH1, TL0/TL1) 4.
16、寄存器功能與賦值說(shuō)明6-7注:在用到中斷時(shí),必須要開(kāi)總中斷 EA,即EA=1 /開(kāi)總中斷1).中斷允許控制寄存器IE位地址AFHAEHADHACH|ABHAAHA9HA8HESET1EX1ETOEKOEX0(EX1):外部中斷允許控制位EX0=1外部中斷0開(kāi)關(guān)閉合/ 開(kāi)外部0中斷 EXO=O 外部中斷0開(kāi)關(guān)斷開(kāi)ETO(ETI):定時(shí)中斷允許控制位ET0=1定時(shí)器中斷0開(kāi)關(guān)閉合/開(kāi)內(nèi)部中斷0ET0=0定時(shí)器中斷0開(kāi)關(guān)斷開(kāi)ES:串口中斷允許控制位ES=1串口中斷開(kāi)關(guān)閉合/ 開(kāi)串口中斷ES=0串口中斷開(kāi)關(guān)斷開(kāi)2).定時(shí)器控制寄存器TCON / 控制外部中斷和定時(shí)器中斷他地址8FHSENsen8BH8
17、AHTF1TRITFOTROIE】IT!IEO1iro外部中斷:IE0(IE1) :外部中斷請(qǐng)求標(biāo)志位當(dāng)INT0(INT1)引腳出現(xiàn)有效的請(qǐng)求信號(hào),此位由單片機(jī)自動(dòng)置 1, cpu開(kāi)始響應(yīng),處理終端,而當(dāng)入中斷程序后由單片機(jī)自動(dòng)置0./ 外部中斷,即外部中斷相應(yīng)的引腳接入低電平或下降沿信號(hào)時(shí),中斷開(kāi)始響應(yīng)。IT0(IT1):外部中斷觸發(fā)方式控制位/選擇有效信號(hào)IT0(IT1)=1:脈沖觸發(fā)方式,下降沿有效。IT0(IT1)=0:電平觸發(fā)方式,低電平有效。內(nèi)部中斷:TF0(TF1):內(nèi)部定時(shí)器/計(jì)數(shù)器溢出中斷標(biāo)志位當(dāng)定時(shí)器、計(jì)數(shù)器計(jì)數(shù)溢出的時(shí)候,此位由單片機(jī)自動(dòng)置1,cup開(kāi)始響應(yīng),處理中斷,而
18、當(dāng)進(jìn)入中斷程序后由單片機(jī)自動(dòng)置0./內(nèi)部中斷實(shí)際上就是利用內(nèi)部的計(jì)數(shù)器,只不過(guò)提供計(jì)數(shù)的脈沖來(lái)自單片機(jī)自身。啟動(dòng)定時(shí)器TRO(TRI):定時(shí)器/計(jì)數(shù)器啟動(dòng)位/TRO(TR1)=1;啟動(dòng)定時(shí)器/計(jì)數(shù)器0TR0(TR1)=0;關(guān)閉定時(shí)器/計(jì)數(shù)器03).串口控制寄存器SCON位地址9FH9EM9DH9CH9BH硼99H98HSMOSM1別2RENTB8EB8TIRITI:串行口發(fā)送中斷標(biāo)志位當(dāng)單片機(jī)串口發(fā)送完一幀數(shù)據(jù)后,此位由單片機(jī)自動(dòng)置1,而當(dāng)進(jìn)入中斷服務(wù)程序后是不會(huì)自動(dòng)清 0的,必須由用戶在中斷服務(wù)中用軟件清 0.RI :串行口接收中斷標(biāo)志位當(dāng)單片機(jī)串口接收完一幀數(shù)據(jù)后,此位由單片機(jī)自動(dòng)置1,而
19、當(dāng)進(jìn)入中斷服務(wù)程序后是不會(huì)自動(dòng)清 0的,必須由用戶在中斷服務(wù)軟件中用軟件清 0.(IP以后補(bǔ)上,TMOD TL0/TH0在定時(shí)器/計(jì)數(shù)器中講)5.中斷結(jié)構(gòu)圖:TCON外寥中斷0血toTTH-1定時(shí)中斷0 TITl=i L外部中斷麗一kIT1=1定時(shí)中斷TI串行中斷RX-IEOTF1TITFOEl+1JTSCONRIAAEAEllEXOETCEXIE IP一PTO 0 -0PX1自感優(yōu)先級(jí)0PT2中斷標(biāo)志柱 源尤許總允祥 優(yōu)先級(jí) 低級(jí)中斷請(qǐng)求6. C51單片機(jī)定時(shí)器簡(jiǎn)介本課程設(shè)計(jì)是利用MCS-51單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)、以及行 列鍵盤(pán)和LED顯示器等部件,設(shè)計(jì)一個(gè)單片機(jī)秒表計(jì)時(shí)器。設(shè)
20、計(jì)的計(jì)時(shí)器通過(guò)數(shù) 碼管顯示,并能通過(guò)按鍵實(shí)現(xiàn)設(shè)置暫停、復(fù)位等。4-6正計(jì)時(shí)和倒計(jì)時(shí)分別使用兩個(gè)定時(shí)器T0/T1,采用方式1,對(duì)12MHZ勺系統(tǒng)時(shí)鐘進(jìn)行定時(shí)計(jì)數(shù),初值設(shè)為 XXYY(自己計(jì)算)。形成定時(shí)時(shí)間為50ms用片內(nèi)RAM勺7BH單元對(duì)50ms計(jì)數(shù), 計(jì)920次產(chǎn)生秒計(jì)數(shù)器78H單元加1,正秒計(jì)數(shù)器加到999則復(fù)位,倒秒表計(jì)時(shí) 減到000則復(fù)位。然后通過(guò)數(shù)碼管顯示出來(lái)。在處理過(guò)程中加上了按鍵判斷程序, 能對(duì)按鍵處理。7-87. 定時(shí)器/計(jì)數(shù)器詳細(xì)說(shuō)明1). 計(jì)數(shù)的定義:計(jì)數(shù)是指對(duì)外部事件進(jìn)行計(jì)數(shù),外部事件的發(fā)生以輸入脈沖的形式表示,因此計(jì)數(shù)功能的實(shí)質(zhì)就是對(duì)外來(lái)的脈沖進(jìn)行計(jì)數(shù),在單片機(jī)中對(duì)應(yīng)
21、引腳 T0和T1,兩個(gè)脈沖輸入端。外部輸入的脈沖在負(fù)跳變時(shí)有效(即外部脈沖由1變化到0),計(jì)數(shù)器加1.2) .定時(shí)器:定時(shí)器是通過(guò)計(jì)數(shù)器的計(jì)數(shù)來(lái)實(shí)現(xiàn)的,不過(guò)此時(shí)的計(jì)數(shù)脈沖來(lái)自單片機(jī) 的內(nèi)部,因此定時(shí)器的實(shí)質(zhì)是對(duì)內(nèi)部脈沖的計(jì)數(shù),在單片機(jī)中,每個(gè)機(jī)器周期產(chǎn)生一次計(jì)數(shù)脈沖,計(jì)數(shù)器加1.3) . 工作方式控制寄存器TMOD 9位號(hào)D7D6D5D40302DIDOGATEC/TMlMOCATEC/TMlHOTMOD 的低半字節(jié)(D0,D1,D2,D3)用來(lái)控制定時(shí)器/計(jì)數(shù)器0TMOD 的高半字節(jié)(D4, D5, D6, D7)用來(lái)控制定時(shí)器/計(jì)數(shù)器1 對(duì)TMO中的內(nèi)容說(shuō)明:GATE 門控制。GATE=1
22、 時(shí),由外部中斷引腳INTO、INT1來(lái)啟動(dòng)定時(shí)器TO、T1當(dāng)INTO引腳為高電平時(shí)TRO置位,啟動(dòng)定時(shí)器TO;當(dāng)INT1引腳為高電平時(shí)TR1置位,啟動(dòng)定時(shí)器T1。GATE=O 時(shí),僅由TRO,TR1置位分別啟動(dòng)定時(shí)器TO、T1。C/T功能選擇位C/T=O時(shí)為定時(shí)功能,C/T=1時(shí)為計(jì)數(shù)功能。MO 、M1方式選擇功能由于有2位,因此有4種工作方式Ml MO工作方貳功穂0 0工作方式013位計(jì)數(shù)器0 1,汕式116 tilt數(shù)器1 0作 6 J't 2自動(dòng)再裝入Still'數(shù)器1 1T.作方式3崔時(shí)器0:分成兩個(gè)曲計(jì)數(shù)器定時(shí)器h停止計(jì)數(shù)4).根據(jù)單片機(jī)晶振,所選 TMOD勺的工作
23、方式,所要定的時(shí)間,來(lái)確定 THO 和TLO所要賦予的初值10-11(以12M晶振,工作方式1,16位計(jì)數(shù)器為例,設(shè)所定時(shí)間為 Xus( 16為計(jì) 數(shù)器最大數(shù)65536,即65536us,若所定時(shí)間大于 65535,則要用 if 語(yǔ)句控制,現(xiàn)假設(shè) X<65535)1. 時(shí)鐘周期的時(shí)間 t=1/12M=1/12 us2. 機(jī)器周期的時(shí)間 T=12*1/12=1 us3. 因?yàn)槊拷?jīng)過(guò)一個(gè)機(jī)器周期計(jì)數(shù)器 +1,所以,計(jì)數(shù)器 +1,經(jīng)過(guò)的時(shí)間為 1 us。若所定時(shí)間為X,則要求經(jīng)過(guò)Xus,中斷響應(yīng),又因?yàn)?6為計(jì)數(shù)器要全部置 1(即達(dá)到 65535)+1 后,中斷才會(huì)響應(yīng),所以,初值 =( 65
24、536-X)4. 將初值轉(zhuǎn)化為16進(jìn)制碼,分別付給THC和TLOeg :所定時(shí)間 50ms初值=(65536-50000)=15536=3CB0HTH0=0X3C; TL0=0XB0;(當(dāng)工作方式不同時(shí),TH0/TL0的賦值也不同,個(gè)人覺(jué)得有了 16位計(jì)數(shù)器 了,其余的沒(méi)什么用,不介紹了)8. 實(shí)驗(yàn)步驟1)啟動(dòng) Keil uVision32)新建項(xiàng)目“秒表”,并新建文件“正計(jì)時(shí)與倒計(jì)時(shí) 7.c ”3 )在“正計(jì)時(shí)與倒計(jì)時(shí)7.C ”中寫(xiě)入代碼,選擇創(chuàng)建 hex文件,編輯運(yùn)行產(chǎn) 生 hex 文件4 )使用STC_ISP_V48軟件將產(chǎn)生的hex燒錄到開(kāi)發(fā)板中(注意com號(hào)的選擇, 在設(shè)備管理器中查
25、看com號(hào))。9. 實(shí)驗(yàn)流程圖開(kāi)始初始化定時(shí)器與中斷按鍵4刷新數(shù)碼管、溢岀20次? 卜冬 重置清零J繼綾計(jì)數(shù)10.實(shí)驗(yàn)誤差處理由于中斷溢出,晶振和其他硬件原因造成單片機(jī)秒表時(shí)間可能不準(zhǔn)確,那么我們可以使用軟件來(lái)修正,使其計(jì)時(shí)更加精準(zhǔn)。正常情況下:TC = M - T/T 計(jì)數(shù)=65536 - 50ms/1us = 15536 = 3CB0H但是我們?cè)?6位計(jì)數(shù)機(jī)使用3CB0時(shí)存在誤差,和標(biāo)準(zhǔn)時(shí)間比較5min慢1s, 那么就應(yīng)該修改TC:N = 20 * 50ms * 5 *60,T 計(jì)數(shù)=N/299;TC = M - T/T 計(jì)數(shù)=3D57四、設(shè)計(jì)核心代碼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開(kāi)始計(jì)數(shù)void timer1ni t() _TMOD |=0x10;TMOD &=0xdf; /TH1 = 0x3D;TL1 = 0x57;修正成 3D57/ TL1 = 0xB0;/TR1 = 1;/T1開(kāi)始計(jì)數(shù)void interrupt0_init() / 中斷 響應(yīng)函 數(shù)_ET0=1; /響應(yīng)tiemer0的中斷 就是打開(kāi)TF0的中斷功能EA =1; 中斷請(qǐng)求被開(kāi)放void in terrupt1_i ni t() / 中斷響應(yīng)函 數(shù)_ET1=1; /響應(yīng)tiemer1的中斷 就
29、是打開(kāi)TF1的中斷功能EA =1; 中斷請(qǐng)求被開(kāi)放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;/通過(guò)取余的方法把時(shí)間的個(gè)位取 出來(lái)shi =(time/10)%10;/通過(guò)取整的方法把時(shí)間的十位取 出來(lái)bai = (time/100)%10;/通過(guò)取整的方法把時(shí)間的百位取 出來(lái)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;/通過(guò)取余的方法把時(shí)間的個(gè)位取 出來(lái)shi=(time/10)%10; / 通 過(guò)取整的方法把時(shí)間的十位取出來(lái)bai=(time/100)%10;/通過(guò)取整的方法把時(shí)間的百位取 出來(lái)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/定時(shí)器0溢出中斷static
33、uin t16 sec=0;TH0 =0x3D;/重新對(duì)計(jì)數(shù)器進(jìn)行賦值TL0 = 0x57;修正成 3D57/ TL0 = 0xB0;/coun ter0+;if(20=counter0)/ 表示記滿20次,即為1Ssec+;coun ter0=0; a0=sec%10;/個(gè)位a1=sec/10%10;/十位a2=sec/100%10;/百位void in terrupt_timer1() in terrupt 3/定時(shí)器1溢出中斷高3位中 斷TH1 =0x3D;/重新對(duì)計(jì)數(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;五、運(yùn)行結(jié)果計(jì)時(shí)器運(yùn)行結(jié)果如圖:六、總結(jié)單片機(jī)是我所學(xué)專業(yè)的主要課程之一,因此我認(rèn)為單片機(jī)課程設(shè)計(jì)是十分 必要而且十分重要的。 盡管剛剛拿到課程設(shè)計(jì)題目時(shí)有點(diǎn)迷惘, 不知道如何著手, 但通過(guò)上網(wǎng)和圖書(shū)館查閱相關(guān)資料, 自己認(rèn)真鉆研以及虛心詢問(wèn)同學(xué), 終于解決 了一個(gè)又一個(gè)的困難和障礙,成功完成了任務(wù)。通過(guò)本次的單片機(jī)課程設(shè)計(jì), 不僅大大地豐富了我的理論知識(shí), 而且在實(shí)踐 過(guò)程中更令我學(xué)會(huì)了堅(jiān)持、 耐心和努力。 此次單片機(jī)課程設(shè)計(jì)需要運(yùn)用到許多之 前所學(xué)過(guò)的知識(shí), 令
35、我認(rèn)識(shí)到自己以前學(xué)習(xí)的一些不足之處, 例如對(duì)以前所學(xué)知 識(shí)的理解不夠深刻, 掌握得不夠牢固, 運(yùn)用不夠靈活。 這讓我懂得了認(rèn)真學(xué)習(xí)的 重要性,以及要孜孜不倦地鉆研所學(xué)過(guò)的知識(shí),做得融會(huì)貫通,不能一覽而過(guò), 不求甚解。 在邊學(xué)習(xí)邊動(dòng)手的過(guò)程中, 我對(duì)電子時(shí)鐘的構(gòu)造以及原理有了進(jìn)一步 的了解,同時(shí)也加深和鞏固了我對(duì)單片機(jī) C 語(yǔ)言的認(rèn)識(shí)。除此之外,由于是第 一次做單片機(jī),因此在此次課程設(shè)計(jì)的過(guò)程中,無(wú)論是電路繪制還是 C 語(yǔ)言編 寫(xiě)都難免遇到了不少困難和障礙,例如 C 語(yǔ)言編寫(xiě)出錯(cuò)、電路元件無(wú)從入手等。 在面對(duì)困難和障礙時(shí), 我慶幸自己沒(méi)有退縮和逃避, 而是通過(guò)各種方法, 迎難而 上,以堅(jiān)持、耐心
36、和努力勇敢無(wú)畏地面對(duì)困難,克服困難,解決困難。讓我發(fā)現(xiàn) 問(wèn)題、分析問(wèn)題、 解決問(wèn)題以及動(dòng)手實(shí)踐的能力都有了很大的提高, 并了解到理 論知識(shí)與實(shí)踐相結(jié)合的重要意義。從這次的課程設(shè)計(jì)中, 我們真真正正的意識(shí)到, 在以后的學(xué)習(xí)中, 要理論聯(lián) 系實(shí)際,把我們所學(xué)的理論知識(shí)用到實(shí)際當(dāng)中, 學(xué)習(xí)單機(jī)片機(jī)更是如此, 程序只 有在經(jīng)常的練習(xí)的過(guò)程中才能提高。本次課程設(shè)計(jì)盡管時(shí)間不長(zhǎng),但從中所獲, 將令我受益終生。七、參考文獻(xiàn)1 劉守義 ,單片機(jī)應(yīng)用技術(shù) M 成都:西安電子科技大學(xué)出版 ,20022 Victor P. Nelson ,Digital Logical Circuits Analysis & Design J, Prentice Hall.2003 年 6 月 出版, P40-943 萬(wàn)勝前.基于KeilC51軟件的電子鐘設(shè)計(jì)與制作J,鄂州大學(xué)學(xué)報(bào),2007年第2期,P16-204 趙秀珍 ,單片微型計(jì)算機(jī)原理及其應(yīng)用M 中國(guó)水利水電出版社 ,2001 向繼文等基于AT89C51的電子鐘系統(tǒng)設(shè)計(jì)J,應(yīng)用科技,2007年第2期,P34-376 M.Morris Ma noDigital Desig nM ( Third Edition )Higher Educatio n Press ,20027 何希才社煜.實(shí)用電子電路設(shè)計(jì)M.北京:電子工業(yè)出版社,1998.28 馬鴻文.基
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家具行業(yè)用戶心理分析方法試題及答案
- 學(xué)習(xí)物理中的重要知識(shí)要素試題及答案
- 班組長(zhǎng)述職報(bào)告范文簡(jiǎn)單
- 施工安全責(zé)任明確化的試題及答案
- 組胚肌組織試題及答案
- 茶葉化學(xué)試題及答案解析
- 新能源汽車對(duì)于社會(huì)經(jīng)濟(jì)的貢獻(xiàn)試題及答案
- 自信游戲測(cè)試題及答案
- 新能源汽車的創(chuàng)新驅(qū)動(dòng)發(fā)展試題及答案
- 暑假長(zhǎng)高測(cè)試題及答案
- KTV工程部崗位職責(zé)
- 社會(huì)科學(xué)處橫向課題合同書(shū)
- 常州施工招標(biāo)開(kāi)標(biāo)清標(biāo)評(píng)標(biāo)報(bào)告
- 第十五屆運(yùn)動(dòng)會(huì)場(chǎng)館醫(yī)療保障工作方案
- 生理衛(wèi)生教學(xué)課件青春期男生性教育走向成熟
- 體外診斷試劑標(biāo)準(zhǔn)品、校準(zhǔn)品、質(zhì)控品
- GB/T 3452.4-2020液壓氣動(dòng)用O形橡膠密封圈第4部分:抗擠壓環(huán)(擋環(huán))
- 王力宏-緣分一道橋-歌詞
- 高校電子課件:現(xiàn)代管理學(xué)基礎(chǔ)(第三版)
- 《藥物學(xué)》課程教學(xué)大綱
- 艾滋病感染孕產(chǎn)婦所生兒童艾滋病早期診斷與抗體檢測(cè)流程圖
評(píng)論
0/150
提交評(píng)論