1.png (35.81 KB, 下載次數(shù): 92)
下載附件
2021-12-11 21:08 上傳
- #include<AT89X51.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- #define LCD_databus P3
- uchar num,ms,i,k;
- uchar code zi[32][32]={
- /*************************************************/
- 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,
- /*************************************************/
- 0x02,0xe2,0x22,0x22,0x3e,0x00,0x80,0x9e,
- 0x92,0x92,0xf2,0x92,0x92,0x9e,0x80,0x00,
- 0x00,0x43,0x82,0x42,0x3e,0x40,0x47,0x44,
- 0x44,0x44,0x7f,0x44,0x44,0x54,0xe7,0x00,
- /*************************************************/
- 0x00,0x00,0xfe,0x22,0x22,0x22,0x22,0x22,
- 0xe2,0x22,0x22,0x22,0x3e,0x00,0x00,0x00,
- 0x00,0x00,0xff,0x41,0x21,0x11,0x01,0x01,
- 0x03,0x0d,0x11,0x21,0x41,0xf1,0x00,0x00,
- /*************************************************/
- 0x00,0x08,0x08,0x08,0x08,0x08,0x09,0xfa,
- 0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,
- 0x40,0x40,0x41,0x41,0x41,0x41,0x41,0x7f,
- 0x41,0x41,0x41,0x41,0x41,0x40,0x40,0x00,
- /*************************************************/
- 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,
- /*************************************************/
- 0x00,0xfc,0x44,0x44,0x44,0xfc,0x00,0x00,
- 0xfe,0x22,0x22,0x22,0x22,0xfe,0x00,0x00,
- 0x00,0x0f,0x04,0x04,0x04,0x8f,0x40,0x30,
- 0x0f,0x02,0x02,0x42,0x82,0x7f,0x00,0x00,
- /*************************************************/
- 0x20,0x24,0x24,0xa4,0xfe,0x23,0x22,0x20,
- 0x00,0xf8,0x08,0x08,0x08,0xf8,0x00,0x00,
- 0x10,0x08,0x06,0x01,0xff,0x01,0x06,0x00,
- 0x00,0x3f,0x10,0x10,0x10,0x3f,0x00,0x00,
- /*************************************************/
- 0x40,0x40,0x42,0xcc,0x00,0x00,0x7f,0x24,
- 0x94,0x40,0x3f,0x48,0x44,0x42,0x70,0x00,
- 0x00,0x00,0x00,0x7f,0x20,0x10,0xff,0x49,
- 0x49,0x49,0x49,0x49,0x49,0xff,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,0x00,0x00,
- /*************************************************/
- 0x00,0x00,0x00,0xf8,0x88,0x8c,0x8a,0x89,
- 0x88,0x88,0x88,0xf8,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xff,0x44,0x44,0x44,0x44,
- 0x44,0x44,0x44,0xff,0x00,0x00,0x00,0x00,
- /*************************************************/
- 0x00,0x00,0xf0,0x10,0x10,0x10,0x10,0xff,
- 0x10,0x10,0x10,0x10,0xf0,0x00,0x00,0x00,
- 0x00,0x00,0xff,0x42,0x42,0x42,0x42,0x7f,
- 0x42,0x42,0x42,0x42,0xff,0x00,0x00,0x00,
- /***********************************************/
- 0x00,0x02,0x02,0x12,0x62,0x02,0x02,0xfe,
- 0x02,0x02,0x42,0x32,0x02,0x02,0x00,0x00,
- 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xff,
- 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,
- /*************************************************/
- 0x08,0x04,0x23,0x22,0x26,0x2a,0x22,0xfa,
- 0x24,0x23,0x22,0x26,0x2a,0x02,0x02,0x00,
- 0x01,0x09,0x09,0x09,0x19,0x69,0x09,0x09,
- 0x49,0x89,0x7d,0x09,0x09,0x09,0x01,0x00,
- /*************************************************/
- 0x00,0x80,0x40,0x20,0x18,0x06,0x80,0x00,
- 0x07,0x18,0x20,0x40,0x80,0x00,0x00,0x00,
- 0x01,0x00,0x20,0x70,0x28,0x26,0x21,0x20,
- 0x20,0x24,0x38,0x60,0x00,0x01,0x01,0x00,
- /***********************************************/
- 0x00,0x02,0x02,0xc2,0x02,0x02,0x02,0xfe,
- 0x82,0x82,0x82,0x82,0x82,0x02,0x00,0x00,
- 0x40,0x40,0x40,0x7f,0x40,0x40,0x40,0x7f,
- 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,
- /*************************************************/
- 0x10,0x60,0x02,0x8c,0x00,0x10,0x10,0x10,
- 0x10,0xff,0x10,0x10,0x10,0x10,0x00,0x00,
- 0x04,0x04,0x7e,0x01,0x41,0xe1,0x51,0x49,
- 0x45,0x43,0x41,0x51,0x61,0xc1,0x01,0x00,
- /*************************************************/
- 0x10,0x60,0x02,0x8c,0x00,0x20,0x30,0x28,
- 0x24,0x23,0x20,0x28,0x30,0x60,0x00,0x00,
- 0x04,0x04,0x7e,0x01,0x00,0x00,0xff,0x41,
- 0x41,0x41,0x41,0x41,0xff,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,0x00,0x00,0x00,
- /*************************************************/
- 0x80,0x64,0x2c,0x34,0x24,0x24,0xec,0x32,
- 0x22,0x22,0x32,0x2e,0x23,0xa2,0x60,0x00,
- 0x00,0x41,0x21,0x91,0x89,0x87,0x4d,0x55,
- 0x25,0x25,0x55,0x4d,0x81,0x80,0x80,0x00,
- /*************************************************/
- 0x00,0xfe,0x02,0x12,0x92,0x92,0x92,0xf2,
- 0x92,0x92,0x92,0x12,0x02,0xfe,0x00,0x00,
- 0x00,0xff,0x40,0x48,0x48,0x48,0x48,0x4f,
- 0x48,0x4a,0x4c,0x48,0x40,0xff,0x00,0x00,
- /***********************************************/
- 0x84,0x74,0x2f,0x24,0x24,0x24,0x2f,0xe4,
- 0x84,0x70,0x8f,0x08,0x08,0xf8,0x08,0x00,
- 0x00,0x1f,0x09,0x09,0x49,0x9f,0x40,0x3f,
- 0x80,0x40,0x33,0x0c,0x33,0x40,0x80,0x00,
- /*************************************************/
- 0x00,0x10,0x60,0x80,0x00,0xff,0x00,0x00,
- 0x00,0xff,0x00,0x00,0xc0,0x30,0x00,0x00,
- 0x40,0x40,0x40,0x43,0x40,0x7f,0x40,0x40,
- 0x40,0x7f,0x42,0x41,0x40,0x40,0x40,0x00,
- /*************************************************/
- 0x40,0x42,0xcc,0x00,0x00,0xf8,0x88,0x88,
- 0x88,0x08,0xff,0x08,0x09,0xca,0x08,0x00,
- 0x00,0x00,0x3f,0x90,0x68,0x1f,0x10,0x20,
- 0x9f,0x40,0x27,0x18,0x26,0x41,0xf0,0x00,
- /***********************************************/
- 0x00,0x80,0x60,0xf8,0x07,0x00,0x04,0x24,
- 0x24,0x25,0x26,0x24,0x24,0x24,0x04,0x00,
- 0x01,0x00,0x00,0xff,0x00,0x00,0x00,0xf9,
- 0x49,0x49,0x49,0x49,0x49,0xf9,0x00,0x00,
- /*************************************************/
- 0x08,0x08,0x08,0x08,0xc8,0x78,0xcf,0x48,
- 0x48,0x48,0x48,0xc8,0x08,0x08,0x08,0x00,
- 0x10,0x88,0x84,0x43,0x40,0x20,0x21,0x16,
- 0x08,0x14,0x22,0x41,0x40,0x80,0x80,0x00,
- /*************************************************/
- 0x40,0x44,0x54,0xd4,0x55,0x56,0x54,0xfc,
- 0x54,0x56,0x55,0xd4,0x54,0x44,0x40,0x00,
- 0x02,0x02,0xfa,0x4a,0x4b,0x4a,0x4a,0x4b,
- 0x4a,0x4a,0x4b,0x4a,0xfa,0x02,0x02,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,0x00,
- /**********************??*************************/
- 0x00,0x40,0x20,0x10,0x10,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x10,0x10,0x20,0x40,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x08,
- 0x08,0x04,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,0x00,0x00,0x00,0x00,0x00,0x00};
- sbit RS=P2^2;
- sbit RW=P2^1;
- sbit EN=P2^0;
- sbit CS1=P2^4;
- sbit CS2=P2^3;
- sbit key1=P2^5;
- void delay(uint x)
- {
- uchar i;
- while(x--)
- for(i=0;i<120;i++);
- }
- void Read_busy()
- {
- P0=0X00;
- RS=0;
- RW=1;
- EN=1;
- while(P0&0x80);
- EN=0;
- }
- void write_LCD_command(uchar value)
- {
- Read_busy();
- RS=0;
- RW=0;
- LCD_databus=value;
- EN=1;
- _nop_();
- _nop_ ();
- EN=0;
- }
- void write_LCD_data(uchar value)
- {
- Read_busy();
- RS=1;
- RW=0;
- LCD_databus=value;
- EN=1;
- _nop_();
- _nop_();
- EN=0;
- }
- void Set_page(uchar page)
- {
- page=0xb8|page;
- write_LCD_command(page);
- }
- void Set_line(uchar startline)
- {
- startline=0xc0|startline;
- write_LCD_command(startline);
- }
- void Set_colum(uchar colum)
- {
- colum=colum&0x3f;
- colum=0x40|colum;
- write_LCD_command(colum);
- }
- void Setonoff(uchar onoff)
- {
- onoff=0x3e|onoff;
- write_LCD_command(onoff);
- }
- void SelectScreen(uchar screen)
- {
- switch(screen)
- {
- case 0:CS1=0;CS2=0;break;
- case 1:CS1=0;CS2=1;break;
- case 2:CS1=1;CS2=0;break;
- default:break;
- }
- }
- void ClearScreen(uchar screen)
- {
- uchar i,j;
- SelectScreen(screen);
- for(i=0;i<8;i++)
- {
- Set_page(i);
- Set_colum(0);
- for(j=0;j<64;j++)
- {
- write_LCD_data(0x00);
- }
- }
- }
- void InitLCD()
- {
- Read_busy();
- SelectScreen(0);
- Setonoff(0);
- SelectScreen(0);
- Setonoff(1);
- SelectScreen(0);
- ClearScreen(0);
- Set_line(0);
- }
- void Display(uchar ss,uchar page,uchar colum,uchar *p)
- {
- uchar i;
- SelectScreen(ss);
- Set_page(page);
- Set_colum(colum);
- for(i=0;i<16;i++)
- {
- write_LCD_data(p[i]);
- }
- Set_page(page+1);
- Set_colum(colum);
- for(i=0;i<16;i++)
- {
- write_LCD_data(p[i+16]);
- }
- }
- void sxzy()
- {
- switch(ms)
- {
- case 0:Display(1,0,0*16,zi[0]);
- Display(1,0,1*16,zi[1]);
- Display(1,0,2*16,zi[2]);
- Display(1,0,3*16,zi[3]);
- Display(2,0,0*16,zi[4]);
- Display(2,0,1*16,zi[5]);
- Display(2,0,2*16,zi[6]);
- Display(2,0,3*16,zi[7]);
- Display(1,2,0*16,zi[9]);
- Display(1,2,1*16,zi[10]);
- Display(1,2,2*16,zi[11]);
- Display(1,2,3*16,zi[12]);
- Display(2,2,0*16,zi[13]);
- Display(2,2,1*16,zi[14]);
- Display(2,2,2*16,zi[15]);
- Display(2,2,3*16,zi[16]);
- Display(1,4,0*16,zi[18]);
- Display(1,4,1*16,zi[19]);
- Display(1,4,2*16,zi[20]);
- Display(1,4,3*16,zi[21]);
- Display(2,4,0*16,zi[22]);
- Display(2,4,1*16,zi[23]);
- Display(2,4,2*16,zi[24]);
- Display(2,4,3*16,zi[25]);
- Display(1,6,48,zi[27]);
- break;
- case 1:
- if(i<25)
- {
- int a=i+1,b=i+2,c=i+3,d=i+4,e=i+5,f=i+6,g=i+7;
- Display(1,2,0*16,zi[i]);
- Display(1,2,1*16,zi[a]);
- Display(1,2,2*16,zi[b]);
- Display(1,2,3*16,zi[c]);
- Display(2,2,0*16,zi[d]);
- Display(2,2,1*16,zi[e]);
- Display(2,2,2*16,zi[f]);
- Display(2,2,3*16,zi[g]);
- delay(500);
- ClearScreen(0);
- }
- i++;
- if(i>=25){i=0;}
- break;
- case 2: if(i<25){
- int a=i+1,b=i+2,c=i+3,d=i+4,e=i+5,f=i+6,g=i+7;
- Display(1,0,48,zi[i]);
- Display(1,2,48,zi[a]);
- Display(1,4,48,zi[b]);
- Display(1,6,48,zi[c]);
- delay(500);
- ClearScreen(0);
- i+=1;
- if(i>=25)i=0;
- }
- break;
- case 3:if(i<25)
- {
- int a=i+1,b=i+2,c=i+3,d=i+4,e=i+5,f=i+6,g=i+7;
- Display(1,6,48,zi[i]);
- Display(1,4,48,zi[a]);
- Display(1,2,48,zi[b]);
- Display(1,0,48,zi[c]);
- delay(500);
- ClearScreen(0);
- i+=1;
- if(i>=25)i=0;
- }break;
- case 4:if(i<25)
- {
- int a=i+1,b=i+2,c=i+3,d=i+4,e=i+5,f=i+6,g=i+7;
- Display(2,2,3*16,zi[i]);
- Display(2,2,2*16,zi[a]);
- Display(2,2,1*16,zi[b]);
- Display(2,2,0*16,zi[c]);
- Display(1,2,3*16,zi[d]);
- Display(1,2,2*16,zi[e]);
- Display(1,2,1*16,zi[f]);
- Display(1,2,0*16,zi[g]);
- delay(500);
- ClearScreen(0);
- }
- i++;
- if(i>=25){i=0;}
- break;
- break;
- }
- }
- void main()
- {
- InitLCD();
- ClearScreen(0);
- Set_line(0);
- while(1)
- {
- if(key1==0)
- {
- ms++;
- ClearScreen(0);
- i=0;
- if(ms>=5)ms=0;
- while(!key1);
- }
- sxzy();
- // for(k=0;k<24;k+=9)
- // {
- // for(i=0;i<7;i++)
- // {
- // Display(1,i,0*16,zi[k+0]);
- // Display(1,i,1*16,zi[k+1]);
- // Display(1,i,2*16,zi[k+2]);
- // Display(1,i,3*16,zi[k+3]);
- // Display(2,i,0*16,zi[k+4]);
- // Display(2,i,1*16,zi[k+5]);
- // Display(2,i,2*16,zi[k+6]);
- // Display(2,i,3*16,zi[k+7]);
- // delay(500);
- // ClearScreen(0);
- // }
- // }
- }
- }
復(fù)制代碼
|