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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

LCD12864B顯示屏 帶中文字庫 顯示數字錯亂

[復制鏈接]
跳轉到指定樓層
樓主

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit T_IO=P3^6;   
sbit T_RST=P3^7;   
sbit T_CLK=P3^0;
sbit k1=P1^3;
sbit k2=P1^4;
sbit shu=P1^5;
sbit k3=P1^6;
sbit DQ=P2^0;
sbit rs=P1^0; //數據/指令選擇
sbit rw=P1^1; //讀寫選擇
sbit e=P1^2;  //讀寫使能
sbit psb=P2^3; //串并口選擇
void delay(uint z)
{
    uint u,a0;
    for(u=z;u>0;u--)
        for(a0=124;a0>0;a0--);
}
uchar code tables[]="新的一天,新的開始,早睡早起身體好!";
uchar code table[]="0123456789";
uchar code we[]="年月日星期溫度*C:.";
uchar code uu[]="定時小時制鈴聲";
uchar miao,fen,shi,yue,ri,nian,xq,
   eshi,efen,emiao,dshi,dfen,dmiao,count,time,temp;
uchar nian1,nian2,yue1,yue2,ri1,ri2,y,c,pp,mb,j,sc,fp,ko,
shi1,shi2,fen1,fen2,miao1,miao2;
uchar w1,w2,w3,m1,nb,op,ss,u,vv,s1,aa,w,x,k,m,cb;
uint a;
uchar code week_code[]={0,3,3,6,1,4,6,2,5,0,3,5};
void Write1302(unsigned char ); //向1302寫一個字節數據
void WriteSet1302(unsigned char ,unsigned char );//根據命令字,向1302寫一個字節數據
unsigned char Read1302(void);//從1302讀一個字節數據
unsigned  char  ReadSet1302(unsigned char Cmd);//根據命令字從1302讀取一個字節數據
void InitDS1302(void);//初始化1302
void dingshi();
void xiao();
void xiaoshi();
void sh();

void Conver_week()
{
uchar temp1,temp2,year,month,day;
year=nian&0x7f;
month=yue;
day=ri;
if(nian>>7==0)
{
  year+=0x64;
} //如果為21世紀,年份數加100
temp1=year/0x4; //所過閏年數只算1900年之后的
temp2=(year+temp1)%0x7; //為節省資源,先進行一次取余,避免數大于0xff
temp2=temp2+day+week_code[month-1];
if(year%0x4==0&&month<3)temp2-=1; //如果是閏年但不到3月則減一天
xq=temp2%0x7; //將星期數據寫到指定星期變量Tim[9]
}
void Write1302(uchar dat)//向1302寫指令
{
    uchar i;
    T_CLK=0;            //拉低T_CLK,為脈沖上升沿寫入數據做好準備
    for(i=0;i<8;i++)      //連續寫8個二進制位數據
    {
        T_IO=dat&0x01;    //取出dat的第0位數據寫入1302
        T_CLK=1;           //上升沿寫入數據
        T_CLK=0;           //重新拉低T_CLK,形成脈沖
        dat>>=1;          //將dat的各數據位右移1位,準備寫入下一個數據位
    }   
}

void WriteSet1302(uchar Cmd,uchar dat)
{
    T_RST=0;           //禁止數據傳遞
    T_CLK=0;          //確保寫數居前T_CLK被拉低
    T_RST=1;           //啟動數據傳輸
    Write1302(Cmd);  //寫入命令字
    Write1302((dat/10<<4)|(dat%10));  //寫數據
    T_CLK=1;          //將時鐘電平置于已知狀態
    T_RST=0;           //禁止數據傳遞
}
uchar Read1302(void)
{
    uchar i,dat;
    for(i=0;i<8;i++)   //連續讀8個二進制位數據
    {
        dat>>=1;       //將dat的各數據位右移1位,因為先讀出的是字節的最低位
        if(T_IO==1)    //如果讀出的數據是1
        dat|=0x80;    //將1取出,寫在dat的最高位
        T_CLK=1;       //將T_CLK置于高電平,為下降沿讀出
        T_CLK=0;       //拉低T_CLK,形成脈沖下降沿
     }     
    return dat;        //將讀出的數據返回
}

uchar  ReadSet1302(uchar Cmd)
{
    uchar temp,dat1,dat2;
    T_RST=0;                 //拉低T_RST
    T_CLK=0;                //確保寫數居前T_CLK被拉低
    T_RST=1;                 //啟動數據傳輸
    Write1302(Cmd);       //寫入命令字
    temp=Read1302();       //讀出數據
    T_CLK=1;              //將時鐘電平置于已知狀態
    T_RST=0;               //禁止數據傳遞
    dat1=temp/16;        //16進制轉成BCD
    dat2=temp%16;
    temp=dat1*10+dat2;   //轉換成10進制數字
    return (temp);          //將讀出的數據返回
}
void delay50us(uint t)
{
uint j;
for(t;t>0;t--)
  for(j=19;j>0;j--);
}
void delay50ms(uint t)
{
uint j;
for(;t>0;t--)
  for(j=6245;j>0;j--);
}
void w12864com(uint com)
{
rw=0;
rs=0;
delay50us(1);
P0=com;
e=1;
delay50us(10);
e=0;
delay50us(2);
}
void w12864dat(uint dat)
{
rw=0;
rs=1;
delay50us(1);
P0=dat;
e=1;
delay50us(10);
e=0;
delay50us(2);  
}
void initinal()
{
delay50ms(2);
w12864com(0x30);
delay50us(4);
w12864com(0x30);
delay50us(4);
w12864com(0x0c);
delay50us(4);
w12864com(0x01);
delay50us(240);
w12864com(0x06);
delay50us(10);
}
void display()
{
uchar i;
w12864com(0x00);
delay(2);
w12864com(0x80);//
w12864dat(table[2]);
w12864dat(table[0]);
w12864com(0x82);//年
for(i=0;i<2;i++)
{
  w12864dat(we);
}
w12864com(0x84);//月
for(i=0;i<2;i++)
{
  w12864dat(we[i+2]);
}
w12864com(0x86);//日
for(i=0;i<2;i++)
{
  w12864dat(we[i+4]);
}
w12864com(0x88);//星期
for(i=0;i<4;i++)
{
  w12864dat(we[i+6]);
}
w12864com(0x9b);//溫度
{
  for(i=0;i<4;i++)
  {
   w12864dat(we[i+10]);
  }
}
w12864com(0x9f);//*C
{
  for(i=0;i<2;i++)
  {
   w12864dat(we[i+12]);
  }
}
w12864com(0x93);//:::
for(i=0;i<1;i++)
{
  w12864dat(we[i+16]);
}
w12864com(0x95);//:::
for(i=0;i<1;i++)
{
  w12864dat(we[i+16]);
}   
}
uchar w1,w2,w3,m1;
void yan(uchar a)
{
while(a--);
}
void fuwei()
{
shu=1;
shu=0;
yan(60);
shu=1;
yan(8);
while(!shu);
}
void xie_byte(uchar a)
{
uchar i=0;
for(i=8;i>0;i--)
{
  shu=1;
  _nop_();_nop_();
  shu = 0;
  _nop_();
  shu = a&0x01;   
  yan(9);
  a>>=1;
}  
}
uchar du_byte()
{
uchar i,m;
for(i=0;i<8;i++)
{
  shu=1;
  _nop_();_nop_();
  shu = 0; // 給脈沖信號
  m>>=1;
  _nop_();
  shu=1; // 給脈沖信號
  yan(1);
  if(shu)
  m|=0x80;
  yan(9);
}
return m;
}
void jingdu()
{
fuwei();
xie_byte(0xfe);
xie_byte(0xff);
xie_byte(0xff);
xie_byte(0x3f);
}
uchar du_bit()
{
uchar dat=0;
shu=1;
_nop_();_nop_();
shu=0;
_nop_();_nop_();
shu=1;
_nop_();_nop_();
_nop_();_nop_();
dat=shu;
return dat;
}
void read18b20()
{
     fuwei();
     xie_byte(0xcc);
     xie_byte(0x44);  
     while(!du_bit());
     fuwei();
     xie_byte(0xcc);
     xie_byte(0xbe);
     w1=du_byte();
     w2=du_byte();
     w3=w1;
     w1>>=4;
     w2<<=4;
     m1=w1+w2;
     m1=m1/2;
     w1=m1/10;   //十位
     w2=m1%10;   //個位
     w3&=0x0f;
     w3*=6.25;
     w3=w3/10;
}
void main()
{
initinal();
display();
Write1302(0);//向1302寫指令
WriteSet1302(0,0);
jingdu();
TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;
ET0=1;
ET1=1;
sc=1;
j=1;
fp=1;
while(1)
{
//  delay(5);
  if(y==1)
  {
   display();
   y=0;
  }
  
  if(k==1)
  {
   if(ko==0)
   {
    w12864com(0x91);
    w12864dat(0x41);
   }
   if(ko==1)
   {
    w12864com(0x91);
    w12864dat(0x50);
   }
  }
  else
  {
   w12864com(0x91);
   w12864dat(0x02);
  }
  if(aa==1)
  {  
   w12864com(0x81);
   for(a=0;a<2;a++)
   {
    w12864dat(0x20);   
   }
   delay(80);
  }   
   WriteSet1302(0x8e,0x00);
   nian=ReadSet1302(0x8d);
   WriteSet1302(0x8e,0x80);
   
  nian1=nian/10;
  nian2=nian%10;
  w12864com(0x81);
  for(a=0;a<2;a++)   
  {
   if(a==0)
   {
    w12864dat(table[nian1]);
   }
   if(a==1)     
   {
    w12864dat(table[nian2]);
   }
  }
  if(aa==2)
  {
   w12864com(0x83);
   for(a=0;a<2;a++)
   {        
    w12864dat(0x20);
   }
   delay(80);
  }   

  WriteSet1302(0x8e,0x00);
  yue=ReadSet1302(0x89);
  WriteSet1302(0x8e,0x80);
  yue1=yue/10;
  yue2=yue%10;
  w12864com(0x83);
  for(a=0;a<2;a++)
  {
   if(a==0)
   {
    w12864dat(table[yue1]);
   }
   if(a==1)
   {
    w12864dat(table[yue2]);
   }
  }
  if(aa==3)
  {
   w12864com(0x85);
   for(a=0;a<2;a++)
   {
    w12864dat(0x20);
   }
   delay(80);
  }
  WriteSet1302(0x8e,0x00);
  ri=ReadSet1302(0x87);
  WriteSet1302(0x8e,0x80);
  ri1=ri/10;
  ri2=ri%10;
  w12864com(0x85);
  for(a=0;a<2;a++)
  {
   if(a==0)
   {
    w12864dat(table[ri1]);
   }
   if(a==1)
   {  
    w12864dat(table[ri2]);
   }
  }
  Conver_week();
  w12864com(0x8a);
  if(xq==0)//日
  {
   w12864dat(0xc8);
   w12864dat(0xd5);
  }
  if(xq==1)//一
  {
   w12864dat(0xd2);
   w12864dat(0xbb);
  }
  if(xq==2)//二
  {
   w12864dat(0xb6);
   w12864dat(0xfe);
  }
  if(xq==3)//三
  {
   w12864dat(0xc8);
   w12864dat(0xfd);
  }
  if(xq==4)//四
  {
   w12864dat(0xcb);
   w12864dat(0xc4);
  }
  if(xq==5)//五
  {
   w12864dat(0xce);
   w12864dat(0xe5);
  }
  if(xq==6)//六
  {
   w12864dat(0xc1);
   w12864dat(0xf9);
  }
if(aa==4)
{
  w12864com(0x92);
  for(a=0;a<8;a++)
  {
   if(a==0)
   {
    w12864dat(0x20);
   }
   if(a==1)
   {
    w12864dat(0x20);
    delay(40);
   }
   if(a==2)
   {
    w12864dat(0x20);
   }
   if(a==3)
   {
    WriteSet1302(0x8e,0x00);
    fen=ReadSet1302(0x83);
    WriteSet1302(0x8e,0x80);
    fen1=fen/10;
    fen2=fen%10;
    w12864dat(table[fen1]);
   }
   if(a==4)
   {
    w12864dat(table[fen2]);
   }
   if(a==5)
   {
    w12864dat(we[16]);
   }
   if(a==6)
   {
    WriteSet1302(0x8e,0x00);
    miao=ReadSet1302(0x81);
    WriteSet1302(0x8e,0x80);
    miao1=miao/10;
    miao2=miao%10;
    w12864dat(table[miao1]);
   }
   if(a==7)
   {
    w12864dat(table[miao2]);
   }         
  }
}
if(aa==5)
{
  w12864com(0x92);
  for(a=0;a<8;a++)
  {
   if(a==0)
   {
    WriteSet1302(0x8e,0x00);
    shi=ReadSet1302(0x85);
    WriteSet1302(0x8e,0x80);
    if(k==1)
    {
      if(shi>=12)
      {
       ko=1;
       if(shi>12)
      {
       pp=shi;
        pp=pp-12;
       shi1=pp/10;
       shi2=pp%10;   
      }
      else
      {
       shi1=shi/10;
       shi2=shi%10;
      }
      }
     else
     {
      ko=0;
      shi1=shi/10;
      shi2=shi%10;
     }
    }
    else
    {
     shi1=shi/10;
     shi2=shi%10;
    }
    w12864dat(table[shi1]);
   }
   if(a==1)
   {
    w12864dat(table[shi2]);
   }
   if(a==2)
   {
    w12864dat(we[16]);
   }
   if(a==3)
   {
    w12864dat(0x20);
   }
   if(a==4)
   {
    w12864dat(0x20);
    delay(40);
   }
   if(a==5)
   {
    w12864dat(we[16]);
   }
   if(a==6)
   {
    WriteSet1302(0x8e,0x00);
    miao=ReadSet1302(0x81);
    WriteSet1302(0x8e,0x80);
    miao1=miao/10;
    miao2=miao%10;
    w12864dat(table[miao1]);
   }
   if(a==7)
   {
    w12864dat(table[miao2]);
   }         
  }
}
if(aa==6)
{
  w12864com(0x92);
  for(a=0;a<8;a++)
  {
   if(a==0)
   {
    WriteSet1302(0x8e,0x00);
    shi=ReadSet1302(0x85);
    WriteSet1302(0x8e,0x80);
    if(k==1)
    {
      if(shi>=12)
      {
       ko=1;
       if(shi>12)
      {
       pp=shi;
        pp=pp-12;
       shi1=pp/10;
       shi2=pp%10;   
      }
      else
      {
       shi1=shi/10;
       shi2=shi%10;
      }
      }
     else
     {
      ko=0;
      shi1=shi/10;
      shi2=shi%10;
     }
    }
    else
    {
     shi1=shi/10;
     shi2=shi%10;
    }
    w12864dat(table[shi1]);
   }
   if(a==1)
   {
    w12864dat(table[shi2]);
   }
   if(a==2)
   {
    w12864dat(we[16]);
   }
   if(a==3)
   {
    WriteSet1302(0x8e,0x00);
    fen=ReadSet1302(0x83);
    WriteSet1302(0x8e,0x80);
    fen1=fen/10;
    fen2=fen%10;
    w12864dat(table[fen1]);
   }
   if(a==4)
   {
    w12864dat(table[fen2]);
   }
   if(a==5)
   {
    w12864dat(we[16]);
   }
   if(a==6)
   {
    w12864dat(0x20);
   }
   if(a==7)
   {
    w12864dat(0x20);
    delay(40);
   }         
  }
}   
  w12864com(0x92);
  for(a=0;a<8;a++)
  {
   if(a==0)
   {
    WriteSet1302(0x8e,0x00);
    shi=ReadSet1302(0x85);
    WriteSet1302(0x8e,0x80);
    if(k==1)
    {
      if(shi>=12)
      {
       ko=1;
       if(shi>12)
      {
       pp=shi;
        pp=pp-12;
       shi1=pp/10;
       shi2=pp%10;   
      }
      else
      {
       shi1=shi/10;
       shi2=shi%10;
      }
      }
     else
     {
      ko=0;
      shi1=shi/10;
      shi2=shi%10;
     }
    }
    else
    {
     shi1=shi/10;
     shi2=shi%10;
    }
    w12864dat(table[shi1]);
   }
   if(a==1)
   {
    w12864dat(table[shi2]);
   }
   if(a==2)
   {
    w12864dat(we[16]);
   }
   if(a==3)
   {
    WriteSet1302(0x8e,0x00);
    fen=ReadSet1302(0x83);
    WriteSet1302(0x8e,0x80);
    fen1=fen/10;
    fen2=fen%10;
    w12864dat(table[fen1]);
   }
   if(a==4)
   {
    w12864dat(table[fen2]);
   }
   if(a==5)
   {
    w12864dat(we[16]);
   }
   if(a==6)
   {
    WriteSet1302(0x8e,0x00);
    miao=ReadSet1302(0x81);
    WriteSet1302(0x8e,0x80);
    miao1=miao/10;
    miao2=miao%10;
    w12864dat(table[miao1]);
   }
   if(a==7)
   {
    w12864dat(table[miao2]);
   }         
  }
  
  read18b20();
  w12864com(0x9d);
  for(a=0;a<4;a++)
  {
   if(a==0)
   {
    w12864dat(table[w1]);
   }
   if(a==1)
   {
    w12864dat(table[w2]);
   }
   if(a==2)
   {
    w12864dat(we[17]);
   }
   if(a==3)
   {
    w12864dat(table[w3]);
   }      
  }
  if(s1==0)
  {
   x=0;
  }
  if(k1==0)
  {
   delay(2);
   while(!k1==1);
   s1++;
   if(s1==5)
   {
    s1=0;
   }
  }
  if(s1==1)//設置時間
  {
   if(k2==0)
   {
    delay(2);
    while(!k2==1);
    aa++;
    if(aa==7)
    {
     s1=0;
     aa=0;   
    }   
   }
  w12864com(0x91);
  w12864dat(0x20);
  delay(50);
  }
  if(s1==2)//定時
  {
   if((aa==1)||(aa==2)||(aa==3)||(aa==4)||(aa==5)||(aa==6))
   {s1--;}
   if(aa==0)
   {
    u=1;
    dingshi();
    }
  }
  if(s1==0)//小時制設置
  {
   if(k2==0)
   {
    while(!k2==1);
    m=1;
    xiaoshi();
   }
  }
  if(s1==0)
  {
    if(k3==0)
    {
    while(!k3==1);
     w++;     
    }
   }
  if(w==1)//開定時1
  {
   w12864com(0x8c);
   w12864dat(0x41);
   w12864dat(0x03);
   w12864com(0x8e);
   w12864dat(0x20);
   w12864dat(0x20);
    w12864com(0x97);
    w12864dat(0x0e);
   if(dshi==shi)
   {
    if(dfen==fen)
    {
     if(dmiao==miao)
     {
      if(cb==1)
      {
       TR0=1;
      }
      if(cb==2)
      {
       TR1=1;
       sh();
      }
     }
    }
   }                  
  }
  if(w==2)//開定時2
  {
   w12864com(0x8c);
   w12864dat(0x20);
   w12864dat(0x20);
   w12864com(0x8e);
   w12864dat(0x42);
   w12864dat(0x03);
    w12864com(0x97);
    w12864dat(0x0e);
   if(eshi==shi)
   {
    if(efen==fen)
    {
     if(emiao==miao)
     {
      if(cb==1)
      {
       TR0=1;
      }
      if(cb==2)
      {
       TR1=1;
       sh();
      }
     }
    }
   }     
  }
  if(w==3)//定時雙開
  {
   w12864com(0x8c);
   w12864dat(0x41);
   w12864dat(0x03);
   w12864com(0x8e);
   w12864dat(0x42);
   w12864dat(0x03);
    w12864com(0x97);
    w12864dat(0x0e);
   if(dshi==shi)
   {
    if(dfen==fen)
    {
     if(dmiao==miao)
     {
      if(cb==1)
      {
       TR0=1;
      }
      if(cb==2)
      {
       TR1=1;
       sh();
      }
     }
    }
   }
            
   if(eshi==shi)
   {
    if(efen==fen)
    {
     if(emiao==miao)
     {
      if(cb==1)
      {
       TR0=1;
      }
      if(cb==2)
      {
       TR1=1;
       sh();
      }
     }
    }
   }     
  }
  if(w==4)//定時關
  {
   w=0;
   w12864com(0x8c);
   w12864dat(0x20);
   w12864dat(0x20);
   w12864com(0x8e);
   w12864dat(0x20);
   w12864dat(0x20);
   w12864com(0x97);//定時指示
   w12864dat(0x20);
  }

  if(aa==1)
  {
   if(k3==0)
   {
    while(!k3==1);
    ss=nian;
    ss++;
    if(ss>=100)
    {ss=0;}
    WriteSet1302(0x8e,0x00);    //允許寫入
    WriteSet1302(0x8c,ss);
    WriteSet1302(0x90,0xa6);   //寫充電控制寄存器.
    WriteSet1302(0x8e,0x80);   //禁止寫入  

   }
  }
  if(aa==2)
  {
   if(k3==0)
   {
    while(!k3==1);
    ss=yue;
    ss++;
    if(ss>=13)
    {
    ss=1;
    }
    WriteSet1302(0x8e,0x00);    //允許寫入
    WriteSet1302(0x88,ss);
    WriteSet1302(0x90,0xa6);   //寫充電控制寄存器.
    WriteSet1302(0x8e,0x80);   //禁止寫入  
   }
  }
  if(aa==3)
  {
   if(k3==0)
   {
    while(!k3==1);
    ss=ri;
    ss++;
    if((yue==1)||(yue==3)||(yue==5)||(yue==7)||(yue==8)||(yue==10)||(yue==12))
    {
     if(ss>=32)
     ss=1;
    }
    if((yue==4)||(yue==6)||(yue==9)||(yue==11))
    {
     if(ss>=31)
     ss=1;
    }
    if(yue==2)
    {
     vv=nian%4;
     if(vv==0)
     {
      if(ss>=30)
      {
       ss=1;
      }
     }
     else
     {
      if(ss>=29)
      {
       ss=1;
      }     
     }
    }
    WriteSet1302(0x8e,0x00);    //允許寫入
    WriteSet1302(0x86,ss);
    WriteSet1302(0x90,0xa6);   //寫充電控制寄存器.
    WriteSet1302(0x8e,0x80);   //禁止寫入  
   }
  }
  if(aa==4)
  {
   if(k3==0)
   {
    while(!k3==1);
    if(k==1)//12小時
    {
     if(ko==1)//下午
     {
      if(shi<12)
      {
       shi=shi+12;
      }
      else
      {
       ss=shi;
      }
     }
     else
     {
      ss=shi;
     }
    }
    else
    {
     ss=shi;
    }
    ss++;
    if(ss>=24)
    {ss=0;}
    WriteSet1302(0x8e,0x00);    //允許寫入
    WriteSet1302(0x84,ss);
    WriteSet1302(0x90,0xa6);   //寫充電控制寄存器.
    WriteSet1302(0x8e,0x80);   //禁止寫入  
   }
  }
  if(aa==5)
  {
   if(k3==0)
   {
    while(!k3==1);
    ss=fen;
    ss++;
    if(ss>=60)
    {ss=0;}
    WriteSet1302(0x8e,0x00);    //允許寫入
    WriteSet1302(0x82,ss);
    WriteSet1302(0x90,0xa6);   //寫充電控制寄存器.
    WriteSet1302(0x8e,0x80);   //禁止寫入  
   }
  }
  if(aa==6)
  {
   if(k3==0)
   {
    while(!k3==1);
    ss=miao;
    ss++;
    if(ss>=60)
    {ss=0;}
    WriteSet1302(0x8e,0x00);    //允許寫入
    WriteSet1302(0x80,ss);
    WriteSet1302(0x90,0xa6);   //寫充電控制寄存器.
    WriteSet1302(0x8e,0x80);   //禁止寫入  
   }
  }
   
}                  
}
void dingshi()
{
uchar e1,e2,f1,f2,g1,g2;
uchar ee,ff,gg,z,es,ww,ab;
uchar bb1,bb2,cc1,cc2,dd1,dd2;
uchar bb3,bb4,cc3,cc4,dd3,dd4;
   c=1;
   ee=ff=gg=0;
   e1=ee/10;
   e2=ee%10;
   f1=ff/10;
   f2=ff%10;
   g1=gg/10;
   g2=gg%10;
w12864com(0x00);
delay(2);
w12864com(0x98);//定時1
  for(z=0;z<4;z++)
  {
   w12864dat(uu[z]);
  }
   if(c==1)
   {
   w12864com(0x9c);
   w12864dat(0x41);
   w12864dat(0x03);
   
   w12864com(0x9a);
   w12864dat(table[1]);
      
   }
   if(c==2)
   {
   w12864com(0x9c);
   w12864dat(0x42);
   w12864dat(0x03);
   
   w12864com(0x9a);
   w12864dat(table[2]);   
   }
if(k==1)
{
if(dshi>=12)
{
  w12864com(0x80);
  w12864dat(0x50);
}
else
{
  w12864com(0x80);
  w12864dat(0x41);  
}
if(eshi>=12)
{
  w12864com(0x90);
  w12864dat(0x50);
}
else
{
  w12864com(0x90);
  w12864dat(0x41);  
}
}
if(c==1)
{
if(k==1)
{
  if(dshi>=12)
  {
   if(dshi>12)
   {
    ab=dshi;
    ab=ab-12;
     bb3=ab/10;
     bb4=ab%10;
   }  
  }
}
else
{
  bb3=dshi/10;
  bb4=dshi%10;
      
  }
  cc3=dfen/10;
  cc4=dfen%10;
  dd3=dmiao/10;
  dd4=dmiao%10;
}
if(c==2)
{
if(k==1)
{
  if(eshi>=12)
  {
   if(eshi>12)
   {
    ab=eshi;
    ab=ab-12;
     bb1=ab/10;
     bb2=ab%10;
   }
  }
}
else
{
  bb1=eshi/10;
  bb2=eshi%10;
}
  cc1=efen/10;
  cc2=efen%10;
  dd1=emiao/10;
  dd2=emiao%10;
}
while(u)
{
  w12864com(0x88);
  w12864dat(0x03);
  delay(2);
   if(c==1)
   {
   w12864com(0x9c);
   w12864dat(0x41);
   w12864dat(0x03);
   w12864com(0x9a);
   w12864dat(table[1]);
   
   w12864com(0x91);
   w12864dat(0x20);
   w12864dat(0x20);
   w12864com(0x81);
   w12864dat(0x20);
   w12864dat(0x10);
      
   }
   if(c==2)
   {
   w12864com(0x9c);
   w12864dat(0x42);
   w12864dat(0x03);
   w12864com(0x9a);
   w12864dat(table[2]);
   
   w12864com(0x91);
   w12864dat(0x20);
   w12864dat(0x10);
   w12864com(0x81);
   w12864dat(0x20);
   w12864dat(0x20);
      
   }  
  if(k2==0)
  {
   while(!k2==1);
   x++;
   if(x==4)
   {
    x=0;
    u=0;
    s1=0;
    y=1;
    if(c==1)
    {
     w=1;
     dshi=ee;
     dfen=ff;
     dmiao=gg;
     delay(5);
     
    }
    if(c==2)
    {
     w=2;
     eshi=ee;
     efen=ff;
     emiao=gg;
     
     delay(5);
    }
   }
  }
  if(k==1)
  {
   if(es==0)
   {
    w12864com(0x89);
    w12864dat(0x41);
     
   }
    if(es==1)
   {
    w12864com(0x89);
    w12864dat(0x50);
         
   }
  }
  if(x==1)
  {
   if(k3==0)
   {
    while(!k3==1);
    ee++;
    if(ee>=24)
    {
     ee=0;
    }
    if(k==1)
    {
      if(ee==12)
      {
       es=1;
      e1=ee/10;
      e2=ee%10;
      }

      if(ee<12)
      {
       es=0;
      e1=ee/10;
      e2=ee%10;
      }
      if(ee>12)
     {
      ww=ee;
       ww=ww-12;
      e1=ww/10;
      e2=ww%10;   
     }
    }
    else
    {
     e1=ee/10;
     e2=ee%10;
    }
    if(c==1)
    {
     if(k==1)
     {
      if(es==0)
      {      
       w12864com(0x80);
       w12864dat(0x41);
      }
      if(es==1)
      {      
       w12864com(0x80);
       w12864dat(0x50);
      }
     }
     bb3=e1;
     bb4=e2;   
    }
    if(c==2)
    {
     if(k==1)
     {
      if(es==0)
      {      
       w12864com(0x90);
       w12864dat(0x41);
      }
      if(es==1)
      {      
       w12864com(0x90);
       w12864dat(0x50);
      }
     }   
     bb1=e1;
     bb2=e2;   
    }
   }
  }
  
  if(x==2)
  {
   if(k3==0)
   {
    while(!k3==1);
    ff++;
    if(ff>=60)
    {
     ff=0;
    }
    f1=ff/10;
    f2=ff%10;
    if(c==1)
    {
     cc3=f1;
     cc4=f2;   
    }
    if(c==2)
    {
     cc1=f1;
     cc2=f2;   
    }
   }
  }
  if(x==3)
  {
   if(k3==0)
   {
    while(!k3==1);
    gg++;
    if(gg>=60)
    {
     gg=0;
    }
    g1=gg/10;
    g2=gg%10;
    if(c==1)
    {
     dd3=g1;
     dd4=g2;   
    }
    if(c==2)
    {
     dd1=g1;
     dd2=g2;   
    }
   }
  }

  w12864com(0x8a);
  for(a=0;a<8;a++)
  {
   if(a==0)
   {
    w12864dat(table[e1]);
   }
   if(a==1)
   {
    w12864dat(table[e2]);
   }
   if(a==2)
   {
    w12864dat(we[16]);
   }
   if(a==3)
   {
    w12864dat(table[f1]);
   }
   if(a==4)
   {
    w12864dat(table[f2]);
   }
   if(a==5)
   {
    w12864dat(we[16]);
   }
   if(a==6)
   {
    w12864dat(table[g1]);
   }
   if(a==7)
   {
    w12864dat(table[g2]);
   }         
  }

  delay(50);
  if(x==1)
  {
   w12864com(0x8a);
   for(a=0;a<8;a++)
   {
    if(a==0)
    {

     w12864dat(0x20);
    }
    if(a==1)
    {
     w12864dat(0x20);
    }

    if(a==2)
    {
     w12864dat(we[16]);
    }
    if(a==3)
    {

     w12864dat(table[f1]);
    }
    if(a==4)
    {
     w12864dat(table[f2]);
    }
    if(a==5)
    {
     w12864dat(we[16]);
    }
    if(a==6)
    {

     w12864dat(table[g1]);
    }
    if(a==7)
    {
     w12864dat(table[g2]);
    }         
   }
  }
  if(x==2)
  {
   w12864com(0x8a);
   for(a=0;a<8;a++)
   {
    if(a==0)
    {

     w12864dat(table[e1]);
    }
    if(a==1)
    {
     w12864dat(table[e2]);
    }

    if(a==2)
    {
     w12864dat(we[16]);
    }
    if(a==3)
    {

     w12864dat(0x20);
    }
    if(a==4)
    {
     w12864dat(0x20);
    }
    if(a==5)
    {
     w12864dat(we[16]);
    }
    if(a==6)
    {

     w12864dat(table[g1]);
    }
    if(a==7)
    {
     w12864dat(table[g2]);
    }         
   }
  }
  if(x==3)
  {
   w12864com(0x8a);
   for(a=0;a<8;a++)
   {
    if(a==0)
    {

     w12864dat(table[e1]);
    }
    if(a==1)
    {
     w12864dat(table[e2]);
    }

    if(a==2)
    {
     w12864dat(we[16]);
    }
    if(a==3)
    {

     w12864dat(table[f1]);
    }
    if(a==4)
    {
     w12864dat(table[f2]);
    }
    if(a==5)
    {
     w12864dat(we[16]);
    }
    if(a==6)
    {

     w12864dat(0x20);
    }
    if(a==7)
    {
     w12864dat(0x20);
    }         
   }  
  }
    delay(50);

  w12864com(0x92);
  for(a=0;a<8;a++)
  {
   if(a==0)
   {
    w12864dat(table[bb1]);
   }
   if(a==1)
   {
    w12864dat(table[bb2]);
   }
   if(a==2)
   {
    w12864dat(we[16]);
   }
   if(a==3)
   {
    w12864dat(table[cc1]);
   }
   if(a==4)
   {
    w12864dat(table[cc2]);
   }
   if(a==5)
   {
    w12864dat(we[16]);
   }
   if(a==6)
   {
    w12864dat(table[dd1]);
   }
   if(a==7)
   {
    w12864dat(table[dd2]);
   }         
  }

  w12864com(0x82);
  for(a=0;a<8;a++)
  {
   if(a==0)
   {
    w12864dat(table[bb3]);
   }
   if(a==1)
   {
    w12864dat(table[bb4]);
   }
   if(a==2)
   {
    w12864dat(we[16]);
   }
   if(a==3)
   {
    w12864dat(table[cc3]);
   }
   if(a==4)
   {
    w12864dat(table[cc4]);
   }
   if(a==5)
   {
    w12864dat(we[16]);
   }
   if(a==6)
   {
    w12864dat(table[dd3]);
   }
   if(a==7)
   {
    w12864dat(table[dd4]);
   }         
  }
  if(k1==0)
  {
   delay(2);
   while(!k1==1);
   s1++;
   if(s1==3)
   {
    c++;
    if(c==2)
    {
      es=0;
    }
    if(c==3)
    {
     c=1;
    }
   }
   if(s1==4)
   {
    x=0;
    u=0;
    y=1;
    s1=0;
   }
  }
  }
}
void xiaoshi()
{
uchar tt;
w12864com(0x00);
delay(2);
  w12864com(0x82);
  w12864dat(table[1]);
  w12864dat(table[2]);
  for(tt=0;tt<6;tt++)
  {
   w12864dat(uu[tt+4]);
  }
  
  w12864com(0x92);
  w12864dat(table[2]);
  w12864dat(table[4]);
  for(tt=0;tt<6;tt++)
  {
   w12864dat(uu[tt+4]);
  }

  w12864com(0x8a);
  for(tt=0;tt<4;tt++)
  {
   w12864dat(uu[tt+10]);
  }
  w12864dat(table[1]);
  delay(1);
  w12864com(0x9a);
  for(tt=0;tt<4;tt++)
  {
   w12864dat(uu[tt+10]);
  }
  w12864dat(table[2]);
   delay(1);
   if(sc==1)
   {
   w12864com(0x80);
   w12864dat(0x12);
   w12864com(0x88);
   w12864dat(0x20);
   }
   if(sc==2)
   {
    w12864com(0x80);
    w12864dat(0x20);
    w12864com(0x99);
    w12864dat(0x12);
   }
   if(j==1)
   {
    w12864com(0x81);
    w12864dat(0x10);
    w12864com(0x91);
    w12864dat(0x20);
   }
   if(j==2)
   {
    w12864com(0x81);
    w12864dat(0x20);
    w12864com(0x91);
    w12864dat(0x10);  
   }
   if(fp==1)
   {
    w12864com(0x89);
    w12864dat(0x10);
    w12864com(0x99);
    w12864dat(0x20);
   }
   if(fp==2)
   {
    w12864com(0x89);
    w12864dat(0x20);
    w12864com(0x99);
    w12864dat(0x10);
   }
while(m)
{
    if(k2==0)
    {
      while(!k2==1);
   sc++;
    if(sc==3)
    {sc=1;}
   
    }
  if(k3==0)
  {
   while(!k3==1);
   if(sc==1)
   {
    j++;
    if(j==3)
    {j=1;}
   }
   if(sc==2)
   {
    fp++;
    if(fp==3)
    {fp=1;}
   }
  }
  if(k1==0)
  {
   while(!k1==1);
   y=1;
   m=0;
   s1=0;
  }
   if(sc==1)
   {
   w12864com(0x80);
   w12864dat(0x12);
   w12864com(0x88);
   w12864dat(0x20);
   if(j==1)
   {
    w12864com(0x81);
    w12864dat(0x10);
    w12864com(0x91);
    w12864dat(0x20);
    k=1;
   }
   if(j==2)
   {
    w12864com(0x81);
    w12864dat(0x20);
    w12864com(0x91);
    w12864dat(0x10);
    k=0;  
   }
   }
   if(sc==2)
   {
   w12864com(0x80);
   w12864dat(0x20);
   w12864com(0x88);
   w12864dat(0x12);
   if(fp==1)
   {
    w12864com(0x89);
    w12864dat(0x10);
    w12864com(0x99);
    w12864dat(0x20);
    cb=1;
   }
   if(fp==2)
   {
    w12864com(0x89);
    w12864dat(0x20);
    w12864com(0x99);
    w12864dat(0x10);
    cb=2;
   }
  }     
}
}
void sh()
{
uchar i;
mb=1;
w12864com(0x00);
delay(2);
w12864com(0x80);
for(i=0;i<16;i++)
{
  w12864dat(tables);
}
w12864com(0x90);
for(i=0;i<16;i++)
{
  w12864dat(tables[i+16]);
}
w12864com(0x8b);
for(i=0;i<4;i++)
{
  w12864dat(tables[i+32]);
}
while(mb);
}
void time0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
if(count==20)//驗證時間為1s
{
  count=0;
  time++;
  if(time==20)
  {
   time=0;
   TR0=0;
  }
  DQ=~DQ;
  delay(30);
}  
}
void t0() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
count++;
if(count==20)//驗證時間為1s
{
  count=0;
  time++;
  DQ=~DQ;
  delay(10);
  if(time==30)
  {
   time=0;
   TR1=0;
   mb=0;
   y=1;
  }
}
}
請高手幫幫我解決一下,萬分感激不盡,在線等待
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:111599 發表于 2016-5-14 15:37 | 只看該作者
上個原理圖吧!LCD12864B顯示屏電子鐘

12864LCD電子鐘_pads.jpg (220.75 KB, 下載次數: 165)

12864LCD電子鐘_pads.jpg
回復

使用道具 舉報

板凳
ID:7485 發表于 2016-5-14 20:26 | 只看該作者
燒寫到片子里試沒試過?
回復

使用道具 舉報

地板
ID:140642 發表于 2018-1-28 20:05 | 只看該作者
我也是這個問題,實物沒事,仿真一直過不了
回復

使用道具 舉報

5#
ID:557686 發表于 2020-5-20 07:39 | 只看該作者
老哥,你問題解決了嗎?我也是這樣!!
回復

使用道具 舉報

6#
ID:419391 發表于 2020-6-10 00:14 | 只看該作者
該模型是不能顯示半角的字母和數字的,你可以直接顯示全角數字和字母,這個不會有問題,漢字也是全角的
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲网站在线播放 | 色噜噜狠狠色综合中国 | 亚洲三级在线观看 | 欧美国产一区二区三区 | 亚洲欧美中文日韩在线v日本 | 91传媒在线观看 | 欧美成人激情 | av不卡一区 | 欧美精品在线一区 | 免费一级淫片aaa片毛片a级 | 国产电影一区二区在线观看 | 亚洲成人av一区二区 | 福利社午夜影院 | 亚洲国产精品日本 | 亚洲精品成人 | 久草在线在线精品观看 | 国产电影一区二区三区爱妃记 | 免费午夜视频在线观看 | 蜜桃一区| 色综合久久天天综合网 | 成人av片在线观看 | 成人免费视频在线观看 | 成人在线精品视频 | 国产日韩欧美在线观看 | 天天爽天天干 | www.日本三级| 成人国产精品久久久 | 欧美福利| 亚洲成人免费 | 欧美第一页 | 91在线精品一区二区 | 欧美精品1区 | 欧美日韩三级视频 | 中文字幕日韩一区 | 国产 欧美 日韩 一区 | 一区二区三区视频 | 欧美一区免费在线观看 | 成人av播放| 精品视频免费 | 美国黄色一级片 | 精品国产乱码一区二区三区 |