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

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

?? 繪圖型lcd時鐘.c

?? 幾個C應用實例:繪圖型LCD時鐘,89S51演奏生日快樂...等等
?? C
字號:
/* 繪圖型 LCD 數(shù)字時鐘 */
                  
#include <REGX51.H>

#define TIMER0_COUNT 0xDC11     /* 10000h-((11,059,200/
                                                           (12*FREQ))-
17               */

/*繪圖型 LCD 指令 */
#define  GLCD_OFF                        62
#define  GLCD_ON                         63
#define  GLCD_START_LINE_0       192
#define  SET_PAGE                         184
#define  SET_Y_ADDRESS_0          64
#define  CLEAR                              0
/*繪圖型 LCD 控制線 */
#define  ENABLE                            1
#define  DISABLE                           0
#define  READ                                1
#define  WRITE                              0
#define  COMMAND                       0
#define  DATA                                1
#define  GLCD_RESET                   P2_2
#define  GLCD_CS2                       P2_3
#define  GLCD_CS1                       P2_4
#define  GLCD_D_I                       P2_5
#define  GLCD_R_W                P2_6
#define  GLCD_ENABLE          P2_7
//
#define  mode_button               P2_0
#define  up_button                   P2_1

typedef struct { 
                char    hour;
                char    minute;
                char    second;
} time;

typedef struct { 
                char    year;
                char    month;
                char    day;
} date;

time now={23,59,0},display;
date today={5,9,1},tmpday;

unsigned char gx,gy,mode;
static unsigned timer0_tick;
char code int2char[]="0123456789";
char code dayofmonth[]={31,28,31,30,31,30,31,31,30,31,30,31};

unsigned char code digit[10][4][8]=
//0
{{
{0X00,0X00,0X00,0XFC,0XFE,0X03,0X01,0X81},
{0XC1,0X61,0X31,0X1B,0XFE,0XFC,0X00,0X00},
{0X00,0X00,0X00,0X0F,0X1F,0X36,0X23,0X21},
{0X20,0X20,0X20,0X30,0X1F,0X0F,0X00,0X00}},
//1
{
{0X00,0X00,0X00,0X00,0X00,0X04,0X06,0XFF},
{0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X00},
{0X00,0X00,0X00,0X00,0X20,0X20,0X20,0X3F},
{0X3F,0X20,0X20,0X20,0X00,0X00,0X00,0X00}},
//2
{
{0X00,0X00,0X00,0X1C,0X1E,0X03,0X01,0X81},
{0XC1,0X41,0X61,0X33,0X3E,0X1C,0X00,0X00},
{0X00,0X00,0X00,0X3C,0X3E,0X33,0X31,0X31},
{0X30,0X30,0X30,0X30,0X30,0X3C,0X00,0X00}},
//3
{
{0X00,0X00,0X00,0X0C,0X0E,0X02,0X01,0X41},
{0X41,0XE1,0XE1,0XB2,0X1E,0X0C,0X00,0X00},
{0X00,0X00,0X00,0X0C,0X1C,0X10,0X20,0X20},
{0X20,0X20,0X20,0X11,0X1F,0X0E,0X00,0X00}},
//4
{
{0X00,0X00,0X80,0XC0,0X60,0X30,0X18,0X0C},
{0X06,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00},
{0X00,0X07,0X07,0X04,0X04,0X04,0X04,0X24},
{0X24,0X3F,0X3F,0X24,0X24,0X04,0X00,0X00}},
//5
{
{0X00,0X00,0X00,0XFF,0XFF,0X43,0X23,0X23},
{0X23,0X23,0X23,0X43,0XC3,0X80,0X00,0X00},
{0X00,0X00,0X00,0X0C,0X1C,0X10,0X20,0X20},
{0X20,0X20,0X20,0X10,0X1F,0X0F,0X00,0X00},},
//6
{
{0X00,0X00,0X00,0XFC,0XFE,0X82,0X41,0X41},
{0X41,0X41,0X41,0XC7,0X86,0X00,0X00,0X00},
{0X00,0X00,0X00,0X0F,0X1F,0X30,0X20,0X20},
{0X20,0X20,0X20,0X10,0X1F,0X0F,0X00,0X00}},
//7
{
{0X00,0X00,0X00,0X0F,0X03,0X03,0X03,0X03},
{0X83,0XC3,0X63,0X33,0X1F,0X0F,0X00,0X00},
{0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F},
{0X3F,0X00,0X00,0X00,0X00,0X00,0X00,0X00}},
//8
{
{0X00,0X00,0X00,0X1C,0XBE,0XE2,0X41,0X41},
{0X41,0X41,0XE2,0XBE,0X1C,0X00,0X00,0X00},
{0X00,0X00,0X0E,0X1F,0X11,0X20,0X20,0X20},
{0X20,0X20,0X20,0X11,0X1F,0X0E,0X00,0X00}},
//9
{
{0X00,0X00,0X00,0X7C,0XFE,0X82,0X01,0X01},
{0X01,0X01,0X82,0XC6,0XFC,0XF8,0X00,0X00},
{0X00,0X00,0X00,0X0C,0X1C,0X18,0X21,0X21},
{0X21,0X21,0X10,0X1C,0X0F,0X03,0X00,0X00}}};
unsigned char code slash[4][8]=
///
{
{0X00,0X00,0X00,0X00,0X00,0X80,0XC0,0X60},
{0X30,0X18,0X0C,0X06,0X03,0X01,0X00,0X00},
{0X30,0X18,0X0C,0X06,0X03,0X01,0X00,0X00},
{0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00}};
//:
unsigned char code comma[4][8]=
{
{0X00,0X00,0X00,0X00,0X00,0X00,0X10,0X38},
{0X38,0X10,0X00,0X00,0X00,0X00,0X00,0X00},
{0X00,0X00,0X00,0X00,0X00,0X00,0X02,0X07},
{0X07,0X02,0X00,0X00,0X00,0X00,0X00,0X00}};
unsigned char code space[4][8]=
{
{0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00},
{0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00},
{0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00},
{0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00}};
unsigned char code token[7][4][8]=
{
{
{0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00},
{0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00},
{0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00},
{0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00}},
//現(xiàn)
{
{0X42,0X42,0XFE,0X43,0X42,0X00,0X00,0XFE},
{0X49,0X49,0X49,0X49,0XFF,0X00,0X00,0X00},
{0X08,0X18,0X0F,0X04,0X22,0X20,0X20,0X13},
{0X0E,0X01,0X01,0X3E,0X23,0X20,0X30,0X00}},
//在
{
{0X02,0X02,0X02,0X84,0X64,0X1C,0X87,0X84},
{0X84,0XF4,0X84,0X84,0XC4,0X86,0x04,0X00},
{0X04,0X02,0X01,0X3F,0X00,0X10,0X10,0X10},
{0X10,0X1F,0X10,0X10,0X10,0X18,0X10,0X00}},
//時
{
{0XFC,0X44,0X44,0XFC,0X80,0X92,0X92,0X52},
{0X52,0X5F,0X52,0XF2,0X9A,0XD2,0X80,0X00},
{0X0F,0X04,0X04,0X0F,0X00,0X00,0X02,0X04},
{0X80,0X00,0X40,0X1F,0X00,0X00,0X00,0X00}},
//間
{
{0X00,0XFF,0X15,0X15,0X15,0X95,0X9F,0X10},
{0X10,0X9F,0X95,0X15,0X15,0X15,0XFF,0X00},
{0X00,0X3F,0X00,0X00,0X00,0X0F,0X0A,0X0A},
{0X0A,0X0A,0X0F,0X00,0X20,0X20,0X1F,0X00}},
//是
{
{0X40,0X40,0X40,0X5F,0X55,0X55,0X55,0XD5},
{0X55,0X55,0X55,0X5F,0X40,0X60,0X40,0X00},
{0X20,0X10,0X08,0X07,0X08,0X10,0X20,0X3F},
{0X22,0X22,0X22,0X23,0X22,0X20,0X20,0X00}},
//:
{
{0X00,0X00,0X00,0X00,0X00,0X00,0X10,0X38},
{0X38,0X10,0X00,0X00,0X00,0X00,0X00,0X00},
{0X00,0X00,0X00,0X00,0X00,0X00,0X02,0X07},
{0X07,0X02,0X00,0X00,0X00,0X00,0X00,0X00}}};

void check_GLCD_busyflag(void)
{
        unsigned char   x;

        GLCD_R_W=READ;
        GLCD_D_I=COMMAND;
        GLCD_ENABLE=ENABLE;
        P0=255;
        do {
                x=P0 && 128;
        } while(x);
        GLCD_ENABLE=DISABLE;
        GLCD_D_I=1;
        GLCD_R_W=1;
}

void write_GLCD_command(unsigned command)
{
        GLCD_R_W=WRITE;
        GLCD_D_I=COMMAND;
        GLCD_ENABLE=ENABLE;
        P0=command;
        GLCD_ENABLE=DISABLE;
        GLCD_D_I=1;
        GLCD_R_W=1;
        check_GLCD_busyflag();
}

void write_GLCD_data(unsigned GLCDdata)
{
        GLCD_R_W=WRITE;
        GLCD_D_I=DATA;
        GLCD_ENABLE=ENABLE;
        P0=GLCDdata;
        GLCD_ENABLE=DISABLE;
        GLCD_D_I=0;
        GLCD_R_W=1;
        check_GLCD_busyflag();
}

void clear_GLCD()
{
        int     i,j;

        GLCD_RESET=0;
        for(i=0;i<2;i++);
        GLCD_RESET=1;
        GLCD_CS1=1;
        GLCD_CS2=1;
        write_GLCD_command(GLCD_ON);    
        write_GLCD_command(GLCD_START_LINE_0);
        for(i=0;i<8;i++)
        {
                write_GLCD_command(SET_PAGE+i); 
                write_GLCD_command(SET_Y_ADDRESS_0);    
                for(j=0;j<64;j++)
                        write_GLCD_data(0);
        }               
}

void show_pattern(unsigned char page,unsigned char y,
                  unsigned char *pattern,unsigned char len)
{
        int i;

        write_GLCD_command(SET_PAGE+page);      
        write_GLCD_command(SET_Y_ADDRESS_0+y);  
        for(i=0;i<len;i++)
        {
                write_GLCD_data(*pattern);
                pattern++;
        }
}

void display_GLCD_data(unsigned char *p)
{
        if (gx<64) {
          GLCD_CS1=1;
          GLCD_CS2=0;
          show_pattern(gy,gx,p,8);
          show_pattern(gy,gx+8,p+8,8);
          show_pattern(gy+1,gx,p+16,8);
          show_pattern(gy+1,gx+8,p+24,8);
        } else
        {
          GLCD_CS1=0;
          GLCD_CS2=1;
          show_pattern(gy,gx-64,p,8);
          show_pattern(gy,gx-58,p+8,8);
          show_pattern(gy+1,gx-64,p+16,8);
          show_pattern(gy+1,gx-58,p+24,8);
        }
        gx=gx+16;
}

void display_GLCD_string(unsigned char *p,int len)
{
        int i;

        for(i=0;i<len;i++)
                display_GLCD_data((p+32*i));
}
void display_GLCD_number(char number)
{
        int x,y;
        x=number/10;
        y=number%10;
        display_GLCD_data(digit[x]);
        display_GLCD_data(digit[y]);
}

void gotoxy(unsigned x,unsigned y)
{
        gy=y;
        gx=x;
}

void display_time(time dispaly_time)
{
        gotoxy(0,2);
        display_GLCD_number(dispaly_time.hour);
        display_GLCD_data(comma);
        display_GLCD_number(dispaly_time.minute);
        display_GLCD_data(comma);
        display_GLCD_number(dispaly_time.second);
}

void display_date(date tmp_date)
{
        gotoxy(0,4);
        display_GLCD_number(tmp_date.year);
        display_GLCD_data(slash);
        display_GLCD_number(tmp_date.month);
        display_GLCD_data(slash);
        display_GLCD_number(tmp_date.day);
}
char monthday(char year,char month)
{
        if(month==2 && year%4==0)        //潤年的2月有29天
            return(29);
   else
            return(dayofmonth[month-1]);   //非閏年時的該月份天數(shù)

}
static void timer0_isr(void) interrupt 1 using 1
{

  TR0=0;
  TL0=(TIMER0_COUNT & 0x00FF);
  TH0=(TIMER0_COUNT >> 8);
  TR0=1;
  timer0_tick++;
  if (timer0_tick==100) {
        timer0_tick=0;
        now.second++;
        if (now.second==60) {
              now.second=0;
              now.minute++;
              if (now.minute==60) {
                    now.minute=0;
                    now.hour++;
                    if (now.hour==24) {
                          now.hour=0;
                          today.day++;
                          if (today.day>monthday(today.year,today.mont
h)) {
                                today.day=0;
                                today.month++;
                                if(today.month==13) {
                                     today.month=1;
                                     today.year++;
                                }
                           }
                           if(mode!=0) return;
                           display_date(today);
                    }
                }
        }
        if(mode!=0) return;
        display_time(now);
  }             
}

static void timer0_initialize(void)
{

  EA=0;   
  timer0_tick=0;
  TR0=0;
  TMOD &= 0XF0;
  TMOD |=0x01;
  TL0=(TIMER0_COUNT & 0x00FF);
  TH0=(TIMER0_COUNT >> 8);
  PT0=0;
  ET0=1;
  TR0=1;
  EA=1;
}
void delay(void)
{
        unsigned char i,j;
        for(i=0;i<125;i++)
                for(j=0;j<255;j++)
                ;
}
char gotkey() {
        if (mode_button==0) {
                delay();
                if (mode_button==0) return(0);
        }
        if (up_button==0) {
                delay();
                if (up_button==0) return(1);
        }
        return(15);
}

void main (void)
{
        unsigned char keys,i=0;
  
        clear_GLCD();
        gotoxy(0,0);
        display_GLCD_string(token,7);
        display_time(now);
        display_date(today);
        timer0_initialize();
        mode=0;
        do {
                switch(keys) {
                   case 0 :
                      mode++;
                      if(mode==6) {
                              mode=0;
                              now=display;
                              today=tmpday;
                              break;
                      }
                      if(mode==1) {
                              display=now;
                              tmpday=today;
                              break;
                      }
                      break;
                   case 1 :
                      if(mode==0) break;
                      switch(mode) {
                         case 1 : display.hour++;
                                  if(display.hour>=24) display.hour=0;
                                  display_time(display);
                                  break;
                         case 2 : display.minute++;
                                  if(display.minute>=60) display.minut
e=0;
                                  display_time(display);
                                  break;
                         case 3 : tmpday.year++;
                                  if(tmpday.year>=100) tmpday.year=0;
                                  display_date(tmpday);
                                  break;
                         case 4 : tmpday.month++;
                                  if(tmpday.month>12) tmpday.month=1;
                                  display_date(tmpday);
                                  break;
                         case 5 : tmpday.day++;
                                  if(tmpday.day>monthday
                                    (tmpday.year,tmpday.month)) 
                                    tmpday.day=1;
                              display_date(tmpday);
                              break;
                  }
                  break;
          }
     } while(1);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产成人私人影院tom| ●精品国产综合乱码久久久久| 精品日产卡一卡二卡麻豆| 中文字幕一区二区不卡| 蜜臀av一级做a爰片久久| eeuss鲁片一区二区三区| 精品国产乱码久久久久久免费| 一区二区三区在线视频免费| 国产盗摄女厕一区二区三区| 欧美一区二区三区视频免费播放| 中文字幕一区二区三区精华液 | 蜜桃视频免费观看一区| 91免费在线看| 国产精品无码永久免费888| 狠狠色丁香婷婷综合| 在线播放一区二区三区| 亚洲午夜精品网| 91亚洲精品乱码久久久久久蜜桃| 日本一区二区在线不卡| 精品亚洲欧美一区| 日韩精品一区二区三区三区免费| 五月激情丁香一区二区三区| 91黄色激情网站| 一区二区三区日本| 欧洲生活片亚洲生活在线观看| 国产精品激情偷乱一区二区∴| 国产福利一区二区三区视频在线| 日韩一区二区三区免费看| 天天av天天翘天天综合网色鬼国产 | 亚洲精品国产精华液| a级高清视频欧美日韩| 国产精品女上位| 不卡的av网站| 亚洲色图第一区| 91麻豆精品秘密| 亚洲香肠在线观看| 欧美日韩不卡一区二区| 日韩中文字幕一区二区三区| 欧美剧在线免费观看网站| 日韩电影在线免费看| 欧美一区在线视频| 国产综合久久久久久鬼色| 26uuu久久天堂性欧美| 国产成人午夜片在线观看高清观看| 久久久精品黄色| www.视频一区| 亚洲一线二线三线久久久| 欧美日韩视频一区二区| 蜜桃视频在线一区| 久久精品夜夜夜夜久久| av电影在线观看一区| 亚洲综合一区二区三区| 91精品在线观看入口| 国产一区二区三区综合| 中文字幕一区二区三区四区不卡| 日本精品一区二区三区四区的功能| 一区二区三区欧美在线观看| 日韩一区二区三区免费看| 国产风韵犹存在线视精品| 亚洲人精品一区| 欧美一区二区三区在线观看| 国产精品99久久久久久久vr| 亚洲欧美怡红院| 欧美一区二区三区不卡| 国产福利精品导航| 五月激情六月综合| 国产精品午夜春色av| 制服丝袜av成人在线看| 国产999精品久久久久久绿帽| 一区二区三区欧美日| 久久久久亚洲综合| 欧美久久高跟鞋激| www.激情成人| 麻豆久久一区二区| 一级日本不卡的影视| 久久久久久久久久久黄色| 欧美亚一区二区| 懂色一区二区三区免费观看| 午夜精品在线看| 国产精品久久国产精麻豆99网站| 91精品国产综合久久婷婷香蕉| thepron国产精品| 久久精品99国产精品| 一区二区三区欧美在线观看| 国产女主播在线一区二区| 5566中文字幕一区二区电影| 9l国产精品久久久久麻豆| 精品亚洲免费视频| 亚洲国产aⅴ成人精品无吗| 国产精品久久久久久久裸模| 欧美成人三级电影在线| 欧美日韩国产首页在线观看| 97精品久久久午夜一区二区三区 | 91精品国产综合久久香蕉麻豆| 成人爽a毛片一区二区免费| 久久成人18免费观看| 天堂在线一区二区| 亚洲午夜在线视频| 亚洲综合在线免费观看| 成人免费一区二区三区视频| 国产欧美久久久精品影院| 久久影院午夜片一区| 精品裸体舞一区二区三区| 91精品免费观看| 欧美久久久久免费| 欧美日本视频在线| 欧美美女一区二区在线观看| 欧美在线视频日韩| 欧美三级日韩三级国产三级| 91久久线看在观草草青青| 色悠悠久久综合| 91高清视频在线| 欧美调教femdomvk| 欧美午夜寂寞影院| 欧美日韩国产综合一区二区三区| 欧美亚洲综合在线| 欧美伦理电影网| 日韩免费一区二区| 久久亚洲精华国产精华液| 久久欧美中文字幕| 欧美激情艳妇裸体舞| 国产精品久久久久久久久图文区 | 一区二区三区中文字幕在线观看| 亚洲色图视频免费播放| 亚洲宅男天堂在线观看无病毒| 亚洲一区二区三区三| 五月天网站亚洲| 精品一区免费av| 国产成人精品午夜视频免费| 成人av网站在线观看| 99精品视频在线播放观看| 色国产精品一区在线观看| 欧美在线小视频| 日韩欧美aaaaaa| 久久久夜色精品亚洲| 亚洲欧美在线高清| 日韩av网站免费在线| 国产精品一区2区| www..com久久爱| 91精品综合久久久久久| 国产亚洲欧美在线| ...av二区三区久久精品| 五月天网站亚洲| 高清在线成人网| 欧美午夜影院一区| 亚洲精品一区在线观看| ...中文天堂在线一区| 蜜桃视频一区二区三区在线观看| 国产激情视频一区二区三区欧美| 日本福利一区二区| 国产精品免费久久久久| 亚洲二区在线观看| 国产成人午夜99999| 欧美视频一区在线| 国产日韩欧美精品电影三级在线| 亚洲精品成a人| 国产一区二区不卡老阿姨| 91麻豆精东视频| 久久久久久99久久久精品网站| 一个色妞综合视频在线观看| 国产综合久久久久久鬼色| 欧美四级电影网| 国产精品乱人伦| 久久精品久久99精品久久| 日本精品一级二级| 中文在线一区二区| 狠狠色2019综合网| 欧美精品久久久久久久多人混战| 中文字幕在线不卡国产视频| 久久99久久99| 欧美精品视频www在线观看| 中文字幕日韩一区| 国产98色在线|日韩| 久久影视一区二区| 免费成人结看片| 欧美日韩美女一区二区| 最近日韩中文字幕| 成人午夜视频福利| 国产亚洲视频系列| 国产综合久久久久久久久久久久| 欧美精品第1页| 亚洲国产精品嫩草影院| 91欧美一区二区| 亚洲视频综合在线| 成人av网站大全| 国产精品久久久久久亚洲毛片 | 久久综合成人精品亚洲另类欧美 | 亚洲精品久久久久久国产精华液| 成人午夜碰碰视频| 国产网站一区二区| 国产精品一线二线三线| 精品国产1区2区3区| 久久99久久久欧美国产| 日韩一区二区免费在线观看| 五月婷婷色综合| 91精品国产一区二区| 日本不卡不码高清免费观看| 欧美一区二区三区视频在线观看| 日韩和欧美一区二区三区| 欧美一区二区三区白人|