電子跑表的設(shè)計(jì)_第1頁(yè)
電子跑表的設(shè)計(jì)_第2頁(yè)
電子跑表的設(shè)計(jì)_第3頁(yè)
電子跑表的設(shè)計(jì)_第4頁(yè)
電子跑表的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word忘:編輯.歡迎下載支持成績(jī) 口優(yōu)口良口中 口及格 口不及格課程設(shè)計(jì)課程名稱(chēng)單片機(jī)原理與應(yīng)用課程設(shè)計(jì)課題名稱(chēng)電子跑表設(shè)計(jì)專(zhuān)業(yè)電子信息工程班級(jí)1501學(xué)號(hào)03姓名譚青權(quán)指導(dǎo)老師苴筐2015年6月*日1文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持文檔來(lái)源為 :從網(wǎng)絡(luò)收集整理.word 版本可編輯.歡迎下載支持 .報(bào)告撰寫(xiě)要求 (此頁(yè)不打印)課程設(shè)計(jì)報(bào)告是體現(xiàn)課程設(shè)計(jì)成果的載體,具體要求如下:1 、課程設(shè)計(jì)報(bào)告的基本格式(1)說(shuō)明書(shū)統(tǒng)一使用 word文檔打印,A4紙張,頁(yè)邊距設(shè)置為:上2cm下2cm左 2.54cm,右 2cmi( 2)正文采用宋體小

2、四,字間距20 磅; 1 級(jí)標(biāo)題采用黑體小三, 2 級(jí)標(biāo)題采用黑體四號(hào), 3 級(jí)標(biāo)題采用黑體小四; 1 和 2 級(jí)標(biāo)題段落間距為上下 0.5 行。( 3)圖表需統(tǒng)一編號(hào),圖標(biāo)標(biāo)題采用黑體五號(hào);圖標(biāo)題在圖片下方,表格標(biāo)題在表 格上方。( 4)裝訂順序?yàn)椋悍饷妗⑷蝿?wù)書(shū)、報(bào)告正文、評(píng)分表。2、課程設(shè)計(jì)報(bào)告的撰寫(xiě)要求( 1)設(shè)計(jì)報(bào)告正文內(nèi)容為 5-6 頁(yè)為宜,主要內(nèi)容為自己的設(shè)計(jì)思路、設(shè)計(jì)步驟、關(guān)鍵性步驟的記錄、 重要結(jié)果的記錄以及自己本次課程設(shè)計(jì)的總結(jié)。 報(bào)告撰寫(xiě)要求思路清晰、 結(jié)構(gòu)合理、層次清晰,報(bào)告簡(jiǎn)潔但又要能體現(xiàn)設(shè)計(jì)過(guò)程。( 2)報(bào)告中圖表要求清晰、規(guī)范,圖表的尺寸大小適當(dāng)。( 3)課程設(shè)計(jì)報(bào)

3、告內(nèi)容(僅供參考) :2文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯.歡迎下載支持文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持電氣信息學(xué)院課程設(shè)計(jì)任務(wù)書(shū)課題名稱(chēng)電子跑表的設(shè)計(jì)譚青權(quán)專(zhuān)業(yè)電子信息工程班級(jí) 1501 學(xué)號(hào) 03指導(dǎo)老師竺課程設(shè)計(jì)時(shí)間 2017/12/11-2017/12/22一、任務(wù)及要求設(shè)計(jì)任務(wù):利用單片機(jī)為核心設(shè)計(jì)一個(gè)多功能電子表,具有電時(shí)鐘和跑表功能。用做時(shí)鐘時(shí),在顯示器上顯示時(shí)、分、秒,用做跑表時(shí),顯示范圍 00時(shí)00分00秒-23時(shí)59分59秒并具 有跑表啟動(dòng)和跑表復(fù)位功能鍵。當(dāng)按下啟動(dòng)按鈕跑表開(kāi)始計(jì)時(shí),按下停止按停止計(jì)時(shí),當(dāng) 按下復(fù)位按鈕跑表回零。設(shè)

4、計(jì)要求:1 )確定系統(tǒng)設(shè)計(jì)方案;2 )進(jìn)行系統(tǒng)的硬件設(shè)計(jì);3 )完成必要的參數(shù)計(jì)算與元器件選擇;4 )完成應(yīng)用程序設(shè)計(jì);5 )應(yīng)用系統(tǒng)的硬件和軟件的調(diào)試。二、進(jìn)度安排第一周:周一:集中布置課程設(shè)計(jì)任務(wù)和相關(guān)事宜,查資料確定系統(tǒng)總體方案。周二周三:完成硬件設(shè)計(jì)和電路連接周四周日:完成軟件設(shè)計(jì)第二周:周一周三:程序調(diào)試周四周五:設(shè)計(jì)報(bào)告撰寫(xiě)。周五進(jìn)行答辯和設(shè)計(jì)結(jié)果檢查。三、參考資料1、王迎旭等.單片機(jī)原理及及應(yīng)用M . 2版.機(jī)械工業(yè)出版社,20122、胡漢才.單片機(jī)原理及其接口技術(shù)M.3版.清華大學(xué)出版社,2010.3、戴燦金.51單片機(jī)及其C語(yǔ)言程序設(shè)計(jì)開(kāi)發(fā)實(shí)例M.清華大學(xué)出版社,2016文檔

5、來(lái)源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.歡迎下載支持目錄第1章、總體方案設(shè)計(jì) 21.1、 設(shè)計(jì)任務(wù)及要求 21.2、 設(shè)計(jì)原理或者設(shè)計(jì)思路 2第2章、硬件電路設(shè)計(jì) 42.1、 主控制器單片機(jī)的選擇 42.2、 時(shí)鐘電路 42.3、 顯示接口電路 52.4、 鍵盤(pán)接口電路 6第3章、軟件設(shè)計(jì) 73.1、 設(shè)計(jì)說(shuō)明 73.2、 主程序設(shè)計(jì) 73.3、 時(shí)間處理模塊 83.4、 鍵盤(pán)掃描模塊 103.5、 數(shù)回調(diào)模塊 12第4章、調(diào)試 13第5章、總結(jié) 15附錄 16第1章 總體方案設(shè)計(jì)1.1、 設(shè)計(jì)任務(wù)及要求設(shè)計(jì)任務(wù):利用單片機(jī)為核心

6、設(shè)計(jì)一個(gè)多功能電子表,具有電時(shí)鐘和跑表功能。用做時(shí)鐘時(shí),在顯示器上顯示時(shí)、分、秒,用做跑表時(shí),顯示范圍 00時(shí)00分00秒-23時(shí)59分59秒并具 有跑表啟動(dòng)和跑表復(fù)位功能鍵。當(dāng)按下啟動(dòng)按鈕跑表開(kāi)始計(jì)時(shí),按下停止按停止計(jì)時(shí),當(dāng)按下復(fù)位按鈕跑表回零。跑表能記下 10個(gè)數(shù),記數(shù)完畢能回調(diào)顯示設(shè)計(jì)要求:1 )確定系統(tǒng)設(shè)計(jì)方案;2 )進(jìn)行系統(tǒng)的硬件設(shè)計(jì);3 )完成必要的參數(shù)計(jì)算與元器件選擇;4 )完成應(yīng)用程序設(shè)計(jì);5 )應(yīng)用系統(tǒng)的硬件和軟件的調(diào)試。1.2、 設(shè)計(jì)原理或者設(shè)計(jì)思路1 .設(shè)計(jì)思路文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持. 1)計(jì)時(shí)單元由單片機(jī)內(nèi)部的定時(shí)器/記數(shù)器來(lái)實(shí)現(xiàn)。

7、2)時(shí)間顯示功能通過(guò)LED數(shù)碼管動(dòng)態(tài)掃描來(lái)實(shí)現(xiàn)。利用單片機(jī)內(nèi)部4的8位并行I/O端口來(lái)實(shí)現(xiàn)外部按鍵的信號(hào)輸入,由于數(shù)碼管要顯示時(shí)鐘,還要顯示跑表,因此,我 分別用TR1,TR0定時(shí)器來(lái)分別定時(shí)跑表和時(shí)鐘,分別寫(xiě)出跑表和時(shí)鐘的子程序,定義 一控制變量Numb并賦其初值0,當(dāng)Numb=0時(shí)調(diào)用時(shí)鐘子程序,當(dāng) Numb=1時(shí)調(diào)用 跑表子程序,達(dá)到跑表顯示與時(shí)鐘顯示互不影響。3)跑表的切換,啟動(dòng),停止,清零功能由軟件來(lái)實(shí)現(xiàn),分別由 P1.0,P1.1,P1.2,P1.3 外 接按鍵,跑表的記數(shù),回調(diào)顯示,分別由 P1.6, P1.7外接按鍵,在分別編寫(xiě)兩段不 同的子程序來(lái)實(shí)現(xiàn)所需要的功能1.3、 總體

8、設(shè)計(jì)方案本次設(shè)計(jì)采用AT89C51單片機(jī),以下為其標(biāo)準(zhǔn)功能:本系統(tǒng)采用AT89C51單片機(jī)、6位LDE數(shù)碼管顯示、一個(gè)排阻、6個(gè)調(diào)節(jié)按鈕、2個(gè) 電容與1個(gè)晶體振蕩器共同構(gòu)成本的單片機(jī)電子跑表的硬件。時(shí)鐘模塊與計(jì)時(shí)模塊則分別 由單片機(jī)內(nèi)部的定時(shí)器/記數(shù)器T0與T1來(lái)實(shí)現(xiàn)。時(shí)間顯示功能通過(guò)LED數(shù)碼管動(dòng)態(tài)掃描 來(lái)實(shí)現(xiàn)。電子跑表的啟動(dòng)/暫停/清零功能由軟件來(lái)實(shí)現(xiàn)。P1.0實(shí)現(xiàn)時(shí)鐘與秒表的切換功能, P1.1接開(kāi)始計(jì)時(shí)鍵,P1.2接計(jì)時(shí)暫停鍵,P1.3接計(jì)時(shí)重新計(jì)時(shí)鍵,P1.6接計(jì)時(shí)記數(shù)鍵,P1.7 接計(jì)時(shí)回顯鍵。本系統(tǒng)軟件部分則采用 C51編寫(xiě),功能模塊結(jié)構(gòu)化強(qiáng),共利用了 7個(gè)功能 函數(shù),2個(gè)中斷服

9、務(wù)函數(shù)和1個(gè)主函數(shù)構(gòu)成了本次電子跑表的軟件部分。圖 2.1為本系統(tǒng) 方框圖。4k字節(jié)Flash閃速存儲(chǔ)器,128字節(jié)內(nèi)部RAM , 32個(gè)I/O 口線,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一 個(gè)全雙工串行通信口 ,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C51可降至0Hz的靜態(tài)邏輯操 作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止 CPU的工作,但允許RAM ,定 時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存 RAM中的內(nèi)容,但振蕩器停 止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。MCS5的管腳圖如圖2.1圖2.1 89c51芯片管腳圖2.2 、時(shí)鐘電路1文檔來(lái)源為:

10、從網(wǎng)絡(luò)收集整理,word版本可編輯,歡迎下載支持文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯.歡迎下載支持 .單片機(jī)工作的時(shí)間基準(zhǔn)是由時(shí)鐘電路提供的。 在單片機(jī)的 XTAL1 和 XTAL2 兩個(gè)管腳,接一只晶振及兩只電容就構(gòu)成了單片機(jī)的時(shí)鐘電路,如圖 3.2 所示。電路中,電容器C1和 C2 對(duì)振蕩頻率有微調(diào)作用, 本次設(shè)計(jì)中電容器取值為 20pF, 石英晶體選擇 12MHz , 故單片機(jī)的機(jī)器周期為 1us , 圖 2.2 為單片機(jī)內(nèi)部時(shí)鐘電路圖 2.2 內(nèi)部時(shí)鐘電路2.3 、顯示接口電路本次設(shè)計(jì)中使用了 6 位共陰數(shù)碼顯示管,顯示控制采用動(dòng)態(tài)顯示,即數(shù)據(jù)的顯示是由段和位選信號(hào)共同配合

11、完成的。為了實(shí)現(xiàn)顯示器的動(dòng)態(tài)掃描,我們需要對(duì)顯示器進(jìn)行段控和位控,因此在顯示器接口電路中需要有兩個(gè)輸出口,其中一個(gè)用于輸出 8 條段控線;另一個(gè)用于輸出位控線, 位控線的數(shù)目等于顯示器的位數(shù)。 本次設(shè)計(jì)中用 P1 口與顯示器的 8條段控線相接,用P2.2P2.7與顯示器的6條位控線相接。如圖2.3所示。圖 2.3 顯示接口電路2.4 、鍵盤(pán)接口電路本設(shè)計(jì)的鍵盤(pán)接口電路中使用了4個(gè)按鍵分別與單片機(jī)的P1.1P1.3口相連如圖3.3所示,分別實(shí)現(xiàn)時(shí)鐘/秒表切換、開(kāi)始計(jì)時(shí)、暫停計(jì)時(shí)、重新計(jì)時(shí)的功能。按鍵的開(kāi)關(guān)狀態(tài)通過(guò)一定的電路轉(zhuǎn)換為高、低電平狀態(tài)。按鍵閉合過(guò)程在相應(yīng)的 I/O 端口形成一個(gè)負(fù)脈沖。閉

12、合和釋放過(guò)程都要經(jīng)過(guò)一定的過(guò)程才能達(dá)到穩(wěn)定,這一過(guò)程是處于高、低電平之間的一種不穩(wěn)定狀態(tài),稱(chēng)為抖動(dòng)。抖動(dòng)持續(xù)時(shí)間的常長(zhǎng)短與開(kāi)關(guān)的機(jī)械特性有關(guān),一般在 5-10ms之間。為了避免鍵的一次處理閉合,應(yīng)采CPU 多次按用措施消除抖動(dòng)。圖 2.4 為鍵盤(pán)接口電路圖 2.4 鍵盤(pán)接口電路第 3 章 軟件設(shè)計(jì)3.1、 、設(shè)計(jì)說(shuō)明在進(jìn)行應(yīng)用軟件設(shè)計(jì)時(shí)應(yīng)采用模塊化結(jié)構(gòu)設(shè)計(jì), 其優(yōu)點(diǎn)是: 每個(gè)模塊的程序結(jié)構(gòu)簡(jiǎn)單,任務(wù)明確,易于編寫(xiě),調(diào)試和修改,程序可讀性好,對(duì)程序的修改可局部進(jìn)行,其他部分可以保持不變,便于功能擴(kuò)充和版本升級(jí),是便于多個(gè)模塊的調(diào)用和分工合作。因此為了達(dá)到功能結(jié)構(gòu)模塊化,易讀,簡(jiǎn)單,易移植的特點(diǎn),

13、故本次設(shè)計(jì)采用 C51 編寫(xiě)。系統(tǒng)編寫(xiě)時(shí)可分為鍵盤(pán)掃描程序模塊,時(shí)間處理模塊,顯示模塊。如圖 4.1 所示。將這些事先劃分好的模塊用 C51 編成不同的子函數(shù), 再將它們有機(jī)的結(jié)合起來(lái)從而達(dá)到系統(tǒng)的整體功能。圖 3.1 為軟件設(shè)計(jì)總體模塊3文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯.歡迎下載支持文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持C鍵盤(pán)掃描模塊、信碼管顯示模塊、 C時(shí)間處理模G &數(shù)與回調(diào)模4圖3.1軟件設(shè)計(jì)模塊3.2、 主程序設(shè)計(jì)本程序可分為4個(gè)模塊,共定義了 7個(gè)子函數(shù),其中鍵盤(pán)掃描模塊包括鍵盤(pán)掃描函 數(shù),數(shù)碼管顯示模塊包括時(shí)鐘顯示函數(shù)、秒表顯示函數(shù),

14、時(shí)間處理模塊包括時(shí)鐘系時(shí)間處 理函數(shù)、秒表系時(shí)間處理函數(shù)、延遲函數(shù),另本程序還利用了兩個(gè)定時(shí)/計(jì)數(shù)器分別為T(mén)0、T1 ,故還需定義兩個(gè)中斷函數(shù)T0中斷服務(wù)函數(shù)和T1中斷服務(wù)程序。本程序中由于涉及時(shí) 鐘與秒表互切問(wèn)題,故定義了一控制變量 Numb并賦其初值0,若在仿真過(guò)中切到秒表則 Numb取反為1,切到時(shí)鐘則Numb重新為0。因此在程序運(yùn)行過(guò)程中便可控制各按鍵功能 及屏蔽在時(shí)鐘模式或秒表模式下少相干功能叫影響。圖3.2為主程序流程圖。 開(kāi)始1賦初值 否3.3、 時(shí)間處理模塊X 2 M fosc * t時(shí)鐘處理函數(shù)用定時(shí)器T0定時(shí)10ms,其計(jì)數(shù)初值為42 ,由于T0選用工作方式1,故M為216

15、即65536, fosc為晶振頻率為12MHZ, t為定時(shí)時(shí)間10ms,所以X的值為64536,將該值的高八位值賦給 TH0,低八位并賦給TL0 ,這樣便完成了 T04文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持.文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持文檔來(lái)源為:從網(wǎng)絡(luò)收集整理,word版本可編輯,歡迎下載支持. 的初始化工作,因?yàn)槎〞r(shí)器T0工作在方式1下,故每次定時(shí)器T0溢出都需再給T0賦初 值。由于T0定時(shí)10ms,所以要得到1s的時(shí)間需T0溢出100次,由此引入計(jì)數(shù)變量Count。 每當(dāng)T0溢出,Count便自動(dòng)加1,直至計(jì)滿100,便使秒變量Sec

16、onds自動(dòng)加1并初始化 Count重新開(kāi)始計(jì)數(shù),直到 Seconds為60,初始化Seconds并使分變量Minutes自動(dòng)力口 1, 同理到時(shí)變量Hour為24時(shí),初始化Hours,由此無(wú)限循環(huán)下去直到關(guān)閉電源。圖 3.3為 程序流程圖圖3,3 T0中斷函數(shù)及時(shí)鐘處理函數(shù)流程6553610000256秒表時(shí)間處理函數(shù)用的是定時(shí)器T1與T0相同,定時(shí)10ms,高八位TH1賦值為,低八位TL1賦值為65536 10000 %256。T1的啟動(dòng)由按鍵掃描函數(shù)控制,當(dāng)開(kāi)啟T1后,每次T1溢出,Decisec自動(dòng)力口 1,直至Decisec到100,秒Sec 自動(dòng)加1,直至分Mint為10,初始化M

17、int計(jì)時(shí)復(fù)位。圖3.4為其程序流程圖。圖3,4秒表處理函數(shù)及 T1中斷服務(wù)函數(shù)流程3.4、 鍵盤(pán)掃描模塊時(shí)鐘與秒表切換鍵程序:CHANGE鍵為時(shí)鐘秒表切換鍵,當(dāng)按下 CHANGE鍵時(shí),會(huì) 產(chǎn)生按鍵抖動(dòng),本程序中利用delay (5)產(chǎn)生5ms延遲使得按鍵狀態(tài)穩(wěn)定后重新確認(rèn)是否 按下了 CHANGE鍵即CHANGE為低電平,此時(shí)還需判斷控制變量 Numb是否為0(Numb 為0即奇數(shù)次按下CHANGE鍵顯示秒表,Numb為1則為偶數(shù)次按下CHANGE鍵顯示時(shí) 鐘),在CHANGE為0且Numb為0的情況下,執(zhí)行數(shù)碼管顯示秒表函數(shù)并對(duì) Numb取反 為再次按下CHANGE鍵做準(zhǔn)備,此后程序進(jìn)入確

18、認(rèn)結(jié)束按鍵循環(huán), 若松開(kāi)CHANGE,則非 CHANGE為0,循環(huán)結(jié)束回到開(kāi)始處等待按鍵電平;若一直按著CHANGE ,則一直執(zhí)行數(shù)碼管顯示秒表函數(shù)。當(dāng) Numb為1時(shí),則同理顯示時(shí)鐘函數(shù),非 CHANGE為0時(shí)退出 循環(huán)回到等待。圖3.5為該程序流程圖。圖3,5時(shí)鐘與秒表切換程序開(kāi)始計(jì)時(shí)鍵程序:在控制變量Numb等于1的情況按下START鍵則開(kāi)啟T1定時(shí)器開(kāi)6文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持始計(jì)時(shí),這里加入Numb的目的是為了在時(shí)鐘狀態(tài)下屏蔽非時(shí)鐘功能鍵,故當(dāng)切換為秒表狀態(tài)時(shí),Numb為1,此時(shí)秒表系功能鍵生效,此時(shí)按下 START鍵,開(kāi)始計(jì)時(shí)。圖3.6為 開(kāi)始計(jì)

19、時(shí)鍵程序流程圖。暫停計(jì)時(shí)鍵程序、計(jì)時(shí)復(fù)位鍵程序同開(kāi)始計(jì)時(shí)鍵程序類(lèi)似都需在Numb為1的情況下方可啟用,且其程序流程相似。鍵盤(pán)掃描函數(shù) keyscan(小由時(shí)鐘與秒表切換鍵程序、開(kāi)始計(jì)時(shí)鍵程序、暫停計(jì)時(shí)鍵程序、計(jì)時(shí)復(fù)位鍵程序構(gòu)成的3.5、 數(shù)回調(diào)模塊記數(shù)回調(diào)模塊是跑表的一個(gè)功能,當(dāng)切換到跑表功能,開(kāi)始跑表功能計(jì)時(shí)后,按下SAVE 鍵,記錄一個(gè)當(dāng)前數(shù)據(jù),連續(xù)10按下SAVE1,記錄10個(gè)跑表數(shù)據(jù)。跑表暫停記數(shù)并清零,再按下BACK®,就會(huì)從第一個(gè)記錄白數(shù)據(jù)依次顯示到第 10個(gè)記錄的數(shù)據(jù),跑表一輪 記數(shù)完成。按下為了方便查看,本次課程設(shè)計(jì)用的是還是仿真調(diào)試用 KEIL運(yùn)行程序正確后生成HE

20、XB 式的文件,用Proteus畫(huà)好電路圖,導(dǎo)入HEXB式的文件進(jìn)行仿真。如下圖所示,P1.0是 秒表與時(shí)鐘切換鍵,P1.1為開(kāi)始計(jì)時(shí)鍵,P1.2為暫停計(jì)時(shí)鍵。P1.3為重新計(jì)時(shí)鍵。時(shí)鐘 的初始計(jì)時(shí)為59: 59: 00,跑表初始計(jì)時(shí)為 00: 00: 00。下圖4.1、4.2分別是時(shí)鐘狀態(tài)和跑表狀態(tài)調(diào)試圖。圖4.1時(shí)鐘狀態(tài)調(diào)試圖4.2跑表狀態(tài)調(diào)試圖這次調(diào)試過(guò)程并沒(méi)有想像的那么順利,一開(kāi)始時(shí)鐘和跑表不能切換,經(jīng)過(guò)修改,算是 解決問(wèn)題,但在調(diào)試記數(shù)和回顯時(shí),也是碰到了很多問(wèn)題,通過(guò)翻閱c語(yǔ)言書(shū)籍,問(wèn)老師, 問(wèn)同學(xué),最終,算是圓滿完成調(diào)試第5章總結(jié)文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯.

21、歡迎下載支持開(kāi)始做課程設(shè)計(jì)時(shí),我們首先需要將硬件設(shè)計(jì)做出來(lái),在硬件設(shè)計(jì)好的基礎(chǔ)上進(jìn)行軟件設(shè)計(jì)這樣就方便多了。著手軟件設(shè)計(jì)時(shí)要有一個(gè)整體的思路,即主程序,有了整體思路就開(kāi)始著手于分模塊的設(shè)計(jì),如時(shí)鐘顯示程序、中斷服務(wù)程序、時(shí)間處理程序等。每個(gè)模塊出來(lái)后都需要配合主程序進(jìn)行仿真驗(yàn)證程序是否能正常運(yùn)行。 這次的設(shè)計(jì)盡管還不是很完善,但我已經(jīng)非常開(kāi)心了,至少有了自己的思路再去實(shí)踐,再在實(shí)踐的過(guò)程中收獲,這是課堂上所沒(méi)有的欣喜。在課程設(shè)計(jì)的過(guò)程中遇到的各種知識(shí)不總是在書(shū)上能找到的, 所以我們必須自己查找相關(guān)資料,利用圖書(shū)館或網(wǎng)絡(luò)搜索,這是一個(gè)比較辛苦的過(guò)程,你必須從無(wú)數(shù)的信息中分離出對(duì)你有用的,然后加以

22、整理,最后吸收并用到設(shè)計(jì)中來(lái)。通過(guò)這點(diǎn),我收益很大。課程設(shè)計(jì)是從整體到部分的過(guò)程,然而一切并不都是如此的。因?yàn)橛袝r(shí)候你整體設(shè)計(jì)好了,然而在設(shè)計(jì)部分的時(shí)候卻可能影響到整體,然后又要作出調(diào)整,在不斷的調(diào)整中才慢慢把設(shè)計(jì)做出來(lái)。有時(shí)候你還必須把自己前面做的東西全部推翻,然后重新再來(lái)。在開(kāi)始單片機(jī)課程設(shè)計(jì)之前,我對(duì)單片機(jī)只是有一個(gè)比較淺的印象,但開(kāi)始課設(shè)之后,為了完成課設(shè),我不得不重新捧起書(shū)本,一點(diǎn)一滴的找我需要的知識(shí),尤其中斷系統(tǒng),定時(shí)器那兩章基本滾瓜爛熟,然后數(shù)碼管靜態(tài)顯示,等等,經(jīng)過(guò)深入的了解,我對(duì)單片機(jī)有了濃厚的興趣。經(jīng)過(guò)兩個(gè)星期的課程設(shè)計(jì),確實(shí)讓我收獲很多,學(xué)到了很多,特別要謝謝肖老師的指導(dǎo)

23、及嚴(yán)格要求,雖然在設(shè)計(jì)過(guò)程中很累,但是一看到自己做出來(lái)的成果,就什么疲勞都沒(méi)有了。附錄:程序清單 :#include<reg51.h>#define uchar unsigned char#define uint unsigned int/ 七段共陰數(shù)碼顯示管段碼表/uchar code dispcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/定義初始化變量/ / 秒表部分 /uchar Decisec=0;/ 分秒 /uchar Sec=0;/ 秒/uchar Mint=0;/ 分/uchar Seconds=0;

24、/ 時(shí)鐘部分 /uchar Minutes=59;uchar Hours=23;uchar Count=0;uchar Numb=0;7文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯.歡迎下載支持.文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯.歡迎下載支持uchar num1=0;uchar num=0;uchar aum=0;uchar jilu103=0; / 按鍵部分 /sbit CHANGE=P1A0;/ 切換:可實(shí)現(xiàn)跑表與時(shí)鐘互切 / sbit START=P1A1; / 開(kāi)始 /sbit STOP=P1A2; / 暫停 /sbit RST=P1A3; / 清零 /sbit S

25、AVE=P1A6; / 記錄 /sbit BACK=P1A7; / 回調(diào) / / 函數(shù)聲明 /void delay(uchar ms); / 延遲函數(shù) /11文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯.歡迎下載支持void time_pro1();/void time_pro2();/ void keyscan(); / void display1(); /void display2(); / void chaxun(); /秒表處理函數(shù)/時(shí)鐘處理函數(shù)/鍵盤(pán)掃描函數(shù)/數(shù)碼管顯示秒表函數(shù)/數(shù)碼管顯示時(shí)鐘函數(shù)/回顯函數(shù) /*/ /主函數(shù)/ /*/void main() P1=0xff;TMO

26、D=0x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65536-10000)/256;TL1=(65536-10000)%256;EA=1;ET0=1;ET1=1;TR0=1;while(1) keyscan();if(Numb=1)chaxun();display1();if(Numb=0)display2();/*/ /延遲函數(shù)/ /*/void delay(uchar ms) uchar i,j; for(i=ms;i>0;i-) for(j=500;j>0;j-);/*/ /秒表處理函數(shù)/ /*/void time

27、_pro1() if(Decisec=100) Decisec=0;Sec+; if(Sec=60) Sec=0;Mint+;if(Mint=60)Mint=0;/*/ /時(shí)鐘處理函數(shù)/ /*/void time_pro2()if(Seconds=60)Seconds=0;Minutes+;if(Minutes=60) Minutes=0;Hours+;if(Hours=24) Hours=0;/*/ /鍵盤(pán)掃描函數(shù)/ /*/void keyscan() / 秒表 / 時(shí)鐘切換 / if(CHANGE=0)delay(5);if(CHANGE=0)&&(Numb=0) disp

28、lay1();Numb=!Numb;while(!CHANGE) display1();if(CHANGE=0)&&(Numb=1)Numb=!Numb;while(!CHANGE)display2(); / 開(kāi)始計(jì)時(shí) /if(START=0)&&(Numb=1) delay(5);if(START=0) TR1=1;while(!START)display1(); / 暫停計(jì)時(shí) /if(STOP=0)&&(Numb=1) delay(5); if(STOP=0) TR1=0;文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯.歡迎下載支持whil

29、e(!STOP) display1(); if(RST=0)&&(Numb=1) delay(5);if(RST=0) while(!RST)Decisec=0;/重新計(jì)時(shí) /Sec=0;Mint=0;display1();/*/ /*void chaxun()if(SAVE=0)/記錄while(SAVE=0)delay(5);display1();num+;jilunum0=Mint;jilunum1=Sec;jilunum2=Decisec;if(num=9)Decisec=0;Sec=0;Mint=0;TR1=0;display1();if(BACK=0)/查看記錄wh

30、ile(BACK=0) delay(5);11文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯.歡迎下載支持文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯.歡迎下載支持display1();num1+;Mint=jilunum10;Sec=jilunum11;Decisec=jilunum12;display1();if(num1=num)num1=0;/*/數(shù) 碼 管 顯 示 秒 表 函 數(shù) /12文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯.歡迎下載支持/*/ void display1()P2=0x7f;P0=dispcodeDecisec%10;/ 顯示分秒 /delay(1);P2=0xbf;P0=dispcodeDecisec/10;/ 顯示秒個(gè)位/delay(1);P2=0xdf;P0=dispcodeSec%10|0x80;/ 顯示秒十位/ delay(1);P2=0xef;P0=dispcodeSec/10; / 顯示分 /delay(1);P2=0xf7;P0=dispcodeMint%10|0x80;delay(1);P2=0xfb;P0=

溫馨提示

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

評(píng)論

0/150

提交評(píng)論