亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 12864萬年歷.c.bak

?? c51的st7920程序 c51的st7920程序
?? BAK
?? 第 1 頁 / 共 3 頁
字號:
/*******************************************/
/*    LCM128*64萬年歷                      */
/*    硬件:LCM128*64  89s52   晶振:24M     */
/*    制作:hyj                             */
/*    時間:2006.11.3   V0.1                */
/*         2006.12.4   V0.2(修正"三"顯示)  */
/*         2006.12.7   V0.3(增加鬧鐘功能)  */
/*******************************************/




#include<reg51.h>
#include<stdio.h>
#include<intrins.h>
#define uchar unsigned char
#define DELTA 500

bit c_moon;
bit flash,id,alarm_controls,alarm;
unsigned char k,jieqi1,jieqi2;
data uchar year_moon,month_moon,day_moon;
unsigned char year,month,day,week,hour,min,sec;
unsigned char alarm_hour,alarm_min,sec_temp;

uchar mode=0,add=1,ir_data1,ir_data2,ir_data3,ir_data4,ir_enable,count,count2=0,en=0;


code unsigned char shuzi[]={"0123456789:."};
code unsigned char riqi[]= {"年月日農歷星期室溫  鬧鐘開關"};
code unsigned char xingqi[]={"  一二33四五六日"};
code unsigned char rongli[]={"初十廿卅"};
code unsigned char shuzi2[]={"十一二33四五六七八九"};
code unsigned char shuzi3[]={"  十"};
code unsigned char shuzi4[]={"  一二33四五六七八九"};
unsigned char code inittime[]={0x48,0x21,0x15,0x11,0x11,0x06,0x06};        //初始化參數(shù)
//                              秒   分   時    日   月  星期  年 
code uchar san[]={
/*--  文字:  三  --*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
};


code unsigned char jieqi[]=
{
"        "
"小寒大寒" 
"立春雨水"
"驚蟄春分"
"清明谷雨"
"立夏小滿"
"芒種夏至"
"小暑大暑"
"立秋處暑"
"白露秋分"
"寒露霜降"
"立冬小雪"
"大雪冬至"
};


sbit T_CLK=P3^5;
sbit T_IO =P3^6;
sbit T_RST=P3^7;  //引腳定義

sbit DQ =P1^4;
sbit ACC0=ACC^0;
sbit ACC7=ACC^7;
sbit rs = P2^1;
sbit rw = P2^2;
sbit e  = P2^4;
sbit psb = P2^5;
sbit rst = P3^4;

void   RTInputByte(uchar);                                         // 輸入 1Byte 
uchar  RTOutputByte(void);                                         // 輸出 1Byte 
void   W1302(uchar, uchar);                                        // 向DS1302寫入一個字節(jié)
uchar  R1302(uchar);                                               // 從DS1302讀出一個字節(jié)
void   Set1302(unsigned char* );                                   // 設置初始時間 
ReadTemperature(void);                                             //讀取室溫
void Conversion(bit c,char year,char month,char day);              //計算農歷日期
unsigned char calendar_calculate_solar_term_1(void);               //計算當月第一個節(jié)氣對應的公歷日期
unsigned char calendar_calculate_solar_term_2(void);               //計算當月第二個節(jié)氣





mode_set()
 {
  switch(mode)
   {
	 case 0:mode=1;
	        W1302(0x8e,0x00);                   //允許寫操作
	        W1302(0x80,0x80);                   //寫入DS1302 時間停止
			  W1302(0x8e,0x80);                   //寫保護,禁止寫操作  
			  TR0=1;
			  break;
	 case 1:mode=2;
	          break;
	 case 2:mode=3;
             break;
	 case 3:mode=4;
             break;
	 case 4:mode=5;
             break;
	 case 5:mode=6;
             break;
	 case 6:mode=0;
	        W1302(0x8e,0x00);                   //允許寫操作
	        W1302(0x80,0x00);                   //寫入DS1302  時間運行
			  W1302(0x8e,0x80);                   //寫保護,禁止寫操作 
			  TR0=0;
           break;
     }
	if(id==1)
	 {
     switch(mode)
	   {
		 case 7:mode=8;
		         break;
		 case 8:mode=7;
		         break;
		}
	 }
  }

add_set()
 {
  uchar address,item;
  uchar max,min;
  if(alarm==1) {alarm=0;return;}
  if(mode==0)  return;
  if(mode==1)  {address=0x8c; max=99;min=0;}    //年
  if(mode==2)  {address=0x88; max=12;min=1;}    //月
  if(mode==3)  {address=0x86; max=31;min=1;}    //日
  if(mode==4)  {address=0x8a; max=7; min=1;}    //星期
  if(mode==5)  {address=0x84; max=23;min=0;}    //小時
  if(mode==6)  {address=0x82; max=59;min=0;}    //分鐘
  if(mode==7)  {address=0xc0; max=23;min=0;}
  if(mode==8)  {address=0xc2; max=59;min=0;}
	
  item=R1302(address+1);
  item=item/16*10+item%16;
  if(add) 
   item++;  
  else 
   item--;
  if(item<min||item==255) item=max;
  if(item>max) item=min;   
  W1302(0x8e,0x00);                   //允許寫操作
  W1302(address,item/10*16+item%10);  //寫入DS1302 //轉成BCD碼
  W1302(0x8e,0x80);                   //寫保護,禁止寫操作  
}
  


ir_key()
 {

  switch(ir_data3)
   {
	 case 0xe2: mode_set();
	                 break;
	 case 0x52: add=1;
	            add_set();
					    break;
	 case 0x78: add=0;
	            add_set();
					    break;
    case 0xb8: id=1;
		         mode=7;
		         TR0=1;
 				   break;
	 case 0x42: id=0;
		         mode=0;
		         TR0=0;
					break;
    case 0xc8:if(id==1)              //設置鬧鐘 開/關(必須在鬧鐘調整狀態(tài)下)
	            {
	             alarm_controls=~alarm_controls;
				}
	            
  }
 }



/**********************************************
  遙控外部中斷程序
   
  接收數(shù)據(jù):ir_data1--ir_data4
  倍數(shù)計數(shù):count
  DELTA   :誤差
/**********************************************/
void int0remoter() interrupt 2
  {
    TR1=0;
    if((TL1+TH1*256)==0)
      {
        count=0;
    	  TL1=0;
		  TH1=0;
		  TR1=1;  //開定時器
		  
		  return;//有遙控信號產(chǎn)生中斷,退出中斷
		}
	 if(!count)
	   {
        if(((TL1+TH1*256)>(27000-DELTA))&&((TL1+TH1*256)<(27000+DELTA)))
		    {
			   count++;
				TH1=0;
				TL1=0;
				TR1=1;
				return;//前導碼正確,準備接收數(shù)據(jù),退出中斷
			  }
			count=0;
			TR1=0;
			TH1=0;
			TL1=0;
			return;//前導碼錯誤,非遙控信號,退出中斷
		 }
	  if(count<33)
	    {
		   if(count<=8)
			  {
			    if(((TL1+TH1*256)>(2250-DELTA))&&((TL1+TH1*256)<(2250+DELTA)))
				   {
					  ir_data1<<=1;
					  count++;
					  TH1=0;
					  TL1=0;
					  TR1=1;
					  return;  //數(shù)據(jù)為0,退出中斷
					}
			    if(((TL1+TH1*256)>(4500-DELTA))&&((TL1+TH1*256)<(4500+DELTA)))
				   {
					  ir_data1<<=1;
					  ir_data1|=0x01;
					  count++;
					  TH1=0;
					  TL1=0;
					  TR1=1;
					  return;//數(shù)據(jù)為1,退出中斷
					}
				 count=0;
				 TR1=0;
				 TH1=0;
				 TL1=0;
				 return;   //錯誤,清零退出中斷
			  }
		   if(count>8&&count<=16)
			  {
			    if(((TL1+TH1*256)>(2250-DELTA))&&((TL1+TH1*256)<(2250+DELTA)))
				   {
					  ir_data2<<=1;
					  count++;
					  TH1=0;
					  TL1=0;
					  TR1=1;
					  return;  //數(shù)據(jù)為0,退出中斷
					}
			    if(((TL1+TH1*256)>(4500-DELTA))&&((TL1+TH1*256)<(4500+DELTA)))
				   {
					  ir_data2<<=1;
					  ir_data2|=0x01;
					  count++;
					  TH1=0;
					  TL1=0;
					  TR1=1;
					  return;//數(shù)據(jù)為1,退出中斷
					}
				 count=0;
				 TR1=0;
				 TH1=0;
				 TL1=0;
				 return;   //錯誤,清零退出中斷
			  }
		   if(count>16&&count<=24)
			  {
			    if(((TL1+TH1*256)>(2250-DELTA))&&((TL1+TH1*256)<(2250+DELTA)))
				   {
					  ir_data3<<=1;
					  count++;
					  TH1=0;
					  TL1=0;
					  TR1=1;
					  return;  //數(shù)據(jù)為0,退出中斷
					}
			    if(((TL1+TH1*256)>(4500-DELTA))&&((TL1+TH1*256)<(4500+DELTA)))
				   {
					  ir_data3<<=1;
					  ir_data3|=0x01;
					  count++;
					  TH1=0;
					  TL1=0;
					  TR1=1;
					  return;//數(shù)據(jù)為1,退出中斷
					}
				 count=0;
				 TR1=0;
				 TH1=0;
				 TL1=0;
				 return;   //錯誤,清零退出中斷
			  }
		   if(count>24&&count<=32)
			  {
			    if(((TL1+TH1*256)>(2250-DELTA))&&((TL1+TH1*256)<(2250+DELTA)))
				   {
					  ir_data4<<=1;
					  count++;
					  TH1=0;
					  TL1=0;
					  TR1=1;
					  if(count==33)
					    {
					      EX1=0;
						  en=1;
                          ir_enable = 1;
					    }
					  return;  //數(shù)據(jù)為0,退出中斷
					}
			    if(((TL1+TH1*256)>(4500-DELTA))&&((TL1+TH1*256)<(4500+DELTA)))
				   {
					  ir_data4<<=1;
					  ir_data4|=0x01;
					  count++;
					  TH1=0;
					  TL1=0;
					  TR1=1;
					  if(count==33)
					   {
					    EX1=0;
						en=1;
                        ir_enable = 1;
						}
					   
						
					  return;//數(shù)據(jù)為1,退出中斷
					}
				 count=0;
				 TR1=0;
				 TH1=0;
				 TL1=0;
				 return;   //錯誤,清零退出中斷
			  }
			}
		 }

/********定時器中斷***********/
/*     作用:遙控接收         */
/*****************************/
void timer1_int() interrupt 3
  {
   if(en!=0)
	 {
	  en--;
	  TL1=0;
	  TH1=0;
	 }
    
    EX1=1;
    count=0;
	 TR1=0;
	 TH1=0;
	 TL1=0;
  }

/**********定時器中斷***********/
/*    作用:調時閃動定時        */
/*    閃動時間:50(ms)*20(次)   */
/*******************************/
void timer0_int() interrupt 1
  {
   TH0=0x3c;            //50ms定時
   TL0=0xb0;
	 if(count2++>=20)
	   {
		count2=0;
        flash=~flash;
	   }
  }



/*************************/
/*       延時函數(shù)        */
/*************************/

void delay(unsigned char cnt)
 {
  unsigned char i;
  while(cnt--!=0)
  for(i=10;i!=0;i--);
 }


/***********************/
/*   LCM12864忙檢測    */
/***********************/

void tase_busy()
{
 rs=0;
 _nop_();
 _nop_();
 rw=1;
 _nop_();
 _nop_();
 e=1;
 _nop_();
 _nop_();
 while(P07==1);
 e=0;
}



/***********************/
/*   LCM12864發(fā)送指令  */
/***********************/

void send_dictate(unsigned char interim)
{
 tase_busy();
 rs=0;
 _nop_();
 _nop_();
 rw=0;
 _nop_();
 _nop_();
 P0=interim;
 e=1;
 delay(1);
 e=0;
}


/***********************/
/*   LCM12864發(fā)送數(shù)據(jù)  */
/***********************/

void send_data(unsigned char interim)
{
 tase_busy();
 rs=1;
 _nop_();
 _nop_();
 rw=0;
 _nop_();
 _nop_();
 P0=interim;
 e=1;
 _nop_();
 _nop_();
 e=0;
}

/***********************/
/*  讀取DS1302時間并轉 */
/*     換成10進制      */
/***********************/

init()
 {
  alarm_hour=R1302(0xc1);
  alarm_hour=alarm_hour/16*10+alarm_hour%16;
  alarm_min=R1302(0xc3);
  alarm_min=alarm_min/16*10+alarm_min%16;
 
  sec=R1302(0x81);
  sec=sec/16*10+sec%16;
  min=R1302(0x83);
  min=min/16*10+min%16;
  

  hour=R1302(0x85);
  hour=hour/16*10+hour%16;
  
  day=R1302(0x87);
  day=day/16*10+day%16;

  week=R1302(0x8b);

  month=R1302(0x89);
  month=month/16*10+month%16;
  
  year=R1302(0x8d);
  year=year/16*10+year%16;

  Conversion(0,year,month,day);

  jieqi1= calendar_calculate_solar_term_1();
  jieqi2= calendar_calculate_solar_term_2();
  
 }

/***************************/
/*  寫12864_CGROM(未使用)  */
/***************************/

void cgram()
 {
  uchar addr=0x40;
  uchar k;
  for(k=1;k<32;k+=2)
   {
    send_dictate(addr);
    send_data(san[k]);
    send_data(san[k-1]);
    addr++;
   }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av午夜一区麻豆| 中文字幕日韩av资源站| 日韩精品欧美精品| 欧美在线视频日韩| 亚洲一区日韩精品中文字幕| 欧美亚洲一区二区在线| 亚洲成人av一区二区三区| 欧美日韩国产高清一区二区 | 国产性做久久久久久| 精品一区二区三区在线播放视频| 亚洲一级二级在线| 5月丁香婷婷综合| 蜜臀av国产精品久久久久| 久久婷婷一区二区三区| 成人午夜私人影院| 一级做a爱片久久| 91精品国产色综合久久不卡蜜臀| 国产亚洲精品免费| 色综合色狠狠天天综合色| 亚洲国产另类精品专区| 欧美成人a在线| 波多野结衣中文一区| 亚洲制服欧美中文字幕中文字幕| 精品在线免费观看| 国产精品超碰97尤物18| 欧美日韩精品福利| 国产精品亚洲第一区在线暖暖韩国| 精品视频在线看| 国产一区二区在线影院| 亚洲欧美日韩精品久久久久| 国产精品久久夜| 在线免费观看一区| 国产精品一区二区在线看| 一区二区三区在线观看视频| 欧美mv日韩mv国产| 色婷婷av一区二区三区软件| 男人操女人的视频在线观看欧美| 色欧美88888久久久久久影院| 国产午夜久久久久| 欧美午夜精品一区二区蜜桃 | 国产精品久久久久久亚洲毛片| 日本在线不卡视频一二三区| 国产日产亚洲精品系列| 欧美日韩精品一区视频| 国产伦精品一区二区三区免费迷 | 亚洲免费观看视频| 日韩欧美国产精品一区| 91亚洲永久精品| 麻豆成人在线观看| 亚洲精品视频免费观看| 2019国产精品| 91麻豆精品国产91久久久久| 成人国产亚洲欧美成人综合网 | 91精品欧美久久久久久动漫 | 视频一区二区欧美| 国产精品美女一区二区三区 | www.一区二区| 精品一区二区三区免费| 午夜精品国产更新| 亚洲精品综合在线| 亚洲国产电影在线观看| 欧美不卡123| 亚洲精品综合在线| 成人免费在线观看入口| 久久久久久久免费视频了| 欧美一区二区在线视频| 欧美日韩一区二区三区不卡| a美女胸又www黄视频久久| 国产一区二区美女| 极品少妇一区二区| 老司机免费视频一区二区三区| 欧美xxx久久| 欧美一区三区四区| 欧美日本视频在线| 欧美群妇大交群中文字幕| 色哟哟一区二区| 91老师国产黑色丝袜在线| 成人avav在线| 91污在线观看| 色域天天综合网| 欧美性视频一区二区三区| 色乱码一区二区三区88| 91丨porny丨中文| 91麻豆国产精品久久| 色综合天天综合网天天狠天天| 日日夜夜精品视频免费| 亚洲一区二区综合| 亚洲福利一区二区| 亚洲电影第三页| 日韩国产精品91| 久久国产视频网| 国产一区日韩二区欧美三区| 国产a精品视频| 国产suv一区二区三区88区| 成人深夜福利app| 99久久久无码国产精品| 91视频www| 欧美日韩在线精品一区二区三区激情 | 26uuu精品一区二区| 欧美一区二区成人| 欧美成人r级一区二区三区| 久久精品一区二区三区不卡牛牛 | 国产一区亚洲一区| 成人黄色一级视频| 欧美午夜电影在线播放| 欧美一级久久久久久久大片| 精品日韩在线观看| 国产精品你懂的在线欣赏| 亚洲日韩欧美一区二区在线| 五月天中文字幕一区二区| 日韩国产精品久久| 成人免费视频播放| 欧美午夜精品久久久| 2020国产精品| 一区二区三区在线视频免费| 美女视频黄久久| 懂色av一区二区三区蜜臀| 91成人看片片| 久久久午夜精品理论片中文字幕| 欧美三级电影在线观看| 亚洲精品一区在线观看| 国产精品毛片久久久久久久| 亚洲第一久久影院| 国产91丝袜在线观看| 欧美艳星brazzers| 久久精品欧美一区二区三区麻豆| 欧美成人艳星乳罩| 亚洲精品老司机| 麻豆久久久久久| 在线影视一区二区三区| 久久午夜羞羞影院免费观看| 亚洲综合成人在线视频| 国产精品1区二区.| 欧美日韩国产精选| 日韩理论片一区二区| 激情久久五月天| 欧美日韩大陆一区二区| 中文字幕中文字幕在线一区| 免费在线观看不卡| 欧美在线免费视屏| 国产精品久久久久9999吃药| 看电视剧不卡顿的网站| 在线欧美一区二区| 国产精品二三区| 国产精品99久久久久久似苏梦涵 | 一区二区三区不卡视频| 国产成人自拍高清视频在线免费播放| 久久99精品久久久| 欧美日韩另类国产亚洲欧美一级| 欧美影院午夜播放| 中文字幕一区二区三区精华液| 亚洲欧洲www| 国产精品99久久久久久似苏梦涵| 99精品视频一区| 国产精品久久看| 国产成人在线视频网站| 日韩免费性生活视频播放| 午夜精品视频在线观看| 91福利在线看| 日韩伦理电影网| 99r精品视频| 亚洲免费三区一区二区| 99久久精品国产一区二区三区| 91麻豆免费观看| 国产精品久久久久一区二区三区| 亚洲乱码国产乱码精品精可以看| 午夜欧美大尺度福利影院在线看| 蜜桃在线一区二区三区| 欧美精品高清视频| 日本中文字幕不卡| 宅男噜噜噜66一区二区66| 日韩精品欧美精品| 日韩精品一区二区三区四区| 免费在线看成人av| 精品sm在线观看| 国产精品 日产精品 欧美精品| 波多野结衣视频一区| 国产精品久久毛片| 色综合久久中文综合久久97| 亚洲欧美国产三级| 欧美三级资源在线| 日韩电影一区二区三区四区| 欧美一级欧美一级在线播放| 久久国产剧场电影| 久久精品人人做| 成人黄色免费短视频| 一区二区三区中文字幕精品精品| 日韩国产一二三区| 精品国产乱码久久久久久蜜臀| 亚洲欧洲一区二区在线播放| 99久久伊人精品| 亚洲黄色性网站| 51精品视频一区二区三区| 免费看日韩a级影片| 久久久久久久电影| 成人激情小说网站| 亚洲国产精品一区二区尤物区| 国产超碰在线一区| 亚洲一区日韩精品中文字幕| 欧美一级高清大全免费观看|