📄 lcd12864.c
字号:
/**************************************************************************/
/* Time:2008/08/29 */
/* Author :wangyaming */
/* Project for Tape driver test */
/* This program create for manage key pad process */
/**************************************************************************/
#include"my_include.h"
INT8U code bmp1[];
INT8U COUNT3,COUNT2,COUNT1,COUNT,LCD_X,LCD_Y;
void wait(INT16U delay)
{
char temp=0xff;
for(;delay>0;delay--)
{temp=0xff;
for(;temp>0;temp--);
};
}
void check_busy(void)
{
//TRISD=0xff;//在此处设为输入。
PORTD=0xff;
RS=0;
RW=1;
while (1)
{
_nop_();_nop_();_nop_();
E =1;
_nop_();_nop_();_nop_();
if (P0_7==0) break;
_nop_();_nop_();_nop_();
E =0;
}
E =0;
//TRISD=0X00;//还原为输出。
P0_7=!P0_7;
//delay_ms(50);
}
void write_comd_init(INT8U cmd)
{
//check_busy();
RS=0;
RW=0;
PORTD=cmd;
E =1;
_nop_();
_nop_();
E =0;
}
void write_comd(INT8U cmd)
{
check_busy();
RS=0;
RW=0;
PORTD=cmd;
E =1;
_nop_();
_nop_();
E =0;
}
void write_data(INT8U *dat)
{
check_busy();
RS=1;
RW=0;
PORTD=*dat;
E =1;
_nop_();
_nop_();
E =0;
}
void init_lcd_text()
{
write_comd(function_set_basic);
write_comd(set_point);
write_comd(open_point);
write_comd(close_point);
write_comd(clean_disp);
write_comd(reset_addr);
}
void init_lcd_pic()
{
_nop_();
write_comd_init(function_set_basic);
_nop_();
write_comd_init(set_point);
_nop_();
write_comd_init(open_point);
_nop_();
write_comd_init(close_point);
_nop_();
write_comd_init(clean_disp);
_nop_();
write_comd_init(reset_addr);
}
//***********************************************/
void init_mcu()
{
bit_ret=0;
P1=P2=P3=P0=0xff;
bit_psb=1;
relay=0;
_nop_();
_nop_();
_nop_();
bit_ret=1;
}
void WR_ZB(void)
{
write_comd(command_extend);
write_comd(LCD_Y);
write_comd(LCD_X);
write_comd(function_set_basic);
}
void clear_LCD(void)
{
write_comd(0x01);
write_comd(command_extend);
write_comd(function_set_basic);
}
void disp_pic(const INT8U *s)
{
COUNT3=0X02;
LCD_X=0X80;
for (;COUNT3!=0;COUNT3--)
{
LCD_Y=0X80;
COUNT2=0X20;//32
for (;COUNT2!=0;COUNT2--)
{
COUNT1=0X10;//16
WR_ZB();
for (;COUNT1!=0;COUNT1--)
{
write_data(s++);
}
LCD_Y+=1;
}
LCD_X=0X88;
}
write_comd(graphic_on);
write_comd(function_set_basic);
write_comd(close_point);
}
//__________________________________
void disp_text(char addr,char *string)
{
char count;
write_comd(addr);
for(count=0;count<=17;count++)
{
write_data(string++);
}
}
main()
{
init_mcu();
init_lcd_pic();
clear_LCD();
disp_pic(bmp1);
wait(65533);
wait(65533);
wait(65533);
clear_LCD();
//disp_refresh(&point_up_down,&point_left_right);
while(1)
{
//key();
//test();
//initial();
//disp_refresh(&point_up_down,&point_left_right);
}
}
INT8U code bmp1[]=
{
/*-- 调入了一幅图像:H:\new.bmp --*/
/*-- 宽度x高度=128x64 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x03,0xFF,0xFE,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x0F,0xFF,0xFF,0x80,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x3F,0xFF,0xFF,0x80,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x3F,0xFC,0x0F,0xC0,0x00,0x01,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x7F,0x0C,0x01,0xC0,0x00,0x01,0xB0,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,
0x00,0x00,0x7C,0x18,0x00,0xC0,0x00,0x03,0x20,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,
0x00,0x00,0x00,0x38,0x01,0x80,0x00,0x06,0x60,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
0x00,0x00,0x00,0x30,0x03,0x80,0x00,0x06,0x40,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
0x00,0x00,0x00,0x60,0x0F,0x00,0x00,0x0C,0xC0,0x00,0x07,0x80,0x00,0x08,0x00,0x00,
0x00,0x00,0x00,0xC0,0xFE,0x00,0x00,0x0C,0x81,0xE0,0x1F,0x00,0x60,0x3C,0x00,0x00,
0x00,0x00,0x01,0xCF,0xFC,0x00,0x00,0x1D,0x07,0xE0,0x3E,0x01,0xE0,0x7C,0x00,0x00,
0x00,0x00,0x03,0xFF,0xE0,0x0F,0xF8,0x1B,0x0F,0xF0,0x78,0xC3,0xC1,0xFC,0x00,0x00,
0x00,0x00,0x1F,0xFC,0x00,0x1F,0xF0,0x1E,0x1E,0x71,0xE1,0xC3,0xC3,0xF8,0x00,0x00,
0x00,0x00,0x3F,0x00,0x00,0x1F,0x80,0x3C,0x3C,0xF1,0xC1,0xC7,0x83,0x90,0x00,0x00,
0x00,0x00,0x3F,0xC0,0x00,0x00,0x00,0x38,0x38,0xF3,0x83,0xCF,0x07,0x00,0x00,0x00,
0x00,0x00,0x1F,0xF8,0x00,0x00,0x00,0x30,0x30,0xE3,0x07,0x8E,0x0E,0x00,0x00,0x00,
0x00,0x00,0x1F,0xFE,0x00,0x00,0x00,0x30,0x70,0xEF,0x0F,0x9C,0x0C,0x02,0x00,0x00,
0x00,0x00,0x31,0xFF,0x80,0x00,0x00,0x38,0x70,0xFF,0x1B,0x3E,0x1C,0x06,0x00,0x00,
0x00,0x00,0x70,0x7F,0xE0,0x00,0x00,0x39,0xF1,0xE3,0xF3,0xCF,0xFE,0x1C,0x00,0x00,
0x00,0x00,0x60,0x1F,0xF0,0x00,0x00,0x3F,0x3F,0x83,0xE7,0x8F,0xE7,0xF8,0x00,0x00,
0x00,0x00,0xE0,0x07,0xF8,0x00,0x00,0x3E,0x1E,0x01,0xC7,0x07,0xC7,0xF0,0x00,0x00,
0x00,0x00,0xC0,0x01,0xF8,0x00,0x00,0x1C,0x04,0x00,0x0C,0x03,0x03,0xC0,0x00,0x00,
0x00,0x01,0x80,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xE0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x18,0x00,0x00,
0x00,0x00,0x06,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x18,0x00,0x00,
0x00,0x00,0x04,0x0C,0x38,0x30,0x10,0x61,0x83,0x80,0x06,0x06,0x18,0x10,0x00,0x00,
0x00,0x00,0x04,0x36,0x30,0x48,0xF3,0xA2,0xC3,0x06,0x19,0x3E,0x68,0x10,0x00,0x00,
0x00,0x00,0x0C,0x26,0x30,0xF8,0xC3,0x22,0x82,0x02,0x11,0x32,0x68,0x30,0x00,0x00,
0x00,0x00,0x08,0x64,0x21,0x80,0x82,0x63,0x82,0x06,0x31,0x26,0x78,0x20,0x00,0x00,
0x00,0x00,0x08,0x44,0x21,0x08,0x82,0x6D,0x86,0x04,0x23,0x64,0xD8,0x20,0x00,0x00,
0x00,0x00,0x18,0x4C,0x61,0x91,0x86,0x49,0x84,0x04,0x26,0x44,0x90,0x60,0x00,0x00,
0x00,0x00,0x38,0xDC,0x71,0xE3,0x8E,0xCF,0x87,0x1C,0x3C,0xEC,0xF8,0xE0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
} ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -