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

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

?? keycount.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一区二区三区免费野_久草精品视频
色婷婷综合久久| 国产一区二区0| 亚洲人成网站影音先锋播放| 久久综合九色欧美综合狠狠| www激情久久| 久久久久久影视| 久久精品一区二区三区不卡| 国产精品视频一区二区三区不卡| 国产亚洲一区二区在线观看| 亚洲国产高清在线观看视频| 国产精品丝袜91| 亚洲制服丝袜在线| 婷婷丁香激情综合| 韩国视频一区二区| 成人精品鲁一区一区二区| zzijzzij亚洲日本少妇熟睡| 在线观看日韩毛片| 日韩欧美一区中文| 国产精品日韩成人| 亚洲在线一区二区三区| 日本午夜精品视频在线观看| 国产毛片精品视频| 99久久精品免费精品国产| 欧美三级日韩三级国产三级| 精品久久久久久久久久久久包黑料 | 最新欧美精品一区二区三区| 日韩视频一区在线观看| 91精品在线观看入口| 日韩欧美一卡二卡| 精品国偷自产国产一区| 国产亚洲欧美在线| 亚洲综合视频在线观看| 国内精品写真在线观看| 99久久免费精品高清特色大片| 欧美日韩中文字幕一区| 26uuuu精品一区二区| 18成人在线观看| 紧缚奴在线一区二区三区| 99国产欧美另类久久久精品 | 色婷婷亚洲婷婷| 国产三级一区二区| 日韩一级片网址| 午夜精品久久久久久久99水蜜桃 | 日韩一二在线观看| 国产精品天天看| 麻豆专区一区二区三区四区五区| 成人精品视频一区二区三区尤物| 欧美日韩一二区| 欧美激情综合五月色丁香小说| 香蕉成人伊视频在线观看| 成人深夜福利app| 日韩精品在线看片z| 亚洲黄色免费电影| 国产一区视频在线看| 欧美优质美女网站| 国产精品久久久久影院老司| 久久精品噜噜噜成人av农村| 欧美精品vⅰdeose4hd| 中文字幕亚洲不卡| 国产精一区二区三区| 欧美一区二区高清| 亚洲国产精品欧美一二99 | 亚洲高清久久久| 99精品欧美一区二区蜜桃免费| 久久久久久毛片| 美女网站色91| 日韩一区二区电影| 琪琪一区二区三区| 91精品国产91综合久久蜜臀| 性做久久久久久免费观看| 在线精品视频免费观看| 亚洲人成精品久久久久| 99精品偷自拍| 亚洲蜜桃精久久久久久久| av一二三不卡影片| 中文字幕在线观看不卡视频| 成人午夜大片免费观看| 国产欧美一区二区三区在线老狼| 国产福利一区在线| 日本一区二区不卡视频| 99热精品一区二区| 国产精品卡一卡二| 日本高清不卡视频| 五月天网站亚洲| 日韩欧美国产综合| 国产一区二区在线看| 国产欧美中文在线| 色噜噜狠狠成人中文综合| 一区二区三区不卡视频在线观看 | 日日夜夜精品视频免费| 日韩一区二区三区视频在线| 韩国精品主播一区二区在线观看| 欧美精品一区二区久久久| 国产精品自拍av| 亚洲精品久久久蜜桃| 欧美日本在线看| 国产一区 二区| 亚洲激情综合网| 日韩一区二区三免费高清| 国产成人精品亚洲777人妖| 亚洲男人的天堂在线观看| 欧美日韩一本到| 国产91精品欧美| 一区二区欧美精品| 日韩欧美色综合网站| 精品国产免费视频| 国产精品一二三在| 国产精品丝袜在线| 欧美巨大另类极品videosbest| 天堂午夜影视日韩欧美一区二区| 精品999久久久| 一本在线高清不卡dvd| 奇米影视一区二区三区| 国产精品理伦片| 欧美成人a在线| 一本大道久久a久久精品综合| 免费xxxx性欧美18vr| 国产精品福利一区| 精品日韩欧美在线| 91福利在线播放| 国产一区二区伦理| 香蕉乱码成人久久天堂爱免费| 久久精品夜夜夜夜久久| 欧美视频第二页| 成人综合在线网站| 麻豆91在线看| 午夜电影久久久| 自拍偷在线精品自拍偷无码专区| 日韩一区二区在线免费观看| 一本色道久久综合亚洲91| 久久99久久99| 日韩福利电影在线| 国产丝袜美腿一区二区三区| 91精品国产综合久久香蕉麻豆| 99re视频精品| av欧美精品.com| 国产激情视频一区二区三区欧美| 日本va欧美va精品| 香蕉av福利精品导航| 亚洲欧洲国产日韩| 欧美激情在线看| 国产亚洲欧洲997久久综合 | 88在线观看91蜜桃国自产| 99精品国产一区二区三区不卡| 久久国产夜色精品鲁鲁99| 日本不卡在线视频| 午夜精品福利一区二区三区av | 日韩欧美精品在线| 6080国产精品一区二区| 欧美三级午夜理伦三级中视频| 欧美中文字幕亚洲一区二区va在线 | 国产毛片精品一区| 午夜视频在线观看一区| 久久成人综合网| 免费在线观看成人| 九色porny丨国产精品| 蜜桃视频第一区免费观看| 日韩在线a电影| 久久er99精品| 国产麻豆精品久久一二三| 国产一区二区三区免费播放| 国产精品自拍毛片| 不卡一区在线观看| 在线观看一区二区视频| 精品视频全国免费看| 日韩一级在线观看| 国产日韩精品久久久| 椎名由奈av一区二区三区| 亚洲福利国产精品| 精品亚洲免费视频| 成人午夜电影久久影院| 在线亚洲+欧美+日本专区| 在线视频欧美精品| 91精品一区二区三区在线观看| 欧美xxxxx裸体时装秀| 国产清纯美女被跳蛋高潮一区二区久久w | 中文字幕av一区二区三区高| 久久毛片高清国产| 亚洲欧美日韩国产中文在线| 偷拍亚洲欧洲综合| 国产精品77777竹菊影视小说| 97se狠狠狠综合亚洲狠狠| 欧美挠脚心视频网站| 久久精品男人天堂av| 亚洲国产美女搞黄色| 国产电影一区二区三区| 一本久久a久久精品亚洲| 欧美一区二区视频在线观看2022| 久久嫩草精品久久久精品一| 亚洲视频狠狠干| 日韩福利视频导航| 91免费观看国产| 欧美精品一区二区久久婷婷| 亚洲精品中文字幕乱码三区| 看电视剧不卡顿的网站| 色悠悠亚洲一区二区| 久久精品视频在线看| 亚洲成人免费在线观看| 99精品一区二区| 久久色视频免费观看|