- #include<reg52.h>
- #include"delay.h"
- #include"hc595.h"
- #include"boardinit.h"
- #define IO_12864 P0
- uchar code nBitmapDot0[] = // 數據表
- {
- 0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x05,0xAE,0x90,0x00,0x00,0x95,0x55,0x48,
- 0x80,0x00,0x00,0x00,0x00,0x2B,0x55,0x00,
- 0x00,0x00,0xA8,0x00,0x22,0x15,0x20,0x00,
- 0x00,0x00,0x97,0xFB,0x00,0x00,0x00,0x45,
- 0x55,0x08,0xA0,0x00,0x00,0x00,0x0A,0x6F,
- 0xF4,0x00,0x00,0x00,0xB2,0x80,0x40,0x00,
- 0x04,0x40,0x00,0x00,0xBA,0xE0,0x00,0x00,
- 0x00,0x4D,0x55,0x15,0x15,0x20,0x00,0x00,
- 0x95,0xD5,0x00,0x00,0x00,0x00,0xFF,0xE8,
- 0x40,0x40,0x00,0x00,0x00,0x4A,0xAA,0x80,
- 0x00,0x00,0x00,0xFF,0xFF,0x2A,0x00,0x40,
- 0x00,0x00,0x15,0x54,0x00,0x00,0x00,0x00,
- 0xFF,0xFD,0xD0,0xAA,0x01,0x00,0x00,0x25,
- 0x20,0x10,0x00,0x00,0x00,0xFF,0xFF,0xB6,
- 0x00,0x10,0x00,0x01,0x4A,0x49,0x00,0x00,
- 0x00,0x00,0xFF,0xFF,0xFD,0xE8,0x40,0x00,
- 0x00,0x11,0x00,0x24,0x84,0x00,0x00,0xAB,
- 0xFF,0xFF,0x55,0x00,0x00,0x00,0x24,0x02,
- 0x49,0x5E,0xA0,0x00,0x84,0xBF,0xFF,0xF4,
- 0x88,0x00,0x00,0x00,0x10,0x05,0xFF,0xF4,
- 0x00,0x29,0x0B,0xFF,0xFA,0x20,0x00,0x00,
- 0x00,0x02,0xBF,0xFF,0xFC,0x00,0x44,0xA0,
- 0x57,0xFD,0x80,0x00,0x00,0x00,0x08,0x5F,
- 0xFF,0xFF,0x80,0x91,0x0A,0xAA,0xF6,0x50,
- 0x00,0x00,0x00,0x41,0xFF,0xFF,0xFF,0xC0,
- 0x44,0xA0,0x01,0x1B,0x84,0x00,0x00,0x00,
- 0x26,0xFF,0xFF,0xFF,0x90,0x11,0x0A,0xAA,
- 0x6D,0x68,0x00,0x00,0x00,0x0B,0xFB,0xFF,
- 0xEF,0xE0,0xC4,0xA0,0x01,0x02,0x80,0x00,
- 0x00,0x00,0x43,0xF1,0xFE,0x63,0xF0,0x15,
- 0x55,0x54,0x55,0x6A,0x00,0x00,0x00,0x9F,
- 0xE3,0xFC,0x87,0x30,0xCA,0xAB,0x91,0x00,
- 0x90,0x00,0x00,0x00,0x07,0xC1,0xFA,0x2A,
- 0x80,0x25,0xFF,0xFE,0x95,0x2A,0x00,0x00,
- 0x00,0x2F,0x13,0xFE,0xFC,0x10,0x95,0xFF,
- 0xFF,0xC0,0x50,0x00,0x00,0x00,0x0F,0x41,
- 0xFF,0xF3,0x80,0x4F,0xFF,0xFF,0xF9,0x2A,
- 0x00,0x00,0x00,0x9F,0x08,0xFF,0xD4,0x00,
- 0xB3,0xFF,0xFF,0xFE,0x54,0x80,0x00,0x00,
- 0x1E,0xA0,0x7F,0xA0,0x00,0x5F,0xFE,0x7F,
- 0xFE,0xAA,0x00,0x00,0x00,0x5F,0x57,0xFE,
- 0x00,0x00,0xAF,0xFD,0x7F,0xFF,0x94,0x80,
- 0x00,0x00,0x1F,0xFE,0xE8,0x00,0x00,0x7F,
- 0xFA,0x7F,0x5F,0xCA,0x00,0x00,0x00,0x3F,
- 0x55,0x00,0x00,0x00,0xAF,0xF1,0x7F,0xDE,
- 0xF5,0x40,0x00,0x00,0x1A,0xA0,0x80,0x00,
- 0x00,0xDF,0xF2,0x3F,0xFC,0xC2,0x00,0x00,
- 0x00,0x50,0x08,0x00,0x00,0x00,0x2F,0xFA,
- 0xBF,0xFF,0xF4,0xA0,0x00,0x00,0x05,0x42,
- 0x00,0x00,0x00,0x97,0xFE,0x3F,0xFF,0xE3,
- 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,
- 0x68,0xFF,0xDF,0xD5,0x78,0x40,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x07,0x5F,0xFF,
- 0x48,0x02,0x80,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xD0,0xAA,0xF4,0xA0,0xAA,0x40,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,
- 0x45,0x09,0x05,0x11,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xA1,0x28,0xA0,0x00,
- 0x44,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x08,0x42,0x04,0x52,0x12,0x80,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xA5,0x09,
- 0x51,0x00,0x48,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x50,0x04,0x4A,0x12,
- 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xAA,0x05,0x50,0x21,0x48,0x20,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x02,
- 0x84,0x12,0x80,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xD4,0x05,0x48,0x10,0x48,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x81,
- 0x20,0x00,0x02,0x02,0x80,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xA4,0x84,0x92,0x48,
- 0x94,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x48,0x10,0x00,0x00,0x21,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00
- };
- unsigned char code nBitmapDot1[] = // 數據表
- {
- 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,0x01,
- 0x3F,0xC0,0x80,0x42,0x04,0x20,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x8A,0x1F,0xFC,
- 0x42,0x04,0xF8,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x3F,0x80,0x01,0xFF,0xDE,0x88,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x2A,
- 0x87,0xF0,0xA2,0x0A,0xF8,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xBF,0x84,0x10,0xA2,
- 0x0A,0x88,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x80,0x1F,0xFC,0xA2,0x0A,0xF8,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x9F,0x90,
- 0x05,0x2F,0xCA,0xA4,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x01,0x80,0x03,0xE1,0xA8,0x4A,
- 0xA8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xBF,0xC2,0x24,0x48,0x44,0x90,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x92,0x84,0x24,
- 0xA8,0x4A,0xA8,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xA6,0x58,0x3D,0x0F,0xD0,0xC4,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,
- 0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x23,0x08,0x37,0x80,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x40,0x10,0x08,0x40,0x00,0xFF,0x90,
- 0x10,0x08,0x00,0x00,0x00,0x00,0x81,0x86,
- 0x10,0x40,0x00,0x08,0x08,0x10,0xFF,0x86,
- 0x00,0x00,0x01,0x02,0x49,0x40,0x40,0x00,
- 0x7F,0x0B,0xFC,0x08,0x0F,0x00,0x00,0x01,
- 0x08,0x00,0x40,0x20,0x00,0x10,0x00,0x10,
- 0x49,0x0F,0x00,0x00,0x02,0x08,0x00,0x20,
- 0x20,0x01,0xFF,0xDD,0x10,0x2A,0x0F,0x00,
- 0x00,0x04,0x31,0x83,0x20,0x20,0x00,0x20,
- 0x04,0x91,0xFF,0xC6,0x00,0x00,0x04,0x52,
- 0x44,0x90,0x20,0x00,0x7F,0x04,0x90,0x1C,
- 0x06,0x00,0x00,0x09,0xA4,0x28,0x4C,0x10,
- 0x00,0xA1,0x04,0x10,0x2A,0x00,0x00,0x00,
- 0x0E,0x44,0xE9,0xC3,0x90,0x01,0x3F,0x04,
- 0x70,0x49,0x06,0x00,0x00,0x00,0x82,0xC5,
- 0x81,0x70,0x00,0x21,0x0A,0x01,0x88,0xC6,
- 0x00,0x00,0x01,0x01,0x83,0x00,0x80,0x80,
- 0x3F,0x11,0xFC,0x08,0x00,0x00,0x00,0x01,
- 0x0C,0x70,0x00,0x80,0x30,0x40,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x02,0x13,0x87,0x10,
- 0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x02,0x20,0x78,0xA0,0x40,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x20,
- 0x00,0x60,0x40,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x02,0x21,0x80,0x60,0x40,
- 0x00,0x00,0x71,0xEE,0x3C,0x00,0x00,0x00,
- 0x01,0x11,0x98,0x90,0x80,0x00,0x00,0x8E,
- 0x31,0xC6,0x00,0x00,0x00,0x01,0x08,0x18,
- 0x80,0x80,0x00,0x01,0x24,0x24,0x83,0x00,
- 0x00,0x00,0x00,0x96,0x01,0x01,0x00,0x00,
- 0x01,0x40,0x28,0x03,0x00,0x00,0x00,0x00,
- 0x49,0x86,0x03,0x00,0x00,0x01,0x40,0x28,
- 0x03,0x00,0x00,0x00,0x00,0x34,0x78,0x8C,
- 0x00,0x00,0x01,0x00,0x20,0x03,0x00,0x00,
- 0x00,0x00,0x0E,0x01,0x30,0x00,0x00,0x00,
- 0x80,0x30,0x06,0x00,0x00,0x00,0x00,0x71,
- 0x87,0xCE,0x00,0x00,0x00,0x40,0x68,0x0C,
- 0x00,0x00,0x00,0x00,0xE0,0x78,0x07,0x00,
- 0x00,0x00,0x20,0xC4,0x18,0x00,0x00,0x00,
- 0x01,0xAF,0xFF,0xC5,0x80,0x00,0x00,0x11,
- 0x82,0x30,0x00,0x00,0x00,0x03,0xA9,0xB6,
- 0x45,0xC0,0x00,0x00,0x0B,0x01,0x60,0x00,
- 0x00,0x00,0x07,0x2F,0x03,0xC4,0xE0,0x00,
- 0x00,0x06,0x00,0xC0,0x00,0x00,0x00,0x0E,
- 0x16,0x01,0x88,0x70,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x0F,0x08,0x00,0x10,
- 0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x0F,0x84,0x00,0x21,0xF0,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00
- };
- //#define uchar unsigned char
- sbit RS=P2^5;
- sbit RW=P2^6;
- sbit E=P2^4;
- sbit PSB=P1^3;
- sbit RST=P1^5;
- void read_busy() //測忙函數
- {
- E=0;
- RS=0;
- RW=1;
- E=1;
- IO_12864=0xff;
- while(IO_12864&0X80);
- E=0;
- }
- void write_com(uchar com) //寫指令函數
- {
- read_busy();
- E=0;
- RS=0;
- RW=0;
- E=1;
- IO_12864=com;
- E=0;
- }
- void write_dat(uchar dat) //寫數據函數
- {
- read_busy();
- E=0;
- RS=1;
- RW=0;
- E=1;
- IO_12864=dat;
- E=0;
- }
- uchar read_dat() //讀數據函數
- {
- uchar dat1;
- read_busy();
- E=0;
- RS=1;
- RW=1;
- E=1;
- IO_12864=0xff;
- dat1=IO_12864;
- E=0;
- return dat1;
- }
- void CLGDRAM() //清空GDRAM函數
- {
- uchar i,j;
- write_com(0x34); //擴充指令集動作
- for(i=0;i<32;i++)
- {
- write_com(0x80+i); //行坐標(垂直坐標)
- write_com(0x80); //列坐標(水平坐標)
- for(j=0;j<32;j++)
- write_dat(0x00);
- }
- write_com(0x30); //基本指令集動作
- }
- void Draw(uchar *addr) //全屏繪圖函數
- {
- uchar i,j;
- write_com(0x34); //擴充指令集動作
- for(i=0;i<32;i++)
- {
- write_com(0x80+i); //行坐標(垂直坐標)
- write_com(0x80); //列坐標(水平坐標)
- for(j=0;j<32;j++)
- write_dat(*addr++);
- }
- write_com(0x30); //基本指令集動作
- }
- void init_12864()
- {
- PSB=1; //并口打開
- RST=1;
- RST=0; //復位
- delayus(100);
- RST=1;
- write_com(0x30); //基本指令集動作
- delayus(10);
- write_com(0x30); //基本指令集動作
- delayus(10);
- write_com(0x06); //設置顯示和游標開
- delayus(10);
- write_com(0x01); //清楚顯示
- delay(10);
- write_com(0x0c); //開顯示
- }
- void main()
- {
- boardinit();
- init_12864();
- while(1)
- {
- init_12864();
- CLGDRAM();
- Draw(nBitmapDot0);
- write_com(0x36);
- delay(500);
- init_12864();
- CLGDRAM();
- Draw(nBitmapDot1);
- write_com(0x36);
- delay(500);
- }
- }
復制代碼 |