版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 任務(wù)書</b></p><p> 一、設(shè)計(jì)目的 </p><p> 本設(shè)計(jì)主要是對(duì)51單片機(jī)的一個(gè)方面的擴(kuò)展,是能實(shí)現(xiàn)一般定時(shí)鬧鐘功能的設(shè)計(jì)。需要實(shí)現(xiàn)某一功能時(shí),按對(duì)應(yīng)的按鍵即可,經(jīng)過(guò)多次驗(yàn)證,此設(shè)計(jì)靈活簡(jiǎn)便,可以實(shí)現(xiàn)顯示、定時(shí)、修改定時(shí)、定時(shí)時(shí)間到能發(fā)出報(bào)警聲的功能。</p><p><b>
2、 二、設(shè)計(jì)要求</b></p><p> 1、能顯示時(shí)時(shí)—分分—秒秒。</p><p> 2、能夠設(shè)定定時(shí)時(shí)間,并修改定時(shí)時(shí)間。</p><p> 3、定時(shí)時(shí)間到能發(fā)出警報(bào)聲。</p><p><b> 目 錄</b></p><p><b> 1.緒論1<
3、;/b></p><p><b> 2.方案論證1</b></p><p><b> 3.方案說(shuō)明2</b></p><p> 4.硬件方案設(shè)計(jì)2</p><p> 4.1單片機(jī)STC89C522</p><p> 4.2 時(shí)鐘電路4</p&g
4、t;<p> 4.3數(shù)碼管顯示電路4</p><p><b> 4.4鍵盤電路6</b></p><p><b> 4.5報(bào)警電路7</b></p><p> 5.軟件方案設(shè)計(jì)7</p><p> 5.1系統(tǒng)軟件設(shè)計(jì)7</p><p><
5、;b> 5.2鍵盤程序7</b></p><p><b> 5.3 LED8</b></p><p> 5.4音響報(bào)警電路8</p><p> 5.5 程序流程圖8</p><p><b> 6.調(diào)試9</b></p><p><b
6、> 7.小結(jié)10</b></p><p><b> 8.參考文獻(xiàn)11</b></p><p> 9.附錄:定時(shí)鬧鐘源程序12</p><p><b> 1.緒論</b></p><p> 系統(tǒng)采用單片機(jī)STC89C52作為本設(shè)計(jì)的核心元件,在其基礎(chǔ)上外圍擴(kuò)展芯片和外
7、圍電路,附加時(shí)鐘電路,復(fù)位電路,鍵盤接口及LED顯示器。鍵盤采用獨(dú)立連接式。還有定時(shí)報(bào)警系統(tǒng),即定時(shí)時(shí)間到,通過(guò)揚(yáng)聲器發(fā)出報(bào)警聲,提示預(yù)先設(shè)定時(shí)間時(shí)間到,從而起到定時(shí)作用。</p><p> 外圍器件有LED顯示驅(qū)動(dòng)器及相應(yīng)的顯示數(shù)字電子鐘設(shè)計(jì)與制作可采用單片機(jī)來(lái)完成。由于其功能的實(shí)現(xiàn)主要通過(guò)軟件編程來(lái)完成,那么就降低了硬件電路的復(fù)雜性,而且其成本也有所降低,所以在該設(shè)計(jì)與制作中采用單片機(jī)STC89C52,它是
8、低功耗、高性能的CMOS型8位單片機(jī)。片內(nèi)帶有8KB的Flash存儲(chǔ)器,且允許在系統(tǒng)內(nèi)改寫或用編程器編程。另外, STC89C52的指令系統(tǒng)和引腳與8051完全兼容,片內(nèi)有512B的RAM、32條I/O口線、3個(gè)16位定時(shí)計(jì)數(shù)器、4個(gè)外部中斷、一個(gè)7向量4級(jí)中斷結(jié)構(gòu)(兼容傳統(tǒng)51的5向量2級(jí)中斷結(jié)構(gòu))等。</p><p> 在LED顯示器中,分成靜態(tài)顯示和動(dòng)態(tài)顯示兩類,在這個(gè)設(shè)計(jì)的最小系統(tǒng)中主要用了它的動(dòng)態(tài)顯示
9、功能,動(dòng)態(tài)顯示器利用了人視覺(jué)的短暫停留,在數(shù)據(jù)的傳輸中是一個(gè)一個(gè)傳輸?shù)?,且先傳輸?shù)臀弧?lt;/p><p><b> 2.方案論證</b></p><p> 單片機(jī)作為核心的控制元件,使得電路的可靠性比較高,功能也比較強(qiáng)大, 而且可以隨時(shí)的更新系統(tǒng),進(jìn)行不同狀態(tài)的組合。</p><p> 本系統(tǒng)采用單片機(jī)STC89C52作為本設(shè)計(jì)的核心元件,
10、利用兩個(gè)4位7段共陰LED作為顯示器件。接入共陰LED顯示器,可顯示時(shí),分鐘,秒,單片機(jī)外圍接有定時(shí)報(bào)警系統(tǒng),定時(shí)時(shí)間到,蜂鳴器發(fā)出報(bào)警聲,提示預(yù)先設(shè)定時(shí)間到。</p><p> 電路由下列部分組成:時(shí)鐘電路、復(fù)位電路、控制電路、LED顯示、報(bào)警電路,芯片選用STC89C52單片機(jī)。 </p><p> 系統(tǒng)基本框圖如圖2.1所示:</p><p> 圖2.1
11、 系統(tǒng)基本框圖</p><p><b> 3.方案說(shuō)明</b></p><p> 此設(shè)計(jì)主要是通過(guò)單片機(jī)系統(tǒng),綜合運(yùn)用定時(shí)器、中斷、數(shù)碼顯示等知識(shí)設(shè)計(jì)一個(gè)可定時(shí)的電子鐘。它包括系統(tǒng)總體方案及硬件設(shè)計(jì),軟件設(shè)計(jì),Proteus軟件仿真等部分。</p><p> 系統(tǒng)總體方案及硬件設(shè)計(jì)是本設(shè)計(jì)的重要組成部分,在這部分詳細(xì)介紹了時(shí)鐘原理,硬件
12、設(shè)計(jì),數(shù)碼管LED,以及在設(shè)計(jì)過(guò)程中考慮到技術(shù)指標(biāo),機(jī)型的選擇,器件的選擇等一系列問(wèn)題。</p><p> 硬件設(shè)計(jì)的主要任務(wù)是根據(jù)總體設(shè)計(jì)要求,以及在所選機(jī)型的基礎(chǔ)上,確定系統(tǒng)擴(kuò)展所要用的存儲(chǔ)器,I/O電路及有關(guān)外圍電路等然后設(shè)計(jì)出系統(tǒng)的電路原理圖。</p><p> 合理的軟件結(jié)構(gòu)是設(shè)計(jì)出一個(gè)性能優(yōu)良的單片機(jī)應(yīng)用性系統(tǒng)軟件的基礎(chǔ),因此必須充分重視。在本設(shè)計(jì)中采用應(yīng)用廣泛的C語(yǔ)言。用
13、Proteus軟件仿真檢查設(shè)計(jì)是否合理。</p><p><b> 4.硬件方案設(shè)計(jì)</b></p><p> 4.1單片機(jī)STC89C52</p><p> STC89C52是一個(gè)低電壓,高性能CMOS型8位單片機(jī),片內(nèi)含8KB的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器(ROM)和512B的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用STC公司的
14、高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元,內(nèi)置功能強(qiáng)大的微型計(jì)算機(jī)的STC89C52提供了高性價(jià)比的解決方案。其引腳圖如下圖4.1所示:</p><p> 圖4.1 STS89C52</p><p> STC89C52具體介紹如下:</p><p> 1)主電源引腳(2根)</p>
15、<p> VCC(40):電源輸入,接+5V電源</p><p> GND(20):接地線</p><p> 2)外接晶振引腳(2根)</p><p> XTAL1(19):片內(nèi)振蕩電路的輸入端</p><p> XTAL2(18):片內(nèi)振蕩電路的輸出端</p><p> 3)控制引腳(4根)&
16、lt;/p><p> RST/VPP(9):復(fù)位引腳,引腳上出現(xiàn)2個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。</p><p> ALE/PROG(30):地址鎖存允許信號(hào)</p><p> PSEN(29):外部存儲(chǔ)器讀選通信號(hào)</p><p> EA/VPP(31):程序存儲(chǔ)器的內(nèi)外部選通,接低電平從外部程序存儲(chǔ)器讀指令,如果接高電平則從內(nèi)部程
17、序存儲(chǔ)器讀指令。</p><p> 4)可編程輸入/輸出引腳(32根)</p><p> STC89C52單片機(jī)有4組8位的可編程I/O口,分別為P0、P1、P2、P3口,每個(gè)口有8位(8根引腳),共32根。</p><p> PO口(39~32):8位雙向I/O口線,名稱為P0.0~P0.7</p><p> P1口(1~8):8位
18、準(zhǔn)雙向I/O口線,名稱為P1.0~P1.7 </p><p> P2口(21~28):8位準(zhǔn)雙向I/O口線,名稱為P2.0~P2.7 </p><p> P3口(10~17):8位準(zhǔn)雙向I/O口線,名稱為P3.0~P3.7</p><p><b> 4.2 時(shí)鐘電路</b></p><p> 單片機(jī)的時(shí)鐘產(chǎn)生方法
19、有兩種:內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。</p><p> 本系統(tǒng)中STC89C52單片機(jī)采用內(nèi)部時(shí)鐘方式。最常用的內(nèi)部時(shí)鐘方式是采用外接晶體和電容組成的并聯(lián)諧振回路。振蕩晶體可在1.2MHz~12MHz之間。電容值無(wú)嚴(yán)格要求,但電容取值對(duì)振蕩頻率輸出的穩(wěn)定性、大小和振蕩電路起振速度有少許影響,一般可在20pF~100pF之間取值。STC89C52單片機(jī)的時(shí)鐘電路如圖4.2所示。</p><p&
20、gt; 圖4.2 時(shí)鐘電路</p><p> 4.3數(shù)碼管顯示電路</p><p> 單片機(jī)中通常使用7段LED,LED是發(fā)光二極管顯示器的縮寫。LED顯示器由于結(jié)構(gòu)簡(jiǎn)單,價(jià)格便宜,體積小,亮度高,電壓低,可靠性高,壽命長(zhǎng),響應(yīng)速度快,顏色鮮艷,配置靈活,與單片機(jī)接口方便而得到廣泛應(yīng)用。LED顯示器是由若干個(gè)發(fā)光二極管組成顯示字段的顯示部件,當(dāng)發(fā)光二極管導(dǎo)通時(shí),相應(yīng)的一個(gè)點(diǎn)或一個(gè)筆
21、劃發(fā)光,控制不同組合的二極管導(dǎo)通,就能顯示出各種字符。LED顯示器有多種形式,如:“米”字型顯示器,點(diǎn)陣顯示器和七段數(shù)碼顯示器等,在單片機(jī)系統(tǒng)中使用最多的是七段數(shù)碼顯示器。</p><p> LED七段數(shù)碼顯示器由8個(gè)發(fā)光二極管組成顯示字符,根據(jù)內(nèi)部發(fā)光二極管</p><p> 的連接形式不同,LED有共陰極和共陽(yáng)極兩種,如圖4.3.1所示為4為7段共陰數(shù)碼管的引腳圖。</p&g
22、t;<p> 圖4.3.1 4段共陰數(shù)碼管引腳圖</p><p> 采用高亮共陰型s位數(shù)碼管,為示區(qū)別,顯示秒的兩個(gè)數(shù)碼管個(gè)頭較小,另外4個(gè)較大。共陰數(shù)碼管連接線路如下:一般用7個(gè)發(fā)光二極管構(gòu)成顯示數(shù)字和符號(hào),另外還用一段發(fā)光二極管顯示小數(shù)點(diǎn)。這種顯示器一般分為兩種,共陽(yáng)極顯示器和共陰極顯示器,共陽(yáng)極顯示器是把每個(gè)二極管的正端連在一起,共陰極顯示器是把每個(gè)二極管的陰極連在一起。一只顯示器是有8
23、個(gè)發(fā)光二極管構(gòu)成,當(dāng)把某段加正向電壓時(shí),則該段所對(duì)應(yīng)的筆劃亮,不加正向電壓則暗,為了保護(hù)各段不受損壞需要加限流電阻,無(wú)論是共陽(yáng)極顯示器還是共陰極顯示器,它的8段排列順序都是一樣的:A段、B段、C段、D段、E段、F段、G段和DP段。在單片機(jī)中通常使用7段LED。數(shù)碼管的顯示電路如下圖4.3.2所示:</p><p> 圖4.3.2 數(shù)碼管的顯示電路</p><p> 數(shù)碼管中二極管電流
24、的計(jì)算</p><p> 二極管本身有2V的電壓降,一般二極管電流取10mA,則需添加的電阻為</p><p> R=(U-ULed)/ILed,</p><p> 代入相關(guān)數(shù)值,即為300Ω。</p><p> 本設(shè)計(jì)中,選用的電阻為470Ω,則電流為</p><p> I=(U-ULed)/R´
25、,</p><p> 代入實(shí)際數(shù)值,即為6.4mA,能夠滿足顯示效果。</p><p><b> 4.4鍵盤電路</b></p><p> 設(shè)計(jì)方案中使用的是3個(gè)開關(guān)鍵組成的鍵盤電路,如下圖4.4所示:</p><p> 圖4.4 鍵盤電路圖</p><p><b> 4.5
26、報(bào)警電路</b></p><p> 設(shè)計(jì)方案中,采用的是蜂鳴器和PNP型三極管組成的報(bào)警電路。如下圖4.5所示:</p><p> 圖4.5 報(bào)警電路</p><p><b> 5.軟件方案設(shè)計(jì)</b></p><p><b> 5.1系統(tǒng)軟件設(shè)計(jì)</b></p>
27、<p> 該系統(tǒng)軟件主要有主程序模塊,定時(shí)中斷服務(wù)程序,中斷等待服務(wù)程序,鍵盤程序,顯示子程序服務(wù)程序等六大模塊組成,因?yàn)镃語(yǔ)言容易理解和記憶,所以我們用C語(yǔ)言來(lái)寫此程序。</p><p><b> 5.2鍵盤程序</b></p><p> 鍵盤采用查詢的方式,放在主程序中,當(dāng)沒(méi)有按鍵按下的時(shí)候,單片機(jī)循環(huán)主程序,一旦有鍵按下,便轉(zhuǎn)向相應(yīng)的子程序處理
28、,處理結(jié)束后再返回。</p><p><b> 5.3 LED</b></p><p> 七段LED由七個(gè)發(fā)光二極管按日字排開,所有發(fā)光二極管的陽(yáng)極連在一起成共陽(yáng)極,陰極連在一塊稱共陰極接法。當(dāng)采用芯片驅(qū)動(dòng)時(shí)不需要加限流電阻,其他情況下一般應(yīng)外接限流電阻。動(dòng)態(tài)顯示電路有顯示塊,字形碼封鎖驅(qū)動(dòng)器,字位鎖存驅(qū)動(dòng)器三部分組成。</p><p>&
29、lt;b> 5.4音響報(bào)警電路</b></p><p> 在STC89C52外圍的一個(gè)管口上加蜂鳴器,通過(guò)軟件與硬件的結(jié)合可實(shí)現(xiàn)定時(shí)鬧鐘功能。</p><p><b> 5.5 程序流程圖</b></p><p> 圖5.5 程序流程圖</p><p><b> 6.調(diào)試</b
30、></p><p> 設(shè)幾個(gè)按鍵從左往右為K1,K2,K3。K1與P1.0相連,K2與P1.1相連,K3與P1.2相連。</p><p> 按一下啟動(dòng)開關(guān),顯示為時(shí)間顯示。按一下K1,進(jìn)入時(shí)間顯示的小時(shí)設(shè)定狀態(tài);按兩下K1,進(jìn)入時(shí)間顯示的分鐘設(shè)定狀態(tài);按三下K1,進(jìn)入定時(shí)的小時(shí)設(shè)定狀態(tài);按四下K1,進(jìn)入定時(shí)的分鐘設(shè)定狀態(tài);按五下K1,退出設(shè)定,進(jìn)入當(dāng)前時(shí)間顯示狀態(tài);K2和K3分別
31、是對(duì)當(dāng)前設(shè)定值的加和減。如下圖6.1和6.2所示。</p><p> 圖6.1 調(diào)時(shí)仿真效果圖</p><p> 圖6.2 定時(shí)仿真效果圖</p><p><b> 7.小結(jié)</b></p><p> 在做課程設(shè)計(jì)的過(guò)程中,我進(jìn)一步認(rèn)識(shí)到全面專業(yè)知識(shí)以及邏輯思考方式對(duì)研究問(wèn)題的重要性,同時(shí)我也更加具體的掌握了課程
32、設(shè)計(jì)的基本方法。</p><p> 經(jīng)過(guò)不斷的努力,我終于完成了這次課程設(shè)計(jì),總的來(lái)說(shuō),我學(xué)到了不少的東西,知道了理論聯(lián)系實(shí)際的重要性。在設(shè)計(jì)過(guò)程中我遇到了很多的困難,但沒(méi)放棄,查閱了許多相關(guān)的書籍,自己獨(dú)立思考和借鑒了前人的許多優(yōu)秀成果,并與所學(xué)的知識(shí)緊密的結(jié)合了起來(lái)。我相信這過(guò)程對(duì)我今后的學(xué)習(xí)和工作有著積極的影響,并搭好了平臺(tái)。</p><p> 通過(guò)這次設(shè)計(jì),我對(duì)這門課有了更好的
33、理解,尤其結(jié)合了這幾年學(xué)的相關(guān)的專業(yè)知識(shí),對(duì)各門課都有了一個(gè)較全面的理解。這必將對(duì)我以后的學(xué)習(xí)和工作有很大的幫助。本次課程設(shè)計(jì)的定時(shí)鬧鐘電路,可以滿足人們的基本要求,但因?yàn)橹R(shí)水平有限,此電路中存在一定的問(wèn)題,雖可以通過(guò)增加電路解決,但過(guò)于復(fù)雜和現(xiàn)有水平有限,本次設(shè)計(jì)就未深入涉及,想要更好的改進(jìn)電路,需要進(jìn)一步的努力,如果有好的意見(jiàn),希望老師給予支持指導(dǎo)。</p><p><b> 8.參考文獻(xiàn)<
34、;/b></p><p> [1] 何立民.單片機(jī)應(yīng)用技術(shù)選編10.北京:北京航空航天大學(xué)出版社</p><p> [2] 林立.單片機(jī)原理及應(yīng)用.北京:電子工業(yè)出版社</p><p> [3] 沙占友等.單片機(jī)外圍電路設(shè)計(jì).西安:電子工業(yè)出版社</p><p> [4] 江力.蔡駿.王艷春.董澤芳.單片機(jī)原理與應(yīng)用技術(shù).北京,
35、清華大學(xué)出版社</p><p> [5] 潘永紅.柳殊.單片機(jī)原理與應(yīng)用.西安,西安電子科技大學(xué)出版社 </p><p> 9.附錄:定時(shí)鬧鐘源程序</p><p> #include <reg52.h></p><p> unsigned char led[12]={0x3f,0x06,0x5b,0x4f,0x66,0x
36、6d,0x7d,0x07,0x7f,0x6f,0x40,0x00}; //用一維數(shù)組定義0-9、橫杠、全滅</p><p> unsigned char a[8]; </p><p> unsigned char second=0,minute=0,hour=1;</p><p> unsigned char minute1=0,hour1=0;<
37、;/p><p> unsigned char b[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//掃描</p><p> unsigned char k=0;</p><p> unsigned int temp; // 記錄毫秒為秒的變量</p><p> unsigned char
38、M,S_flag;//M是模式,更新時(shí)間的種模式加上正常模式S_flag閃爍標(biāo)志</p><p> sbit K1=P1^0;</p><p> sbit K2=P1^1;</p><p> sbit K3=P1^2;</p><p> sbit BEEP=P3^3;</p><p> void dela
39、y(unsigned n) //0.2毫秒</p><p><b> {</b></p><p><b> int x,y;</b></p><p> for(x=0;x<n;x++)</p><p> for(y=0;y<24;y++);</p>&l
40、t;p><b> }</b></p><p> void time1() interrupt 3 //定時(shí)器中斷函數(shù)</p><p><b> {</b></p><p> TH1=0xfc; //定時(shí)ms</p><p><b> TL1=0x18;</
41、b></p><p><b> temp++;</b></p><p> if(temp==1000) //配合定時(shí)器定時(shí)s</p><p><b> {</b></p><p><b> temp=0;</b></p><p> s
42、econd++;</p><p><b> }</b></p><p> if(second==59)</p><p><b> {</b></p><p> second=0; </p><p> if(minute<59)</p><
43、p><b> minute++;</b></p><p><b> else</b></p><p><b> {</b></p><p><b> minute=0;</b></p><p><b> hour++;</b
44、></p><p> hour%=24; </p><p><b> }</b></p><p><b> }</b></p><p> if(hour1==hour&&minute1==minute&&second<10) //鬧鐘時(shí)間
45、到</p><p><b> {</b></p><p><b> if(M==0)</b></p><p> BEEP=!BEEP;</p><p><b> } </b></p><p> if(temp%250==0)
46、 //每ms</p><p> S_flag=!S_flag; //閃爍標(biāo)志位取反</p><p> if(k==8) k=0;</p><p> P0=a[k];</p><p> P2=b[k++]; </p><p> delay(1); </p><p
47、> P2=0xff;</p><p><b> } </b></p><p> void display()</p><p><b> {</b></p><p><b> switch(M)</b></p><p><
48、b> {</b></p><p><b> case 0:</b></p><p><b> {</b></p><p> a[0]=led[hour/10];</p><p> a[1]=led[hour%10];</p><p> a[2]=
49、led[10];</p><p> a[3]=led[minute/10];</p><p> a[4]=led[minute%10];</p><p> a[5]=led[10];</p><p> a[6]=led[second/10];</p><p> a[7]=led[second%10];<
50、/p><p><b> }break;</b></p><p><b> case 1:</b></p><p><b> {</b></p><p> if(S_flag==1)</p><p><b> {</b><
51、/p><p> a[0]=led[hour/10];</p><p> a[1]=led[hour%10];</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p>
52、<p> a[0]=led[11];</p><p> a[1]=led[11];</p><p><b> }</b></p><p> a[2]=led[10];</p><p> a[3]=led[minute/10];</p><p> a[4]=led[minu
53、te%10];</p><p> a[5]=led[10];</p><p> a[6]=led[second/10];</p><p> a[7]=led[second%10];</p><p><b> }break;</b></p><p><b> case 2:<
54、;/b></p><p><b> {</b></p><p> a[0]=led[hour/10];</p><p> a[1]=led[hour%10];</p><p> a[2]=led[10];</p><p> if(S_flag==1)</p><
55、p><b> {</b></p><p> a[3]=led[minute/10];</p><p> a[4]=led[minute%10];</p><p><b> }</b></p><p><b> else</b></p><p&
56、gt;<b> {</b></p><p> a[3]=led[11];</p><p> a[4]=led[11];</p><p><b> }</b></p><p> a[5]=led[10];</p><p> a[6]=led[second/10];&
57、lt;/p><p> a[7]=led[second%10];</p><p><b> }break;</b></p><p><b> case 3:</b></p><p><b> {</b></p><p> if(S_flag==1)&
58、lt;/p><p><b> {</b></p><p> a[0]=led[hour1/10];</p><p> a[1]=led[hour1%10];</p><p><b> }</b></p><p><b> else</b></
59、p><p><b> {</b></p><p> a[0]=led[11];</p><p> a[1]=led[11];</p><p><b> }</b></p><p> a[2]=led[10];</p><p> a[3]=led
60、[minute1/10];</p><p> a[4]=led[minute1%10];</p><p> a[5]=led[11];</p><p> a[6]=led[11];</p><p> a[7]=led[11];</p><p><b> }break;</b></p
61、><p><b> case 4:</b></p><p><b> {</b></p><p> a[0]=led[hour1/10];</p><p> a[1]=led[hour1%10];</p><p> a[2]=led[10];</p>&l
62、t;p> if(S_flag==1)</p><p><b> {</b></p><p> a[3]=led[minute1/10];</p><p> a[4]=led[minute1%10];</p><p><b> }</b></p><p><
63、;b> else</b></p><p><b> {</b></p><p> a[3]=led[11];</p><p> a[4]=led[11];</p><p><b> }</b></p><p> a[5]=led[11];<
64、/p><p> a[6]=led[11];</p><p> a[7]=led[11];</p><p><b> }</b></p><p><b> }</b></p><p><b> } </b></p><p&g
65、t; void key_prc()</p><p><b> {</b></p><p><b> if(K1==0)</b></p><p><b> {</b></p><p> delay(10);//延時(shí)去抖 </p><p>
66、; if(K1==0) //按K1進(jìn)行模式切換 </p><p><b> { M++;</b></p><p><b> if(M==5) </b></p><p><b> M=0;</b></p><p><b> }</b>&l
67、t;/p><p> while(!K1);//等待按鍵釋放</p><p> } </p><p><b> if(M!=0)</b></p><p><b> {</b></p><p><b> switch(M)</b><
68、;/p><p><b> {</b></p><p> case 1: //模式--調(diào)時(shí)</p><p><b> { </b></p><p><b> if(K2==0)</b></p><p><b> {</b>
69、;</p><p> delay(10);//延時(shí)去抖 </p><p> if(K2==0) //加鍵按下</p><p><b> { </b></p><p> if(hour<23) hour++;</p><p> else hour=0;<
70、/p><p><b> } </b></p><p> while(!K2); //等待按鍵釋放</p><p><b> }</b></p><p><b> if(K3==0)</b></p><p><b> {</b&
71、gt;</p><p> delay(10); </p><p> if(K3==0)</p><p><b> { </b></p><p> if(hour> 0) hour--;</p><p> else hour=23;</p><p>
72、;<b> }</b></p><p> while(!K3); </p><p><b> }</b></p><p> } break; </p><p> case 2: //模式--調(diào)分</p><p><b> { &l
73、t;/b></p><p><b> if(K2==0)</b></p><p><b> {</b></p><p> delay(10);</p><p> if(K2==0) </p><p><b> {</b&g
74、t;</p><p> if(minute<59) minute++;</p><p> else minute=0;</p><p><b> } </b></p><p> while(!K2);</p><p><b> }</b></p>
75、<p><b> if(K3==0)</b></p><p><b> {</b></p><p> delay(10);</p><p> if(K3==0) </p><p><b> { </b></p><p>
76、 if(minute>0) minute--;</p><p> else minute=59;</p><p><b> } </b></p><p> while(!K3);</p><p><b> }</b></p><p><b> }
77、break;</b></p><p> case 3: //模式--鬧鐘調(diào)時(shí)</p><p><b> { </b></p><p><b> if(K2==0)</b></p><p><b> {</b></p><
78、p> delay(10); </p><p> if(K2==0) </p><p><b> { </b></p><p> if(hour1<23)</p><p><b> hour1++;</b></p><p> el
79、se hour1=0;</p><p><b> }</b></p><p> while(!K2); </p><p><b> }</b></p><p><b> if(K3==0)</b></p><p><b> {<
80、;/b></p><p> delay(10);</p><p> if(K3==0) </p><p> { if(hour1>0)</p><p><b> hour1--;</b></p><p> else hour1=23;</p><p
81、><b> }</b></p><p> while(!K3); </p><p><b> }</b></p><p><b> } break;</b></p><p> case 4: //模式--鬧鐘調(diào)分 </p><p>
82、;<b> { </b></p><p><b> if(K2==0)</b></p><p><b> {</b></p><p> delay(10); </p><p> if(K2==0) </p><p>&
83、lt;b> { </b></p><p> if(minute1<59)</p><p> minute1++;</p><p> else minute1=0;</p><p><b> } </b></p><p> while(!K2);</p
84、><p><b> }</b></p><p><b> if(K3==0)</b></p><p><b> {</b></p><p> delay(10);//延時(shí)去抖</p><p> if(K3==0) //減鍵按下<
85、/p><p> { if(minute1>0)</p><p> minute1--;</p><p> else minute1=59;</p><p><b> }</b></p><p> while(!K3); </p><p><b>
86、 } </b></p><p><b> } break;</b></p><p><b> }</b></p><p><b> } </b></p><p><b> } </b></p><p>
87、; void main()</p><p><b> { </b></p><p><b> M=0;</b></p><p> S_flag=0; //閃爍標(biāo)志位</p><p> TMOD=0x10; //定時(shí)器以方式定時(shí)</p><p><b
88、> TL1=0x18;</b></p><p> EA=1; //打開總中斷</p><p> ET1=1; //允許定時(shí)器中斷</p><p> TR1=1; //開啟定時(shí)器(開始定時(shí)計(jì)數(shù))</p><p><b> while(1)</b></p><p&g
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)的定時(shí)鬧鐘課程設(shè)計(jì)
- 單片機(jī)定時(shí)鬧鐘課程設(shè)計(jì)
- 定時(shí)鬧鐘—單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于51單片機(jī)的定時(shí)鬧鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)—定時(shí)鬧鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)—定時(shí)鬧鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---定時(shí)鬧鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--定時(shí)鬧鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---定時(shí)鬧鐘的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)——定時(shí)鬧鐘的設(shè)計(jì)
- 課程設(shè)計(jì)--單片機(jī)定時(shí)鬧鐘設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)--簡(jiǎn)單定時(shí)鬧鐘系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)—帶有l(wèi)cd的定時(shí)鬧鐘
- 單片機(jī)課程設(shè)計(jì)---- lcd電子定時(shí)鬧鐘設(shè)計(jì)
- c51單片機(jī)課程設(shè)計(jì)定時(shí)鬧鐘
- 單片機(jī)課程設(shè)計(jì)--帶有l(wèi)cd顯示的定時(shí)鬧鐘
- 單片機(jī)課程設(shè)計(jì)--定時(shí)鬧鐘報(bào)告書
- 單片機(jī)課程設(shè)計(jì)(電子鬧鐘)
- 單片機(jī)定時(shí)鬧鐘論文
- 單片機(jī)課程設(shè)計(jì)--定時(shí)插座
評(píng)論
0/150
提交評(píng)論