找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2232|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

lcd的滾動(dòng)顯示

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:254712 發(fā)表于 2017-12-4 19:56 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include <reg52.h>
#define uchar unsigned char
#define DB  P0
sbit RS = P2^0;
sbit RW = P2^1;
sbit E = P2^2;
sbit P32=P3^2;
sbit P33=P3^3;
sbit P34=P3^5;
uchar code table[]="               ZHAO WEI WEI IS PRINCE CHARMING";
uchar flag=0,cnt=0;       
uchar h='0',f=0,sec='0',hs='0',hg='0',fs='0',fg='0',ss='0',sg='0', j1=':',j2=' ';
uchar *p,*mhg,*mhs,*mfg,*mfs,*msg,*mss,*mj1,*mj2,i=0;          
void set();
void ready();
void show(uchar*p);
void delay(uchar t);
void writecmd(uchar cmd);
void main()
{  
IT0=1;IE0=0;EX0=1;
IT1=1;IE1=0;EX1=1;
TMOD=0x01;TH0=0xB8;TL0=0x00;ET0=1;EA=1;TR0=1;
p=&table;
   while(1)
   {
     if(P34==0)TR0=~TR0;
         if(sg>'9'){sg='0';ss++;}
         if(ss>'5'){ss='0';fg++;}
         if(fg>'9'){fg='0';fs++;}
         if(fs>'5'){fs='0';hg++;}
         if(hg>'9'){hg='0';hs++;}
         if(hs>'2'&&hg>'3'){hs='0';hg='0';}
         mhs=&hs;mhg=&hg;mj1=&j1;
         mfs=&fs; mfg=&fg;mj2=&j2;
     mss=&ss;msg=&sg;
         
          
   set();  
   writecmd(0x00|0x80);show(p);
   p++;if(*p=='\0') p=&(table);
   writecmd(0x47+0x80); show(mhs);
   writecmd(0x48+0x80); show(mhg);
   writecmd(0x49+0x80); show(mj1);
   writecmd(0x4a+0x80); show(mfs);
   writecmd(0x4b+0x80); show(mfg);
   writecmd(0x4c+0x80); show(mj1);
   writecmd(0x4d+0x80); show(mss);
   writecmd(0x4e+0x80); show(msg);
   writecmd(0x4f+0x80); ready();
  RS=1;
  RW=0;
  DB=' ';
  E=1;
  E=0;
        delay(1000);
        delay(1000);  
   }
}

void writecmd(uchar cmd) //寫命令
{
  ready();
  RS=0;
  RW=0;
  DB=cmd;
  E=1;
  E=0;
}

void writedat(uchar dat)  //寫數(shù)據(jù)
{
  ready();
  RS=1;
  RW=0;
  DB=dat;
  E=1;
  E=0;
}
void show(uchar *p)
{               
while(*p!='\0')
{
writedat(*p++);

}



}                          

void ready()  //準(zhǔn)備
{
   uchar sta;
   DB=0xff;
   RS=0;
   RW=1;
   do{
             E=1;
          sta=DB;
          E=0;
   }while(sta&0X80);
}

void set()
{
        writecmd(0x38);
        writecmd(0x0c);
        writecmd(0x06);
        writecmd(0x01);
}

void delay (uchar t)
{
   uchar i,j;
   for(i=0;i<=t;i++)
    for(j=0;j<=100;j++);
}
void Interrupt() interrupt 1 using 2
{
  TH0=0xB8;TL0=0x00;cnt++;
  if(cnt>=50){cnt=0;sg++;}                                                                       
}

void int0_sev(void) interrupt 0 using 1
{
if(P32==0){fg++;}
}
void int1_sev(void) interrupt 2 using 3
{         
   if(P33==0){hg++;}        
}

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

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表