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

正文內(nèi)容

基于51單片機(jī)的萬(wàn)年歷設(shè)計(jì)-閱讀頁(yè)

2025-06-21 22:40本頁(yè)面
  

【正文】 時(shí)鐘線(xiàn)sbit RST=P1^2。 //LCD 寄存器選擇sbit RW=P2^1。 //LCD 啟用sbit K1=P3^4。 //加sbit K3=P3^6。 //確定uchar tCount=0。//周日,周一到周六{0,16} [讀取 DS1302 時(shí)分別是 17]uchar *WEEK[]={SUN,MON,TUS,WEN,THU,FRI,SAT}。uchar LCD_DSY_BUFFER2[]={TIME 00:00:00 }。 //所讀取的日期時(shí)間char Adjust_Index=1。 //(分,時(shí),日,月,年) (不調(diào)節(jié)秒周)//延時(shí),向 DS1302 寫(xiě)、讀一字節(jié)以及從 DS1302 指定位置度、寫(xiě)數(shù)據(jù)的程序//延時(shí)void DelayMS(uint x){uchar i。i120。}//向 DS1302 寫(xiě)入一個(gè)字節(jié)void Write_A_Byte_TO_DS1302(uchar x){uchar i。i8。1。 CLK=0。}}//從 DA1302 讀取一字節(jié)uchar Get_A_Byte_FROM_DS1302(){uchar i,b,t。i8。t=SDA。CLK=1。}//BCD 碼轉(zhuǎn)換return b/16*10+b%16。RST=0。RST=1。dat=Get_A_Byte_FROM_DS1302()。RST=0。}//向 DS1302 某地址寫(xiě)入數(shù)據(jù)void Write_DS1302(uchar addr,uchar dat){CLK=0。Write_A_Byte_TO_DS1302(addr)。CLK=0。}////設(shè)置時(shí)間void SET_DS1302(){uchar i。//寫(xiě)控制字,取消寫(xiě)保護(hù)for(i=1。i++) //分時(shí)日月年依次寫(xiě)入{//分的起始地址 10000010(0x82),后面續(xù)依次是時(shí),日,月,周,年,寫(xiě)入地址每次遞增 2 Write_DS1302(0x80+ 2*i,(DateTime[i]/104)|(DateTime[i]%10))。//加保護(hù)20}////讀取當(dāng)前日期時(shí)間//void GetTime(){uchar i。i7。}}// //1602LCD 的若干顯示控制代碼。RS=0。EN=1。state=P0。DelayMS(1)。}//void LCD_Busy_Wait() 忙等待void LCD_Busy_Wait(){while((Read_LCD_State()amp。DelayMS(5)。 RS=1。EN=0。EN=1。EN=0。RS=0。EN=0。EN=1。EN=0。DelayMS(1)。DelayMS(1)。DelayMS(1)。DelayMS(1)。}////在 LCD 上顯示字符串void Display_LCD_String(uchar p,uchar *s){uchar i。for(i=0。i++){22Write_LCD_Data(s[i])。}}////日期與時(shí)間值轉(zhuǎn)換為數(shù)字字符void Format_DateTime(uchar d,uchar *a){a[0]=d/10+39。a[1]=d%10+39。}////判斷是否為閏年uchar isLeapYear(uint y){return(y%4==0amp。y%100!=0)||(y%400==0)。void RefreshWeekDay(){uint i,d,w=5。i2022+DateTime[6]。w=(w+d)%7。for(i=1。i++) d+=MonthsDays[i]。23//保存星期,0~6 表示星期日至周六,為了與 DS1302 的星期格式匹配,返回值需要加 1DateTime[5]=(w+d)%7+1。amp。 if(x==1amp。DateTime[6]0) DateTime[6]。 //如果年份變化后當(dāng)前月份的天數(shù)大于上限則設(shè)為上限 if(DateTime[3]MonthsDays[DateTime[4]]) DateTime[3]=MonthsDays[DateTime[4]]。//刷新星期 break。amp。 if(x==1amp。DateTime[4]1) DateTime[4]。 //如果月份變化后當(dāng)前月份的天數(shù)大于上限則設(shè)為上限 if(DateTime[3]MonthsDays[DateTime[4]]) DateTime[3]=MonthsDays[DateTime[4]]。//刷新星期 break。 //根據(jù)當(dāng)前月份決定調(diào)節(jié)日期的上限 if(x==1amp。DateTime[3]MonthsDays[DateTime[4]]) DateTime[3]++。amp。 RefreshWeekDay()。 case 2://時(shí) if(x==1amp。DateTime[2]23) DateTime[2]++。amp。 break。amp。 if(x==1amp。DateTime[1]0) DateTime[1]。 }}////定時(shí)器 0 每秒刷新 LCD 顯示void T0_INT() interrupt 1{TH0=50000/256。if(++tCount!=2) return。//按指定的格式生成待顯示的日期時(shí)間串Format_DateTime(DateTime[6],LCD_DSY_BUFFER1+5)。Format_DateTime(DateTime[3],LCD_DSY_BUFFER1+11)。//時(shí)分秒Format_DateTime(DateTime[2],LCD_DSY_BUFFER2+5)。Format_DateTime(DateTime[0],LCD_DSY_BUFFER2+11)。Display_LCD_String(0x40,LCD_DSY_BUFFER2)。if(Adjust_Index==1||Adjust_Index==1) Adjust_Index=7。if(Adjust_Index==5) Adjust_Index=4。[39。LCD_DSY_BUFFER2[15]=39。}else if(K2==0)//加{while(K2==0)。}else if(K3==0)//減{while(K3==0)。26}else if(K4==0)//確定{while(K4==0)。 //將調(diào)整后的時(shí)間寫(xiě)入 1302LCD_DSY_BUFFER2[13]=39。LCD_DSY_BUFFER2[14]=39。LCD_DSY_BUFFER2[15]=39。Adjust_Index=1。 //液晶初始化IE=0x83。IT0=0x01。TH0=50000/256。TR0=1。}}
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1