eryueniao 发表于 2011-4-5 10:14:08

12864大字显示表程序

#include<reg52.h>
#include <intrins.h>
#define       uchar unsigned char
#define       uint unsigned int
#define LCD_Data_Port P0       
sbit LCD12864_RS = P2^4;   //定义端口 计算机加32
sbit LCD12864_RW = P2^5;
sbit LCD12864_EN = P2^6;
sbit led = P3^7;

uchar jj,num1,x1,miao,miao1,miao2,fen,fen1,fen2,shi,shi1,shi2;
uchar *q1,*q2,*q3,*q4,*q5,*q6;


/*================ 显示模式2数字及温度符号图片(宽度x高度=16*32)=====================*/

uchar code num1632=
{

        {// 图片数字0
       0x00,0x00,0x3F,0xFC,0x5F,0xFA,0x6F,0xF6,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,
       0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x60,0x06,0x40,0x02,0x00,0x00,
       0x40,0x02,0x60,0x06,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,
       0x70,0x0E,0x70,0x0E,0x70,0x0E,0x6F,0xF6,0x5F,0xFA,0x3F,0xFC,0x00,0x00,0x00,0x00},
       
        {// 图片数字1
       0x00,0x00,0x00,0x20,0x00,0x60,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,
   0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0x60,0x00,0x20,0x00,0x00,0x00,0x20,
       0x00,0x60,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,
       0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0x60,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00},
   
        {// 图片数字2
       0x00,0x00,0x3F,0xFC,0x1F,0xFA,0x0F,0xF6,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
       0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x06,0x1F,0xFA,0x3F,0xFC,
       0x5F,0xF8,0x60,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,
       0x70,0x00,0x70,0x00,0x70,0x00,0x6F,0xF8,0x5F,0xFC,0x3F,0xFE,0x00,0x00,0x00,0x00},
       
        {// 图片数字3
       0x00,0x00,0x7F,0xFC,0x3F,0xFA,0x1F,0xF6,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
   0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x06,0x1F,0xFA,0x3F,0xFC,
   0x1F,0xFA,0x00,0x06,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
   0x00,0x0E,0x00,0x0E,0x00,0x0E,0x1F,0xF6,0x3F,0xFA,0x7F,0xFC,0x00,0x00,0x00,0x00},
       
        {// 图片数字4
       0x00,0x00,0x40,0x02,0x60,0x06,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,
       0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x60,0x06,0x5F,0xFA,0x3F,0xFC,
       0x1F,0xFA,0x00,0x06,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
       0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x06,0x00,0x02,0x00,0x00,0x00,0x00},
       
        {// 图片数字5
       0x00,0x00,0x3F,0xFC,0x5F,0xF8,0x6F,0xF0,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,
       0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x60,0x00,0x5F,0xF8,0x3F,0xFC,
       0x1F,0xFA,0x00,0x06,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
       0x00,0x0E,0x00,0x0E,0x00,0x0E,0x0F,0xF6,0x1F,0xFA,0x3F,0xFC,0x00,0x00,0x00,0x00},
       
        {// 图片数字6
       0x00,0x00,0x3F,0xFC,0x5F,0xF8,0x6F,0xF0,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,
       0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x60,0x00,0x5F,0xF8,0x3F,0xFC,
       0x5F,0xFA,0x60,0x06,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,
       0x70,0x0E,0x70,0x0E,0x70,0x0E,0x6F,0xF6,0x5F,0xFA,0x3F,0xFC,0x00,0x00,0x00,0x00},
       
        {// 图片数字7
       0x00,0x00,0x7F,0xFC,0x3F,0xFA,0x1F,0xF6,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
       0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x06,0x00,0x02,0x00,0x00,
       0x00,0x02,0x00,0x06,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
       0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x06,0x00,0x02,0x00,0x00,0x00,0x00},
       
        {// 图片数字8
       0x00,0x00,0x3F,0xFC,0x5F,0xFA,0x6F,0xF6,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,
       0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x60,0x06,0x5F,0xFA,0x3F,0xFC,
       0x5F,0xFA,0x60,0x06,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,
       0x70,0x0E,0x70,0x0E,0x70,0x0E,0x6F,0xF6,0x5F,0xFA,0x3F,0xFC,0x00,0x00,0x00,0x00},
       
        {// 图片数字9
       0x00,0x00,0x3F,0xFC,0x5F,0xFA,0x6F,0xF6,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,
       0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x60,0x06,0x5F,0xFA,0x3F,0xFC,
       0x1F,0xFA,0x00,0x06,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
       0x00,0x0E,0x00,0x0E,0x00,0x0E,0x1F,0xF6,0x3F,0xFA,0x7F,0xFC,0x00,0x00,0x00,0x00},
       
        {// 图片":"
   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x07,0xE0,
       0x07,0xE0,0x07,0xE0,0x07,0xE0,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x07,0xE0,0x07,0xE0,0x07,0xE0,
       0x07,0xE0,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},

};

#define delayNOP() {_nop_();_nop_();_nop_();_nop_();}        //短延时
void delay(uint ms)
{                           
          uchar j;
          while(ms--)
          {
                  for(j=110;j>0;j--);   
          }
}
uchar busy_12864()
{                        
    uchar result;
    LCD12864_RS = 0;          
    LCD12864_RW = 1;       
        LCD12864_EN = 0;
    LCD12864_EN = 1;          
    delayNOP();
    result=LCD_Data_Port&0x80;   
    LCD12864_EN =0;
    return(result);
}               
void write_12864_cmd(uchar cmd)
{                        
    while(busy_12864());       
    LCD12864_RS = 0;          
    LCD12864_RW = 0;       
    LCD12864_EN = 0;          
    LCD_Data_Port=cmd;               
//    delayNOP();
    LCD12864_EN = 1;       
//    delayNOP();
    LCD12864_EN = 0;       
}

void write_12864_data(uchar dat)
{                        
    while(busy_12864());
    LCD12864_RS = 1;          
    LCD12864_RW = 0;       
    LCD12864_EN = 0;
    LCD_Data_Port=dat;          
//    delayNOP();
    LCD12864_EN = 1;          
//    delayNOP();
    LCD12864_EN = 0;
}
   
void Clean_12864(void)   
{
    write_12864_cmd(0x30);
    write_12864_cmd(0x01);   
    delay(1);   
}   
void write1616GDRAM(uchar x,uchar y,uchar sign,uchar *bmp)       
{
        uchar i,j,basex;
        write_12864_cmd(0x36);      
        if(y==1||y==2)          
        {
                basex=0x80;          
                y=(y-1)*16;          
        }
        if(y==3||y==4)       
        {
                y=(y-3)*16;       
        }
        for(i=0;i<16;i++)        //
        {                                                                                                                       
                write_12864_cmd(0x80+y+i);
                write_12864_cmd(basex+x-1);
                                                       
                for(j=0;j<2;j++)   
                {
                        if(sign==1)
                                write_12864_data(~(*bmp++));
                        else
                                write_12864_data(*bmp++);
                }
        }       
        write_12864_cmd(0x36);
}

void write1632GDRAM(uchar x,uchar y,uchar *bmp)       
{
        uchar i,j,basex,basey;
        switch(y)       
        {
          case 1: basex=0x80; break;
          case 2: basex=0x80; break;
          case 3: basex=0x88; break;
          default:   return;   
        }
        basey=basex+x-1;
        write_12864_cmd(0x36);
        if(y==1||y==3)       
        {
                  for(i=0;i<32;i++)       
                  {                                                                                                               
                          write_12864_cmd(0x80+i);
                          write_12864_cmd(basey);   
                                  write_12864_data(*bmp++);   
                  }       
        }
        if(y==2)
        {                                       
                  for(i=0;i<16;i++)       
                  {                                                                                                               
                          write_12864_cmd(0x90+i);
                          write_12864_cmd(basey);   
                          for(j=0;j<2;j++)         
                                  write_12864_data(*bmp++);   
                  }
                  for(i=0;i<16;i++)       
                  {                                                                                                               
                          write_12864_cmd(0x80+i);
                          write_12864_cmd(basey+8);
                          for(j=0;j<2;j++)         
                                  write_12864_data(*bmp++);   
                  }       
        }
        write_12864_cmd(0x36);
}



void setwordbkcolor(uchar x,uchar y,uchar wide,uchar bkcor)       
{
        uchar i,j,basex,color;
        if(bkcor==1)        color=0xff;       
        if(bkcor==0)        color=0x00;       
        write_12864_cmd(0x36);   
        if(y==1||y==2)       
        {
                basex=0x80;          
                y=(y-1)*16;       
        }
        if(y==3||y==4)       
        {
                basex=0x88;       
                y=(y-3)*16;       
        }
        for(i=0;i<wide;i++)        //
        {                                                                                                                       
                write_12864_cmd(0x80+y+i);
                write_12864_cmd(basex+x-1);
                                                       
                for(j=0;j<2;j++)   
                        write_12864_data(color);
        }       
        write_12864_cmd(0x36);
}



void setrowbkcolor(uchar row,uchar bkcor)       
{
        uchar i,j,basex,basey,color;
        if(bkcor==1)        color=0xff;       
        if(bkcor==0)        color=0x00;       
        write_12864_cmd(0x36);      
        if(row==1||row==2)       
        {
                basex=0x80;          
        }
        if(row==3||row==4)       
        {
                basex=0x88;       
                row=row-2;       
        }
        basey=0x80+(row-1)*16;       
        for(i=0;i<16;i++)       
        {                                                                                                                       
                write_12864_cmd(basey+i);
                write_12864_cmd(basex);
                                                             
                for(j=0;j<16;j++)   
                        write_12864_data(color);
        }       
        write_12864_cmd(0x36);
}


void init_12864()       
{
    delay(500);
//        LCD12864_PSB = 1;   
   
        write_12864_cmd(0x30);   
        write_12864_cmd(0x30);   
        write_12864_cmd(0x0C);   
        write_12864_cmd(0x06);       
        Clean_12864();   
}



void init()
{
       
        led=1;
        P0=0x00;
        led=0;
        TMOD=0x11;
          TH0=(65536-50000)/256;
          TL0=(65536-50000)%256;
          EA=1;
          ET0=1;
          TR0=1;
       
}
void zcsh()
{
shi=9;
fen=26;
        EA=0;
        q1=        num1632;
        init();
        init_12864();
        Clean_12864_GDRAM();

        q1 =        num1632;
        write1632GDRAM(6,3,q1);
        write1632GDRAM(3,3,q1);
        EA=1;       
}
void main()
{
zcsh();
while(1)
       
   {
   x1=1;
           miao1=miao/10;
                miao2=miao%10;
                fen1=fen/10;
                fen2=fen%10;
                shi1=shi/10;
                shi2=shi%10;
   q1 =        num1632;
   q2 =        num1632;
   q3 =        num1632;
   q4 =        num1632;
   q5 =        num1632;
   q6 =        num1632;
           q1=q1+64*miao2;
        q2=q2+64*miao1;
        q3=q3+64*fen2;
        q4=q4+64*fen1;
        q5=q5+64*shi2;
        q6=q6+64*shi1;
        write1632GDRAM(8,3,q1);
        write1632GDRAM(7,3,q2);
        write1632GDRAM(5,3,q3);
        write1632GDRAM(4,3,q4);
        write1632GDRAM(2,3,q5);
        write1632GDRAM(1,3,q6);
        while(x1);
       
        }



}
void t0t() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        num1++;
        if(num1==20)
        {
                num1=0;
               
                miao++;
       
                if(miao==60)
                        {
                        miao=0;
                        fen++;
                        if(fen==60)
                                {
                                        fen=0;
                                        shi++;
                                        if(shi==24)
                                                {
                                               shi=0;       
                                                }
                                }


                        }
       
                x1=0;
        }
}

ahuang227 发表于 2011-4-5 13:17:44

这么 好的东西,没人看吗?真是可惜,我忙你鼎鼎..

hhdhhd 发表于 2011-4-5 15:48:47

楼主,有没有图片啊

bingshuihuo888 发表于 2011-4-5 16:42:08

我忙你鼎鼎..

sunnyhook 发表于 2011-4-5 16:49:57

要是能来个实物或仿真的图就更好了,谢谢楼主!

tangwei039 发表于 2011-4-5 19:16:42

楼主,给个图看看

kunpeng032 发表于 2011-4-5 20:31:28

mark

liuchengliaaa 发表于 2011-4-5 20:51:53

不知道有没有用,反正以后会又用的着
mark

aahui 发表于 2011-4-9 17:44:31

上点图片,代码看着累

LGDSTM 发表于 2011-4-9 18:30:31

- -! 看看

zcy99121 发表于 2011-4-13 18:02:03

视频或者图片才有视觉冲击力嘛,全是代码确实比较……

yywin 发表于 2011-4-13 20:14:52

看看

eryueniao 发表于 2011-4-13 20:42:41

http://cache.amobbs.com/bbs_upload782111/files_38/ourdev_630536E9QVQY.jpg
电子表 (原文件名:dzb.jpg)

哈哈   我还有制图软件    需要的话我在上传

eryueniao 发表于 2011-4-13 20:44:13

最近想做循迹小车,谁有资料能个我分享一些吗

minyang3011 发表于 2011-4-13 20:46:07

楼主是否在介绍的详细些。

eryueniao 发表于 2011-4-13 20:46:47

http://cache.amobbs.com/bbs_upload782111/files_38/ourdev_630538YKJA0F.jpg
haha (原文件名:syp.jpg)

eryueniao 发表于 2011-4-14 21:18:29

回复【14楼】minyang3011 一杯清茶
-----------------------------------------------------------------------
你还有什么问题吗      
我这表可以调时间的      用的是P30,P31,p32,p33;分别是分加分减时加时减
                                                不能调秒

hehanlou 发表于 2011-4-14 21:28:08

没图片,,,,一堆代码 ⊙﹏⊙b汗

suncq 发表于 2011-4-14 21:48:49

回复【12楼】eryueniao 二月鸟
-----------------------------------------------------------------------

制图软件请传上来

eryueniao 发表于 2011-4-17 09:29:59

回复【17楼】hehanlou 何汉楼
-----------------------------------------------------------------------

12楼就是图片

cjx19728 发表于 2011-8-18 17:07:35

楼主,能不能注释一下,菜鸟的我,看的不太懂

summer1987 发表于 2011-8-19 17:17:42

mark

jiangguoliang 发表于 2011-8-20 08:45:37

hyl1533 发表于 2011-8-23 16:56:14

回复【楼主位】eryueniao 二月鸟
-----------------------------------------------------------------------

good!!谢谢分享!!

wsyangyang34 发表于 2011-8-27 15:08:44

犀利啊!

dexidz 发表于 2013-9-20 14:03:29

用什么照的啊,虚也就算了还是反的

阳光天蓝色 发表于 2015-9-25 23:45:00

楼主 可以分享一下 怎么做出来大字体的么?难道要一个一个自己画吗?好麻烦

wkman 发表于 2015-9-26 10:13:01

ks0107/8的? {:lol:}       用图片模式,任意大小字符都可显示以{:victory:}

颜靖峰 发表于 2015-10-10 19:31:14

貌似有人早就做个大字显示的了。
页: [1]
查看完整版本: 12864大字显示表程序