freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于at89c51單片機的電子萬年歷設(shè)計(編輯修改稿)

2025-02-14 16:08 本頁面
 

【文章內(nèi)容簡介】 師表示崇高的敬意和衷心的感謝! 本論文的順利完成,離不開各位老師、同學(xué)和朋友的關(guān)心和幫助。在此感謝各位實驗室老師的指導(dǎo)和幫助;感謝各位室友及同學(xué)的幫助;感謝XXX院母校的關(guān)心、支持和幫助; 在四年的學(xué)習(xí)期間,沒有你們的幫助和支持是沒有辦法完成我的學(xué)位論文的,愿師生之誼長存,同窗之間的友誼長存。參考文獻肖洪兵. 跟我學(xué)用單片機. 北京:北京航空航天大學(xué)出版社, 何立民. 單片機高級教程. 第1版.北京:北京航空航天大學(xué)出版社,2001 趙曉安. MCS51單片機原理及應(yīng)用. 天津:天津大學(xué)出版社, 李廣第. 單片機基礎(chǔ). 第1版.北京:北京航空航天大學(xué)出版社,1999 徐惠民、安德寧. 單片微型計算機原理接口與應(yīng)用. 第1版. 北京郵電大學(xué)出版社,1996 何立民.從Cygnal 80C51F看8位單片機發(fā)展之路. 單片機與嵌入式系統(tǒng)應(yīng)用,2002年,第5期:P5~8 夏繼強. 單片機實驗與實踐教程. 北京:北京航空航天大學(xué)出版社, 2001 陳志強 胡輝. 單片機應(yīng)用系統(tǒng)設(shè)計實踐指南. 自編教材 肖洪兵. 單片機應(yīng)用技術(shù). 自編教材附錄 /***************************萬年歷***************************//**功能:1:年月日上次的事實、是分秒顯示轉(zhuǎn)換*****//******: 2:調(diào)表(閃爍,右移,確定,取消)*********************///**操作:1:正數(shù)第4行依次為切換,固定/取消,右移,上翻/**********:正數(shù)第3行為保存************************/include define uint unsigned intdefine uchar unsigned charsbit wela=P2^7。/*位鎖*/sbit dula=P2^6。/*段鎖*/uchar code NumShow[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}。//數(shù)碼管顯示數(shù)組uchar Runtime=0,temp=0,change=0,spark=0,move=0,add=0,sure=0,clock=0。uchar uYear=8,uMonth=11,uDay=28,uHour=11,uMinute=50,uSecond=50。uchar Num1=0,Num2=0,Num3=0,Num4=0,Num5=0,Num6=0。uchar dHour=0,dMinute=0,dSecond=0。void keyscan()。//矩陣按鍵的掃描檢測函數(shù)void num_sure()。//送入數(shù)據(jù)函數(shù)void init()。//初始化函數(shù)void display(uchar aa,uchar bb,uchar cc,uchar dd,uchar ee,uchar ff)。//數(shù)碼管顯示函數(shù)void Delay(uint z)。//延時函數(shù)void showchange()。/*************主函數(shù)*******************/void main(){ P0=0。 init()。 while(1) { keyscan()。//開始矩陣按鍵檢測 if(spark==0)//未進入閃爍模式 { showchange()。//此時為正常走時模式,數(shù)據(jù)按秒變化 } else //此時為設(shè)定移位調(diào)表模式 { if(sure==1)//要求將設(shè)定的時間存入表中 { num_sure()。//確定調(diào)好的數(shù)據(jù)保存,送入顯示 } } }}/******************數(shù)碼管顯示函數(shù)********************************/void display(uchar aa,uchar bb,uchar cc,uchar dd,uchar ee,uchar ff){ static uint SparkTime=0。 if(SparkTime=300) SparkTime=0。//閃爍即計時變量 switch(++SparkTime%6)//多位數(shù)碼管靜態(tài)顯示時間 { case 0: { P0=NumShow[aa]。//顯示數(shù)字 dula=1。 dula=0。 P0=0Xfe。//顯示的數(shù)碼管 wela=1。 wela=0。 if(move==1)//進入調(diào)表移位模式,下面相同 { if(SparkTime=0amp。amp。SparkTime150)//閃爍中的熄滅 { P0=0。 dula=1。 dula=0。 } else if(SparkTime=150amp。amp。SparkTime300)//閃爍中的顯示 { P0=NumShow[aa]。 dula=1。 dula=0。 } } break。 } case 1: { P0=NumShow[bb]。 dula=1。 dula=0。 P0=0Xfd。 wela=1。 wela=0。 if(move==2) { if(SparkTime=0amp。amp。SparkTime150) { P0=0。 dula=1。 dula=0。 } else if(SparkTime=150amp。amp。SparkTime300) { P0=NumShow[bb]。 dula=1。 dula=0。 } } break。 } case 2: { P0=NumShow[cc]。 dula=1。 dula=0。 P0=0Xfb。 wela=1。 wela=0。 if(move==3) { if(SparkTime=0amp。amp。SparkTime150) { P0=0。 dula=1。 dula=0。 } else if(SparkTime=150amp。amp。SparkTime300) { P0=NumShow[cc]。 dula=1。 dula=0。 } } break。 } case 3: { P0=NumShow[dd]。 dula=1。 dula=0。 P0=0Xf7。 wela=1。 wela=0。 if(move==4) { if(SparkTime=0amp。amp。SparkTime150) { P0=0。 dula=1。 dula=0。 } else if(SparkTime=150amp。amp。SparkTime300) { P0=NumShow[dd]。 dula=1。 dula=0。 } } break。 } case 4: { P0=NumShow[ee]。 dula=1。 dula=0。 P0=0Xef。 wela=1。 wela=0。 if(move==5) { if(SparkTime=0amp。amp。SparkTime150) { P0=0。 dula=1。 dula=0。 } else if(SparkTime=150amp。amp。SparkTime300) { P0=NumShow[ee]。 dula=1。 dula=0。 } } break。 } case 5: { P0=NumShow[ff]。 dula=1。 dula=0。 P0=0Xdf。 wela=1。 wela=0。 if(move==6) { if(SparkTime=0amp。amp。SparkTime150) { P0=0。 dula=1。 dula=0。 } else if(SparkTime=150amp。amp。SparkTime300) { P0=NumShow[ff]。 dula=1。 dula=0。 } } break。 } }}/************延時函數(shù)***************/void Delay(uint z){ uint i=0,j=0。 for(i=z。i0。i) for(j=110。j0。j)。}/*************按鍵掃描函數(shù)*********************/void keyscan(){ P3=0xf7。 temp=P3。 temp=tempamp。0xf0。 if(temp!=0xf0)//第一行掃描 { Delay(5)。 temp=P3。 temp=tempamp。0xf0。 while(temp!=0xf0)//讀取按鍵信息 { temp=P3。 switch(temp) { case 0xe7:{ //日期和時鐘切換按鍵按下 change++。 if(change1) { change=0。 } break。 } case 0xd7:{ //進入設(shè)定模式 spark++。 move=1。 if(spark1) //如果已進入設(shè)定模式,再按此鍵退出設(shè)定 { spark=0。 //停止閃爍 move=0。 //關(guān)閉右移 } } break。 case 0xb7:{ //進入右移模式 if(spark0)//只有處于處于設(shè)定模式此鍵有效 { move++。 if(move6) move=1。 //移到最右邊時再從頭開始 } } break。 case 0x77:{ //上翻 if(spark0) { if(move0) { if(change==1) //顯示為時分秒 { if(move==1)//設(shè)置時的十位 { Num1++。 if(Num12) Num1=0。//十位為01 } if(move==2)//設(shè)置時的個位 { Num2++。 if(Num1==2) { if(Num24) Num2=0。//當(dāng)十位為1時,個位02 } else if(Num29)Num2=0。//當(dāng)十位為0時,個位19 } if(move==3) //設(shè)置分的十位 { Num3++。 if(Num35)Num3=0。 } if(move==4)//設(shè)置分的個位 { Num4++。 if(Num49)Num4=0。 } if(move==5)//設(shè)置秒的十位 { Num5++。 if(Num55)Num5=0。 } if(move==6)//設(shè)置秒的個位 { Num6++。 if(Num69)Num6=0。 } } if(change==0)//當(dāng)顯示為年月日 { if(move==1) Num1==0。
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1