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

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

?? closetest.c

?? 通過時鐘芯片計算按鍵開關閉合次數和時間
?? C
?? 第 1 頁 / 共 4 頁
字號:
#include    <absacc.h>      //包含頭文件
#include    <reg51.h>       //包含頭文件

typedef unsigned char  byte;   //定義字節
typedef unsigned int   word;   //定義字

#define XTALL 11.0592      //定義晶振頻率
#define DLY_1MS (word)(1500*XTALL/12)   //1ms延時計數次數設定

#define SECOND  (*(byte xdata*)0x4000)   //秒
#define MINUTE  (*(byte xdata*)0x4002)   //分
#define HOUR    (*(byte xdata*)0x4004)   //小時
#define DAY     (*(byte xdata*)0x4006)   //天
#define WEEK    (*(byte xdata*)0x4007)   //星期
#define MONTH   (*(byte xdata*)0x4008)   //月
#define YEAR    (*(byte xdata*)0x4009)   //年
#define MCA     (*(byte xdata*)0x400a)   //寄存器A
#define MCB     (*(byte xdata*)0x400b)   //寄存器B
#define MCC     (*(byte xdata*)0x400c)   //寄存器C
#define MCD     (*(byte xdata*)0x400d)   //寄存器D

#define TIMES      ((byte xdata*)0x00) //開關時間及次第保存地址

#define DAY_SUM    ((byte xdata*)0x0500) //繼電器閉合總天數
#define PRESS_SUM  ((byte xdata*)0x0501) //繼電器閉合總次數        
#define CUR_DAY    ((byte xdata*)0x0502) //上次中斷日期

/*byte code ASC2[19][5]={	//各字符對應的ASC2碼
		                     {	49,130,131,132,133 }, //1 R L U D_ARROW 
		                     {	50,65,66,67,35 }, //2 A B C #
		                     {	51,68,69,70,63 }, //3 D E F ?
		                     {	52,71,72,73,33 }, //4 G H I !
		                     {	53,74,75,76,60 }, //5 J K L <
		                     {	54,77,78,79,62 }, //6 M N O > 
		                     {	55,80,81,82,83 }, //7 P Q R S
		                     {	56,84,85,86,44 }, //8 T U V ,
		                     {	57,87,88,89,90 }, //9 W X Y Z 
                             {	50,97,98,99,35 }, //2 a b c #
		                     {	51,100,101,102,63 }, //3 d e f ?
		                     {	52,103,104,105,33 }, //4 g h i !
		                     {	53,106,107,108,60 }, //5 j k l <
		                     {	54,109,110,111,62 }, //6 m n o >
		                     {	55,112,113,114,115}, //7 p q r s 
		                     {	56,116,117,118,44 }, //8 t u v ,
		                     {	57,119,120,121,122 }, //9 w x y z
		                     {	41,38,36,32,37}, // $ ¥ 空格  % 
		                     {  48,43,45,47,92 }};//0 + - / \*  */

byte lcddata,datadr,last_day,last_hour,last_minute,key_num,move_num,press_num,days_sum;
byte last_num,timeout,tiancha,check_num,num1,num2,num3;
sbit RS=P3^4;
sbit RW=P3^5;
sbit E=P3^3;
//sbit sqwe_flag=P2^5;
sbit int0_flag=P2^6;
sbit uip_bit=ACC^7;
bit busy_flag,changetime_flag,checktime_flag,key_flag,close_flag,flash_flag,del_flag,daycheck_flag;//sqw_flag;
//////////////////////////////////////////////////////////////////////////
void delay(){//延時子程序
     byte d=8;
	 while(d)d--;
}
void  timer0_isr()  interrupt  1  using 1{      //定時器中斷程序入口*/
      TR0=0;                                      //定時1毫秒進入中斷*/
      TH0=-(DLY_1MS/256);
      TL0=-(DLY_1MS%256);
       TR0=1;                                       //1毫秒中斷次數加1*/   
       num1++;                                         
       if (num1==100)                             //100毫秒定時到*/
         {          
           num1=0;num2++;num3++;
	   }
	   if(num2==5)                                   //500ms延時*/
	      {
		  flash_flag=~flash_flag;num2=0;
	   }
	   if(num3==20){       //2s檢測一次日期變化                       
	      daycheck_flag=1;num3=0;
	   }
   }   
void check(){//忙狀態檢測子程序
     byte d;
     RS=0;
	 RW=1;
	 E=0;
	 E=1;
     d=P1&0x80;
     E=0; 
     if(d!=0) busy_flag=1;
     else busy_flag=0;
}
void check_busy(){//等待直到可以寫入
     do{
	    check();
	 }while(busy_flag);
}
void write_data(){//數據寫入子程序
     check_busy();
     E=0;
	 RS=1;
	 RW=0;
	 E=1;
     P1=lcddata;
	 E=0;
     delay();
}
void write_dr(){//數據寫入地址指定,從0x00---0x13,0x40---0x53
     check_busy();
     E=0;
     RS=0;
     RW=0;
     E=1;
     P1=0x80+datadr;
     E=0;
     delay();
}
void clr_lcd(){//清屏子程序
     check_busy();
     E=0;
	 RS=0;
	 RW=0;
	 E=1;
	 P1=0x01;
	 E=0;
     delay();
}
void set_lcd(){//lcd屏設置為8位,2行,5*7點矩陣
     check_busy();
     RS=0;
	 RW=0;
	 E=1;
	 P1=0x38;
	 E=0;
     delay();
}
void lcd_on(){//lcd屏點亮,顯示
     check_busy();
     RS=0;
	 RW=0;
	 E=1;
	 P1=0x0c;
	 E=0;
     delay();
}
void lcd_off(){//lcd屏熄滅,不顯示
     check_busy();
     RS=0;
     RW=0;
	 E=1;
	 P1=0x08;
	 E=0;
     delay();
}
void cursor_move(){//光標移動模式設定
     check_busy();
     RS=0;
     RW=0;
	 E=1;
	 P1=0x06;
	 E=0;
} 
void start_lcd(){//lcd初始化
     set_lcd();
     lcd_off();
     cursor_move();
}
void read_initstat(){//時鐘芯片忙檢測
    do{
	    ACC=MCA;
		}while(uip_bit);
} 
void int0_place(){//繼電器按下一次總次數和上次按下時間改變
  byte i,j,a,y,z;
  if(!close_flag){//第一次按下繼電器
     last_hour=HOUR;
     last_minute=MINUTE;
	 //MCB=0x80;
     if((*DAY_SUM==0)||(*DAY_SUM==1)){//總天數尚為0,第一次
	    j=*(TIMES+1);//當天的按鍵次數加1
	    if(j<54){
		    j++;
            *(TIMES+1)=j;
		}	
	    *DAY_SUM=1;
        *TIMES=0;
		i=*PRESS_SUM;
		if(i<54){
		    i++;
		    *PRESS_SUM=i;
		}
		for(z=0;z<2*(*PRESS_SUM);z++){
		    *(TIMES+2*(*PRESS_SUM)+3-z)=*(TIMES+2*(*PRESS_SUM)+1-z);
		}
		*TIMES=0;
		*(TIMES+2)=last_hour;
        *(TIMES+3)=last_minute; 
        //MCB=0x20;
     }
     else if(*DAY_SUM>1){//非第一天
		if((2*(*PRESS_SUM)+2*(*DAY_SUM))<109){
			for(y=0;y<2*(*PRESS_SUM);y++){
			     *(TIMES+2*(*DAY_SUM)+2*(*PRESS_SUM)+1-y)=*(TIMES+2*(*DAY_SUM)+2*(*PRESS_SUM)-1-y);
			}
            *TIMES=0;
            a=*(TIMES+1);
			a++;
			*(TIMES+1)=a;
			y=*PRESS_SUM;
			y++;
			*PRESS_SUM=y;
	    }
        else if((2*(*PRESS_SUM)+2*(*DAY_SUM))>=110){
			for(y=0;y<2*(*PRESS_SUM)-2;y++){
			    *(TIMES+109-y)=*(TIMES+109-2-y);
			}
			z=*(TIMES+2*(*DAY_SUM)-1);
			if(z>1){
			     z--;
                 *(TIMES+2*(*DAY_SUM)-1)=z;
		    }
			else if(z==1){
			     for(y=0;y<2*(*PRESS_SUM-1);y++){
				     *(TIMES+2*(*DAY_SUM-1)+y)=*(TIMES+2*(*DAY_SUM-1)+2+y);
				 }
				 i=*DAY_SUM;
				 i--;
				 *DAY_SUM=i;
                 i=*PRESS_SUM;
				 i--;
				 *PRESS_SUM=i;
			}
			else if(z==0){
			     for(y=0;y<2*(*PRESS_SUM-1);y++){
				     *(TIMES+2*(*DAY_SUM-1)+y)=*(TIMES+2*(*DAY_SUM-1)+2+y);
				 }
				 i=*DAY_SUM;
				 i--;
				 *DAY_SUM=i;
			}
            *TIMES=0;
            a=*(TIMES+1);
            a++;
            *(TIMES+1)=a;
	    }
        *(TIMES+2*(*DAY_SUM))=last_hour;
        *(TIMES+2*(*DAY_SUM)+1)=last_minute;
	}
        
    datadr=0x46;//清除以前的次數10位
    write_dr();
    lcddata=0x20;
    write_data();
    datadr=0x46;//寫入新的次數10位
    write_dr();
    lcddata=0x30+*(TIMES+1)/10;
    write_data();
     
    datadr=0x47;//清除以前的次數個位
    write_dr();
    lcddata=0x20;
    write_data();
    datadr=0x47;//寫入新的次數個位
    write_dr();
    lcddata=0x30+*(TIMES+1)%10;
    write_data();

    datadr=0x4b;//清除以前的小時紀錄十位
    write_dr();
    lcddata=0x20;
    write_data();
    datadr=0x4b;//寫入新的小時紀錄十位
    write_dr();
    lcddata=0x30+(*(TIMES+2)>>4);
    write_data();
 
    datadr=0x4c;//清除以前的小時記錄個位
    write_dr();
    lcddata=0x20;
    write_data();
    datadr=0x4c;//寫入新的小時記錄個位
    write_dr();
    lcddata=0x30+*(TIMES+2)&0x0f;
    write_data();     

    datadr=0x4e;//清除以前的分鐘記錄十位
    write_dr();
    lcddata=0x20;
    write_data();
    datadr=0x4e;//寫入新的分鐘記錄十位
    write_dr();
    lcddata=0x30+(*(TIMES+3)>>4);
    write_data();
 
    datadr=0x4f;//清除以前的分鐘記錄個位
    write_dr();
    lcddata=0x20;
    write_data();//寫入新的分鐘記錄個位 
    datadr=0x4f;
    write_dr();
    lcddata=0x30+*(TIMES+3)&0x0f;
    write_data(); 
    close_flag=1; 
   }
}
void start_initstat(){//時鐘芯片初始化
     byte a;
	 MCA=0x20;
	 ACC=MCC;
	 ACC=MCB;
     MCB=0x80;//時鐘芯片時鐘存儲區處理
     if((SECOND>>4)>=6)SECOND=SECOND&0x0f;
     if((SECOND&0x0f)>9)SECOND=((SECOND>>4)<<4);
	 if((MINUTE>>4)>=6)MINUTE=MINUTE&0x0f;
     if((MINUTE&0x0f)>9)MINUTE=((MINUTE>>4)<<4);
	 if(((HOUR>>4)==2)&&((HOUR&0x0f)>3))HOUR=0x00;
	 else if((HOUR>>4)>0x02)HOUR=(HOUR&0x0f);
     else if((HOUR&0x0f)>9)HOUR=(HOUR&0xf0);
	 if((DAY>>4)>3)DAY=0x10;
     if((DAY&0x0f)>9)DAY=1;
	 if(WEEK>=8)WEEK=1; 
	 if((MONTH>>4)>1)MONTH=1;
	 if((MONTH&0x0f)>9)MONTH=1;
	 if((YEAR>>4)>9)YEAR=0;
	 if((YEAR&0x0f)>9)YEAR=0;
     for(a=0;a<=113;a++){//數據改變否?
        if(*(TIMES+a)==0xff)
           *(TIMES+a)=0;
     } 
	 //ACC=MCC;
	 //ACC=MCD;
	 MCB=0x02;   
}
void main_face(){//通常顯示主界面 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
proumb性欧美在线观看| 黑人巨大精品欧美一区| 亚洲国产视频一区二区| 三级久久三级久久| 国产91综合一区在线观看| 91黄色免费观看| 欧美xxxxx牲另类人与| 中文字幕av一区 二区| 亚洲高清在线视频| 粉嫩一区二区三区在线看| 欧美日韩一区二区在线观看 | 精品久久久久久久久久久久久久久 | 一区二区三区中文在线| 男女男精品视频| eeuss鲁片一区二区三区在线看| 欧美亚洲综合在线| 欧美精品日韩一本| 日韩欧美一二三区| 一级日本不卡的影视| 国产剧情一区二区三区| 欧美日韩视频专区在线播放| 国产精品视频在线看| 日本不卡中文字幕| 91黄色免费看| 国产无人区一区二区三区| 日韩精品久久久久久| 91伊人久久大香线蕉| 欧美一区二区免费观在线| 最新不卡av在线| 国产一区二区毛片| 日韩一区二区三区在线观看| 亚洲一区二区三区四区中文字幕| 国产黄人亚洲片| 亚洲精品一区二区三区福利| 亚洲国产cao| 91蝌蚪国产九色| 欧美国产日本视频| 国产精品77777| 日韩一区二区麻豆国产| 午夜久久久久久久久久一区二区| 色婷婷国产精品| 国产精品久久久久aaaa| 国产精品综合网| 日韩一区二区三区在线| 亚洲另类春色国产| 91小视频在线| 亚洲嫩草精品久久| 色综合一个色综合亚洲| 国产精品高潮呻吟久久| 成人高清视频在线| 国产精品天天看| 成人福利视频网站| 一区在线中文字幕| av不卡一区二区三区| 亚洲天堂免费在线观看视频| av电影天堂一区二区在线| 久久久久久麻豆| 国产91精品精华液一区二区三区 | 亚洲卡通欧美制服中文| 91免费精品国自产拍在线不卡| 中文字幕中文字幕中文字幕亚洲无线 | 日韩欧美成人午夜| 狠狠色2019综合网| 久久久久亚洲蜜桃| 免费xxxx性欧美18vr| 538在线一区二区精品国产| 日韩vs国产vs欧美| 久久久久久久久久久黄色| 国产成人无遮挡在线视频| 中文字幕一区二区三区av| 色综合久久精品| 五月婷婷另类国产| 精品国产一区久久| 成人午夜免费电影| 亚洲国产精品麻豆| 精品国产自在久精品国产| 处破女av一区二区| 有坂深雪av一区二区精品| 欧美日韩的一区二区| 狠狠色综合色综合网络| 国产精品婷婷午夜在线观看| 欧美唯美清纯偷拍| 国产专区欧美精品| 亚洲色图制服丝袜| 欧美va亚洲va在线观看蝴蝶网| 国产成人av影院| 亚洲一区免费视频| 久久影院午夜片一区| 色综合久久综合| 久久99久久99小草精品免视看| 中文字幕免费不卡在线| 欧美亚洲日本一区| 国产裸体歌舞团一区二区| 亚洲麻豆国产自偷在线| 日韩区在线观看| 91麻豆免费在线观看| 久久国产日韩欧美精品| 亚洲影视在线播放| 国产亚洲欧美日韩日本| 欧美日韩国产欧美日美国产精品| 国产丶欧美丶日本不卡视频| 爽爽淫人综合网网站| 成人欧美一区二区三区| 欧美喷水一区二区| 久久精品国产在热久久| 中文字幕一区二区三区在线播放| 日韩欧美电影一区| 欧美日产国产精品| 色婷婷精品久久二区二区蜜臂av | 亚洲欧美aⅴ...| 久久久久国产精品人| 日韩一区二区三区在线| 欧美日韩高清一区二区三区| 99精品久久久久久| 成人综合婷婷国产精品久久蜜臀 | 成人18视频日本| 久久国产精品露脸对白| 亚洲国产成人av网| 亚洲小说欧美激情另类| 亚洲精品一二三区| **网站欧美大片在线观看| 欧美极品xxx| 欧美sm美女调教| 欧美v亚洲v综合ⅴ国产v| 日韩午夜在线影院| 欧美精品三级在线观看| 欧美日韩国产大片| 欧美乱熟臀69xxxxxx| 欧美日韩视频一区二区| 欧美熟乱第一页| 欧美少妇性性性| 欧美日本视频在线| 欧美一区二区精品| 日韩欧美在线观看一区二区三区| 欧美人妖巨大在线| 日韩一区二区三区在线| 欧美一区二视频| 在线视频综合导航| 在线免费视频一区二区| 色婷婷综合久久久中文一区二区| 99热精品国产| 91久久精品国产91性色tv| 色婷婷久久久亚洲一区二区三区 | 国产高清成人在线| 国内精品不卡在线| 国产成人精品一区二区三区四区| 成人中文字幕在线| 国产成人日日夜夜| 国产成人免费视频一区| 91首页免费视频| 欧美日韩色一区| 精品国产乱码久久久久久老虎| 欧美激情综合网| 日本伊人午夜精品| 99久久精品免费精品国产| 在线播放日韩导航| 国产精品狼人久久影院观看方式| 香蕉久久一区二区不卡无毒影院| 激情文学综合网| 欧美吻胸吃奶大尺度电影| 欧美国产日本韩| 日本亚洲一区二区| 日本精品一区二区三区四区的功能| 欧美成人性战久久| 亚洲一卡二卡三卡四卡| 国产成人8x视频一区二区| 91精品免费观看| 一区二区三区在线影院| 国产成人精品网址| 日韩一区二区电影网| 一区二区三区久久| 成人免费黄色大片| 精品成人佐山爱一区二区| 亚洲综合久久av| 91麻豆精东视频| 国产精品久久久久三级| 另类小说色综合网站| 欧美夫妻性生活| 一区二区免费在线播放| 波多野洁衣一区| 国产视频一区在线观看| 美女mm1313爽爽久久久蜜臀| 欧美日韩亚洲综合| 亚洲人成精品久久久久久| 成人午夜免费av| 欧美激情综合五月色丁香| 国产乱码精品一区二区三| 日韩视频一区二区三区在线播放 | 一区二区三区日韩精品| va亚洲va日韩不卡在线观看| 国产免费观看久久| 国产精品一二三四| 久久久夜色精品亚洲| 精品午夜久久福利影院| 欧美一区二区三区视频在线观看| 亚洲成a人片在线观看中文| 在线亚洲一区观看| 亚洲国产精品天堂| 欧美日韩国产小视频| 同产精品九九九|