版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課 程 設(shè) 計(jì)</p><p><b> ?。↙ED顯示秒表)</b></p><p> 1、設(shè)計(jì)題目: LED顯示秒表 </p><p> 2、題目的設(shè)計(jì)內(nèi)容和要求: </p><p> 根據(jù)在超級(jí)終端中輸入不同的字符來(lái)控制讓秒表啟停。通過(guò)按鍵來(lái)讀
2、取不同時(shí)間數(shù)值,并且使用按鍵來(lái)控制秒表的開(kāi)始、停止與清零。</p><p> 3、設(shè)計(jì)任務(wù)和要求:</p><p> 3.1 程序設(shè)計(jì)、調(diào)試:要求畫(huà)出程序框圖,設(shè)計(jì)出全部程序并給出程序設(shè)計(jì)說(shuō)明和程序注釋,并在實(shí)驗(yàn)系統(tǒng)上調(diào)試通過(guò)。</p><p> 3.2 課程設(shè)計(jì)說(shuō)明書(shū):a、本次課程設(shè)計(jì)的目的和意義。b、設(shè)計(jì)報(bào)告:字?jǐn)?shù)約2000~3000字(不包括程序清單
3、),內(nèi)容包括:設(shè)計(jì)題目;系統(tǒng)的主要功能、作用以及主要技術(shù)性能指標(biāo);總體設(shè)計(jì)方案、工作和組成原理(框圖)或設(shè)計(jì)說(shuō)明、采用的技術(shù)路線等;系統(tǒng)設(shè)計(jì):接口電路設(shè)計(jì),程序設(shè)計(jì)(程序框圖和程序清單及注釋)其他有關(guān)的理論分析和計(jì)算;設(shè)計(jì)總結(jié):對(duì)整個(gè)設(shè)計(jì)工作過(guò)程進(jìn)行歸納和綜合,對(duì)設(shè)計(jì)中所存在的問(wèn)題和不足進(jìn)行分析和總結(jié),提出解決的方法、措施、建議和對(duì)這次設(shè)計(jì)實(shí)踐的認(rèn)識(shí)、收獲和提高。c、作品的使用或操作說(shuō)明。d、設(shè)計(jì)圖紙或圖表(如接口電路原理圖等)。裝訂時(shí)
4、將課程設(shè)計(jì)說(shuō)明書(shū)附在該3頁(yè)之后。</p><p> 設(shè)計(jì)內(nèi)容不允許抄襲和復(fù)印,否則取消設(shè)計(jì)成績(jī)。</p><p> 4、工作安排:(設(shè)計(jì)進(jìn)度及完成情況)</p><p> 第一階段:根據(jù)題目要求查閱資料構(gòu)思設(shè)計(jì)方案、進(jìn)行接口電路原理圖設(shè)計(jì)和程序設(shè)計(jì)以及其它準(zhǔn) 備工作。</p><p> 第二階段:對(duì)第一階段完成的設(shè)計(jì)內(nèi)容進(jìn)行詳細(xì)的
5、檢查或修改無(wú)錯(cuò)后,按照設(shè)計(jì)方案自行在實(shí)驗(yàn)系統(tǒng)上進(jìn)行程序的輸入和調(diào)試。為便于調(diào)試和查錯(cuò),程序最好采用模塊化結(jié)構(gòu),一部分一部分的調(diào)試,通過(guò)反復(fù)的調(diào)試或修改直到達(dá)到設(shè)計(jì)要求為止。</p><p> 第三階段:按照3中的內(nèi)容和要求撰寫課程設(shè)計(jì)說(shuō)明書(shū)。</p><p> 主要參考文獻(xiàn)及資料:</p><p> 【1】 賈宗璞,許合利.C語(yǔ)言程序設(shè)計(jì):中國(guó)礦業(yè)大學(xué)出版社,
6、2007</p><p> 【2】 靳孝峰,王艷.單片機(jī)的原理與應(yīng)用,北京:北京航空航天大學(xué)大學(xué)出版社2009</p><p> 【3】 康華光.電子技術(shù)基礎(chǔ)(模擬部分)(第五版).北京:高等教育出版社,2006.</p><p> 學(xué)科部主任___________(簽字)</p><p><b> 6、成績(jī)?cè)u(píng)定:</
7、b></p><p><b> 評(píng)語(yǔ):</b></p><p> 設(shè)計(jì)成績(jī): </p><p> 指導(dǎo)老師: (簽字)</p><p> 二○ 年 月 日</p><p><b>
8、 1 概述</b></p><p> 1.1 總體設(shè)計(jì)方案</p><p> 先進(jìn)行系統(tǒng)板的基本焊接,即先將晶振電路和復(fù)位電路焊接完成。然后對(duì)秒表的功能進(jìn)行總體的設(shè)計(jì)和規(guī)劃,列寫出程序的綱要,規(guī)劃好I/O口的控制對(duì)象。再進(jìn)行外圍電路的設(shè)計(jì),根據(jù)安排好的I/O口的使用,設(shè)計(jì)出合理的電路圖,并進(jìn)行最后的焊接。最后,根據(jù)自己的總體設(shè)計(jì)和規(guī)劃進(jìn)行軟件設(shè)計(jì)。</p>
9、<p> 1.2 硬件設(shè)計(jì)與焊接</p><p> 最小系統(tǒng)版是現(xiàn)成的套件,只要焊接時(shí)細(xì)心一點(diǎn)基本不會(huì)出錯(cuò),而數(shù)碼管一般是由P0和P2口控制,或者由P0口加鎖存器控制,這也不需要自己過(guò)多的去設(shè)計(jì),只要焊接時(shí)仔細(xì)一點(diǎn),一般也不會(huì)出錯(cuò)。在這個(gè)秒表中,最重要的就是獨(dú)立按鍵的設(shè)計(jì)和焊接,因?yàn)?,如果設(shè)計(jì)不合理,就很有可能造成秒表的操作不便或者是計(jì)時(shí)誤差增大。我認(rèn)為,按鍵2控制外部中斷0是最優(yōu)選擇。<
10、/p><p> 1.3 軟件設(shè)計(jì)方案</p><p> 將各個(gè)功能以模塊化的形式設(shè)計(jì)出來(lái),當(dāng)然,要先寫主體,編譯通過(guò)并下載入實(shí)驗(yàn)板功能可以實(shí)現(xiàn)后再添加其他功能模塊,然后再編譯下載,一步一步直至完成所有功能。</p><p> 軟件設(shè)計(jì)要比硬件設(shè)計(jì)復(fù)雜很多,出現(xiàn)的問(wèn)題也多。小問(wèn)題一大堆,。在設(shè)計(jì)中,我遇到的最大的兩個(gè)問(wèn)題就是存儲(chǔ)時(shí)間的數(shù)組定義和減小按鍵存數(shù)時(shí)產(chǎn)生的
11、誤差。剛開(kāi)始我存儲(chǔ)時(shí)間數(shù)組定義為code型,結(jié)果不能用設(shè)置的時(shí)間變量賦值,在網(wǎng)上找了好久才發(fā)現(xiàn)問(wèn)題所在,只能將code去掉;最初存儲(chǔ)時(shí)間數(shù)值的按鍵只是一個(gè)單純的按鍵,結(jié)果發(fā)現(xiàn)按鍵按下期間秒表是停止的,最后只得將該功能用外部中斷來(lái)實(shí)現(xiàn),并且將其設(shè)置為下降沿觸發(fā),這樣就大大減少了誤差。</p><p> 2 系統(tǒng)總體方案及硬件設(shè)計(jì)</p><p> 2.1 硬件總體設(shè)計(jì)</p>
12、;<p> 1)單片機(jī)選型:AT89S51</p><p> 2)復(fù)位電路:上電+按鈕</p><p><b> 3)晶振電路</b></p><p> 4)鍵盤:獨(dú)立鍵盤+中斷</p><p> 5)數(shù)碼管顯示:LED</p><p><b> 6)獨(dú)立按鍵控
13、制</b></p><p><b> 原理圖如下:</b></p><p> 2.2 單片機(jī)基本電路設(shè)計(jì)</p><p> 1)復(fù)位電路:上電+按鈕</p><p><b> 2)晶振電路</b></p><p><b> 3)EA處理<
14、;/b></p><p><b> 4)電源設(shè)計(jì)</b></p><p><b> 原理圖如下:</b></p><p> 2.3 秒表時(shí)間顯示電路設(shè)計(jì)</p><p> 2.4 獨(dú)立按鍵電路設(shè)計(jì)</p><p> 2.5 蜂鳴器電路設(shè)計(jì)</p&g
15、t;<p><b> 3 軟件設(shè)計(jì)</b></p><p> 3.1 程序設(shè)計(jì)思路</p><p> 利用定時(shí)器經(jīng)確定時(shí),并且利用隨機(jī)存儲(chǔ)區(qū)的有限空間,定義一個(gè)二維數(shù)組,通過(guò)按鍵將時(shí)間數(shù)值賦給數(shù)組(實(shí)踐證明,隨機(jī)存儲(chǔ)器內(nèi)最多只能存儲(chǔ)30組時(shí)間數(shù)值),然后在秒表停止或在數(shù)組存滿的情況下將所存的時(shí)間數(shù)值讀出。當(dāng)然,也需要通過(guò)按鍵來(lái)讀取不同時(shí)間數(shù)值,并
16、且使用按鍵來(lái)控制秒表的開(kāi)始、停止與清零。</p><p> 附加項(xiàng)目:1)按鍵每按下一次,蜂鳴器聲響50毫秒或100毫秒;</p><p> 2)在秒表啟動(dòng)時(shí),第二段數(shù)碼管小點(diǎn)亮0.5毫秒,滅0.5毫秒;</p><p> 3)在秒表啟動(dòng)和讀取所存時(shí)間數(shù)值時(shí),由于只有四段數(shù)碼管,不可能將分,秒,毫秒同時(shí)顯示,所以在秒表啟動(dòng)時(shí),當(dāng)時(shí)間小于60秒時(shí),數(shù)碼管顯示秒和
17、毫秒,而大于60秒時(shí)則顯示分和秒;在讀取所存時(shí)間數(shù)值時(shí),采用“點(diǎn)”作標(biāo)志位,第二段數(shù)碼管的“點(diǎn)”亮表示顯示的是秒和毫秒,而第四段的數(shù)碼管的“點(diǎn)”亮則表示的是分和秒。</p><p> 3.2 秒表程序構(gòu)成</p><p> ?。ň唧w程序參見(jiàn)附1)</p><p> 3.2.1主程序(main函數(shù))</p><p> 程序的初始入口,不
18、斷調(diào)用各個(gè)子程序,程序的骨架。</p><p> 3.2.2秒表啟動(dòng)存數(shù)程序(keeptime函數(shù))</p><p> 用以處理分,秒和毫秒之間的聯(lián)系。</p><p> 3.2.3讀取所存數(shù)值處理程序(showtime函數(shù))</p><p> 用以讀取處理所存時(shí)間數(shù)值并加以處理。</p><p> 3.2.
19、4數(shù)碼管顯示程序</p><p> 1)秒表啟動(dòng)時(shí)顯示程序(display函數(shù)):確定顯示數(shù)值,將顯示數(shù)值分為個(gè)位、十位、百位、千位,分別查表顯示。</p><p> 2)讀取所存時(shí)間數(shù)值顯示程序(display2函數(shù)):調(diào)取數(shù)組值賦給該函數(shù),確定顯示數(shù)值,將將其分為個(gè)、十、百、千位,分別查表顯示。</p><p> 3)所存時(shí)間數(shù)值序號(hào)顯示程序(displa
20、y3函數(shù)):用以顯示所存時(shí)間的序號(hào),以便于區(qū)分。</p><p> 3.2.5按鍵掃描程序</p><p> 1)掃描按鍵1(scankey1函數(shù))</p><p> 用于停止秒表或所存時(shí)間數(shù)值清零。</p><p> 2)掃描按鍵2(exter0函數(shù))</p><p> 用以觸發(fā)外部中斷0,觸發(fā)方式為下降沿
21、觸發(fā),盡量降低了存儲(chǔ)時(shí)間數(shù)值時(shí)引起的誤差。</p><p> 3)掃描按鍵3(scankey3函數(shù))</p><p> 用于所存時(shí)間數(shù)值的序號(hào)加一。</p><p> 4)掃描按鍵3(scankey4函數(shù))</p><p> 用于所存時(shí)間數(shù)值的序號(hào)減一。</p><p> 3.2.6延時(shí)程序(delay函數(shù))
22、</p><p> 用于延時(shí)z*1毫秒。 </p><p> 3.3 源程序代碼見(jiàn)附1。</p><p><b> 4 實(shí)驗(yàn)仿真</b></p><p> 單片機(jī)學(xué)習(xí)中我們使用proteus做仿真,該軟件的優(yōu)點(diǎn)是可以搭建單片機(jī)的常用仿真電路,并且可以利用豐富的外設(shè)器件,如數(shù)碼管,LCD,按鍵,傳感器,A/D,D
23、/A等,實(shí)現(xiàn)與實(shí)際系統(tǒng)板運(yùn)行相接近的效果,即可以完成系統(tǒng)級(jí)的調(diào)試。</p><p> 使用Proteus 軟件進(jìn)行單片機(jī)系統(tǒng)仿真設(shè)計(jì), 是虛擬仿真技術(shù)和計(jì)算機(jī)多媒體技術(shù)相結(jié)合的綜合運(yùn)用,有利于培養(yǎng)學(xué)生的電路設(shè)計(jì)能力及仿真軟件的操作能力;在單片機(jī)課程設(shè)計(jì)中,我們使用 Proteus 開(kāi)發(fā)環(huán)境學(xué)習(xí),在不需要硬件投入的條件下,對(duì)單片機(jī)的學(xué)習(xí)比單純學(xué)習(xí)書(shū)本知識(shí)更容易接受,更容易提高。實(shí)踐證明,在使用 Proteus 進(jìn)
24、行系統(tǒng)仿真開(kāi)發(fā)成功之后再進(jìn)行實(shí)際制作,能極大提高單片機(jī)系統(tǒng)設(shè)計(jì)效率。</p><p> Proteus仿真軟件可以看做是構(gòu)建了一個(gè)特殊的單片機(jī)系統(tǒng), 只要將所寫程序的HEX文件導(dǎo)入該單片機(jī)系統(tǒng),就可以讓它一句句的執(zhí)行所寫的指令,也可以讓它與Keil實(shí)現(xiàn)聯(lián)調(diào),程序有問(wèn)題可以隨時(shí)改,幫助快速調(diào)試程序。</p><p> Proteus仿真軟件的應(yīng)用,使我們?cè)跊](méi)有硬件開(kāi)銷的情況下,更快更好的
25、接觸到單片機(jī)的開(kāi)發(fā)和應(yīng)用,并且方便了程序的調(diào)試。</p><p><b> 5 設(shè)計(jì)體會(huì)</b></p><p> 經(jīng)過(guò)這六周的單片機(jī)實(shí)訓(xùn),自己有很多的心得體會(huì),我接觸單片機(jī)程序設(shè)計(jì)將近有一年了,第一次接觸是跟著電氣開(kāi)發(fā)部一起學(xué)習(xí),其實(shí)當(dāng)時(shí)也沒(méi)學(xué)到太多內(nèi)容,只是懂得了一點(diǎn)皮毛而已。</p><p> 而現(xiàn)在做一個(gè)相對(duì)自己水平來(lái)說(shuō)功能較強(qiáng)的
26、實(shí)物,這使我在實(shí)踐中對(duì)單片機(jī)的理解又加深了不少,而且,在這個(gè)課程設(shè)計(jì)中,讓我真真切切感受到收獲的喜悅。在做的過(guò)程中,我遇到了很多問(wèn)題,通過(guò)自己的努力,比如上網(wǎng)查資料,去圖書(shū)館借書(shū),或者請(qǐng)教高年級(jí)的同學(xué),都把他們一一解決了,成功后的喜悅給了我莫大學(xué)好單片機(jī)的信心和動(dòng)力。</p><p> 單片機(jī)對(duì)于我們電專業(yè)的學(xué)生來(lái)說(shuō)是一門很重要的學(xué)科,老師和一些畢業(yè)的學(xué)長(zhǎng)都說(shuō),如果學(xué)好單片機(jī),就憑這門技術(shù)找一個(gè)好工作不成問(wèn)題。
27、盡管我們?cè)谡n堂上學(xué)到的內(nèi)容有限,但在以后還要好好的學(xué)習(xí)單片機(jī)。最后感謝老師對(duì)我們的精心指導(dǎo)和幫助,感謝同學(xué)們對(duì)我的幫助。</p><p> 下面我就來(lái)談?wù)勎覀€(gè)人的幾點(diǎn)體會(huì):</p><p> 1. 在設(shè)計(jì)程序時(shí),不能妄想一次就將整個(gè)程序設(shè)計(jì)好,“反復(fù)修改,不斷改進(jìn)”是程序設(shè)計(jì)的必經(jīng)之路。</p><p> 2. 要養(yǎng)成注釋程序的好習(xí)慣,一個(gè)程序的完美與否不僅僅
28、是實(shí)現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便。</p><p> 3. 在設(shè)計(jì)程序過(guò)程中遇到問(wèn)題是很正常的,但我們應(yīng)該將每次遇到的問(wèn)題記錄下來(lái),并分析清楚,以免下次再碰到同樣的問(wèn)題。</p><p> 4. 在設(shè)計(jì)程序時(shí),將自己的程序分成一個(gè)模塊一個(gè)模塊來(lái)寫,先寫程序的主體,編譯沒(méi)錯(cuò)誤后再往上添加其他功能模塊,添加一個(gè)功能模塊就編譯一次,并下載到單片機(jī)
29、里查看是否有錯(cuò)誤,等成功后再依次添加其他模塊直至完成所有功能。</p><p><b> 參考文獻(xiàn)</b></p><p> 【1】 賈宗璞,許合利.C語(yǔ)言程序設(shè)計(jì):中國(guó)礦業(yè)大學(xué)出版社,2007</p><p> 【2】 靳孝峰,王艷.單片機(jī)的原理與應(yīng)用,北京:北京航空航天大學(xué)大學(xué)出版社2009</p><p>
30、 【3】 康華光.電子技術(shù)基礎(chǔ)(模擬部分)(第五版).北京:高等教育出版社,2006.</p><p><b> 附1:源程序代碼</b></p><p> #include<reg52.h></p><p> #define uint unsigned int</p><p> #define uc
31、har unsigned char</p><p> sbit buz=P3^0;</p><p> sbit key1=P3^1;</p><p> sbit key2=P3^2;</p><p> sbit key3=P3^3;</p><p> sbit key4=P3^4;</p>&l
32、t;p> uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};</p><p> uchar bank[30][3]={0};</p><p> uchar min,sec,msec,aa,bb,cc,dd,ee,ff;</p><p> uchar tab=0
33、,tab1=0,i,j;</p><p> uint tab3;</p><p> void display(uchar qian,uchar bai,uchar shi,uchar ge);</p><p> void display2(uchar qian,uchar bai,uchar shi,uchar ge,uchar qq);</p>
34、<p> void display3(uchar shi,uchar ge);</p><p> void delay(uint);</p><p> void scankey1();</p><p> void scankey3();</p><p> void scankey4();</p><p
35、> void keeptime();</p><p> void showtime();</p><p> void init()//初始化子程序</p><p><b> {</b></p><p> for(i=0;i<30;i++)</p><p> for(j=
36、0;j<3;j++)</p><p> bank[i][j]=0;</p><p><b> P3=0xff;</b></p><p><b> min=0;</b></p><p><b> sec=0;</b></p><p><
37、;b> msec=0;</b></p><p> TMOD=0X01;</p><p> TH0=(65536-10000)/256;</p><p> TL0=(65536-10000)%256;</p><p><b> EA=1;</b></p><p><
38、b> EX0=1;</b></p><p><b> IT0=1;</b></p><p><b> ET0=1;</b></p><p><b> TR0=tab1;</b></p><p><b> tab=0;</b>&l
39、t;/p><p><b> tab3=1;</b></p><p><b> i=0;</b></p><p><b> } </b></p><p> void main()//主函數(shù)</p><p><b> {</b&
40、gt;</p><p><b> init();</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> scankey1();</p><p> if(tab1==1)<
41、/p><p> keeptime();</p><p><b> else</b></p><p> showtime();</p><p><b> }</b></p><p><b> }</b></p><p&g
42、t; void display(uchar qian,uchar bai,uchar shi,uchar ge)//顯示子程序1,用于秒表走動(dòng)時(shí)顯示</p><p><b> {</b></p><p><b> P2=0xfe;</b></p><p> P0=table[qian];</p>&
43、lt;p><b> delay(1);</b></p><p><b> P0=0;</b></p><p><b> P2=0xfd;</b></p><p> if(tab<=50)</p><p> P0=table[bai]|0x80;</p
44、><p> else P0=table[bai];</p><p><b> delay(1);</b></p><p><b> P0=0;</b></p><p><b> P2=0xfb;</b></p><p> P0=table[shi]
45、;</p><p><b> delay(1);</b></p><p><b> P0=0;</b></p><p><b> P2=0xf7;</b></p><p> P0=table[ge];</p><p><b> del
46、ay(1);</b></p><p><b> P0=0;</b></p><p><b> }</b></p><p> void display2(uchar qian,uchar bai,uchar shi,uchar ge,uchar qq)//顯示子程序2,顯示所存時(shí)間</p>
47、<p><b> {</b></p><p><b> P2=0xfe;</b></p><p> P0=table[qian];</p><p><b> delay(1);</b></p><p><b> P0=0;</b><
48、;/p><p><b> P2=0xfd;</b></p><p><b> if(qq==0)</b></p><p> P0=table[bai]|0x80;</p><p> else P0=table[bai];</p><p><b> delay(
49、1);</b></p><p><b> P0=0;</b></p><p><b> P2=0xfb;</b></p><p> P0=table[shi];</p><p><b> delay(1);</b></p><p>&
50、lt;b> P0=0;</b></p><p><b> P2=0xf7;</b></p><p><b> if(qq==1)</b></p><p> P0=table[ge]|0x80;</p><p> else P0=table[ge];</p>
51、<p><b> delay(1);</b></p><p><b> P0=0;</b></p><p><b> }</b></p><p> void display3(uchar shi,uchar ge)//顯示子程序3,顯示存儲(chǔ)時(shí)間的序號(hào)</p>&l
52、t;p><b> {</b></p><p><b> P2=0xfb;</b></p><p> P0=table[shi];</p><p><b> delay(1);</b></p><p><b> P0=0;</b></p
53、><p><b> P2=0xf7;</b></p><p> P0=table[ge];</p><p><b> delay(1);</b></p><p><b> P0=0;</b></p><p><b> }</b&g
54、t;</p><p> void keeptime()//秒表記時(shí)函數(shù)</p><p><b> {</b></p><p><b> msec=tab;</b></p><p> aa=msec%10;</p><p> bb=msec/10;</p>
55、;<p> cc=sec%10;</p><p> dd=sec/10;</p><p> ee=min%10;</p><p> ff=min/10;</p><p> if(tab==100)</p><p><b> {</b></p><p&g
56、t;<b> tab=0;</b></p><p><b> sec++;</b></p><p><b> }</b></p><p> if(sec==60)</p><p><b> {</b></p><p>&l
57、t;b> sec=0;</b></p><p><b> min++;</b></p><p><b> }</b></p><p> if(min==59)</p><p><b> {</b></p><p><b&
58、gt; tab1=0;</b></p><p><b> TR0=tab1;</b></p><p><b> }</b></p><p> if(min==0)</p><p> display(dd,cc,bb,aa);</p><p> if(m
59、in!=0)</p><p> display(ff,ee,dd,cc);</p><p><b> }</b></p><p> void showtime()//存儲(chǔ)時(shí)間調(diào)出顯示函數(shù)</p><p><b> {</b></p><p><b>
60、uchar pp;</b></p><p> pp=(tab3-1)/2;</p><p> scankey3();</p><p> scankey4();</p><p> aa=bank[pp][0]%10;</p><p> bb=bank[pp][0]/10;</p>&l
61、t;p> cc=bank[pp][1]%10;</p><p> dd=bank[pp][1]/10;</p><p> ee=bank[pp][2]%10;</p><p> ff=bank[pp][2]/10;</p><p> if(bank[0][0]==0)</p><p> display
62、(0,0,0,0);</p><p><b> else</b></p><p><b> {</b></p><p> if(tab3%2==1)</p><p> display3((pp+1)/10,(pp+1)%10);</p><p> if(tab3%2
63、==0)</p><p><b> {</b></p><p> if(bank[pp][2]==0)</p><p> display2(dd,cc,bb,aa,0);</p><p> if(bank[pp][2]!=0)</p><p> display2(ff,ee,dd,cc,
64、1);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void scankey1()//檢測(cè)按鍵1是否被按下</p><p><b>
65、{</b></p><p> if(key1==0)</p><p><b> {</b></p><p><b> delay(8);</b></p><p> if(key1==0)</p><p><b> {</b><
66、;/p><p> if(tab1==1)</p><p><b> {</b></p><p><b> tab1=0;</b></p><p> TR0=tab1; </p><p><b> }</b></p><p&g
67、t;<b> else</b></p><p><b> {</b></p><p><b> init();</b></p><p><b> }</b></p><p><b> buz=0;</b></p&
68、gt;<p> delay(100);</p><p><b> buz=1;</b></p><p> while(key1!=1);</p><p><b> delay(8);</b></p><p> while(key1!=1);</p><
69、p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void scankey3()//檢測(cè)按鍵3是否被按下</p><p><b> {</b></p>
70、<p> if(key3==0)</p><p><b> {</b></p><p><b> delay(8);</b></p><p> if(key3==0)</p><p><b> {</b></p><p> if(
71、(tab3<60)&&(tab1==0))</p><p><b> tab3++; </b></p><p><b> buz=0;</b></p><p> delay(100);</p><p><b> buz=1;</b></p&
72、gt;<p> while(key3!=1);</p><p><b> delay(8);</b></p><p> while(key3!=1);</p><p><b> }</b></p><p><b> }</b></p>&l
73、t;p><b> }</b></p><p> void scankey4()//檢測(cè)按鍵4是否被按下</p><p><b> {</b></p><p> if(key4==0)</p><p><b> {</b></p><p&g
74、t;<b> delay(8);</b></p><p> if(key4==0)</p><p><b> {</b></p><p> if((tab3>1)&&(tab1==0))</p><p><b> tab3--; </b><
75、;/p><p><b> buz=0;</b></p><p> delay(100);</p><p><b> buz=1;</b></p><p> while(key4!=1);</p><p><b> delay(8);</b><
76、/p><p> while(key4!=1);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void delay(uint z)//延時(shí)函數(shù)</p&g
77、t;<p><b> {</b></p><p><b> uint x,y;</b></p><p> for(x=z;x>0;x--)</p><p> for(y=110;y>0;y--);</p><p><b> }</b><
78、;/p><p> void exter0() interrupt 0 //外部中斷0函數(shù)</p><p><b> {</b></p><p> delay(10);</p><p> if((key2==0)&&(i<30))</p><p><b>
79、 { </b></p><p> if(tab1==0)</p><p><b> {</b></p><p><b> tab1=1;</b></p><p><b> TR0=tab1;</b></p><p><b&
80、gt; }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> j=0;</b></p><p> bank[i][j++]=msec;</p><p> bank[
81、i][j++]=sec;</p><p> bank[i][j]=min;</p><p><b> i++;</b></p><p><b> }</b></p><p><b> buz=0;</b></p><p> delay(50);
82、</p><p><b> buz=1;</b></p><p><b> }</b></p><p><b> }</b></p><p> void timer0() interrupt 1//定時(shí)器中斷0函數(shù)</p><p><
83、b> {</b></p><p> TH0=(65536-10000)/256;</p><p> TL0=(65536-10000)%256;</p><p><b> tab++;</b></p><p><b> }</b></p><p>
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于sopc的嵌入式數(shù)字秒表課程設(shè)計(jì)
- 基于嵌入式led顯示課程設(shè)計(jì)
- 秒表課程設(shè)計(jì)-- 秒表系統(tǒng)的設(shè)計(jì)
- 秒表課程設(shè)計(jì)
- 秒表課程設(shè)計(jì)
- 秒表課程設(shè)計(jì)
- 數(shù)字式秒表課程設(shè)計(jì)
- 數(shù)字式秒表課程設(shè)計(jì)
- 數(shù)字式秒表課程設(shè)計(jì)
- 數(shù)字式秒表課程設(shè)計(jì)
- 秒表 課程設(shè)計(jì)
- 計(jì)時(shí)秒表課程設(shè)計(jì)---計(jì)時(shí)秒表系統(tǒng)的設(shè)計(jì)
- 數(shù)字式秒表單片機(jī)數(shù)字秒表課程設(shè)計(jì)
- 數(shù)字秒表課程設(shè)計(jì)
- 多用秒表課程設(shè)計(jì)
- 電子秒表課程設(shè)計(jì)
- 課程設(shè)計(jì)-- 數(shù)字秒表
- 數(shù)字秒表課程設(shè)計(jì)
- 數(shù)字秒表課程設(shè)計(jì)
- 電子秒表 課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論