?? 12864zk.c
字號:
/*********************************************
**項(xiàng)目: 12864顯示程序(EE21學(xué)習(xí)板演示程序)
**作者:一線工人
**網(wǎng)站:電子工程師之家 www.eehome.cn
**轉(zhuǎn)貼請保持代碼的完整性
*********************************************/
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit RS=P3^5;
sbit RW=P3^6;
sbit E=P3^4;
sbit PSB=P3^7;
sbit dm=P1^4;
sbit wm=P1^5;
sbit led=P1^6;
#define LCDdata P0
unsigned char COUNT3,COUNT2,COUNT1,COUNT,LCD_X,LCD_Y,LCD_DATA1,LCD_DATA2,LCD_DATA,F3,R1,FX;
const unsigned char code TU_TAB1[]={
/*-- 調(diào)入了一幅圖像:C:\Documents and Settings\Administrator\桌面\logo22.bmp --*/
/*-- 寬度x高度=128x64 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xF8,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x30,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x38,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x1C,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xC0,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x80,0x0F,0xFF,0xFF,0xFF,0xFD,0xFC,0x01,0xFF,0xBE,0x41,0xE8,0x0F,
0xFF,0xFF,0xFF,0x00,0x03,0xFC,0x03,0xFF,0xFD,0xDF,0xFB,0xC0,0x18,0xDD,0xEF,0x7F,
0xFF,0xFF,0xFE,0x00,0x01,0xF8,0x03,0xFF,0xC0,0x0F,0xF7,0xFD,0xFE,0xDD,0xAF,0x7F,
0xFF,0xFF,0xFC,0x00,0x00,0x7C,0x03,0xFF,0xDD,0xDF,0xCF,0xFD,0xF8,0x41,0xA8,0x0F,
0xFF,0xFF,0xF8,0x00,0x00,0x3C,0x03,0xFF,0xC0,0x1F,0xDD,0xFD,0xFE,0xFF,0xAB,0x6F,
0xFF,0xFF,0xE0,0x00,0x00,0x0C,0x03,0xFF,0xDD,0xD8,0x00,0xFD,0xFC,0x80,0xAB,0x6F,
0xFF,0xFF,0xC0,0x00,0x00,0x00,0x03,0xFF,0xDD,0xDF,0xDF,0xFD,0xFC,0x77,0xAB,0x6F,
0xFF,0xFF,0x80,0x01,0x00,0x00,0x03,0xFF,0xC0,0x1F,0xDF,0xFD,0xFA,0xC1,0xAB,0x6F,
0xFF,0xFF,0x00,0x03,0xC0,0x00,0x03,0xFF,0xDD,0xFF,0xDF,0xFD,0xFA,0xF7,0xEB,0x4F,
0xFF,0xFE,0x00,0x07,0xE0,0x00,0x03,0xFF,0xFD,0xEF,0xDF,0xFD,0xFE,0xF7,0xDF,0x7F,
0xFF,0xFC,0x00,0x1F,0xF8,0x00,0x03,0xFF,0xFE,0x0F,0x1F,0x80,0x0E,0x80,0xBF,0x7F,
0xFF,0xF8,0x00,0x3F,0xFC,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xE0,0x00,0x7F,0xFF,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xC0,0x01,0xFF,0xFF,0xC0,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x80,0x03,0xFF,0xFF,0xE0,0x00,0x1F,0xFF,0xFF,0xFF,0x7F,0xFB,0xFF,0xFF,0xFF,
0xFF,0x00,0x07,0xFF,0xFF,0xF8,0x00,0x0F,0xFF,0xFF,0xFF,0xBF,0x80,0x1F,0xFF,0xFF,
0xFE,0x00,0x1F,0xFF,0xFF,0xFE,0x00,0x03,0xFF,0xFF,0xF0,0x07,0x3F,0xDF,0xFF,0xFF,
0xFC,0x00,0x3F,0xFF,0xFF,0xFF,0x00,0x01,0xFF,0xFF,0xFF,0xEF,0xC0,0x7F,0xFF,0xFF,
0xF8,0x00,0x1F,0xFF,0xFF,0xFF,0xC0,0x00,0x7F,0xFF,0xFF,0xDF,0xEB,0xBF,0xFF,0xFF,
0xE0,0x00,0x00,0x01,0xF0,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xBF,0xDB,0x7F,0xFF,0xFF,
0xC0,0x00,0x00,0x01,0xF0,0x00,0x08,0x07,0xFF,0xFF,0xFF,0x7F,0x34,0xFF,0xFF,0xFF,
0x80,0x06,0x00,0x01,0xF0,0x00,0x0F,0xFF,0xFF,0xFF,0xFE,0xFF,0xE9,0x7F,0xFF,0xFF,
0xFF,0xFE,0x00,0x01,0xF0,0x00,0x0F,0xFF,0xFF,0xFF,0xFD,0xFF,0x95,0xBF,0xFF,0xFF,
0xFF,0xFE,0x00,0x01,0xF0,0x00,0x0F,0xFF,0xFF,0xFF,0xF2,0xFF,0xCD,0xDF,0xFF,0xFF,
0xFF,0xFE,0x00,0x01,0xF0,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0x01,0x31,0xFF,0xFF,0xFF,
0xFF,0xFE,0x07,0xFF,0xF0,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFE,0x07,0xFF,0xF0,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFE,0x07,0xFF,0xF0,0x3F,0xFF,0xFF,0xFF,0xF9,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFE,0x07,0xFF,0xF0,0x3F,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFE,0x00,0x01,0xF0,0x00,0x1F,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFE,0x00,0x01,0xF0,0x00,0x1F,0xFF,0x8F,0x1D,0x3C,0x60,0xF1,0xFF,0xC2,0x4F,
0xFF,0xFE,0x00,0x01,0xF0,0x00,0x1F,0xFF,0x76,0xEC,0xDB,0xB5,0x6E,0xFF,0xBB,0x37,
0xFF,0xFE,0x00,0x01,0xF0,0x00,0x1F,0xFF,0x06,0x0D,0xDB,0xB5,0x60,0xFF,0xBF,0x77,
0xFF,0xFE,0x00,0x01,0xF0,0x00,0x1F,0xFF,0x7E,0xFD,0xDB,0xB5,0x6F,0xFF,0xBF,0x77,
0xFF,0xFE,0x00,0x01,0xF0,0x00,0x1F,0xFF,0x76,0xED,0xDB,0xB5,0x6E,0xCF,0xBB,0x77,
0xFF,0xFE,0x07,0xFF,0xF0,0x3F,0xFF,0xFF,0x8F,0x18,0xCC,0x65,0x31,0xCF,0xC6,0x33,
0xFF,0xFE,0x07,0xFF,0xF0,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFE,0x07,0xFF,0xF0,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFE,0x07,0xFF,0xF0,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFE,0x00,0x01,0xF0,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFE,0x00,0x01,0xF0,0x00,0x0F,0xFF,0xFF,0xFF,0xDE,0xFF,0xFD,0xFE,0xFF,0xFF,
0xFF,0xFE,0x00,0x01,0xF0,0x00,0x0F,0xFF,0xFF,0xFF,0xDE,0xBC,0x00,0xFE,0xFF,0xFF,
0xFF,0xFE,0x00,0x01,0xF0,0x00,0x0F,0xFF,0xFF,0xFF,0xBE,0xDF,0xDF,0xFE,0xFF,0xFF,
0xFF,0xFE,0x00,0x01,0xF0,0x00,0x0F,0xFF,0xFF,0xFF,0xB6,0x0F,0xDF,0xFE,0xFF,0xFF,
0xFF,0xFE,0x00,0x01,0xF0,0x00,0x0F,0xFF,0xFF,0xFB,0x08,0xFF,0xDF,0xFE,0xFF,0xFF,
0xFF,0xFF,0xFF,0xCF,0xFF,0xFF,0xFF,0xFF,0xE0,0x01,0xDE,0x0F,0xDF,0xFE,0xFF,0xFF,
0xFF,0xFF,0xFF,0xCF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xB0,0xFF,0xDF,0xFD,0x7F,0xFF,
0xFF,0xFF,0xFF,0xCF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x0E,0xDF,0xDF,0xFD,0x7F,0xFF,
0xFF,0x83,0xC1,0xC0,0xF0,0x60,0x3C,0x1F,0xFF,0xFF,0xFE,0xBF,0xDF,0xFB,0xBF,0xFF,
0xFF,0x39,0x9C,0xC6,0x67,0x24,0x99,0xCF,0xFF,0xFF,0xE7,0x6F,0xDE,0xF7,0xDF,0xFF,
0xFF,0x39,0x9C,0xCE,0x67,0x24,0x99,0xCF,0xFF,0xFF,0x1E,0xA8,0x00,0x6F,0xE3,0xFF,
0xFF,0x01,0x80,0xCE,0x67,0x24,0x98,0x0F,0xFF,0xFF,0xB9,0xCF,0xFF,0xDF,0xF7,0xFF,
0xFF,0x3F,0x9F,0xCE,0x67,0x24,0x99,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x39,0x9C,0xCE,0x67,0x24,0x99,0xCF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x83,0xC1,0xCE,0x70,0x64,0x9C,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
};
//*************延時程序********************************
void delay_10us(unsigned char x)
{
while(x--);
}
void delay_ms(uint z)//延時子程序1ms
{
uint x,y;
for(x=z;x>0;x--)
for(y=113;y>0;y--);
}
//**********測試LCD忙****************************
bit Check_Busy()
{
bit busy;
RS = 0;
RW = 1;
E = 1;
;;;;;;
busy = (bit)(LCDdata&0x80);
E = 0;
return busy;
}
//********等待LCD到空閑***************************
void wait()
{
while(Check_Busy());
}
//**********寫命令***************************
void send_cmd(unsigned char cmd )
{
wait();
RS=0;
RW=0;
LCDdata=cmd;
E =1;
;;;;;;
;;;;;;
E =0;
}
//**********寫數(shù)據(jù)***************************
void send_data(unsigned char dat )
{ wait();
RS=1;
RW=0;
E =1;
LCDdata=dat;
;;;;;;
;;;;;;
E =0;
}
//***********清屏*****************************
void clear_LCD(void)
{
send_cmd(0x01);
send_cmd(0x34);
send_cmd(0x30);
}
//**********LCD初始化************************
void initial_LCD(void)
{
PSB=1;
delay_10us(10);
send_cmd(0x30);//30H--基本指令操作
delay_10us(4);
send_cmd(0x0c);//開顯示,關(guān)光標(biāo),不閃爍。
delay_10us(10);
send_cmd(0x01);//清除顯示
delay_ms(10);
send_cmd(0x06);//指定在資料寫入或讀取時,光標(biāo)的移動方向,DDRAM的地址計(jì)數(shù)器(AC)加1。
}
//**********寫準(zhǔn)備***************************
void WR_ZB(void)
{
send_cmd(0x34);
send_cmd(LCD_Y);
send_cmd(LCD_X);
send_cmd(0x30);
}
//**********顯示圖形子程序*********************
void PHO_DISP( unsigned char *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--)
{
send_data(*s++);
}
LCD_Y+=1;
}
LCD_X=0X88;
}
send_cmd(0x36);
send_cmd(0x30);
}
void main(void)
{
dm=0;
wm=0;
led=0;
initial_LCD();
while (1)
{ delay_ms(500);
clear_LCD();
delay_ms(1000);
PHO_DISP(TU_TAB1);///顯示圖形
delay_ms(5000);
while (1);
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -