亚洲欧美第一页_禁久久精品乱码_粉嫩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};        //初始化參數
//                              秒   分   時    日   月  星期  年 
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寫入一個字節
uchar  R1302(uchar);                                               // 從DS1302讀出一個字節
void   Set1302(unsigned char* );                                   // 設置初始時間 
ReadTemperature(void);                                             //讀取室溫
void Conversion(bit c,char year,char month,char day);              //計算農歷日期
unsigned char calendar_calculate_solar_term_1(void);               //計算當月第一個節氣對應的公歷日期
unsigned char calendar_calculate_solar_term_2(void);               //計算當月第二個節氣





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)              //設置鬧鐘 開/關(必須在鬧鐘調整狀態下)
	            {
	             alarm_controls=~alarm_controls;
				}
	            
  }
 }



/**********************************************
  遙控外部中斷程序
   
  接收數據:ir_data1--ir_data4
  倍數計數:count
  DELTA   :誤差
/**********************************************/
void int0remoter() interrupt 2
  {
    TR1=0;
    if((TL1+TH1*256)==0)
      {
        count=0;
    	  TL1=0;
		  TH1=0;
		  TR1=1;  //開定時器
		  
		  return;//有遙控信號產生中斷,退出中斷
		}
	 if(!count)
	   {
        if(((TL1+TH1*256)>(27000-DELTA))&&((TL1+TH1*256)<(27000+DELTA)))
		    {
			   count++;
				TH1=0;
				TL1=0;
				TR1=1;
				return;//前導碼正確,準備接收數據,退出中斷
			  }
			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;  //數據為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;//數據為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;  //數據為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;//數據為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;  //數據為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;//數據為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;  //數據為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;//數據為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;
	   }
  }



/*************************/
/*       延時函數        */
/*************************/

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發送指令  */
/***********************/

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發送數據  */
/***********************/

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不卡在线播放| 亚洲一区二区免费视频| 成人免费视频在线观看| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 欧美日韩亚洲综合一区| 91蝌蚪国产九色| 91亚洲国产成人精品一区二三| 粉嫩高潮美女一区二区三区| 国产v日产∨综合v精品视频| 国产91精品久久久久久久网曝门| 国产精品综合网| 国产成人精品免费看| 懂色av中文字幕一区二区三区| 成人黄页毛片网站| 99re免费视频精品全部| 色欧美日韩亚洲| 欧美三区在线视频| 91精品一区二区三区在线观看| 欧美一二三区在线观看| 精品久久久久久久一区二区蜜臀| 久久色视频免费观看| 欧美精彩视频一区二区三区| 中文字幕一区免费在线观看| 亚洲美女偷拍久久| 爽好多水快深点欧美视频| 欧美a一区二区| 国产乱人伦偷精品视频免下载 | 色婷婷亚洲一区二区三区| 一本到不卡免费一区二区| 欧美天堂亚洲电影院在线播放| 337p亚洲精品色噜噜狠狠| 久久久久国产一区二区三区四区 | 国产精品久99| 亚洲永久免费视频| 蜜乳av一区二区| 成人免费毛片app| 欧美性色黄大片| 精品美女一区二区| 中文av一区特黄| 亚洲自拍另类综合| 久久se这里有精品| 91在线观看成人| 欧美一区二区久久久| 国产女同性恋一区二区| 亚洲女与黑人做爰| 毛片av一区二区| eeuss鲁片一区二区三区在线观看| 欧美午夜精品电影| 国产欧美日韩三级| 首页综合国产亚洲丝袜| 粉嫩欧美一区二区三区高清影视| 欧美午夜免费电影| 中文av字幕一区| 日韩电影免费一区| 94色蜜桃网一区二区三区| 日韩视频免费观看高清完整版 | 91精品啪在线观看国产60岁| 欧美激情一区二区在线| 亚洲成精国产精品女| 粉嫩aⅴ一区二区三区四区| 91精品一区二区三区久久久久久| 亚洲同性gay激情无套| 久久99国产精品成人| 欧美在线你懂的| 日本一区二区成人在线| 美女视频网站久久| 欧美色图在线观看| 日韩美女精品在线| 国产一区激情在线| 91 com成人网| 亚洲激情第一区| 丰满岳乱妇一区二区三区| 欧美一区二区三区在线| 一区二区视频在线| 成人永久免费视频| 欧美精品一区二区久久婷婷| 亚洲成av人片www| 91丨porny丨蝌蚪视频| 久久久久亚洲综合| 麻豆国产精品视频| 欧美另类高清zo欧美| 伊人夜夜躁av伊人久久| 粉嫩av一区二区三区| 久久综合九色综合久久久精品综合| 午夜私人影院久久久久| 一本大道久久a久久综合| 国产丝袜在线精品| 精品一区二区免费视频| 欧美日本在线观看| 亚洲国产欧美一区二区三区丁香婷| 成年人午夜久久久| 中国色在线观看另类| 国产mv日韩mv欧美| 欧美激情资源网| 国产一区二区导航在线播放| 精品剧情v国产在线观看在线| 日韩高清一区在线| 欧美一区2区视频在线观看| 无吗不卡中文字幕| 8v天堂国产在线一区二区| 午夜视频久久久久久| 欧美在线观看一二区| 亚洲国产综合色| 欧美色欧美亚洲另类二区| 午夜精品一区二区三区电影天堂| 欧美怡红院视频| 婷婷综合五月天| 5858s免费视频成人| 秋霞影院一区二区| 日韩欧美成人一区| 国产自产高清不卡| 久久嫩草精品久久久久| 国产激情91久久精品导航| 久久精品日产第一区二区三区高清版| 国产在线视频一区二区| 国产亚洲一区二区三区四区| 成人午夜激情视频| 中文字幕制服丝袜成人av| 91在线国产福利| 亚洲综合网站在线观看| 欧美性大战久久久久久久| 午夜亚洲福利老司机| 日韩精品中文字幕一区二区三区| 黄色成人免费在线| 国产精品视频你懂的| 色天天综合色天天久久| 性做久久久久久免费观看| 日韩一区二区三区观看| 国产成人精品www牛牛影视| 中文字幕制服丝袜一区二区三区 | 9191成人精品久久| 国产一区视频导航| 自拍视频在线观看一区二区| 欧美日韩精品一区二区三区四区 | 欧美精品一区二区在线观看| 成人在线综合网| 亚洲高清免费观看| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 中文字幕国产一区| 一本色道久久加勒比精品| 日本亚洲一区二区| 国产欧美一区二区精品久导航| 91视频一区二区| 水蜜桃久久夜色精品一区的特点| 久久综合中文字幕| 91视频一区二区三区| 另类小说图片综合网| 国产精品久久三区| 欧美久久久一区| 国产.欧美.日韩| 偷偷要91色婷婷| 国产精品伦理一区二区| 欧美片在线播放| 国产精品1024| 午夜激情综合网| 中文字幕欧美激情| 在线不卡中文字幕| jlzzjlzz国产精品久久| 日韩一区精品视频| 亚洲免费在线视频一区 二区| 欧美一区二区三区四区高清| 不卡的av在线播放| 奇米色一区二区三区四区| 亚洲欧美怡红院| 欧美电影免费观看高清完整版| www.欧美亚洲| 国产一区二区三区四区五区入口| 亚洲一二三四在线观看| 国产日韩欧美a| 欧美二区乱c少妇| 91在线精品秘密一区二区| 国产剧情一区二区| 日韩国产高清在线| 一区二区视频在线看| 中文字幕欧美激情| 久久伊人蜜桃av一区二区| 欧美男同性恋视频网站| av电影在线不卡| 国产美女视频91| 美国三级日本三级久久99| 亚洲一区自拍偷拍| 国产精品国产三级国产| 国产夜色精品一区二区av| 日韩一区二区视频| 欧美日韩一区二区三区高清| 一本久道久久综合中文字幕 | 3d动漫精品啪啪| 欧美午夜在线一二页| 一本色道亚洲精品aⅴ| bt欧美亚洲午夜电影天堂| 国产乱码一区二区三区| 青青青爽久久午夜综合久久午夜| 一区二区理论电影在线观看| 国产精品福利电影一区二区三区四区| 欧美精品一区二区三区一线天视频 | 欧美综合色免费| 91成人免费在线视频| 色综合激情久久| 91在线观看视频|