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

正文內(nèi)容

基于at89c51單片機的電子萬年歷的設(shè)計(完整版)

2025-07-30 22:56上一頁面

下一頁面
  

【正文】 89C52單片機自帶的定時器功能,實現(xiàn)對時間、日期的操作,通過按鍵盤開關(guān)實現(xiàn)對時間、日期的調(diào)整。 器件的選用元件名稱 型號 數(shù)量/個單片機 AT89C52 1 時鐘芯片 DS1302 1晶振 12MHz 1晶振 1電容 30pF 2電容 22uF 1按鍵開關(guān) 4電阻 10K 9滑動變阻器 1K 1電池 4LCD LCD1602 1電源Vcc +5V 1導(dǎo)線 若干:該電子萬年歷的總體設(shè)計框圖如圖(1)所示。此復(fù)位電路為上電復(fù)位,較為簡單。 6: I/O:數(shù)據(jù)輸入輸出口;5: CE/RST:復(fù)位腳;3: XX2 是外接晶振腳 ();4: 地(GND)。當(dāng)WP位為1時,寫保護位防止對任一寄存器的寫操作。在控制字指令輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入也是從最低位(0位)開始。4 系統(tǒng)的軟件設(shè)計主程序首先初始化定時器、LCD1602及DS1302,然后就開始查詢按鍵,有鍵按下則開始調(diào)整時間和日期,若沒有按下,則執(zhí)行下面的時間、日期的顯示,最后依次循環(huán)這些相同的操作,相應(yīng)流程圖如圖(11)所示:圖(12)程序流程圖按鍵的檢測是通過中斷的辦法來實現(xiàn),利用按鍵進行間調(diào)整。仿真正確顯示了時間,在LCD1602中正確顯示了當(dāng)前日期、時間,通過按按鍵K1,就可以開始設(shè)置時間,依次按K1依次在年、月、日、時、分之間切換,按K2鍵用于加1操作,K3鍵用于減1操作,K4是確定按鈕。致謝從一定程度上說,通過本次的電子萬年歷的設(shè)計,讓我懂得了許多光靠書本閱讀學(xué)不來的知識,并且,在整個設(shè)計的過程中,發(fā)現(xiàn)自己還有好專業(yè)的基礎(chǔ)知識還沒有掌握,這讓自己有了很深的醒悟,在接下來的學(xué)習(xí)中,應(yīng)該告誡自己多花時間放在學(xué)習(xí)上,盡可能的讓自己的專業(yè)知識扎實一些,最后能夠勉強成功完成本次的課程設(shè)計。 //LCD讀/寫控制sbit EN = P2^2。uchar LCD_DSY_BUFFER1[]={DATE 000000 }。i++)。 //一個高脈沖將數(shù)據(jù)送入液晶控制器 x=1。 //返回BCD碼}//從DS1302指定位置讀數(shù)據(jù)//uchar Read_Data(uchar addr){ uchar dat。 return dat。//寫控制字,取消寫保護 Write_DS1302(0x8E,0x00)。i++){ DateTime[i]=Read_Data(0X81+2*i)。DelayMS(1)。RW=0。 RW=0。 //顯示清零,數(shù)據(jù)指針清零 DelayMS(1)。 for(i=0。}//判斷是否為閏年uchar isLeapYear(uint y){ return (y%4==0amp。 } d=0。DateTime[6]99) DateTime[6]++。 case 4: //月0112 if(x==1amp。} RefreshWeekDay()。DateTime[3]0) DateTime[3]。DateTime[2]0) DateTime[2]。 break。 //星期strcpy(LCD_DSY_BUFFER1+13,WEEK[DateTime[5]1])。 if(Adjust_Index==1||Adjust_Index==1) { Adjust_Index=7。 } } else if(K2==0) //加 { //while(K2==0)。 if(K4==0){ SET_DS1302()。 } }}void main(){ Init_LCD()。 //啟動定時器 while(1) { //如果未執(zhí)行調(diào)整操作則正常讀取當(dāng)前時間 if(Adjust_Index==1) GetTime()。 //允許INT0,T0中斷,EA=1,ET0=1,EX0=1 IP=0x01。 39。 if(K2==0) DateTime_Adjust(1)。 if(Adjust_Index==5) Adjust_Index=4。 Format_DateTime(DateTime[1],LCD_DSY_BUFFER2+8)。 TL0=50000%256。 case 1: //分 if(x==1amp。 break。 case 3: //日002231,調(diào)節(jié)之前首先根據(jù)年份得出該年中二月的天數(shù) MonthsDays[2]=isLeapYear(2000+DateTime[6])?29:28。DateTime[4]12) DateTime[4]++。amp。iDateTime[4]。y%100!=0)||(y%400==0)。i++) { Write_LCD_Data(s[i])。 //寫一個字符后地址指針自動加1 DelayMS(1)。EN=1。EN=1。} //忙等待//void LCD_Busy_Wait(){ while((Read_LCD_State()amp。 RS=0。i7。RST=1。SCLK=0。 for(i=0。 for(i=0。uchar DateTime[7]。 //選擇sbit K2=P3^5。最后,我要感謝身邊的同學(xué)在課程設(shè)計的過程中給予我的很多幫助,在設(shè)計的過程中,遇到的許多問題也都得益于身邊同學(xué)的幫助,我真誠的感謝你們每一個人,生活在這樣的一個集體,我感覺很快樂很充實,這是一個既能讓我們感覺溫暖又能學(xué)到知識的好地方。圖(13) 電子萬年歷硬件電路圖結(jié)論與心得在這學(xué)期的課程序設(shè)計中,收
點擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1