單片機(jī)課程設(shè)計(jì) 電子鐘_第1頁(yè)
單片機(jī)課程設(shè)計(jì) 電子鐘_第2頁(yè)
單片機(jī)課程設(shè)計(jì) 電子鐘_第3頁(yè)
單片機(jī)課程設(shè)計(jì) 電子鐘_第4頁(yè)
單片機(jī)課程設(shè)計(jì) 電子鐘_第5頁(yè)
已閱讀5頁(yè),還剩25頁(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、中北大學(xué)單片機(jī)課程設(shè)計(jì)說(shuō)明書(shū)數(shù)字鐘設(shè)計(jì)1 設(shè)計(jì)任務(wù)與要求11.1設(shè)計(jì)任務(wù)11.2設(shè)計(jì)要求12單片機(jī)簡(jiǎn)介22.1單片機(jī)的發(fā)展歷程23系統(tǒng)設(shè)計(jì)思路和方案33.1系統(tǒng)總體方案33.2硬件簡(jiǎn)介43.2.1硬件選擇43.2.2 51單片機(jī)的構(gòu)成43.2.3 STC89C52RC引腳功能說(shuō)明53.2.4 LED簡(jiǎn)介63.3 Keil調(diào)試74、系統(tǒng)實(shí)物圖95、課程設(shè)計(jì)體會(huì)10參考文獻(xiàn)11附錄A12附錄B13附錄C141 設(shè)計(jì)任務(wù)與要求1.1設(shè)計(jì)任務(wù)本課題應(yīng)完成以下設(shè)計(jì)內(nèi)容:1)硬件設(shè)計(jì)設(shè)計(jì)數(shù)字鐘的電路原理圖,用PROTEL繪制硬件電路。制作實(shí)物。2)軟件設(shè)計(jì)(1)時(shí)、分、秒的設(shè)置及顯示;(2)畫(huà)出程序框圖;

2、(3)調(diào)試與分析。用PROTEUS仿真。3)課程設(shè)計(jì)說(shuō)明書(shū)1.2設(shè)計(jì)要求本課程設(shè)計(jì)的基本要求是使學(xué)生全面掌握單片機(jī)控制系統(tǒng)設(shè)計(jì)的基本理論,熟悉掌握MCS51 系列單片機(jī)的編程方法,具體要求:本例利用AT89C51的定時(shí)器和6位7段數(shù)碼管,設(shè)計(jì)一個(gè)電子時(shí)鐘。顯示格式為“XX XX XX”,由左向右分別是:時(shí)、分、秒。2單片機(jī)簡(jiǎn)介2.1單片機(jī)的發(fā)展歷程單片機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是一種非?;钴S和頗具生命力的機(jī)種,特別適用于工業(yè)控制領(lǐng)域。1971年微處理器研制成功不久,就出現(xiàn)了單片機(jī),但最早的單片機(jī)是1位的,處理能力有限。單片機(jī)的發(fā)展共分四個(gè)階段:第一階段是初級(jí)階段,功能非常簡(jiǎn)單;第二階段是

3、低性能階段, 16位定時(shí)器/計(jì)數(shù)器,片內(nèi)ROM、RAM容量加大,直到現(xiàn)在仍被廣泛應(yīng)用,是目前應(yīng)用數(shù)量較多的單片機(jī)。、32位單片機(jī)推出階段,以滿足不同的用戶需要。縱觀單片機(jī)幾十年的發(fā)展歷程,單片機(jī)的今后發(fā)展方向?qū)⑾蚨喙δ?、高性能、高速度、低功耗、低價(jià)格、外圍電路內(nèi)裝化以及內(nèi)存儲(chǔ)器容量增加和FLASH存儲(chǔ)器化方向發(fā)展。2.2實(shí)用價(jià)值與理論意義 在單片機(jī)模塊里比較常見(jiàn),數(shù)字時(shí)鐘是一種用0數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無(wú)機(jī)械裝置,具有更高的使用壽命,新詞得到了廣泛的應(yīng)用。 數(shù)字時(shí)鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì)時(shí)、分、秒數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭、車(chē)

4、站、碼頭、辦公室等公用場(chǎng)所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?,由于?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字時(shí)鐘的精度遠(yuǎn)遠(yuǎn)超過(guò)老式鐘表,鐘表的數(shù)字化給人們的生產(chǎn)生活帶來(lái)了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。因此研究數(shù)字時(shí)鐘及擴(kuò)大其應(yīng)用有著非常現(xiàn)實(shí)的意義。3系統(tǒng)設(shè)計(jì)思路和方案3.1系統(tǒng)總體方案圖3.1整體設(shè)計(jì)思路針對(duì)要實(shí)現(xiàn)的功能,擬采用AT89C51單片機(jī)進(jìn)行設(shè)計(jì),AT89C51 單片機(jī)是一款低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4KB在線可編程(ISP)的可反復(fù)擦寫(xiě)1000次的Flash只讀程序存儲(chǔ)器,器件采用高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS- 51指令系

5、統(tǒng)及80C51引腳結(jié)構(gòu)。這樣,既能做到經(jīng)濟(jì)合理又能實(shí)現(xiàn)預(yù)期的功能。在程序方面,采用分塊設(shè)計(jì)的方法,這樣既減小了編程難度、使程序易于理解,又能便于添加各項(xiàng)功能。程序可分為鬧鐘的聲音程序、顯示程序、鬧鐘顯示程序、調(diào)時(shí)顯示、定時(shí)程序。運(yùn)用這種方法,關(guān)鍵在于各模塊的兼容和配合,若各模塊不匹配會(huì)出現(xiàn)意想不到的錯(cuò)誤。3.2硬件簡(jiǎn)介3.2.1硬件選擇(1)單片機(jī)的選擇 選用STC89C52單片機(jī),并配備12MHz晶振,復(fù)位電路采用上電復(fù)位。(2)顯示電路選擇 采用軟件譯碼動(dòng)態(tài)顯示,P3.0-P3.3作數(shù)碼管的位選口。P1.0-P1.6作數(shù)碼管的段選口??紤]直接用單片機(jī)I/O口作位選時(shí)驅(qū)動(dòng)功率不夠,(3)電源

6、選擇 采用直流3V電源供電。(4)STC89C52是一種帶8K字節(jié)閃爍可編程可檫除只讀存儲(chǔ)器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的低電壓,高性能COMOS8的微處理器,俗稱(chēng)單片機(jī)。該器件采用ATMEL搞密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。3.2.2 51單片機(jī)的構(gòu)成STC89C52RC單片機(jī)是宏晶科技推出的新一代高速/低功耗/超強(qiáng)抗干擾的單片機(jī),指令代碼完全兼容傳統(tǒng)8051單片機(jī),12時(shí)鐘/機(jī)器周期和6時(shí)鐘/機(jī)器周期可以任意選擇。主要特性如下:1、增強(qiáng)型8051單片機(jī),6時(shí)鐘/機(jī)器周期和1

7、2時(shí)鐘/機(jī)器周期可以任意選擇,指令代碼完全兼容傳統(tǒng)8051.2、工作電壓:5.5V3.3V(5V單片機(jī))/3.8V2.0V(3V單片機(jī))3、工作頻率范圍:040MHz,相當(dāng)于普通8051的080MHz,實(shí)際工作頻率可達(dá)48MHz4、用戶應(yīng)用程序空間為8K字節(jié)5、片上集成512字節(jié)RAM6、通用I/O口(32個(gè)),復(fù)位后為:P1/P2/P3/P4是準(zhǔn)雙向口/弱上拉,P0口是漏極開(kāi)路輸出,作為總線擴(kuò)展用時(shí),不用加上拉電阻,作為I/O口用時(shí),需加上拉電阻。7、ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無(wú)需專(zhuān)用編程器,無(wú)需專(zhuān)用仿真器,可通過(guò)串口(RxD/P3.0,TxD/P3.1)直接下載用戶程

8、序,數(shù)秒即可完成一片8、具有EEPROM功能9、具有看門(mén)狗功能10、共3個(gè)16位定時(shí)器/計(jì)數(shù)器。即定時(shí)器T0、T1、T211、外部中斷4路,下降沿中斷或低電平觸發(fā)電路,Power Down模式可由外部中斷低電平觸發(fā)中斷方式喚醒12、通用異步串行口(UART),還可用定時(shí)器軟件實(shí)現(xiàn)多個(gè)UART13、工作溫度范圍:-40+85(工業(yè)級(jí))/075(商業(yè)級(jí))14、PDIP封裝3.2.3 STC89C52RC引腳功能說(shuō)明VCC(40引腳):電源電壓VSS(20引腳):接地 RST(9引腳):復(fù)位輸入。當(dāng)輸入連續(xù)兩個(gè)機(jī)器周期以上高電平時(shí)為有效,用來(lái)完成單片機(jī)單片機(jī)的復(fù)位初始化操作??撮T(mén)狗計(jì)時(shí)完成后,RST

9、引腳輸出96個(gè)晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無(wú)效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。ALE/(30引腳):地址鎖存控制信號(hào)(ALE)是訪問(wèn)外部程序存儲(chǔ)器時(shí),鎖存低8位地址的輸出脈沖。在Flash編程時(shí),此引腳()也用作編程輸入脈沖。(29引腳):外部程序存儲(chǔ)器選通信號(hào)()是外部程序存儲(chǔ)器選通信號(hào)。當(dāng)AT89C51RC從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),在每個(gè)機(jī)器周期被激活兩次,而訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),將不被激活。/VPP(31引腳):訪問(wèn)外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H到FFFFH的外部程序存儲(chǔ)器讀取指令,必須接GND。注意加密方式

10、1時(shí),將內(nèi)部鎖定位RESET。為了執(zhí)行內(nèi)部程序指令,應(yīng)該接VCC。在Flash編程期間,也接收12伏VPP電壓。XTAL1(19引腳):振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。XTAL2(18引腳):振蕩器反相放大器的輸入端。 圖3.2 STC89C52RS3.2.4 LED簡(jiǎn)介L(zhǎng)ED數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽(yáng)兩類(lèi),了解LED的這些特性,對(duì)編程是很重要的,因?yàn)椴煌?lèi)型的數(shù)碼管,除了它們的硬件電路有差異外,編程方法也是不同的。圖2.7(a)是共陰和共陽(yáng)極數(shù)碼管的內(nèi)部電路圖,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。將多只LED的陰極連在一起即為共陰式,而將多只LED的

11、陽(yáng)極連在一起即為共陽(yáng)式。以共陰式為例,如把陰極接地,在相應(yīng)段的陽(yáng)極接上正電源,該段即會(huì)發(fā)光。當(dāng)然,LED的電流通常較小,一般均需在回路中接上限流電阻。假如我們將b和c段接上正電源,其它端接地或懸空,那么b和c段發(fā)光,此時(shí),數(shù)碼管顯示將顯示數(shù)字“1”。而將a、b、d、e和g段都接上正電源,其它引腳懸空,此時(shí)數(shù)碼管將顯示“2”。其它數(shù)字的顯示原理與此類(lèi)同。LED的7段數(shù)碼管利用單只LED組合排列成“8”字型的數(shù)碼管,分別引出它們的電極,點(diǎn)亮相應(yīng)的點(diǎn)劃來(lái)顯示出0-9的數(shù)字。在這次的設(shè)計(jì)中采用的均是共陰極的LED顯示,當(dāng)I/O口輸出為高電平的時(shí)候,對(duì)應(yīng)段就被點(diǎn)亮。LED數(shù)碼管的結(jié)構(gòu)圖如圖2.4(b)所

12、示。 (a) (b) 圖3.3 LED分類(lèi)結(jié)構(gòu)圖和結(jié)構(gòu)圖這次設(shè)計(jì)的顯示部分采用AT89C51單片機(jī)動(dòng)態(tài)掃描完成,在多數(shù)的應(yīng)用場(chǎng)合中,我們并不希望使用多I/O端口的單片機(jī),原則上是使用盡量少引腳的器件。在沒(méi)有富余端口的情況下,應(yīng)通過(guò)優(yōu)化設(shè)計(jì)程序和擴(kuò)展電路達(dá)到預(yù)期的目的。動(dòng)態(tài)掃描的頻率有一定的要求,頻率太低,LED將出現(xiàn)閃爍現(xiàn)象。如頻率太高,由于每個(gè)LED點(diǎn)亮的時(shí)間太短,LED的亮度太低,肉眼無(wú)法看清,所以一般均取幾個(gè)ms左右為宜,這就要求在編寫(xiě)程序時(shí),選通某一位LED使其點(diǎn)亮并保持一定的時(shí)間,程序上常采用的是調(diào)用延時(shí)子程序。3.3 Keil調(diào)試啟動(dòng)Keil軟件,選擇“Project”菜單下的“N

13、ew Project”命令,輸入項(xiàng)目的文件名,選擇存儲(chǔ)路徑,點(diǎn)擊“保存”按鈕。在“Select Device”窗口中選擇“Atmel”下的“AT89C51” 芯片,單擊“確定”按鈕。展開(kāi)“Project Workspace”窗口中的“Target 1”, 右擊 “Target 1”,選擇“Options for Target Target 1”,選擇“Target”選項(xiàng)在Keil (MHZ)右邊輸入“12m”。選擇“Debug”選項(xiàng),選擇“Use Keil Monitor-51 Driver”。單擊“Settings”按鈕,串口選擇“COM1”,波特率選擇“38400”,單擊“OK”按鈕。右擊

14、“Source Group 1”,選擇“Add files to Group Source Group 1,在文件類(lèi)型中選擇“Asm Source file”,找到將要編譯的程序,單擊 “ADD”按鈕,然后再單擊“CLOSE”按鈕。單擊“Rebuild all target files”,在“Build”窗口中觀察編譯結(jié)果,根據(jù)提示修改程序,直到?jīng)]有錯(cuò)誤出現(xiàn)。4、系統(tǒng)實(shí)物圖 圖4.1 系統(tǒng)實(shí)物圖5、課程設(shè)計(jì)體會(huì)這次電子技術(shù)課程設(shè)計(jì),我很用心的去完成,當(dāng)總原理圖繪好的那一刻,心里有說(shuō)不出的滿足感。從這次課程設(shè)計(jì)中,我真正學(xué)到了很多有用的知識(shí)。拿到課題后,我首先將單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)中

15、有關(guān)本次設(shè)計(jì)的內(nèi)容復(fù)習(xí)了一遍,比如七段譯碼顯示器、計(jì)數(shù)器、振蕩器等等。然后根據(jù)設(shè)計(jì)要求,我去圖書(shū)館查閱了相關(guān)的資料,對(duì)整體框架做了一個(gè)初步的了解。做完準(zhǔn)備工作后就正式開(kāi)始設(shè)計(jì)與繪圖。先要將沒(méi)每一功能模塊設(shè)計(jì)出來(lái),再整體排版、連接。這次設(shè)計(jì)讓我熟練掌握了課本上的一些理論知識(shí),在這次課程設(shè)計(jì)中,反復(fù)查找資料,發(fā)現(xiàn)電路中的錯(cuò)誤和改善電路中的錯(cuò)誤,讓我將課本上的理論知識(shí)重新過(guò)了一遍?;剡^(guò)頭來(lái)一想,其實(shí)設(shè)計(jì)這些電路也并不是很困難,而且還十分有意思,特別是用protues將電路圖模擬成功后很有成就感。課程設(shè)計(jì)是一個(gè)學(xué)習(xí)新知識(shí)、鞏固加深所學(xué)課本理論知識(shí)的過(guò)程,它培養(yǎng)了我們綜合運(yùn)用知識(shí)的能力,獨(dú)立思考和解決問(wèn)

16、題的能力。它不僅加深了我對(duì)單片機(jī)課程的理解,還讓我感受到了設(shè)計(jì)電路的樂(lè)趣。在這次設(shè)計(jì)中,我一點(diǎn)也不怕麻煩,反復(fù)設(shè)計(jì)、繪圖與修改,就是希望能把這次課程設(shè)計(jì)做好。因此對(duì)我來(lái)說(shuō),這次課程設(shè)計(jì)是非常有意義的。參考文獻(xiàn)1楊文龍.單片機(jī)原理及應(yīng)用M.西安:西安電子科技大學(xué)出版社,19932胡漢才.單片機(jī)原理及系統(tǒng)設(shè)計(jì)M.北京:清華大學(xué)出版社,20033楊忠煌,黃博俊,李文昌.單芯片8051實(shí)務(wù)與應(yīng)用M.北京:中國(guó)水利水電出版社,20014王守中,51單片機(jī)開(kāi)發(fā)入門(mén)與典型實(shí)例M.人民郵電出版社5徐愛(ài)鈞,單片機(jī)原理與應(yīng)用:基于Proteus虛擬仿真技術(shù)M.北京:機(jī)械工業(yè)出版社,2010.76周潤(rùn)景,基于PRO

17、TEUS的電路及單片機(jī)設(shè)計(jì)與仿真(第二版)M.北京:北京航空航天大學(xué)出版社,2009.127 肖洪兵. 跟我學(xué)用單片機(jī)M. 北京:北京航空航天大學(xué)出版社,2002.8 8 何立民. 單片機(jī)高級(jí)教程M第1版北京:北京航空航天大學(xué)出版社,2001 9 趙曉安. MCS-51單片機(jī)原理及應(yīng)用M. 天津:天津大學(xué)出版社,2001.3 10 李廣第單片機(jī)基礎(chǔ)第1版M北京:北京航空航天大學(xué)出版社,1999 11 孫涵芳. MCS-51/96系列單片機(jī)原理及應(yīng)用(修訂版)M.北京航空航天大學(xué)出版社,1994 12 李朝青. 單片機(jī)原理及接口技術(shù)(第3版)M. 北京航空航天大學(xué)出版社,200513 夏繼強(qiáng).

18、單片機(jī)實(shí)驗(yàn)與實(shí)踐教程M. 北京:北京航空航天大學(xué)出版社,2001 14陳小虎.電工實(shí)習(xí)(I)M.北京:中國(guó)電力出版社,199615焦輜厚.電子工藝實(shí)習(xí)教程M.哈爾濱:哈爾濱工業(yè)大學(xué)出版社,199316宋春榮.通用集成電路速查手冊(cè)M.山東科學(xué)技術(shù)出版社,199517高吉祥.電子技術(shù)基礎(chǔ)實(shí)驗(yàn)與課程設(shè)計(jì)M.電子工業(yè)出版社,2002附錄A 硬件原理圖PROTEUS仿真運(yùn)行結(jié)果附錄B 軟件設(shè)計(jì)流程圖附錄C#include #include #define uchar unsigned char#define uint unsigned int sbit dis_bit1=P27;/定義數(shù)碼管控制口sbi

19、t dis_bit2=P26;/定義數(shù)碼管控制口sbit dis_bit3=P24;/定義數(shù)碼管控制口sbit dis_bit4=P23;/定義數(shù)碼管控制口sbit dis_bit5=P21;/定義數(shù)碼管控制口sbit dis_bit6=P20;/定義數(shù)碼管控制口sbit led1_bit=P22;/定時(shí)LED的控制口sbit led2_bit=P25;/定時(shí)LED的控制口sbit s1_bit=P10; /定義S1控制口sbit s2_bit=P11; /定義S2控制口sbit s3_bit=P12; /定義S3控制口sbit speak=P37; /定義蜂鳴器控制口#define smg_

20、data P0/定義數(shù)碼管數(shù)據(jù)口 void delay_50us(uint t);/延時(shí)50*T微妙函數(shù)的聲明void display1(uchar dis_data);/數(shù)碼管1顯示子程序void display2(uchar dis_data);/數(shù)碼管2顯示子程序void display3(uchar dis_data);/數(shù)碼管3顯示子程序void display4(uchar dis_data);/數(shù)碼管4顯示子程序void display5(uchar dis_data);/數(shù)碼管5顯示子程序void display6(uchar dis_data);/數(shù)碼管6顯示子程序void

21、init_t0();/定時(shí)器0初始化函數(shù)void dis_led();/LED處理函數(shù)void judge_s1();/S1按鍵處理函數(shù)void judge_s2();/S2按鍵處理函數(shù)void judge_s3();/S3按鍵處理函數(shù)void dis(uchar s6,uchar s5,uchar s4,uchar s3,uchar s2,uchar s1);/顯示子程序void dis_san(uchar s6,uchar s5,uchar s4,uchar s3,uchar s2,uchar s1,uchar san);/閃爍顯示子程序void judge_dis();/顯示處理函數(shù)vo

22、id judge_clock();/顯示處理函數(shù)/共陽(yáng)數(shù)碼管斷碼表const unsigned char tabl117=0xc0,0xf9,0xa4,0xb0,0x99,0x92, / 0 1 2 3 4 5 0x82,0xf8,0x80,0x90,0x86,0x87,0xFF, /6 7 8 9 E T B 0xc6,0xa1,0x8e,0xb6; / C D F 三 uchar t0_crycle;uchar hour_count,minute_count,second_count,msecond_count;uchar clock_hour,clock_minute;uchar clo

23、ck_en;/鬧鐘關(guān)閉和開(kāi)啟的標(biāo)志,1開(kāi)啟,0關(guān)閉uchar flag1,zancun1,zancun2,zancun3;/,flag2;uchar clock_flag;uint speak_count;/主程序void main() P3=0x00; flag1=0; zancun3=0; speak=1;/關(guān)閉蜂鳴器 speak_count=0; clock_hour=0; clock_minute=0; clock_flag=0; clock_en=0;/開(kāi)機(jī)時(shí)默認(rèn)關(guān)閉鬧鐘 init_t0(); TR0=1;/ /接下來(lái)開(kāi)始編寫(xiě)讓數(shù)碼管顯示的程序 while(1) judge_dis(

24、);/顯示處理 judge_s1(); judge_s2(); judge_s3(); judge_clock();/鬧鐘處理程序 void timer0() interrupt 1 TH0=(65536-50000)/256; TL0=(65536-50000)/256; t0_crycle+; if(t0_crycle=2)/ 0.1秒 t0_crycle=0; msecond_count+; if(msecond_count=10)/1秒 msecond_count=0; second_count+; if(second_count=60) second_count=0; minute_

25、count+; if(minute_count=60) minute_count=0; hour_count+; if(hour_count=24) hour_count=0; /顯示處理函數(shù)void judge_dis() if(flag1=0) dis(hour_count/10,hour_count%10,minute_count/10,minute_count%10,second_count/10,second_count%10); dis_led(); if(flag1!=0) switch(flag1) case 1: dis(5,10,11,1,12,12);/顯示SET1 le

26、d1_bit=1; led2_bit=1; break; case 2: dis(5,10,11,2,12,12);/顯示SET2 break; case 3: dis(5,10,11,3,12,12);/顯示SET3 break; case 4: dis(5,10,11,4,12,12);/顯示SET4 break; case 5: dis(5,10,11,5,12,12);/顯示SET5 break; case 6: dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,12,1); break; case 7: dis_san(za

27、ncun1/10,zancun1%10,zancun2/10,zancun2%10,12,12,2); break; case 8: dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,12,3); break; case 9:/進(jìn)入修改時(shí)間,時(shí)間分位個(gè)位閃爍 dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,12,4); break; case 10:/進(jìn)入修改鬧鐘,鬧鐘小時(shí)十位閃爍 dis_san(zancun1/10,zancun1%10,zancun2/10,zancu

28、n2%10,12,zancun3,1); break; case 11:/進(jìn)入修改鬧鐘,鬧鐘小時(shí)個(gè)位閃爍 dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,zancun3,2); break; case 12:/進(jìn)入修改鬧鐘,鬧鐘小時(shí)十位閃爍 dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,zancun3,3); break; case 13:/進(jìn)入修改鬧鐘,鬧鐘小時(shí)個(gè)位閃爍 dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%

29、10,12,zancun3,4); break; case 14:/進(jìn)入修改鬧鐘的開(kāi)關(guān) dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,zancun3,6); break; default: break; /S1按鍵處理函數(shù)void judge_s1() s1_bit=1;/置IO為1,準(zhǔn)備讀入收據(jù) if(s1_bit=0)/判斷是否有按鍵按下 delay_50us(1);/ 延時(shí),去除機(jī)械抖動(dòng) if(s1_bit=0) switch(flag1) case 0: flag1=1; break; case 1: flag1=2; b

30、reak; case 2: flag1=3; break; case 3: flag1=4; break; case 4: flag1=5; break; case 5: flag1=0; break; case 6:/在修改時(shí)間小時(shí)十位下按S1鍵 flag1=7; break; case 7: flag1=8; break; case 8: flag1=9; break; case 9: flag1=6; break; case 10: flag1=11; break; case 11: flag1=12; break; case 12: flag1=13; break; case 13:

31、flag1=14; break; case 14: flag1=10; break; default: break; while(s1_bit=0) judge_dis(); /等待按鍵釋放 /S2按鍵處理函數(shù)void judge_s2() s2_bit=1;/置IO為1,準(zhǔn)備讀入收據(jù) if(s2_bit=0)/判斷是否有按鍵按下 delay_50us(1);/ 延時(shí),去除機(jī)械抖動(dòng) if(s2_bit=0) switch (flag1) case 1: /在顯示SET1狀態(tài)下按S2件,進(jìn)入修改時(shí)間 flag1=6; zancun1=hour_count; zancun2=minute_coun

32、t; break; case 2:/在顯示SET2狀態(tài)下按S2,進(jìn)入設(shè)置鬧鐘 zancun1=clock_hour; zancun2=clock_minute; flag1=10; break; case 6:/修改時(shí)鐘小時(shí)十位狀態(tài)下按S2件 hour_count=zancun1; minute_count=zancun2; second_count=0; flag1=0; break; case 7:/修改時(shí)鐘小時(shí)個(gè)位狀態(tài)下按S2件 hour_count=zancun1; minute_count=zancun2; second_count=0; flag1=0; break; case 8

33、:/修改時(shí)鐘分鐘十位狀態(tài)下按S2件 hour_count=zancun1; minute_count=zancun2; second_count=0; flag1=0; break; case 9:/修改時(shí)鐘分鐘個(gè)位狀態(tài)下按S2件 hour_count=zancun1; minute_count=zancun2; second_count=0; flag1=0; break; case 10: clock_hour=zancun1; clock_minute=zancun2; clock_en=zancun3; flag1=0; break; case 11: clock_hour=zancu

34、n1; clock_minute=zancun2; clock_en=zancun3; flag1=0; break; case 12: clock_hour=zancun1; clock_minute=zancun2; clock_en=zancun3; flag1=0; break; case 13: clock_hour=zancun1; clock_minute=zancun2; clock_en=zancun3; flag1=0; break; case 14: clock_hour=zancun1; clock_minute=zancun2; clock_en=zancun3; flag1=0; break; default: break; while(s2_bit=0) judge_dis(); /等待按鍵釋放 /S3按鍵處理函數(shù) void judge_s3() s3_bit=1;/置IO為1,準(zhǔn)備讀入收據(jù) if(s3_bit=0)/判斷是否有按鍵按下 delay_50us(1);/ 延時(shí),去除機(jī)械抖動(dòng) if(s3_bit=0) switch (flag1) case 6:/修改時(shí)間小時(shí)的十位數(shù) zancun1+=10; if(zancun1=24)zancun1=zancun1%10; break; case 7:/修改時(shí)間小時(shí)的個(gè)位數(shù) zancun

溫馨提示

  • 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)論