基于51單片機(jī)的數(shù)字秒表課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)論文_第1頁(yè)
基于51單片機(jī)的數(shù)字秒表課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)論文_第2頁(yè)
基于51單片機(jī)的數(shù)字秒表課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)論文_第3頁(yè)
基于51單片機(jī)的數(shù)字秒表課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)論文_第4頁(yè)
基于51單片機(jī)的數(shù)字秒表課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)論文_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)課程設(shè)計(jì)報(bào)告基于51單片機(jī)的數(shù)字秒表設(shè)計(jì)專(zhuān)業(yè):通信工程學(xué)號(hào):11100640225姓名:羅宏 時(shí)間:2014-6-26目錄一、 課程名稱(chēng)1二、 設(shè)計(jì)目的和意義1三、 任務(wù)要求1四、 任務(wù)分析、設(shè)計(jì)方案1五、 具體實(shí)現(xiàn)過(guò)程9六、 仿真、實(shí)驗(yàn)驗(yàn)證過(guò)程及實(shí)現(xiàn)結(jié)果、現(xiàn)象12七、 結(jié)論14八、 總結(jié)與體會(huì)14一、 課題名稱(chēng)基于51單片的數(shù)字秒表設(shè)計(jì)二、 目的和意義1、通過(guò)本次課程設(shè)計(jì)可以靈活運(yùn)用單片機(jī)的基礎(chǔ)知識(shí),依據(jù)課程設(shè)計(jì)內(nèi)容,能夠完成從硬件電路圖設(shè)計(jì),到電路搭建焊接,再到軟件編程及系統(tǒng)調(diào)試實(shí)現(xiàn)系統(tǒng)功能,完成課程設(shè)計(jì),加深對(duì)單片機(jī)基礎(chǔ)知識(shí)的理解,并靈活運(yùn)用,將各門(mén)知識(shí)綜合應(yīng)用。 2、本

2、次課程設(shè)計(jì)還可以通過(guò)上網(wǎng)查詢(xún)器件資料,培養(yǎng)對(duì)新知識(shí)新技術(shù)的獨(dú)立的學(xué)習(xí)能力和應(yīng)用能力。3、在這次課程設(shè)計(jì)中,我們運(yùn)用到了很多一切所學(xué)的知識(shí)和一些很有用的軟件和工具,如keil4編程軟件、Proteus仿真軟件、Visio軟件、等。4、通過(guò)獨(dú)立完成一個(gè)小的數(shù)字秒表系統(tǒng)設(shè)計(jì),從硬件設(shè)計(jì)到軟件設(shè)計(jì),增強(qiáng)分析問(wèn)題、解決問(wèn)題的能力,為日后的畢業(yè)設(shè)計(jì)及科研工作奠定良好的基礎(chǔ)。5、掌握51單片機(jī)軟件編程知識(shí)、實(shí)現(xiàn)功能、設(shè)計(jì)方法,及KEIL軟件使用方法; 6、應(yīng)用所學(xué)模擬電子線(xiàn)路的知識(shí),掌握電路的設(shè)計(jì)與應(yīng)用;7、熟悉PROTEUS的設(shè)計(jì)與仿真;8、STCISP的使用方法;9、掌握焊接電子元器件的方法以及查閱元件

3、功能與參數(shù)的方法、步驟。三、 設(shè)計(jì)目標(biāo)或任務(wù)要求1 、設(shè)計(jì)目標(biāo)以單片機(jī)為核心,設(shè)計(jì)數(shù)字秒表。通過(guò)硬件電路設(shè)計(jì),軟件設(shè)計(jì),電路搭建,作品調(diào)試。最后完成本次課程設(shè)計(jì)。2 、設(shè)計(jì)要求1、計(jì)時(shí)范圍:059分59.59秒,整數(shù)四位數(shù)和小數(shù)兩位數(shù)顯示;2、計(jì)時(shí)精度10毫秒;3、復(fù)位按鈕,計(jì)時(shí)器清零,并做好下次及時(shí)準(zhǔn)備;4、可以對(duì)三個(gè)對(duì)象(A、B)計(jì)時(shí),具有啟/??刂疲?、設(shè)開(kāi)始、停止A、停止B、顯示A、顯示B、復(fù)位按鈕。 四、 任務(wù)分析、設(shè)計(jì)方案1、 任務(wù)分析數(shù)字電子秒表具有顯示直觀、讀取方便、精度高等優(yōu)點(diǎn),在計(jì)時(shí)中廣泛使用。本設(shè)計(jì)用單片機(jī)組成數(shù)字電子秒表,力求結(jié)構(gòu)簡(jiǎn)單、精度高為目標(biāo)。設(shè)計(jì)中包括硬件電路的

4、設(shè)計(jì)和系統(tǒng)程序的設(shè)計(jì)。其硬件電路主要有主控制器,計(jì)時(shí)與顯示電路和回零、啟動(dòng)和停表電路等。主控制器采用單片機(jī)89C52顯示電路采用共陽(yáng)極LED數(shù)碼管顯示計(jì)時(shí)時(shí)間。本設(shè)計(jì)利用89C52單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,使其能精確計(jì)時(shí)。利用中斷系統(tǒng)使其能實(shí)現(xiàn)開(kāi)始暫停的功能。P0口輸出段碼數(shù)據(jù),P2.0-P2.4口作列掃描輸出,P1.1、P3.2、P3.3、P2.5口接四個(gè)按鈕開(kāi)關(guān),分別實(shí)現(xiàn)開(kāi)始、暫停、清零和查看上次計(jì)時(shí)時(shí)間功能。電路原理圖設(shè)計(jì)最基本的要求是正確性,其次是布局合理,最后在正確性和布局合理的前提下力求美觀。硬件電路圖按照?qǐng)D1.1進(jìn)行設(shè)計(jì)。圖1.1 數(shù)字秒表硬件電路基本原理圖計(jì)時(shí)采用

5、定時(shí)器T0中斷完成,定時(shí)溢出中斷周期為1ms,當(dāng)一處中斷后向CPU發(fā)出溢出中斷請(qǐng)求,每發(fā)出一次中斷請(qǐng)求就對(duì)毫秒計(jì)數(shù)單元進(jìn)行加一,達(dá)到10次就對(duì)十毫秒位進(jìn)行加一,依次類(lèi)推,直到99.99秒重新復(fù)位。 再看按鍵的處理。這四個(gè)鍵可以采用中斷的方法,也可以采用掃描的方法來(lái)識(shí)別。復(fù)位鍵和查看主要功能在于數(shù)值復(fù)位和查詢(xún)上次計(jì)時(shí)時(shí)間,對(duì)于時(shí)間的要求不是很?chē)?yán)格。而開(kāi)始和停止鍵則是用于對(duì)時(shí)間的鎖定,需要比較準(zhǔn)確的控制。因此可以對(duì)復(fù)位和查看按鍵采取掃描的方式。而對(duì)開(kāi)始和停止鍵采用外部中斷的方式。設(shè)計(jì)中包括硬件電路的設(shè)計(jì)和系統(tǒng)程序的設(shè)計(jì)。其硬件電路主要有主控制器,顯示電路和回零、啟動(dòng)、查看、計(jì)次電路等。主控制器采用

6、單片機(jī)89C52,顯示電路采用共陽(yáng)極LED數(shù)碼管顯示計(jì)時(shí)時(shí)間,四個(gè)按鍵均采用觸點(diǎn)式按鍵。2、單片機(jī)的選擇本課題在選取單片機(jī)時(shí),充分借鑒了許多成形產(chǎn)品使用單片機(jī)的經(jīng)驗(yàn),并根據(jù)自己的實(shí)際情況,選擇了stc公司的89C52。89C52單片機(jī)采用40引腳的雙列直插封裝方式。圖1.2為引腳排列圖, 40條引腳說(shuō)明如下:主電源引腳Vss和Vcc Vss接地 Vcc正常操作時(shí)為+5伏電源外接晶振引腳XTAL1和XTAL2 XTAL1內(nèi)部振蕩電路反相放大器的輸入端,是外接晶體的一個(gè)引腳。當(dāng)采用外部振蕩器時(shí),此引腳接地。 XTAL2內(nèi)部振蕩電路反相放大器的輸出端。是外接晶體的另一端。當(dāng)采用外部振蕩器時(shí),此引腳接

7、外部振蕩源。圖1.2 8051單片機(jī)引腳圖控制或與其它電源復(fù)用引腳RST/VPD,ALE/,和/Vpp輸入/輸出引腳P0.0 - P0.7,P1.0 - P1.7,P2.0 - P2.7,P3.0 - P3.7。 P0口(P0.0 - P0.7)是一個(gè)8位漏極開(kāi)路型雙向I/O口,在訪問(wèn)外部存儲(chǔ)器時(shí),它是分時(shí)傳送的低字節(jié)地址和數(shù)據(jù)總線(xiàn),P0口能以吸收電流的方式驅(qū)動(dòng)八個(gè)LSTTL負(fù)載。 P1口(P1.0 - P1.7)是一個(gè)帶有內(nèi)部提升電阻的8位準(zhǔn)雙向I/O口。能驅(qū)動(dòng)(吸收或輸出電流)四個(gè)LSTTL負(fù)載。 P2口(P2.0 - P2.7)是一個(gè)帶有內(nèi)部提升電阻的8位準(zhǔn)雙向I/O口,在訪問(wèn)外部存儲(chǔ)器

8、時(shí),它輸出高8位地址。P2口可以驅(qū)動(dòng)(吸收或輸出電流)四個(gè)LSTTL負(fù)載。 P3口(P3.0 - P3.7)是一個(gè)帶有內(nèi)部提升電阻的8位準(zhǔn)雙向I/O口。能驅(qū)動(dòng)(吸收或輸出電流)四個(gè)LSTTL負(fù)載。(1) 運(yùn)算器運(yùn)算器的功能是進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算??梢詫?duì)半字節(jié)(4位)、單字節(jié)等數(shù)據(jù)進(jìn)行操作。(2) 程序計(jì)數(shù)器PC程序計(jì)數(shù)器PC用來(lái)存放即將要執(zhí)行的指令地址,共16位,可對(duì)64K程序存儲(chǔ)器直接尋址。執(zhí)行指令時(shí),PC內(nèi)容的低8位經(jīng)P0口輸出,高8位經(jīng)P2口輸出。(3) 令寄存器指令寄存器中存放指令代碼。CPU執(zhí)行指令時(shí),由程序存儲(chǔ)器中讀取的指令代碼送入指令寄存器,經(jīng)譯碼后由定時(shí)與控制電路發(fā)出相應(yīng)的控

9、制信號(hào),完成指令功能。3、 顯示電路的選擇與設(shè)計(jì)對(duì)于數(shù)字顯示電路,通常采用液晶顯示或數(shù)碼管顯示。本設(shè)計(jì)的顯示電路采用7段數(shù)碼管作為顯示介質(zhì)。數(shù)碼管顯示可以分為靜態(tài)顯示和動(dòng)態(tài)顯示兩種。由于本設(shè)計(jì)需要采用五位數(shù)碼管顯示時(shí)間,如果靜態(tài)顯示則占用的口線(xiàn)多,硬件電路復(fù)雜。所以采用動(dòng)態(tài)顯示。圖1.3 顯示電路基本原理圖動(dòng)態(tài)顯示是一位一位地輪流點(diǎn)亮各位數(shù)碼管,這種逐位點(diǎn)亮顯示器的方式稱(chēng)為位掃描。通常各位數(shù)碼管的段選線(xiàn)相應(yīng)并聯(lián)在一起,由一個(gè)8位的I/O口控制;各位的公共陰極位選線(xiàn)由另外的I/O口線(xiàn)控制。動(dòng)態(tài)方式顯示時(shí),各數(shù)碼管分時(shí)輪流選通,要使其穩(wěn)定顯示必須采用掃描方式,即在某一時(shí)刻只選通一位數(shù)碼管,并送出相

10、應(yīng)的段碼,在另一時(shí)刻選通另一位數(shù)碼管,并送出相應(yīng)的段碼,依此規(guī)律循環(huán),即可使各位數(shù)碼管顯示將要顯示的字符,雖然這些字符是在不同的時(shí)刻分別顯示,但由于人眼存在視覺(jué)暫留效應(yīng),只要每位顯示間隔足夠短就可以給人同時(shí)顯示的感覺(jué)。數(shù)碼顯示管分為共陽(yáng)數(shù)碼管和共陰數(shù)碼管兩種共陽(yáng)極數(shù)碼管的8個(gè)發(fā)光二極管的陽(yáng)極(二極管正端)連接在一起,如圖1.4(b),通常,公共陽(yáng)極接高電平(一般接電源),其它管腳接段驅(qū)動(dòng)電路輸出端。當(dāng)某段驅(qū)動(dòng)電路的輸出端為低電平時(shí),則該端所連接的字段導(dǎo)通并點(diǎn)亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時(shí),要求段驅(qū)動(dòng)電路能吸收額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來(lái)確定相應(yīng)的

11、限流電阻。圖1.4 (a)數(shù)碼管引腳圖 (b)共陽(yáng)極內(nèi)部結(jié)構(gòu)圖 (c)共陰極內(nèi)部結(jié)構(gòu)圖最大 4 、按鍵電路的選擇與設(shè)計(jì)本設(shè)計(jì)中有四個(gè)按鍵,分別實(shí)現(xiàn)開(kāi)始、暫停、復(fù)位和計(jì)次功能。這四個(gè)鍵可以采用中斷的方法,也可以采用查詢(xún)的方法來(lái)識(shí)別。對(duì)于復(fù)位鍵和查看鍵,主要功能在于數(shù)值復(fù)位和對(duì)上次計(jì)時(shí)時(shí)間的查看,對(duì)于時(shí)間的要求不是很?chē)?yán)格,而開(kāi)始和暫停鍵主要用于時(shí)間的鎖定,需要比較準(zhǔn)確的控制。因此可以考慮,對(duì)復(fù)位鍵和查看鍵采用查詢(xún)的方式,而對(duì)于開(kāi)始和暫停鍵采用外部中斷。四個(gè)按鍵均采用低電平有效,具體電路連接圖如圖1.5所示。5、 時(shí)鐘電路的選擇與設(shè)計(jì)單片機(jī)的時(shí)鐘信號(hào)用來(lái)提供單片機(jī)內(nèi)各種微操作的時(shí)間基準(zhǔn),8051片內(nèi)

12、設(shè)有一個(gè)由反向放大器所構(gòu)成的振蕩電路,XTAL1和 XTAL2分別為振蕩電路的輸入和輸出端,8051單片機(jī)的時(shí)鐘信號(hào)通常用兩種電路形式得到:內(nèi)部振蕩方式與外部振蕩方式。外部方式的時(shí)鐘很少用,若要用時(shí),只要將XTAL1接地,XTAL2接外部振蕩器就行。對(duì)外部振蕩信號(hào)無(wú)特殊要求,只要保證脈沖寬度,一般采用頻率低于11.05926MHz的方波信號(hào)。圖中,電容器C1 、C2起穩(wěn)定振蕩頻率、快速起振的作用,電容值一般為533pF。但在時(shí)鐘電路的實(shí)際應(yīng)用中一定要注意正確選擇其大小,并保證電路的對(duì)稱(chēng)性,盡可能匹配,選用正牌的瓷片或云母電容,如果可能的話(huà),溫度系數(shù)盡可能低。本設(shè)計(jì)中采用大小為30pF

13、的電容和11.05926MHz的晶振。圖1.6 內(nèi)部振蕩電路6、 復(fù)位電路的選擇與設(shè)計(jì)當(dāng)8051單片機(jī)的復(fù)位引腳RST(全稱(chēng)RESET)出現(xiàn)2個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)就完成了復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài),而無(wú)法執(zhí)行程序。因此要求單片機(jī)復(fù)位后能脫離復(fù)位狀態(tài)。而本系統(tǒng)選用的是11.05926MHz的晶振,因此一個(gè)機(jī)器周期為1.09s,那么復(fù)位脈沖寬度最小應(yīng)為2.18s。在實(shí)際應(yīng)用系統(tǒng)中,考慮到電源的穩(wěn)定時(shí)間,參數(shù)漂移,晶振穩(wěn)定時(shí)間以及復(fù)位的可靠性等因素,必須有足夠的余量。根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本形式:上電復(fù)位、手動(dòng)復(fù)位。圖1.10 單片機(jī)復(fù)位電路

14、7、 系統(tǒng)總電路的設(shè)計(jì)系統(tǒng)總電路由以上設(shè)計(jì)的顯示電路,時(shí)鐘電路,按鍵電路和復(fù)位電路組成,只要將單片機(jī)與以上各部分電路合理的連接就組成了系統(tǒng)總電路。系統(tǒng)總電路圖附錄B所示。8051單片機(jī)為主電路的核心部分,各個(gè)電路均和單片機(jī)相連接,由單片機(jī)統(tǒng)籌和協(xié)調(diào)各個(gè)電路的運(yùn)行工作。8051單片機(jī)提供了XTAL1和XTAL2兩個(gè)專(zhuān)用引腳接晶振電路,因此只要將晶振電路接到兩個(gè)專(zhuān)用引腳即可為單片機(jī)提供時(shí)鐘脈沖,但在焊接晶振電路時(shí)要盡量使晶振電路靠近單片機(jī),這樣可以為單片機(jī)提供穩(wěn)定的始終脈沖。 復(fù)位電路同晶振電路,單片機(jī)設(shè)有一個(gè)專(zhuān)用的硬件復(fù)位接口,并設(shè)置為高電平有效。按鍵電路與單片機(jī)的端口連接可以由用戶(hù)自己設(shè)定,本

15、設(shè)計(jì)中軟件復(fù)位鍵和查看鍵分別接單片機(jī)的P1.1和P2.5,均設(shè)為低電平有效。而另外的開(kāi)始鍵和暫停鍵兩鍵使用了外部中斷,所以需要連接到單片機(jī)的特殊接口P3.3和P3.2,這兩個(gè)I/O口的第二功能分別為單片機(jī)的外部中斷1端口和外部中斷0端口。同樣設(shè)置為位低電平有效。顯示電路由五位數(shù)碼管組成,采用動(dòng)態(tài)顯示方式,因此有8位段控制端和5位位控制端,八位段控制接P0口,P0.0P0.7分別控制數(shù)碼顯示管的a、b、c、d、e、f、g、dp顯示,8051的P0口沒(méi)有集成上拉電阻,高電平的驅(qū)動(dòng)能力很弱,所以需要接上拉電阻來(lái)提高P0的高電平驅(qū)動(dòng)能力。五位位控制則由低位到高位分別接到P2.0P2.4口,NPN三極管

16、9013做為位控制端的開(kāi)關(guān),當(dāng)P2.0P2.4端口任意一個(gè)端口為高電平時(shí),與其相對(duì)應(yīng)的三極管就導(dǎo)通,對(duì)應(yīng)的數(shù)碼管導(dǎo)通顯示。通過(guò)以上設(shè)計(jì)已經(jīng)將各部分電路與單片機(jī)有機(jī)的結(jié)合到一起,硬件部分的設(shè)計(jì)以大功告成,剩下的部分就是對(duì)單片機(jī)的編程,使單片機(jī)按程序運(yùn)行,實(shí)現(xiàn)數(shù)字電子秒表的全部功能。五、 具體實(shí)現(xiàn)過(guò)程1、對(duì)數(shù)字秒表設(shè)計(jì)進(jìn)行分析,敲定幾組方案;2、在PROTUES軟件中,畫(huà)電路圖,進(jìn)行仿真、調(diào)試;3、對(duì)自己想要實(shí)現(xiàn)的秒表現(xiàn)象進(jìn)行編程,運(yùn)用KEIL軟件;并于Proteus聯(lián)調(diào)。4、調(diào)試過(guò)程中要不斷改進(jìn)自己的方案;6、測(cè)試各個(gè)所需元件,STC89C52RC,數(shù)碼管。7、將方案敲定之后,對(duì)LED數(shù)字秒表進(jìn)

17、行焊接其中最主要的是對(duì)最小系統(tǒng)的焊接時(shí)非常關(guān)鍵的,在進(jìn)行焊接數(shù)碼管時(shí),很關(guān)鍵。8、將最小系統(tǒng)焊接好以后要用數(shù)字萬(wàn)用表進(jìn)行測(cè)試,首先要測(cè)試有沒(méi)有短接、斷接的地方,再將焊好的板子放在電源上進(jìn)行加電,看電路板子是否正常工作。9、將最小系統(tǒng)板子與數(shù)碼管板子連在一個(gè),通過(guò)USB口與電腦相連,打開(kāi)串口助手,將KEIL軟件中的程序下載到單片機(jī)中,進(jìn)行驗(yàn)證。10、具體程序/* 文 件 名 : 秒表.c * 描 述 : 基于51單片機(jī)的數(shù)碼管數(shù)字秒表;帶有指示燈,蜂鳴器,按鍵(啟動(dòng)、清零、計(jì)次)* 創(chuàng) 建 人 : 羅宏 * 單 位 : 佳木斯大學(xué) 信息電子技術(shù)學(xué)院 電子協(xié)會(huì) * 日 期 : 2014.6.26*

18、 開(kāi) 發(fā) 環(huán) 境: Keil 4* 郵 箱 : 744544126qq * 晶 振 :11.05926MHZ* 版 本 號(hào) : */#include<reg52.h>#define uint unsigned int /宏定義無(wú)符號(hào)整型#define uchar unsigned char /宏定義無(wú)符號(hào)字符型#define DUAN (P0) /宏定義數(shù)碼管段代碼#define WEI (P2) /宏定義數(shù)碼管位代碼sbit keystart_stop =P32;/定義啟動(dòng)/停止按鍵sbit keyrest =P33;/定義復(fù)位/清零按鍵sbit keyrecord=P34;/定

19、義計(jì)數(shù)/存儲(chǔ)按鍵sbit keydispaly = P35;/定義計(jì)數(shù)/顯示按鍵sbit beep =P36;/定義蜂鳴器sbit led =P37;/定義uchar x,msec5,msec10,second,minute;/時(shí)間變量uchar msec,sec,min;/顯示變量uchar code table1 = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /共陽(yáng)數(shù)碼管數(shù)組不帶點(diǎn)顯示uchar code table2 = 0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x58,0x00,0x10; /共陽(yáng)

20、數(shù)碼管帶點(diǎn)顯示/*函數(shù)名稱(chēng): 延時(shí)函數(shù) delay功 能: 延時(shí)指定毫秒?yún)?數(shù): uchar x返 回 值: 無(wú)*/void delay(uchar x) uint b,c; for(b = x;b>0;b-) for(c = 110;c>0;c-);/*函數(shù)名稱(chēng): 定時(shí)器初始化函數(shù)time_init(void)功 能: 定時(shí)器初始化參 數(shù): 無(wú)返 回 值: 無(wú)*/void time_init(void)msec5=0;TMOD = 0x01;TH0 = (65536-9174)/256; TL0 = (65536-9174)%256;ET0 = 1;TR0 = 1;EA = 1;

21、 /*函數(shù)名稱(chēng): 顯示函數(shù)display()功 能: 數(shù)碼管顯示參 數(shù): uchar msec,uchar sec,uchar min返 回 值: 無(wú)*/void display(uchar msec,uchar sec,uchar min)DUAN = table1(msec%10)%10;/ 0.01秒 5.64%10=64%10=0.04WEI = 0x01;delay(2);WEI = 0x00; DUAN = table1(msec/10)%10;/ 0.1秒 5.64/10=56%10=0.6WEI = 0x02;delay(2);WEI = 0x00;DUAN = table2(

22、sec%10); / 1秒 564%10=6WEI = 0x04;delay(2);WEI = 0x00;DUAN = table1(sec/10); / 10秒 564/10=56%10=6WEI = 0x08;delay(2);WEI = 0x00;DUAN = table1(min%10); / 1分 564/10=56%10=6WEI = 0x10;delay(2);WEI = 0x00;DUAN = table1(min/10); / 10分 564/10=56%10=6WEI = 0x20;delay(2);WEI = 0x00; /*函數(shù)名稱(chēng): 蜂鳴器函數(shù)功 能: 蜂鳴器發(fā)聲參

23、數(shù): 無(wú)返 回 值: 無(wú)*/void beep_led() beep = 0; delay(600); beep = 1; delay(600); led = 0; delay(600); led = 1;/*函數(shù)名稱(chēng): 按鍵函數(shù) 功 能: 調(diào)試按鍵的函數(shù)參 數(shù): 無(wú)返 回 值: 無(wú)*/void keys() if(keystart_stop=0) delay(5); if(keystart_stop=0) TR0 = TR0;beep_led(); while(!keystart_stop); if(keyrest=0) delay(5); if(keyrest=0) TR0 = 0; ms

24、ec5=0; msec10=0, second=0; minute=0; beep_led(); while(!keyrest); /*函數(shù)名稱(chēng): 主函數(shù) 功 能: 參 數(shù): 無(wú)返 回 值:*/void main() uchar jishu=0; uchar flag=0; uchar msec1=0,sec1=0,min1=0; uchar msec2=0,sec2=0,min2=0; time_init(); while(1) keys(); / 鍵盤(pán)的掃描函數(shù)一定要放在while循環(huán)里邊 msec=msec10; sec=second; min=minute; if(flag=1) di

25、splay(msec1,sec1,min1); else if(flag=0) display(msec,sec,min); else display(msec2,sec2,min2); if(keyrecord=0) delay(5);if(keyrecord=0) beep_led();jishu+;if(jishu>2)jishu=0;else if(jishu=1) msec1=msec10; sec1=second; min1=minute; else if(jishu=2)msec2=msec10; sec2=second; min2=minute; while(!keyre

26、cord); if(keydispaly=0)delay(5);if(keydispaly=0)beep_led();flag+;if(flag>2)flag=0;while(!keydispaly);/*函數(shù)名稱(chēng): 中斷函數(shù) 功 能: 參 數(shù): 無(wú)返 回 值:*/void timer0 () interrupt 1 TH0 = (65536-9174)/256; TL0 = (65536-9174)%256; msec10+; /msec10加一次等于 10ms if(msec10=100) /j=100 為1s msec10 = 0; second+; if(second=60) / second=60 為

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論