液晶滑動顯示,基于51單片機的c語言設計
單片機源程序如下:
- #include<reg51.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- #define LCD P0 //數據口
- sbit A=P3^2;
- sbit RW=P3^1;
- sbit E=P3^0;
- int num=0,x1=0,x2=0,x3=0;
- unsigned char code h[]=
- {0x00,0x00,0x01,0xFF,0xFF,0xFF,0x81,0x80,0x80,0x81,0xFF,0xFF,0xFF,0x01,0x00,0x00,
- 0x00,0x00,0x80,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x80,0xFF,0xFF,0xFF,0x80,0x00,0x00,};
- unsigned char code u[]=
- {0x00,0x00,0x00,0x01,0xFF,0xFF,0xFF,0x01,0x00,0x00,0x01,0x01,0xFF,0xFF,0x01,0x00,
- 0x00,0x00,0x00,0x00,0x3F,0x7F,0xFF,0xC0,0x80,0x80,0xC0,0xE0,0x7F,0x3F,0x00,0x00,};
- unsigned char code a[]=
- {0x00,0x00,0x00,0x00,0x00,0x80,0xF8,0xFF,0x0F,0xFF,0xFE,0xE0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x80,0xF8,0xFF,0x8F,0x02,0x02,0x02,0x9F,0xFF,0xFE,0xE0,0x80,0x00,};
- unsigned char code w[]=
- {0x00,0x07,0xFF,0xFF,0xF1,0xC1,0xFF,0xFF,0xFF,0xC1,0xFF,0x7F,0x03,0x00,0x00,0x00,
- 0x00,0x00,0x01,0x7F,0xFF,0xFF,0x0F,0x3F,0xFF,0xFF,0x1F,0x00,0x00,0x00,0x00,0x00,};
- unsigned char code e[]=
- {0x00,0x01,0xFF,0xFF,0xFF,0x81,0x81,0x81,0xF1,0xF3,0x07,0x0F,0x08,0x00,0x00,0x00,
- 0x00,0x80,0xFF,0xFF,0xFF,0x80,0x80,0x80,0x87,0xC7,0xE0,0xF0,0x30,0x00,0x00,0x00,};
- unsigned char code i[]=
- {0x00,0x00,0x01,0x01,0x01,0xFF,0xFF,0xFF,0xFF,0x01,0x01,0x01,0x00,0x00,0x0,0x00,
- 0x00,0x00,0x80,0x80,0x80,0xFF,0xFF,0xFF,0xFF,0x80,0x80,0x80,0x00,0x00,0x00,0x00,};
- unsigned char code hao[]=
- {0x10,0x10,0xF0,0x1F,0x10,0xF0,0x00,0x80,0x82,0x82,0xE2,0x92,0x8A,0x86,0x80,0x00,
- 0x40,0x22,0x15,0x08,0x16,0x61,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,};
- unsigned char code xue[]=
- {0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96,0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00,
- 0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,0x06,0x05,0x04,0x04,0x04,0x04,0x04,0x00,};
- unsigned char code xi[]=
- {0x00,0x02,0x02,0x02,0x12,0x22,0xC2,0x02,0x02,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,
- 0x00,0x08,0x18,0x08,0x04,0x04,0x04,0x02,0x02,0x41,0x81,0x40,0x3F,0x00,0x00,0x00,};
- unsigned char code dan[]=
- {0x00,0x00,0xF8,0x49,0x4A,0x4C,0x48,0xF8,0x48,0x4C,0x4A,0x49,0xF8,0x00,0x00,0x00,
- 0x10,0x10,0x13,0x12,0x12,0x12,0x12,0xFF,0x12,0x12,0x12,0x12,0x13,0x10,0x10,0x00,};
- unsigned char code pian[]=
- {0x00,0x00,0x00,0xFE,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x00,0x00,
- 0x00,0x80,0x60,0x1F,0x02,0x02,0x02,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x00,};
- unsigned char code ji[]=
- {0x10,0x10,0xD0,0xFF,0x90,0x10,0x00,0xFE,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,
- 0x04,0x03,0x00,0xFF,0x00,0x83,0x60,0x1F,0x00,0x00,0x00,0x3F,0x40,0x40,0x78,0x00,};
- unsigned char code dou[]=
- {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x58,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};
- unsigned char code tian[]=
- {0x40,0x40,0x42,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0x42,0x40,0x40,0x00,
- 0x80,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x80,0x00,};
- unsigned char code xiang[]=
- {0x00,0xF8,0x08,0x08,0x0C,0xCA,0x49,0x48,0x48,0xC8,0x08,0x08,0x08,0xF8,0x00,0x00,
- 0x00,0xFF,0x00,0x00,0x00,0x1F,0x08,0x08,0x08,0x1F,0x00,0x40,0x80,0x7F,0x00,0x00,};
- unsigned char code shang[]=
- {0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
- 0x40,0x40,0x40,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,};
- unsigned char code gan[]=
- {0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};
- unsigned char code li[]=
- {0x80,0x84,0x44,0x44,0x24,0x14,0x0C,0xFF,0x0C,0x14,0x24,0x44,0x44,0x84,0x80,0x00,
- 0x08,0x08,0x08,0x08,0x09,0x49,0x89,0x79,0x0D,0x0B,0x09,0x08,0x08,0x08,0x08,0x00,};
- unsigned char code jian[]=
- {0x04,0x84,0xC4,0xB4,0x8C,0x10,0x54,0x54,0x54,0xFF,0x54,0x54,0x7C,0x10,0x10,0x00,
- 0x80,0x44,0x28,0x18,0x27,0x28,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x48,0x40,0x00,};
- unsigned char code bin[]=
- {0x10,0x90,0x12,0x14,0xF0,0x10,0x20,0x24,0xA4,0x24,0x20,0xFF,0x20,0x22,0x2C,0x00,
- 0x40,0x20,0x19,0x06,0x39,0x40,0xFE,0x40,0x3F,0x22,0x20,0x0F,0x30,0x40,0xF0,0x00,};
- unsigned char code chao[]=
- {0x40,0x48,0x48,0x48,0xFF,0x48,0x48,0x42,0xA2,0x9E,0x82,0xA2,0xC2,0xBE,0x00,0x00,
- 0x80,0x60,0x1F,0x20,0x7F,0x44,0x44,0x40,0x4F,0x48,0x48,0x48,0x48,0x4F,0x40,0x00,};
- unsigned char code lii[]=
- {0x10,0x60,0x02,0x0C,0xC0,0x00,0xFE,0x02,0x42,0x42,0xFA,0x42,0x42,0xC2,0x02,0x00,
- 0x04,0x04,0x7C,0x83,0x40,0x30,0x8F,0x40,0x30,0x0C,0x43,0x80,0x40,0x3F,0x00,0x00,};
- unsigned char code lu[]=
- {0x00,0xFE,0x02,0x22,0xDA,0x06,0x80,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x80,0x00,
- 0x00,0xFF,0x08,0x10,0x08,0x07,0x00,0x7C,0x40,0x40,0x7F,0x40,0x40,0xFC,0x00,0x00,};
- unsigned char code fu[]=
- {0x10,0x0C,0x14,0xD4,0x54,0x54,0x55,0x56,0x54,0x54,0x54,0xD4,0x14,0x14,0x0C,0x00,
- 0x00,0x00,0xFC,0x55,0x55,0x55,0x55,0x7D,0x55,0x55,0x55,0x55,0xFC,0x00,0x00,0x00,};
- unsigned char code jiang[]=
- {0x10,0x60,0x02,0x0C,0xC0,0x04,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x04,0x00,0x00,
- 0x04,0x04,0x7C,0x03,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x00,};
- unsigned char code wen[]=
- {0x08,0x08,0x08,0x38,0xC8,0x08,0x09,0x0E,0x08,0x08,0xC8,0x38,0x08,0x08,0x08,0x00,
- 0x80,0x80,0x40,0x40,0x20,0x11,0x0A,0x04,0x0A,0x11,0x20,0x40,0x40,0x80,0x80,0x00,};
- unsigned char code qp[]=
- {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 gun1[]=
- {0x18,0x18,0x18,0x18,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x18,0x18,0x18,
- 0x18,0x18,};
- unsigned char code gun2[]=
- {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x17,0x16,0x15,0x14,
- 0x13,0x12,0x11,0x10,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,};
- unsigned char code gun3[]=
- {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x17,0x16,0x15,
- 0x14,0x13,0x12,0x11,0x10,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
- 0x18,0x18,0x18,0x18,0x18,};
- unsigned char code hang[]=
- {0xB0,0xB2,0xB4,0xB6,};
- unsigned char code lie[]=
- {0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,};
- void delay(int num) //延時函數
- {
- int i,j;
- for(i=num;i>0;i--)
- for(j=120;j>0;j--);
- }
- void busytest()
- {
- A=0;
- RW=1;
- P1=0x00;
- E=1;
- while(P1&0x08);
- E=0;
- }
- void writevalue(uchar value) //寫命令數據
- {
- busytest();
- A=0;
- RW=0;
- LCD=value;
- E=1;
- E=0;
- }
- void writedata(uchar data1) //寫顯示數據
- {
- busytest();
- A=1;
- RW=0;
- LCD=data1;
- E=1;
- E=0;
- }
- void display(int a,int b,char *c)
- {
- int n;
- for(n=0;n<=15;n++)
- {
- writevalue(a); //列(頁)設置
- writevalue(b); //行設置高四位
- writevalue(0x00+n); //行設置低四位
- writedata(c[n]);
- writevalue(a+1); //列(頁)設置
- writevalue(b); //行設置高四位
- writevalue(0x00+n); //行設置低四位
- writedata(c[n+16]);
- }
- }
- void T0_time() interrupt 1 //定時器
- {
- num++;
- if(num==9215)
- {
- num=0;
- x1++;
- x2++;
- x3++;
- if(x1>12)
- {
- x1=0;
- }
- if(x2>19)
- {
- x2=0;
- }
- }
- }
- main()
- {
- int A,B;
- writevalue(0xaf); //顯示開
- writevalue(0xa1); //正顯示
- TMOD=0x02; //定時器0的為工作方式2
- TH0=6; //裝初值
- TL0=6; //裝初值
- EA=1; //開總中斷
- ET0=1; //開啟定時器0
- TR0=1; //啟動定時器0
- while(1)
- {
- display(0xB1,gun1[x1+5],h);
- display(0xB1,gun1[x1+4],u);
- display(0xB1,gun1[x1+3],a);
- display(0xB1,gun1[x1+2],w);
- display(0xB1,gun1[x1+1],e);
- display(0xB1,gun1[x1],i);
- display(0xB4,gun2[x2+12],hao);
- display(0xB4,gun2[x2+11],hao);
- display(0xB4,gun2[x2+10],xue);
- display(0xB4,gun2[x2+9],xi);
- display(0xB4,gun2[x2+8],dan);
- display(0xB4,gun2[x2+7],pian);
- display(0xB4,gun2[x2+6],ji);
- display(0xB4,gun2[x2+5],dou);
- display(0xB4,gun2[x2+4],tian);
- display(0xB4,gun2[x2+3],tian);
- display(0xB4,gun2[x2+2],xiang);
- display(0xB4,gun2[x2+1],shang);
- display(0xB4,gun2[x2],gan);
- display(0xB6,gun3[x2+13],li);
- display(0xB6,gun3[x2+12],jian);
- display(0xB6,gun3[x2+11],bin);
- display(0xB6,gun3[x2+9],li);
- display(0xB6,gun3[x2+8],chao);
- display(0xB6,gun3[x2+7],lii);
- display(0xB6,gun3[x2+5],lu);
- display(0xB6,gun3[x2+4],fu);
- display(0xB6,gun3[x2+2],li);
- display(0xB6,gun3[x2+1],jiang);
- display(0xB6,gun3[x2],wen);
- delay(2000); //延時
- for(A=0;A<8;A++) //清空液晶屏
- {
- for(B=0;B<4;B++)
- {
- display(hang[B],lie[A],qp);
- }
- }
- }
- }
復制代碼
所有資料51hei提供下載:
液晶滑動顯示(1602)c語言.rar
(59.32 KB, 下載次數: 5)
2019-12-15 16:14 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|