久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1779|回復: 0
打印 上一主題 下一主題
收起左側

萬年歷源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:210871 發表于 2017-6-13 17:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="2013-03-26  Mon";
uchar code table1[]="   00:00:00";
//uchar code table2[][7]={"Mon","Tue","Wes","Thi","Fri","Sat","Sun"};

sbit key1=P3^7;
sbit key2=P3^6;
sbit key3=P3^5;
sbit key4=P3^4;
sbit key5=P3^3;
sbit key6=P3^2;
sbit e=P1^2;
sbit rw=P1^1;
sbit rs=P1^0;
uchar i,sec=0,min=0,hour=0,t=0;
uint year=2013,month=3,day=26;
uchar a=0,m=0;

void writecom(uchar x);
void writedata(uchar date);
void init();
void delay(uchar z);
void write1(uchar dizhi,uint shuju);
void writeyear(uchar dizhi,uint shuju);

void write(uchar dizhi,uchar shuju);
void keyscan();
void xingqi(uchar k);

void main()
{
        init();
                for(i=0;i<15;i++)
     {        writedata(table[i]);
                delay(5);
          }
        writecom(0x80+0x40);
        for(i=0;i<11;i++)
     {
                writedata(table1[i]);
                delay(5);
          }
   while(1)
   {
           keyscan();
    if(key6==0)
        {         
         TR0=1;
                 writecom(0x0c);
        }   
   }
}

void init()
{
    rw=0;
        e=0;
    writecom(0x38);
    writecom(0x0c);
    writecom(0x06);
    writecom(0x01);
        writecom(0x80);       
        TMOD=0x01;
        TCON=0x12;
        EX1=1;
        EA=1;
        ET0=1;
        TR0=1;
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;

}
void writecom(uchar x)
{
   rw=0;
   rs=0;
   P0=x;
   delay(5);
   e=1;
   delay(5);
   e=0;
}

void writedata(uchar date)
{
        rs=1;
        rw=0;
    P0=date;
        delay(5);
        e=1;
        delay(5);
        e=0;
}
void write(uchar dizhi,uchar shuju)
{
        uchar ge,shi;
        ge=shuju%10;
        shi=shuju/10;
        writecom(0x80+0x40+dizhi);
        writedata(0x30+shi);
        writedata(0x30+ge);
}

void write1(uchar dizhi,uint shuju)
{
        uchar ge1,shi1;
        ge1=shuju%10;
        shi1=shuju/10;
        writecom(0x80+dizhi);
        writedata(0x30+shi1);
        writedata(0x30+ge1);
}

void writeyear(uchar dizhi,uint shuju)
{
        uchar ge,shi,bai,qian;
        ge=shuju%10;
        shi=shuju%100/10;
        bai=shuju%1000/100;
        qian=shuju/1000;
        writecom(0x80+dizhi);
        writedata(0x30+qian);
        writedata(0x30+bai);
        writedata(0x30+shi);
        writedata(0x30+ge);
}
void timer0() interrupt 1
{
   TH0=(65536-50000)/256;
   TL0=(65536-50000)%256;
   t++;
           if(t==7)
   {
                t=0;
                sec++;
                if(sec==60)
                {
                        sec=0;
                        min++;
                        if(min==60)
                        {
                                min=0;
                                hour++;
                                if(hour==24)
                                {
                                        hour=0;
                                       
                                        day++;
                                        if(day==30)
                                        {
                                                day=1;
                                                month++;
                                                if(month==12)
                                                {
                                                        month=1;
                                                        year++;
                                                        if(year==9999)
                                                        {
                                                                year=0;
                                                        }
                                                        writeyear(0,year);
                                                        writecom(0x80+0);
                                                }
                                                write1(5,month);
                                                writecom(0x80+6);
                                        }
                                        write1(8,day);
                                        writecom(0x80+9);
                                        writecom(0x80+12);
                                        m++;
                                        if(m==7)
                                                m=0;
                                        xingqi(m);
                                       
                                }
                                write(3,hour);
                                writecom(0x80+0x40+4);
                        }
                        write(6,min);
                        writecom(0x80+0x40+7);
                }
                write(9,sec);
                writecom(0x80+0x40+10);
   }
           if(key6==0)
    {
         EA=1;
         ET0=1;
         TR0=1;
         EX1=1;
        }
}
void keyscan()
{       
       
        if(key1==0)
        {       
                delay(10);
                writecom(0x0f);         
                if(key1==0)
                TR0=0;
                a++;
                while(!key1);
        }                                 
       
        if(a==1)
        {
               
               
                writecom(0x80+0x40+10);
                if(key2==0)
                        {       
                                sec++;
                                if(sec==60)
                                        sec=0;
                                write(9,sec);
                                writecom(0x80+0x40+10);
                                while(!key2);
                        }

        }
        if(a==2)
        {
               
                        writecom(0x80+0x40+7);
                        if(key2==0)
                        {
                                min++;
                                if(min==60)
                                        min=0;
                                write(6,min);
                                writecom(0x80+0x40+7);
                                while(!key2);
                        }
                        if(key3==0)
                        {
                                min--;
                                if(min==-1)
                                        min=59;
                                write(6,min);
                                writecom(0x80+0x40+7);       
                               
                                while(!key3);
                        }
                
         }
        if(a==3)
        {
       
                writecom(0x80+0x40+4);
                if(key2==0)
                {
                        hour++;
                        if(hour==24)
                                hour=0;
                        write(3,hour);
                        writecom(0x80+0x40+4);
                        while(!key2);
                }
                if(key3==0)
                {
                        hour--;
                        if(hour==-1)
                                hour=23;
                        write(3,hour);
                        writecom(0x80+0x40+4);
                       
                        while(!key3);
                }       
         }       
         if(a==4)
         {

                writecom(0x80+9);
                if(key2==0)
                {
                        day++;
                        if(day==31)
                                day=1;
                        write1(8,day);
                        writecom(0x80+9);
                        while(!key2);
                }                
         }
         if(a==5)
         {

                writecom(0x80+6);
                if(key2==0)
                {
                        month++;
                        if(month==13)
                                month=1;
                        write1(5,month);
                        writecom(0x80+6);
                        while(!key2);
                }
                                
         }         
         if(a==6)
         {
                 
                writecom(0x80+3);
                if(key2==0)
                {
                        year++;
                        if(year==9999)
                                year=1;
                        writeyear(0,year);
                        writecom(0x80+0);
                        while(!key2);
                }
                if(key3==0)
                {
                        year--;
                        if(year==0)
                                year=9999;
                        writeyear(0,year);
                        writecom(0x80+0);
                        while(!key3);
                }                
         }
         if(a==7)
         {          
                
                 writecom(0x80+12);
                 if(key2==0)
                {        m++;
                if(m==7)
                        m=0;
                               
                        xingqi(m);
                        while(!key2);
                }
               
         }
         if(a==8)
                a=0;

               
}               

void xingqi(uchar k)
{
        if(k==0)
        {       
                writedata('M');
                writedata('o');               
                writedata('n');
         }
         if(k==1)
          {
                writedata('T');
                writedata('u');
                writedata('e');
          }
         if(k==2)
        {        writedata('W');
                writedata('e');       
                writedata('s');
         }
         if(k==3)
        {
                writedata('T');
                writedata('h');
                writedata('i');
         }
         if(k==4)
        {       
                writedata('F');
                writedata('r');
                writedata('i');
         }
         if(k==5)
        {
                writedata('S');
                writedata('a');
                writedata('t');
        }
         if(k==6)
        {
                writedata('S');
                writedata('u');
                writedata('n');
         }
}
void delay(uchar z)
{
   uchar i;
   while(z--)
    for(i=110;i>0;i--);
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 狠狠的干 | 久久久精品久 | 欧美日韩精品专区 | 久青草影院 | 久久久久久九九九九九九 | 一区在线视频 | 黄色免费网址大全 | 欧美在线一二三 | 日日日日日日bbbbb视频 | 波多野结衣一区二区三区在线观看 | 国产美女自拍视频 | 久久久精品网站 | 欧美一级观看 | 国产精品黄色 | 国产欧美精品一区二区色综合 | 在线一区 | 国产精品久久久久久福利一牛影视 | 黄色网址在线免费观看 | 久久亚洲一区二区三区四区 | 国产第二页 | 伊人狠狠 | 亚洲国产精品视频 | 免费一级片 | 久久国产精品精品国产色婷婷 | 久久国产精品一区二区 | 在线国产一区二区三区 | 精品国产一区二区三区久久影院 | 在线日韩中文字幕 | 欧美精品综合在线 | 国产高清在线精品一区二区三区 | av日韩高清 | 国产精品久久久久久久久久久久久久 | 国产无套一区二区三区久久 | 国产精品爱久久久久久久 | 中文字幕一区二区三区四区五区 | 欧美精品网站 | 国产在线高清 | 亚洲 中文 欧美 日韩 在线观看 | 亚洲最大看片网站 | 视频1区2区 | 二区在线视频 |