

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 單片機(jī)系統(tǒng)</b></p><p> 課 程 設(shè) 計(jì)</p><p><b> 成績?cè)u(píng)定表</b></p><p> 設(shè)計(jì)課題 : 數(shù)字秒表設(shè)計(jì) </p><p> 學(xué)院名稱 : 電氣工程學(xué)院
2、 </p><p> 專業(yè)班級(jí) : </p><p> 學(xué)生姓名 : </p><p> 學(xué) 號(hào) : </p><p>
3、 指導(dǎo)教師 : </p><p> 設(shè)計(jì)地點(diǎn) : </p><p> 設(shè)計(jì)時(shí)間 : 2012-12-17~2012-12-28 </p><p> 單片機(jī)系統(tǒng) 課程設(shè)計(jì)任務(wù)書</p><p>
4、<b> 目 錄</b></p><p><b> 1 引言4</b></p><p> 2 總體方案設(shè)計(jì)4</p><p><b> 2.1硬件組成4</b></p><p> 2.2 方案論證5</p><p> 2.3 總體方
5、案5</p><p> 3 硬件電路設(shè)計(jì)6</p><p> 3.1 單片機(jī)及其外圍電路6</p><p> 3.2 按鍵電路7</p><p> 3.3 數(shù)碼管顯示電路8</p><p> 4 系統(tǒng)軟件設(shè)計(jì)10</p><p> 4.1 主程序設(shè)計(jì)10</p&g
6、t;<p> 4.2 中斷服務(wù)程序設(shè)計(jì)12</p><p> 4.3 部分主要子程序的設(shè)計(jì)13</p><p> 5 系統(tǒng)調(diào)試與總結(jié)13</p><p> 5.1 系統(tǒng)功能測(cè)試13</p><p><b> 5.2 總結(jié)13</b></p><p><b&g
7、t; 參考文獻(xiàn)14</b></p><p> 附錄A 系統(tǒng)原理圖15</p><p> 附錄B 源程序16</p><p><b> 1 引言</b></p><p> 隨著現(xiàn)代社會(huì)的電子科技的迅速發(fā)展,要求我們要理論聯(lián)系實(shí)際,數(shù)字電路課題設(shè)計(jì)的進(jìn)行使我們有了這個(gè)非常好的機(jī)會(huì)。本設(shè)計(jì)就是利用所
8、學(xué)到的電子元器件將脈沖源用數(shù)碼管顯示出來以制成簡易的數(shù)字秒表。</p><p> 數(shù)字秒表是一種應(yīng)用非常廣泛的體育競(jìng)技計(jì)時(shí)工具,數(shù)碼管顯示的時(shí)間比鐘顯示得清晰直觀、走時(shí)準(zhǔn)確,并且還可以擴(kuò)展出多種功能,本設(shè)計(jì)利用數(shù)量較少的芯片研制了一款帶有計(jì)數(shù)功能的數(shù)字秒表,主要功能是計(jì)時(shí)并且可以記錄十組成績。</p><p> 在現(xiàn)在的體育競(jìng)技比賽中,隨著運(yùn)動(dòng)員的水平不斷提高,差距也在不斷縮小。有些運(yùn)
9、動(dòng)對(duì)時(shí)間精度的要求也越來越高,有時(shí)比賽冠亞軍之間的差距只有幾毫秒,因此就需要高精度的秒表來記錄成績。</p><p><b> 2 總體方案設(shè)計(jì)</b></p><p><b> 2.1硬件組成</b></p><p> 圖2.1所示為數(shù)字秒表硬件組成框圖。硬件主要包括:</p><p>
10、(1)控制器。作為控制系統(tǒng)的核心,本課題在選取單片機(jī)時(shí),充分借鑒了許多成形產(chǎn)品使用單片機(jī)的經(jīng)驗(yàn),并根據(jù)自己的實(shí)際情況,選擇了使用STC89C52。</p><p> (2)鍵盤:需要四個(gè)按鍵,選用單片機(jī)實(shí)驗(yàn)板上的獨(dú)立鍵盤即可,用于控制計(jì)時(shí)。</p><p> (3)數(shù)碼管:對(duì)于數(shù)字顯示電路,通常采用液晶顯示或數(shù)碼管顯示。本設(shè)計(jì)的顯示電路采用8段數(shù)碼管作為顯示介質(zhì)。數(shù)碼管顯示可以分為靜態(tài)
11、顯示和動(dòng)態(tài)顯示兩種,本設(shè)計(jì)采用動(dòng)態(tài)顯示。</p><p> 圖2.1 硬件方框圖</p><p><b> 2.2 方案論證</b></p><p><b> ?。?)控制器</b></p><p> 控制器的選擇是確定整個(gè)系統(tǒng)硬件方案的關(guān)鍵,它關(guān)系到其它幾個(gè)部分方案的確定,對(duì)于數(shù)字秒表,控
12、制器的可選方案有以下兩種:</p><p> 方案一: 純硬件電路系統(tǒng),各功能采用分離的硬件電路模塊實(shí)現(xiàn)。用時(shí)序邏輯電路實(shí)現(xiàn)時(shí)鐘功能,用555定時(shí)器實(shí)現(xiàn)鬧鐘的設(shè)定。但這種實(shí)現(xiàn)方法可靠性差、控制精度低,靈活性小、線路復(fù)雜、安裝調(diào)試不方便,而且不方便實(shí)現(xiàn)對(duì)系統(tǒng)的擴(kuò)展。</p><p> 方案二:采用STC89C52單片機(jī)作為控制器。與純硬件電路系統(tǒng)相比,單片機(jī)有以下優(yōu)點(diǎn):</p>
13、;<p><b> 有優(yōu)異的價(jià)格性能。</b></p><p> 集成度高、體積小、有很高的可靠性。</p><p> 控制功能強(qiáng)。為了滿足工業(yè)控制的要求,AT89C51單片機(jī)的指令系統(tǒng)中有極豐富的轉(zhuǎn)移指令、I/O口的邏輯操作以及位處理功能。</p><p> 低功耗,低電壓,便于生產(chǎn)便攜產(chǎn)品.</p>&l
14、t;p> 單片機(jī)的系統(tǒng)擴(kuò)展、系統(tǒng)配置較典型、規(guī)范,容易構(gòu)成各種模型的應(yīng)用系統(tǒng)。</p><p> 綜上所述,本設(shè)計(jì)采用方案二。</p><p><b> ?。?)鍵盤模塊</b></p><p> 本設(shè)計(jì)中有四個(gè)按鍵,分別實(shí)現(xiàn)開始、保存、清零和查看功能。這四個(gè)鍵可以采用中斷的方法,也可以采用查詢的方法來識(shí)別。本設(shè)計(jì)采用獨(dú)立式按鍵電路
15、。每個(gè)鍵單獨(dú)占有一根I/O接口線,每個(gè)I/O口的工作狀態(tài)互不影響,此類鍵盤采用端口直接掃描方式。但是當(dāng)按鍵較多時(shí)占用單片機(jī)的I/O數(shù)目較多。</p><p><b> ?。?)顯示模塊</b></p><p> 使用多個(gè)數(shù)碼管顯示。LED數(shù)碼管是利用二極管發(fā)光顯示數(shù)字和字母,具有亮度大、采用動(dòng)態(tài)掃描法與單片機(jī)相連接時(shí),占用的單片機(jī)口線少,接口設(shè)計(jì)比較容易,價(jià)格相對(duì)較
16、便宜等優(yōu)點(diǎn)。</p><p><b> 2.3 總體方案</b></p><p> 按照上述方案論證的結(jié)果,數(shù)字秒表的總體方案框圖如圖2.3所示。</p><p> 圖2.3 總體方案框圖</p><p> 用一個(gè)4位8段的數(shù)碼管顯示作為“秒表”,顯示時(shí)間范圍為00.00~99.99秒,計(jì)時(shí)精度達(dá)到0.01秒。
17、利用其定時(shí)器的原理,數(shù)碼管以及定時(shí)器中斷來設(shè)計(jì)計(jì)時(shí)器。將軟硬件結(jié)合起來,使得系統(tǒng)能實(shí)現(xiàn)0.00~99.99秒的計(jì)時(shí)。另外,通過獨(dú)立按鍵的設(shè)計(jì)來對(duì)秒表進(jìn)行控制。key1鍵控制計(jì)時(shí)的開始、key2鍵控制計(jì)時(shí)時(shí)的保存數(shù)據(jù)然后可以通過key4鍵控制數(shù)據(jù)的輸出(可以保存十個(gè),該功能可用于賽跑中的計(jì)時(shí))、key3鍵控制“清零”。</p><p><b> 3 硬件電路設(shè)計(jì)</b></p>
18、<p> 3.1 單片機(jī)及其外圍電路</p><p> 對(duì)于單片機(jī)來說,想讓單片機(jī)運(yùn)行必須要有:電源、晶振和復(fù)位電路。如果沒有這幾個(gè)必備條件,單片機(jī)無法正常運(yùn)行。數(shù)字電子秒表具有顯示直觀、讀取方便、精度高等優(yōu)點(diǎn),在計(jì)時(shí)中廣泛使用。本設(shè)計(jì)用單片機(jī)組成數(shù)字電子秒表,力求結(jié)構(gòu)簡單、精度高為目標(biāo)。</p><p> 設(shè)計(jì)中包括硬件電路的設(shè)計(jì)和系統(tǒng)程序的設(shè)計(jì)。其硬件電路主要有主控制
19、器,計(jì)時(shí)與顯示電路和回零、啟動(dòng)和快加電路等。主控制器采用單片機(jī)8051,顯示電路采用兩位共陽極LED數(shù)碼管顯示計(jì)時(shí)時(shí)間。</p><p> 本設(shè)計(jì)利用8051單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,使其能精確計(jì)時(shí)。利用中斷系統(tǒng)使其能實(shí)現(xiàn)開始和復(fù)位的功能。P0口輸出段碼數(shù)據(jù),74LS164用作驅(qū)動(dòng)輸出,P1.1、P1.2、P3.2、P3.3口接四個(gè)按鈕開關(guān),分別實(shí)現(xiàn)記錄、讀取、開始和復(fù)位功能。電路原理圖設(shè)計(jì)最基本
20、的要求是正確性,其次是布局合理,最后在正確性和布局合理的前提下力求美觀。硬件電路圖單片機(jī)最小系統(tǒng)如圖3.1.1所示。</p><p> 圖3.1.1 單片機(jī)最小系統(tǒng)</p><p><b> 3.2 按鍵電路</b></p><p> 本設(shè)計(jì)中有四個(gè)按鍵,分別實(shí)現(xiàn)開始、保存、復(fù)位和查看功能。這四個(gè)鍵采用中斷的方法。對(duì)于復(fù)位鍵和查看鍵,主
21、要功能在于數(shù)值復(fù)位和對(duì)上次計(jì)時(shí)時(shí)間的查看,對(duì)于時(shí)間的要求不是很嚴(yán)格,而開始和暫停鍵主要用于時(shí)間的鎖定,需要比較準(zhǔn)確的控制。對(duì)復(fù)位鍵和查看鍵采用查詢的方式,而對(duì)于開始和暫停鍵采用外部中斷。四個(gè)按鍵均采用低電平有效,具體電路連接圖如圖3.2.1所示。</p><p> 圖3.2.1 按鍵電路</p><p> 當(dāng)按鍵沒有按下時(shí),單片機(jī)的I/O口直接連接電源,因此需要接上拉電阻來進(jìn)行限流,本
22、設(shè)計(jì)中選取阻值為2kΩ 的電阻作為上拉電阻,根據(jù)計(jì)算可知此時(shí)的灌電流為2.5mA,查看8052的資料得知次電流在安全范圍內(nèi),符合安全設(shè)計(jì)要求。</p><p> 按鍵電路中由于采用了外部中斷,所以需要用到P3口的第二功能。P3口引腳的第二功能如表3.2.2所示。</p><p> 表3.2.2 P3口引腳第二功能表</p><p> 3.3 數(shù)碼管顯示電路&l
23、t;/p><p> 對(duì)于數(shù)字顯示電路,通常采用液晶顯示或數(shù)碼管顯示。本設(shè)計(jì)的顯示電路采用8段數(shù)碼管作為顯示介質(zhì)。具體電路連接圖如圖3.3.1所示。數(shù)碼管顯示可以分為靜態(tài)顯示和動(dòng)態(tài)顯示兩種。由于本設(shè)計(jì)需要采用4位數(shù)碼管顯示時(shí)間,如果靜態(tài)顯示則占用的口線多,硬件電路復(fù)雜。所以采用動(dòng)態(tài)顯示。</p><p> 動(dòng)態(tài)顯示是一位一位地輪流點(diǎn)亮各位數(shù)碼管,這種逐位點(diǎn)亮顯示器的方式稱為位掃描。通常各位數(shù)
24、碼管的段選線相應(yīng)并聯(lián)在一起,由一個(gè)8位的I/O口控制;各位的公共陰極位選線由另外的I/O口線控制。動(dòng)態(tài)方式顯示時(shí),各數(shù)碼管分時(shí)輪流選通,要使其穩(wěn)定顯示必須采用掃描方式,即在某一時(shí)刻只選通一位數(shù)碼管,并送出相應(yīng)的段碼,在另一時(shí)刻選通另一位數(shù)碼管,并送出相應(yīng)的段碼,依此規(guī)律循環(huán),即可使各位數(shù)碼管顯示將要顯示的字符,雖然這些字符是在不同的時(shí)刻分別顯示,但由于人眼存在視覺暫留效應(yīng),只要每位顯示間隔足夠短就可以給人同時(shí)顯示的感覺。</p&g
25、t;<p> 圖3.3.1 數(shù)碼管電路</p><p> 數(shù)碼顯示管分為共陽數(shù)碼管和共陰數(shù)碼管兩種,本設(shè)計(jì)采用共陽極數(shù)碼管顯示。</p><p> 共陽極數(shù)碼管的8個(gè)發(fā)光二極管的陽極(二極管正端)連接在一起,通常,公共陽極接高電平(一般接電源),其它管腳接段驅(qū)動(dòng)電路輸出端。當(dāng)某段驅(qū)動(dòng)電路的輸出端為低電平時(shí),則該端所連接的字段導(dǎo)通并點(diǎn)亮,根據(jù)發(fā)光字段的不同組合可顯示出各
26、種數(shù)字或字符。此時(shí),要求段驅(qū)動(dòng)電路能吸收額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來確定相應(yīng)的限流電阻。</p><p> 本設(shè)計(jì)采用共陽極數(shù)碼顯示管做顯示電路,由于采用的是共陽的數(shù)碼顯示管,所以只要數(shù)碼管的a、b、c、d、e、f、g、h引腳為高電平,那么其對(duì)應(yīng)的二極管就會(huì)發(fā)光,使數(shù)碼顯示管顯示0~9的編碼見表3.3.2。</p><p> 動(dòng)態(tài)顯示電路由顯示塊、字形碼驅(qū)動(dòng)模塊
27、、字位驅(qū)動(dòng)模塊三部分組成。</p><p> 表3.3.2 共陽極數(shù)碼顯示管字型代碼</p><p> 4個(gè)數(shù)碼管的8段段選線分別與外接上拉電阻的單片機(jī)P0口對(duì)應(yīng)相連,而4個(gè)數(shù)碼管的位控制端則和NPN型三極管的集電極相連接。單片機(jī)的P2.0~P2.4口則分別對(duì)應(yīng)數(shù)碼顯示管的最低位到最高位,P2.0~P2.4口分別和五個(gè)NPN型三極管的基極相連,做三極管導(dǎo)通的控制端,而NPN型三極管選用
28、9013型三極管。根據(jù)9013的資料顯示:其耐壓值為40V,最大功率為0.65W,最大電流為0.5A,電氣性能完全滿足本設(shè)計(jì)的要求。另外數(shù)碼管顯示是采用動(dòng)態(tài)顯示,所以對(duì)三極管的開關(guān)頻率有一定的要求。根據(jù)電子秒表的設(shè)計(jì)計(jì)算可知?jiǎng)討B(tài)顯示的頻率最高為3KHz,而9013的導(dǎo)通頻率為150MHz,完全能滿足本設(shè)計(jì)的要求,所以最終選取9013三極管最為位控制開關(guān)。</p><p> 由于數(shù)碼管是有P0口來驅(qū)動(dòng),它內(nèi)部沒有
29、上拉電阻,作為輸出口時(shí)驅(qū)動(dòng)能力比較弱,不能點(diǎn)亮數(shù)碼顯示管,因此P0口必須接上拉電阻來提高驅(qū)動(dòng)能力。另外一位共陰數(shù)碼管的驅(qū)動(dòng)電流一般為20mA左右,如果電流太大容易造成數(shù)碼管損壞,所以也需要根據(jù)電源的電壓值來確定上拉電阻的大小。如果電阻過小,勢(shì)必會(huì)形成灌電流過大,造成單片機(jī)IO的損壞,如果電阻過大,那么對(duì)拉電流沒有太大的影響。電源供電電壓為5V,當(dāng)上拉電阻選用220Ω電阻時(shí)灌電流為22mA。不會(huì)損壞單片機(jī)的I/O口,同時(shí)也可以為數(shù)碼顯示管
30、起到限制電流的保護(hù)作用。 </p><p><b> 4 系統(tǒng)軟件設(shè)計(jì)</b></p><p> 系統(tǒng)軟件分為主程序、中斷服務(wù)程序和子程序三部分。</p><p><b> 4.1 主程序設(shè)計(jì)</b></p><p> 在本軟件設(shè)計(jì)中,用到了4個(gè)數(shù)碼管,4個(gè)獨(dú)立鍵盤,一個(gè)定時(shí)器中斷,還有一些
31、復(fù)位電路等等。</p><p> 圖4.1.1 主程序流程圖</p><p> 對(duì)于本程序設(shè)計(jì)的結(jié)果,首先,當(dāng)硬件上電后在數(shù)碼管上顯示了4個(gè)零,最右邊的兩位數(shù)為秒位,最前面2位每一次循環(huán)是99次,沒循環(huán)一次的時(shí)間是一秒鐘。程序定義的4個(gè)獨(dú)立鍵盤,第一個(gè)是啟動(dòng)秒表,按下去后,經(jīng)過軟件判斷,秒表開始啟動(dòng)。第二個(gè)按鍵是記錄按鍵,按下后,記錄秒數(shù)。第三個(gè)按鈕按下后為復(fù)位,清除全部記錄,秒表復(fù)位
32、。最后一個(gè)按鍵是讀數(shù)按鍵,按下后,顯示所記錄的時(shí)間,一共有十組。</p><p> 以上是程序的大概要求。那么對(duì)于程序設(shè)計(jì)思路是:首先,開始,運(yùn)行程序,接著進(jìn)入主函數(shù)。第一步就是對(duì)程序的初始化了,對(duì)剛開始的數(shù)碼管顯示以及定時(shí)器的打開,定時(shí)器的高八位和第八位的復(fù)制,定時(shí)器的啟動(dòng)等進(jìn)行初始化。完成了這個(gè)工作后,進(jìn)入一個(gè)大循環(huán),在該循環(huán)里,就是本程序的主要部分了。因?yàn)槲沂峭瑫r(shí)亮4個(gè)數(shù)碼管,必然采用的是動(dòng)態(tài)顯示;因?yàn)橛?/p>
33、一個(gè)定時(shí)器中斷,則必然有一個(gè)中斷程序,由于采用的是T0定時(shí)器,所以優(yōu)先級(jí)別是1.在主程序中,主要部分就是對(duì)按鍵的判別,因?yàn)橛?個(gè)按鍵,所以要判別4次。對(duì)第一個(gè)按鍵,首先判定按鍵有沒有按下,如果按下,什么也不做,直接判斷有沒有松開按鍵,一旦松開后,則立刻啟動(dòng)定時(shí)器,此刻定時(shí)器開始運(yùn)行。對(duì)于第二個(gè)按鍵,還是首先判斷有沒有按下,一旦按下,立刻停止定時(shí)器,同時(shí)對(duì)16位定時(shí)計(jì)數(shù)器的高八位和第八位再賦值一次,和以前的賦值是一樣的。此刻,數(shù)碼管上的數(shù)
34、字不再改變,秒表停止。接著是最后一個(gè)按鍵,還是判斷有沒有按下按鍵,一旦按下,對(duì)數(shù)碼管運(yùn)行的數(shù)全部清零,清零后,數(shù)碼管再次顯示4個(gè)零。如果此時(shí)再按下第一個(gè)按鍵,秒表從新開始運(yùn)行,以此類推如圖4.1.1所示。</p><p> 4.2 中斷服務(wù)程序設(shè)計(jì)</p><p> 現(xiàn)方案中采用了定時(shí)中斷服務(wù),當(dāng)定時(shí)/計(jì)數(shù)器T0器溢出后,向CPU發(fā)出中斷請(qǐng)求信號(hào)。CPU跳轉(zhuǎn)到定時(shí)中斷程序執(zhí)行,具體流
35、程如圖2.4。每過10ms進(jìn)入中斷服務(wù)函數(shù)一次,num計(jì)數(shù)值加1,表示10ms已過,這是數(shù)碼管最低位加1。</p><p> 中斷服務(wù)流程圖如下圖4.2.1所示。</p><p> 圖4.2.1 中斷服務(wù)函數(shù)流程圖</p><p> 中斷服務(wù)函數(shù)如下所示:</p><p> void to() interrupt 1//定時(shí)器1中斷服
36、務(wù)程序</p><p><b> {</b></p><p> TH0=(65536-10000)/256;</p><p> TL0=(65536-10000)%256;</p><p> num++;//num的值每加1,表明10ms過去,即0.01s</p><p><b>
37、; }</b></p><p> 4.3 部分主要子程序的設(shè)計(jì)</p><p> 本設(shè)計(jì)僅有的子程序?yàn)橹袛喾?wù)程序,詳見4.2章節(jié)。</p><p><b> 5 系統(tǒng)調(diào)試與總結(jié)</b></p><p> 系統(tǒng)研制完成后,在單片機(jī)開發(fā)板上實(shí)現(xiàn)硬件電路,再通過軟件將程序燒錄進(jìn)單片機(jī)中。</p&g
38、t;<p> 5.1 系統(tǒng)功能測(cè)試</p><p> 系統(tǒng)上電后,顯示正常,進(jìn)行了以下測(cè)試。</p><p> 1.開啟計(jì)時(shí)器功能測(cè)試。</p><p> 2.記錄秒數(shù)功能(可以記錄十組時(shí)間)。</p><p> 3.查看記錄的秒數(shù)功能(可以循環(huán)查看十足記錄的時(shí)間)。</p><p> 4.計(jì)
39、時(shí)器復(fù)位功能。</p><p> 上述測(cè)試結(jié)果與預(yù)期相符。</p><p><b> 5.2 總結(jié)</b></p><p> 本設(shè)計(jì)是基于單片機(jī)控制的數(shù)字秒表,系統(tǒng)的成本較低,但實(shí)用價(jià)值很高而且采用的技術(shù)較為穩(wěn)定而且成熟,另外系統(tǒng)的應(yīng)用要求不是很高。通過這次課程設(shè)計(jì),我學(xué)到了許多知識(shí),還學(xué)到了許多思考問題的方法,受益非淺。提高了分析問題、
40、解決問題的能力。</p><p> 這次課程應(yīng)用系統(tǒng)設(shè)計(jì)的目的是通過在“單片機(jī)原理及應(yīng)用”課堂上學(xué)習(xí)的知識(shí),以及查閱資料,培養(yǎng)一種自學(xué)的能力。把學(xué)到的知識(shí)應(yīng)用到日常生活當(dāng)中,全面提高個(gè)人系統(tǒng)開發(fā)的綜合能力,開拓了思維,為今后在相應(yīng)工作崗位上的工作打下了堅(jiān)實(shí)的基礎(chǔ)。</p><p> 在設(shè)計(jì)過程中,我遇到了很多問題,當(dāng)然這些也是不可避免的,但我并沒有急于尋求問題的答案,而是認(rèn)真分析問題存
41、在的原因,從而著手解決問題,以免以后出現(xiàn)類似的問題。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 張迎新.單片微型計(jì)算機(jī)原理、應(yīng)用及接口技術(shù)(第2版)[M].北京:國防工業(yè)出版社,2004</p><p> [2] 偉福LAB6000系列單片機(jī)仿真實(shí)驗(yàn)系統(tǒng)使用說明書</p><p> [
42、3] 閻石.?dāng)?shù)字電路技術(shù)基礎(chǔ)(第五版).北京:高等教育出版社,2006</p><p> [4] 胡漢才.《單片機(jī)原理及其接口技術(shù)》.清華大學(xué)出版社 .2004</p><p> [4] 郭天祥. 《新概念51單片機(jī)C語言教程》.電子工業(yè)出版社,2009</p><p> [4] 康華光. 模擬電子技術(shù)基礎(chǔ)(第五版).高等教育出版社,2006 </p&g
43、t;<p> [5] 彭偉. 單片機(jī)C語言程序設(shè)計(jì)實(shí)訓(xùn)100例.基于8051+Proteus仿真.電子工業(yè)出版社,2009</p><p><b> 附錄A 系統(tǒng)原理圖</b></p><p><b> 附錄B 源程序</b></p><p> #include<reg52.h></
44、p><p> #define uint unsigned int</p><p> #define uchar unsigned char </p><p> unsigned char code shuma[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};//數(shù)碼管顯示</p&g
45、t;<p> uint table[10]={0};</p><p> sbit s0=P3^0;//開始</p><p> sbit s1=P3^1;//清零</p><p> sbit s2=P3^2;//保存</p><p> sbit s3=P3^3;//顯示保存的值</p><p>
46、 uchar flag=7;</p><p> uint num=0;</p><p> char flag1=0;</p><p> void timeinit()//定時(shí)器初始化</p><p><b> {</b></p><p> TMOD=0X01;</p>&
47、lt;p> TH0=(65536-9000)/256;//定時(shí)器賦初值</p><p> TL0=(65536-9000)%256;</p><p> EA=1;//開總中斷</p><p> ET0=1;//開始計(jì)時(shí)</p><p><b> }</b></p><p> vo
48、id delay(uint ss)//延時(shí)子函數(shù)</p><p><b> {</b></p><p><b> uint a,b;</b></p><p> for(a=ss;a>0;a--)</p><p> for(b=110;b>0;b--);</p>&l
49、t;p><b> }</b></p><p> void display(uint a)//數(shù)碼管顯示數(shù)字子程序</p><p><b> { </b></p><p> uchar a1,a2,a3,a4;//a1是最高位</p><p> a4=a%10;//依次分離最高位到
50、最低位</p><p> a3=(a/10)%10;</p><p> a2=(a/100)%10;</p><p> a1=(a/1000)%10;</p><p> P2=0xef;//第一個(gè)數(shù)碼管顯示</p><p> P0=~shuma[a1];</p><p> delay
51、(5); </p><p> P2=0xdf;//第二個(gè)數(shù)碼管顯示</p><p> P0=~(shuma[a2]|0x80);</p><p> delay(5); </p><p> P2=0xbf;//第三個(gè)數(shù)碼管顯示</p><p> P0=~shuma[a3];</p><p&g
52、t;<b> delay(5);</b></p><p> P2=0x7f;//第四個(gè)數(shù)碼管顯示</p><p> P0=~shuma[a4];</p><p> delay(5); </p><p><b> }</b></p><p> void key()&
53、lt;/p><p><b> {</b></p><p> if(s0==0)//判斷按鍵1是否按下</p><p><b> {</b></p><p> delay(10);</p><p> if(s0==0) flag=0;</p><p&
54、gt; while(!s0); </p><p><b> }</b></p><p> if(s1==0)//判斷按鍵2是否按下</p><p><b> {</b></p><p> delay(10);</p><p> if(s1==0) fla
55、g=1;</p><p> while(!s1); </p><p><b> }</b></p><p> if(s2==0)//判斷按鍵3是否按下</p><p><b> {</b></p><p> delay(10);</p>&l
56、t;p> if(s2==0) flag=2;</p><p> while(!s2); </p><p><b> }</b></p><p> if(s3==0)//判斷按鍵4是否按下</p><p><b> {</b></p><p> dela
57、y(10);</p><p> if(s3==0) </p><p><b> { </b></p><p><b> flag=3;</b></p><p> if(flag1>9) flag1=0; </p><p><b> flag1++;&
58、lt;/b></p><p><b> } </b></p><p> while(!s3); </p><p><b> }</b></p><p><b> }</b></p><p> void main()//主函數(shù)
59、</p><p><b> {</b></p><p> uchar b1=0;</p><p><b> uchar i;</b></p><p> timeinit();//定時(shí)器初始化</p><p><b> while(1)</b>&
60、lt;/p><p><b> {</b></p><p> if(flag==0) TR0=1;//開始計(jì)時(shí)</p><p> else if(flag==2) //清零 </p><p><b> { </b></p><p> TR0=0;//停止計(jì)時(shí)<
61、/p><p> num=0;//清計(jì)數(shù)值</p><p><b> b1=0;</b></p><p><b> flag1=0; </b></p><p> for(i=0;i<10;i++)//給table數(shù)組清零</p><p><b> {<
62、;/b></p><p> table1[i]=0;</p><p><b> } </b></p><p><b> } </b></p><p> else if(flag==1) //保存時(shí)間到table數(shù)組</p><p><b> {&
63、lt;/b></p><p> if(b1>9) b1=0;</p><p> table[b1]=num;</p><p><b> b1++;</b></p><p><b> flag=0;</b></p><p><b> }<
64、;/b></p><p> if(flag==0|flag==2) display(num);//顯示當(dāng)前時(shí)間 </p><p> else if(flag==3) </p><p><b> {</b></p><p> display(table[flag1-1]);//顯示剛才保存的時(shí)間&
65、lt;/p><p><b> } </b></p><p> key(); //按鍵掃描 </p><p><b> } </b></p><p><b> }</b></p><p> void to() interrupt 1//定時(shí)器1中
66、斷服務(wù)程序</p><p><b> {</b></p><p> TH0=(65536-10000)/256;</p><p> TL0=(65536-10000)%256;</p><p> num++;//num的值每加1,表明10ms過去,即0.01s </p><p><
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字秒表課程設(shè)計(jì)
- 數(shù)字秒表課程設(shè)計(jì)
- 課程設(shè)計(jì)--數(shù)字秒表設(shè)計(jì)
- 數(shù)字秒表課程設(shè)計(jì)
- 課程設(shè)計(jì)-- 數(shù)字秒表
- 課程設(shè)計(jì)---數(shù)字秒表設(shè)計(jì)
- eda課程設(shè)計(jì)--數(shù)字秒表設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告---數(shù)字秒表設(shè)計(jì)
- eda課程設(shè)計(jì)--數(shù)字秒表設(shè)計(jì)
- 數(shù)字秒表課程設(shè)計(jì)報(bào)告
- 簡易數(shù)字秒表課程設(shè)計(jì)
- 微機(jī)課程設(shè)計(jì)--數(shù)字秒表
- 數(shù)字秒表課程設(shè)計(jì)1
- eda數(shù)字秒表課程設(shè)計(jì)
- 數(shù)字電子課程設(shè)計(jì)--秒表
- 數(shù)字秒表課程設(shè)計(jì) (2)
- 數(shù)字秒表課程設(shè)計(jì)報(bào)告
- eda課程設(shè)計(jì)---數(shù)字秒表
- 數(shù)字秒表課程設(shè)計(jì)報(bào)告
- 簡易數(shù)字秒表課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論