for(j=0;j<16;j++)
{
write_dat(table[ i][j]);
}
16在這指16列, 可是上半屏才8列。如果這樣寫(xiě)就一起把下半屏一起寫(xiě)了。為什么還寫(xiě)
for(i=0;i<32;i++)
{
write_cmd(0x80+i);
write_cmd(0x88);
for(j=0;j<16;j++)
{
write_dat(table[i+32][j]);
}
}
請(qǐng)教大神指教!!!
請(qǐng)教大神指教!!!
請(qǐng)教大神指教!!!
感謝!!!
- #include<reg52.h>
- #include<intrins.h>
- #define uint unsigned int
- #define uchar unsigned char
- #define LCD_data P0
- sbit LCD_RS=P2^6; // 數(shù)據(jù)/命令選擇端
- sbit LCD_RW=P2^5; // 讀寫(xiě)選擇端
- sbit LCD_EN=P2^7; // 使能信號(hào)
- sbit LCD_PSB=P3^2; // 并/串選擇
- uchar code table[64][16]={
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
- 0xFF,0xFE,0xDF,0x00,0x1C,0x0E,0x1D,0xFE,0xAF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
- 0xFF,0xFE,0xBF,0xF5,0xFD,0xEF,0xD0,0x21,0xB7,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
- 0xFF,0xFD,0x81,0x80,0x3C,0x0E,0xD7,0xBD,0xBF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
- 0xFF,0xF9,0x7D,0xB5,0xBD,0xEE,0xD0,0x20,0x03,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
- 0xFF,0xF4,0xEF,0x80,0x3C,0x0E,0xD7,0xFD,0xBF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
- 0xFF,0xFD,0xAB,0xF7,0xFF,0xFE,0x10,0x3D,0x37,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
- 0xFF,0xFD,0xAB,0x00,0x00,0x03,0xD2,0xB8,0xAF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
- 0xFF,0xFD,0x6D,0xEE,0xFB,0x7F,0x90,0x25,0xDF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
- 0xFF,0xFC,0xED,0xC5,0xF9,0x06,0x4A,0xBD,0x9B,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
- 0xFF,0xFD,0xEF,0xF8,0xF6,0x7F,0xDA,0xBC,0x6B,0x7B,0xEF,0xBD,0xF8,0x00,0x00,0x00,
- 0xFF,0xFD,0x8F,0x07,0x2F,0x03,0x1F,0x31,0xF3,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,
- 0xEA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE1,0xFF,0xFD,0xFF,0xF8,0x00,0x00,0x00,
- 0xF1,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x3F,0xDC,0xFF,0xF8,0x00,0x00,0x00,
- 0xC0,0x2F,0xFF,0xFF,0xF3,0xFF,0xFF,0xFF,0xFF,0xBD,0x8C,0xFF,0xF8,0x00,0x00,0x00,
- 0xF1,0xFF,0xFF,0xFF,0xC7,0xEF,0xFF,0xFC,0xFF,0xB9,0x04,0xFF,0xF8,0x00,0x00,0x00,
- 0xE8,0xFF,0xFF,0xFF,0x07,0x1F,0x7F,0xFF,0x3F,0xF0,0x20,0xFF,0xF8,0x00,0x00,0x00,
- 0xDB,0x7F,0xFF,0xFC,0x0C,0x1C,0x7F,0x7F,0xCF,0xEE,0x71,0xFF,0xF8,0x00,0x00,0x00,
- 0xFB,0xF7,0xE3,0xF8,0x00,0x10,0xDF,0x8F,0xF3,0xFE,0x7D,0xFF,0xF8,0x00,0x00,0x00,
- 0xFF,0xFB,0xC1,0xF0,0x00,0x00,0x97,0xC1,0xF8,0xFE,0xFF,0xEF,0xF8,0x00,0x00,0x00,
- 0xFB,0xEB,0x98,0xE0,0x00,0x39,0x10,0xF0,0x3C,0x3F,0xFF,0xBF,0xF8,0x00,0x00,0x00,
- 0xFF,0xF1,0xA4,0xE0,0x00,0x04,0x10,0x1C,0x06,0x1F,0x8F,0x97,0xF8,0x00,0x00,0x00,
- 0xFF,0xD1,0x8A,0xC0,0x00,0x00,0x30,0x00,0x01,0x0F,0x07,0x8F,0xF8,0x00,0x00,0x00,
- 0xFF,0xE0,0x8A,0x00,0x00,0x00,0x30,0x38,0x00,0x06,0x33,0x1B,0xF8,0x00,0x00,0x00,
- 0xFF,0xA0,0x44,0x00,0x00,0x00,0x50,0x40,0x00,0x06,0x4B,0x17,0xF8,0x00,0x00,0x00,
- 0xFF,0xC0,0x60,0x00,0x0F,0xC0,0x48,0x00,0x00,0x02,0xA2,0x05,0xF8,0x00,0x00,0x00,
- 0xFF,0x40,0x70,0x00,0x3F,0xE0,0x88,0x00,0x00,0x00,0xA2,0x03,0xF8,0x00,0x00,0x00,
- 0xFF,0x80,0xF8,0x00,0x00,0xF1,0x04,0x07,0xE0,0x00,0x44,0x01,0xF8,0x00,0x00,0x00,
- 0xFE,0x81,0xE8,0x00,0x01,0xC2,0x04,0x4F,0xF8,0x00,0x0F,0x03,0xF8,0x00,0x00,0x00,
- 0xFF,0x00,0x08,0x00,0x01,0x84,0x02,0x3E,0x00,0x00,0x1F,0x82,0xF8,0x00,0x00,0x00,
- 0xFD,0x00,0x10,0x00,0x00,0x88,0x01,0x06,0x00,0x00,0x10,0x41,0xF8,0x00,0x00,0x00,
- 0xFE,0x01,0xE0,0x01,0x13,0x08,0x00,0x87,0x00,0x00,0x10,0x01,0xB8,0x00,0x00,0x00,
- 0xFF,0x06,0x20,0x00,0x88,0x10,0x00,0x43,0x00,0x00,0x10,0x01,0x18,0x00,0x00,0x00,
- 0xFD,0x0A,0x10,0x01,0x44,0x10,0x00,0x22,0x00,0x00,0x18,0x01,0xB8,0x00,0x00,0x00,
- 0xF8,0x11,0x10,0x00,0x80,0x10,0x00,0x21,0x91,0x00,0x14,0x01,0xF8,0x00,0x00,0x00,
- 0xFC,0x10,0x88,0x70,0x00,0x10,0x00,0x10,0x22,0x03,0xE0,0x00,0xB8,0x00,0x00,0x00,
- 0xFE,0x20,0x84,0x4C,0x00,0x20,0x00,0x10,0x45,0x05,0x31,0x00,0xF8,0x00,0x00,0x00,
- 0xF4,0x20,0x43,0x8B,0x80,0xC0,0x00,0x10,0x02,0x08,0x88,0x80,0xB8,0x00,0x00,0x00,
- 0xFC,0x20,0x40,0x08,0xFF,0x00,0x00,0x10,0x00,0x18,0x40,0x40,0x78,0x00,0x00,0x00,
- 0xF6,0x20,0x40,0x08,0x80,0x00,0x00,0x08,0x00,0x68,0x40,0x00,0xD8,0x00,0x00,0x00,
- 0xFC,0x20,0x40,0x08,0x80,0x00,0x00,0x06,0x03,0x90,0x20,0x20,0x68,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,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,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,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,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,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,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,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
- };
- void delay(uint z) // 延時(shí)函數(shù)
- {
- uint x,y;
- for(x=0;x<z;x++)
- for(y=0;y<110;y++);
- }
- //寫(xiě)指令數(shù)據(jù)到LCD
- void write_cmd(uchar cmd)
- {
- LCD_RS=0;
- LCD_RW=0;
- LCD_EN=0;
- P0=cmd;
- delay(5);
- LCD_EN=1;
- delay(5);
- LCD_EN=0;
- }
- //寫(xiě)顯示數(shù)據(jù)到LCD
- void write_dat(uchar dat)
- {
- LCD_RS=1;
- LCD_RW=0;
- LCD_EN=0;
- P0=dat;
- delay(5);
- LCD_EN=1;
- delay(5);
- LCD_EN=0;
- }
- //12864初始化
- void lcd_init()//12964初始化
- {
- LCD_PSB=1; //并口模式
- write_cmd(0x34); //基本指令操作
- delay(5);
- write_cmd(0x0c); //顯示開(kāi),光標(biāo)關(guān)
- delay(5);
- write_cmd(0x01); //消除所有顯示
- delay(5);
- }
- //主函數(shù)
- main()
- {
- uchar i,j;
- delay(10);
- lcd_init(); //初始化
- for(i=0;i<32;i++)
- {
- write_cmd(0x80+i);//垂直方向y軸
- write_cmd(0x80);//水平方向x軸 水平方向地址自增
- for(j=0;j<16;j++)
- {
- write_dat(table[i][j]);
- }
- }
- for(i=0;i<32;i++)
- {
- write_cmd(0x80+i);
- write_cmd(0x88);
- for(j=0;j<16;j++)
- {
- write_dat(table[i+32][j]);
- }
- }
- write_cmd(0x36); //打開(kāi)繪圖模式
- write_cmd(0x30); //基本操作模式
- while(1); //沒(méi)有的話 會(huì)一直閃爍 甚至不顯示
- }
復(fù)制代碼 |