單片機(jī)應(yīng)用技術(shù)-基于STC15系列單片機(jī) 課件 4.3 帶鬧鐘整點(diǎn)報(bào)時(shí)數(shù)字鐘的實(shí)現(xiàn)_第1頁(yè)
單片機(jī)應(yīng)用技術(shù)-基于STC15系列單片機(jī) 課件 4.3 帶鬧鐘整點(diǎn)報(bào)時(shí)數(shù)字鐘的實(shí)現(xiàn)_第2頁(yè)
單片機(jī)應(yīng)用技術(shù)-基于STC15系列單片機(jī) 課件 4.3 帶鬧鐘整點(diǎn)報(bào)時(shí)數(shù)字鐘的實(shí)現(xiàn)_第3頁(yè)
單片機(jī)應(yīng)用技術(shù)-基于STC15系列單片機(jī) 課件 4.3 帶鬧鐘整點(diǎn)報(bào)時(shí)數(shù)字鐘的實(shí)現(xiàn)_第4頁(yè)
單片機(jī)應(yīng)用技術(shù)-基于STC15系列單片機(jī) 課件 4.3 帶鬧鐘整點(diǎn)報(bào)時(shí)數(shù)字鐘的實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩17頁(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)介

任務(wù)

帶調(diào)時(shí)、整點(diǎn)報(bào)時(shí)功能電子鐘的實(shí)現(xiàn)任務(wù)

帶調(diào)時(shí)、整點(diǎn)報(bào)時(shí)功能電子鐘的實(shí)現(xiàn)任務(wù)介紹

走時(shí)功能,能完成24小時(shí)制的時(shí)鐘走時(shí);

調(diào)時(shí)功能,能夠使用按鍵完成電子鐘時(shí)、分、秒的調(diào)時(shí);

顯示功能,在8位數(shù)碼管上顯示當(dāng)前時(shí)間,格式為時(shí)-分-秒;調(diào)時(shí)過(guò)程中,只顯示調(diào)整的部分;

整點(diǎn)報(bào)時(shí)功能。①②③④任務(wù)

帶調(diào)時(shí)、整點(diǎn)報(bào)時(shí)功能電子鐘的實(shí)現(xiàn)——整體設(shè)計(jì)單片機(jī)模塊數(shù)碼管模塊按鍵模塊蜂鳴器模塊帶調(diào)時(shí)、整點(diǎn)報(bào)時(shí)功能電子鐘的實(shí)現(xiàn)任務(wù)分析——按鍵模塊序號(hào)名稱功能1功能鍵按下一次進(jìn)入調(diào)時(shí)模式,按下兩次進(jìn)入調(diào)分模式,按下三次進(jìn)入調(diào)秒模式,按下四次恢復(fù)走時(shí)模式。2加鍵在調(diào)時(shí)/調(diào)分/調(diào)秒模式中,對(duì)相應(yīng)內(nèi)容加1,加到最大值,從0開(kāi)始。3減鍵在調(diào)時(shí)/調(diào)分/調(diào)秒模式中,對(duì)相應(yīng)內(nèi)容減1,減到0從最大值開(kāi)始。帶調(diào)時(shí)、整點(diǎn)報(bào)時(shí)功能電子鐘的實(shí)現(xiàn)①電子鐘用8位數(shù)碼管完成顯示。②在走時(shí)模式下,顯示格式為“時(shí)-分-秒”,③在調(diào)時(shí)模式下只顯示正在調(diào)整的信息,如調(diào)整小時(shí)是,只顯示“時(shí)”,調(diào)整分鐘時(shí),只顯示“分”。任務(wù)分析——數(shù)碼管模塊任務(wù)分析——蜂鳴器模塊蜂鳴器模塊用于實(shí)現(xiàn)整點(diǎn)報(bào)時(shí)功能。帶調(diào)時(shí)、整點(diǎn)報(bào)時(shí)功能電子鐘的實(shí)現(xiàn)任務(wù)硬件設(shè)計(jì)序號(hào)引腳名稱1P3.2功能鍵2P3.3加鍵3P3.6減鍵P34P32P33P36帶調(diào)時(shí)、整點(diǎn)報(bào)時(shí)功能電子鐘的實(shí)現(xiàn)任務(wù)硬件設(shè)計(jì)序號(hào)名稱Proteus中元件名參數(shù)數(shù)量1單片機(jī)STC15W4K32S412LED數(shù)碼管7SEG-MPX8-CA-BLUE共陽(yáng)極13排阻RX8470Ω14鎖存器74HC37315電阻RES1kΩ16三極管PNP17蜂鳴器BUZZER18按鍵BUTTON常開(kāi)3帶調(diào)時(shí)、整點(diǎn)報(bào)時(shí)功能電子鐘的實(shí)現(xiàn)工作流程設(shè)計(jì)上電時(shí),系統(tǒng)進(jìn)入時(shí)鐘走時(shí)和8位數(shù)碼管的顯示模式,初始時(shí)間可以設(shè)為12點(diǎn)59分56秒;12014當(dāng)整點(diǎn)時(shí),如13點(diǎn)0分0秒,蜂鳴器進(jìn)行整點(diǎn)報(bào)時(shí)。3當(dāng)功能鍵按下時(shí),進(jìn)入時(shí)間調(diào)整模式,8位數(shù)碼管中的2位顯示正在調(diào)整的信息,其余位不顯示。調(diào)時(shí)模式時(shí),可以對(duì)時(shí)、分、秒進(jìn)行加減修改;22014帶調(diào)時(shí)、整點(diǎn)報(bào)時(shí)功能電子鐘的實(shí)現(xiàn)序號(hào)函數(shù)名稱函數(shù)功能1main()

系統(tǒng)初始化、子函數(shù)調(diào)用2key()功能鍵按鍵識(shí)別,統(tǒng)計(jì)按鍵次數(shù)3tiaoshi()

調(diào)時(shí)過(guò)程中,調(diào)整時(shí)的數(shù)值4tiaofen()

調(diào)時(shí)過(guò)程中,調(diào)整分的數(shù)值5tiaomiao()

調(diào)時(shí)過(guò)程中,調(diào)整秒的數(shù)值6alarm()整點(diǎn)報(bào)時(shí)7zoushi()

電子鐘時(shí)、分、秒的走時(shí)8chaifen()

時(shí)、分、秒的拆分9xianshi()

時(shí)鐘的顯示10delay_1s()用定時(shí)器中斷完成1s定時(shí)11delay_ms()ms級(jí)別延時(shí)子函數(shù)帶調(diào)時(shí)、整點(diǎn)報(bào)時(shí)功能電子鐘的實(shí)現(xiàn)任務(wù)軟件設(shè)計(jì)主函數(shù)入口系統(tǒng)初始化調(diào)用功能鍵子函數(shù)調(diào)用走時(shí)子函數(shù)調(diào)用整點(diǎn)報(bào)時(shí)子函數(shù)調(diào)用拆分子函數(shù)調(diào)用顯示子函數(shù)主函數(shù)流程圖main(){ TMOD=0X00; TH0=(65536-MAIN_Fosc/1000)/256; TL0=(65536-MAIN_Fosc/1000)%256; AUXR=AUXR|0X80; ET0=1; EA=1; TR0=1; while(1) { key();//調(diào)用功能鍵子函數(shù)

zoushi();//調(diào)用走時(shí)子函數(shù)

alarm();//調(diào)用整點(diǎn)報(bào)時(shí)子函數(shù)

chaifen();//調(diào)用拆分子函數(shù)

xianshi();//調(diào)用顯示子函

}}帶調(diào)時(shí)、整點(diǎn)報(bào)時(shí)功能電子鐘的實(shí)現(xiàn)任務(wù)軟件設(shè)計(jì)功能鍵函數(shù)入口統(tǒng)計(jì)次數(shù)清零功能鍵掃描停止走時(shí)子函數(shù)返回1次4次S1按鍵識(shí)別子函數(shù)voidkey(){if(gongneng==0){ delay_ms(10);//延時(shí)10ms if(gongneng==0) { key1count++;//統(tǒng)計(jì)功能鍵按下次數(shù) TR0=0;//進(jìn)入調(diào)時(shí)狀態(tài),停止走時(shí) if(key1count==4)//設(shè)置功能鍵的范圍是0-3 { key1count=0; } while(!gongneng); }}}

調(diào)秒調(diào)分2次3次調(diào)時(shí)走時(shí)統(tǒng)計(jì)功能鍵按下次數(shù)帶調(diào)時(shí)、整點(diǎn)報(bào)時(shí)功能電子鐘的實(shí)現(xiàn)任務(wù)軟件設(shè)計(jì)S1按鍵識(shí)別子函數(shù)

switch(key1count) { case0:TR0=1;break;//恢復(fù)走時(shí)功能 case1:tiaoshi();break;//調(diào)用調(diào)時(shí)子函數(shù) case2:tiaofen();break;//調(diào)用調(diào)分子函數(shù) case3:tiaomiao();break;//調(diào)用調(diào)秒子函數(shù) }}功能鍵函數(shù)入口統(tǒng)計(jì)次數(shù)清零功能鍵掃描停止走時(shí)子函數(shù)返回1次4次調(diào)秒調(diào)分2次3次調(diào)時(shí)走時(shí)統(tǒng)計(jì)功能鍵按下次數(shù)帶調(diào)時(shí)、整點(diǎn)報(bào)時(shí)功能電子鐘的實(shí)現(xiàn)任務(wù)軟件設(shè)計(jì)調(diào)時(shí)子函數(shù)入口時(shí)+1子函數(shù)返回時(shí)清零時(shí)-1時(shí)變?yōu)?3減鍵按下?調(diào)時(shí)子函數(shù)流程圖voidtiaoshi(){ if(JIA==0)//如果加鍵按下 { delay_ms(10);//延時(shí)10ms if(JIA==0) { shi++;//時(shí)+1 if(shi==24) { shi=0; } while(!JIA); } }

時(shí)加到24?加鍵按下?時(shí)減到0xff?帶調(diào)時(shí)、整點(diǎn)報(bào)時(shí)功能電子鐘的實(shí)現(xiàn)任務(wù)軟件設(shè)計(jì)

if(JIAN==0)//如果減鍵按下 { delay_ms(10);//延時(shí)10ms if(JIAN==0) { shi--;//時(shí)-1 if(shi==255) { shi=23; } while(!JIAN); } }}調(diào)時(shí)子函數(shù)流程圖調(diào)時(shí)子函數(shù)入口時(shí)+1子函數(shù)返回時(shí)清零時(shí)-1時(shí)變?yōu)?3S3按下?時(shí)加到24?S2按下?時(shí)減到0xff?帶調(diào)時(shí)、整點(diǎn)報(bào)時(shí)功能電子鐘的實(shí)現(xiàn)voidalarm(){

if(flag_alarm)

{

flag_alarm=0;

ALARM=0;//蜂鳴器啟動(dòng)鳴叫 } else

ALARM=1;//蜂鳴器停止鳴叫}蜂鳴器鳴叫蜂鳴器停止鳴叫是否要報(bào)時(shí)?YN任務(wù)軟件設(shè)計(jì)整點(diǎn)報(bào)時(shí)子函數(shù)流程圖整點(diǎn)報(bào)時(shí)子函數(shù)入口子函數(shù)返回帶調(diào)時(shí)、整點(diǎn)報(bào)時(shí)功能電子鐘的實(shí)現(xiàn)voidxianshi(){ unsignedcharaa; unsignedintj; if(key1count==1)//在調(diào)時(shí)模式下,只顯示時(shí)的十位和個(gè)位 { P2=0x01; P0=led_disp_code_gongyang[dis[0]];//顯示時(shí)的十位 delay_ms(1);//延時(shí)1ms P2=0X00;

P2=0x02; P0=led_disp_code_gongyang[dis[1]];//顯示時(shí)的個(gè)位 delay_ms(1);//延時(shí)1ms P2=0X00; }任務(wù)軟件設(shè)計(jì)顯示子函數(shù)入口顯示秒顯示時(shí)分秒顯示時(shí)顯示分子函數(shù)返回調(diào)時(shí)模式調(diào)分模式調(diào)秒模式走時(shí)模式顯示子函數(shù)流程圖電子時(shí)鐘工作模式帶調(diào)時(shí)、整點(diǎn)報(bào)時(shí)功能電子鐘的實(shí)現(xiàn) elseif(key1count==2)//在調(diào)分模式下,只顯示分的十位和個(gè)位 { P2=0x08; P0=led_disp_code_gongyang[dis[3]];//顯示分的十位 delay_ms(1);//延時(shí)1ms P2=0X00;

P2=0x10; P0=led_disp_code_gongyang[dis[4]];//顯示分的個(gè)位 delay_ms(1);//延時(shí)1ms P2=0X00; }

任務(wù)軟件設(shè)計(jì)顯示子函數(shù)流程圖顯示子函數(shù)入口顯示秒顯示時(shí)分秒顯示時(shí)顯示分子函數(shù)返回調(diào)分模式調(diào)秒模式走時(shí)模式電子時(shí)鐘工作模式調(diào)時(shí)模式帶調(diào)時(shí)、整點(diǎn)報(bào)時(shí)功能電子鐘的實(shí)現(xiàn) elseif(key1count==3)//在調(diào)秒模式下,只顯示秒的十位和個(gè)位 { P2=0x40; P0=led_disp_code_gongyang[dis[6]];//顯示秒的十位 delay_ms(1);//延時(shí)1ms P2=0X00; P2=0x80; P0=led_disp_code_gongyang[dis[7]];//顯示秒的個(gè)位 delay_ms(1);//延時(shí)1ms P2=0X00; } 任務(wù)軟件設(shè)計(jì)顯示子函數(shù)流程圖顯示子函數(shù)入口顯示秒顯示時(shí)分秒顯示時(shí)顯示分子函數(shù)返回調(diào)分模式調(diào)秒模式走時(shí)模式電子時(shí)鐘工作模式調(diào)時(shí)模式帶調(diào)時(shí)、整點(diǎn)報(bào)時(shí)功能電子鐘的實(shí)現(xiàn) elseif(key1count==0)//在走時(shí)模式下,完整顯示“時(shí)-分-秒” { aa=0x01; for(j=0;j<8;j++) { P2=aa; P0=led_disp_code_gongyang[dis[j]]; delay_ms(1);//延時(shí)1ms P2=0X00; aa=aa<<1; } } }任務(wù)軟件設(shè)計(jì)顯示子函數(shù)流程圖顯示子函數(shù)入口顯示秒顯示時(shí)分秒顯示時(shí)顯示分子函

溫馨提示

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