📄 lcd_19264_driver.c
字号:
//************************************************************************************
// JHD19264A驱动源文件
//作 者:张迎
//修改者:sjm
//时 间:2008.5.10
//说 明:
// 1.配合头文件使用;
// 2.使用专门的字模生成软件.
//屏幕坐标说明:
//水平坐标: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 每个坐标包含8个点,一共24*8=192个点
// -------------------------------
// | page0 | page0 | page0 |
// 垂 | page1 | page1 | page1 |
// 直 | page2 | page2 | page2 |
// 坐 | page3 | page3 | page3 |
// 标 | page4 | page4 | page4 |
// | page5 | page5 | page5 |
// 每一页的垂直 | page6 | page6 | page6 |
// 点阵有8个 | page7 | page7 | page7 |
// -------------------------------
// 第一片 第二片 第三片
//*************************************************************************************
#include"8051f020.h"
#include"LCD_JHD19264A.h"
/*
sbit C4001_E = P2^0;
sbit C4001_G = P2^1;
sbit A16 = P2^3;
sbit A17 = P2^4;
sbit A18 = P2^5;
*/
sbit C29040_OE = P2^0;
sbit C29040_CE = P2^1;
sbit A16 = P2^3;
sbit A17 = P2^4;
sbit A18 = P2^5;
uchar xdata TAB_274001_1[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x10,0x18,0x08,0x08,
0x08,0x18,0x10,0x20,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x38,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xF0,0x22,0x44,0x88,0x90,0x20,0x20,0x40,0xFE,0x40,0xC2,0x44,0xFC,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
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,0xFE,0x03,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xC0,0xF0,0xF8,0xFD,0xFF,0xFE,0xFC,0xF4,0xF8,0xE8,0xD8,0x90,0x20,0x40,
0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x70,0x08,
0x04,0x07,0x07,0x47,0x23,0x01,0x11,0x11,0x8F,0xCF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,
0xE0,0xE0,0xE0,0xC0,0xC0,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,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,0xE0,0xF0,0xF8,
0xFC,0xFC,0xFC,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFC,0xFC,0xFC,0xF8,0xF0,0xE0,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x11,0x3F,0x10,0x08,0x00,0x01,0x01,0x00,0x7F,0x00,0x10,0x20,0x7F,0x01,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,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,0xE0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7E,
0xF8,0xC3,0xCC,0xF0,0xE0,0xF0,0xF0,0xF8,0xFC,0xFC,0xFE,0xFE,0x1F,0x07,0x22,0x00,
0x82,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,0x03,0x7F,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF8,
0xC0,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF0,
0xF0,0xF0,0xF0,0xF0,0xE0,0xE0,0xE0,0xE0,0xC0,0xC0,0x80,0xBC,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xF8,0xF0,0xF0,0xF0,0xF0,0xF0,0xF8,0xF0,0xF0,0xF0,0xF0,0xE0,0xE0,0xC0,0x00,
0x00,0xE0,0x11,0x12,0x12,0x12,0x10,0x80,0x00,0xFC,0x80,0x80,0xFE,0x80,0x80,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,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,0x07,0x0C,0x30,0x40,0x80,
0x00,0x00,0x00,0x80,0x07,0x0F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x7F,
0xFF,0xBF,0xFF,0xDF,0xFF,0xEF,0xFF,0xF7,0xF7,0xFB,0xFB,0xFD,0xFC,0xFC,0xFE,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x7F,0x3F,0x1F,0x07,0x00,0xC0,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x0F,
0x07,0x04,0x04,0x06,0x0F,0x1F,0x3F,0x3F,0x1F,0x1F,0x0F,0x0F,0x0F,0x07,0x07,0x07,
0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x8F,0x4F,0x1F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x00,
0x00,0x0F,0x18,0x28,0x61,0x23,0x11,0x00,0x00,0x3F,0x00,0x00,0x7F,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x40,0x20,0x10,0x08,0x04,0x04,0x02,0x82,0xC1,0xE1,0xF1,
0xF9,0xFD,0xFC,0xFE,0xFF,0xFF,0xFD,0xFD,0xF9,0xF9,0xFD,0xFF,0xFE,0xFE,0xFF,0xFF,
0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,0x9F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xCF,0xC7,0x87,0xC3,
0xC1,0xE0,0xF0,0xF8,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x8F,0x01,0x00,0x00,
0x00,0x00,0x00,0xC0,0xE0,0xF0,0xF0,0xF0,0xE0,0x30,0xD0,0xE8,0xE8,0xE8,0x64,0x84,
0x04,0x84,0x84,0x84,0x84,0x84,0x0E,0x7D,0x76,0x1B,0x08,0x04,0x00,0x01,0x03,0x03,
0x07,0x0F,0x8F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x7F,0x7F,0x7F,0x7F,0x3F,0x3F,0x1F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,
0x00,0x04,0x08,0x10,0x20,0x20,0x40,0x40,0x40,0x80,0xFF,0x80,0x80,0x80,0x80,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xC0,0x70,0x0E,0x03,0x00,0x00,0x00,0x00,0xE0,0xF8,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0x3F,0x1F,0x8F,0xCF,0x7F,0x0F,
0x03,0x01,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,
0x0F,0x01,0x01,0x00,0x00,0x00,0x1C,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0x3E,0x1E,0xCD,
0xE5,0xF7,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xE3,0xC0,0x80,0x00,
0x00,0x00,0x00,0x0F,0x3F,0x3F,0x3F,0x3F,0x1F,0x00,0x2F,0x2C,0x1E,0x5A,0x5A,0x42,
0x42,0x42,0x42,0x42,0x42,0x44,0xC4,0xF4,0xB8,0x40,0x40,0x80,0x80,0x00,0x00,0x00,
0x06,0x0F,0x9F,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,
0xF8,0xF8,0xF0,0xF0,0xF0,0xE0,0xE0,0xE0,0xC0,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,
0x00,0x70,0x18,0x08,0x04,0x02,0x02,0x01,0x01,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xBF,0x7F,0x5F,0x2F,0x37,0x13,0x09,0x0C,0x06,0x03,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0xF8,0xF8,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFE,0x98,0x80,0x80,0xC0,0xE0,0xF0,0xF0,0xF0,0xE0,0xE0,0xC0,0xC0,0xC0,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x82,0x85,0x81,0xC2,0xE0,0xF0,0xF8,0xFC,0xFE,
0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF8,
0x00,0x00,0x08,0xF8,0x08,0xF8,0x00,0xFF,0x00,0x08,0xF8,0x08,0xF8,0x00,0xFE,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x03,0x0C,0x18,0x30,0x20,0x20,0x20,0x30,0x10,0x18,0x08,0x05,0x07,0x03,0x03,0x01,
0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x0F,
0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x01,0x01,0x00,
0x00,0x00,0x00,0x00,0x01,0x03,0x03,0x07,0x0F,0x0F,0x0F,0x1F,0x1F,0x1F,0x1F,0x1F,
0x3F,0x3F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x0F,0x0F,0x07,0x07,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x2F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x07,0x03,0x01,0x00,
0x00,0x0A,0x09,0x09,0x09,0x09,0x08,0x7F,0x20,0x09,0x09,0x09,0x09,0x08,0x3F,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
uchar xdata TAB_274001_2[]={0x00,
};
//*******************************************
//函数名称:以下是单片机初始化函数
//函数功能:
//形式参数:
//行参说明:
//返回参数:
//使用说明:
//*******************************************
void Reset_Sources_Init()
{
WDTCN = 0xDE;
WDTCN = 0xAD;
}
void Port_IO_Init()
{
P0MDOUT = 0xFF;
P1MDOUT = 0xFF;
P2MDOUT = 0xFF;
P3MDOUT = 0xFF;
P74OUT = 0xC0; //P7输出
XBR2 = 0xC0;
}
void Oscillator_Init()
{
int i = 0;
OSCXCN = 0x67;
for (i = 0; i < 3000; i++);
while ((OSCXCN & 0x80) == 0);
OSCICN = 0x0C;
}
void Init_Device(void)
{
Reset_Sources_Init();
Port_IO_Init();
Oscillator_Init();
}
void delay1ms(void)
{ unsigned char i,j,k;
for(i=5;i>0;i--)
for(j=6;j>0;j--)
for(k=100;k>0;k--);
}
//*******************************************
//函数名称:void LCD_JHD19264A_Busy(void)
//函数功能:LCD读忙标志
//形式参数:无
//行参说明:无
//返回参数:无
//使用说明:DB7=1:BUSY
// DB7=0:READY
//*******************************************
void LCD_JHD19264A_Busy(void)
{
uchar uccode;
LCD_JHD19264A_RS = 0;
LCD_JHD19264A_RW = 1; //读状态
do
{
P0 = 0xff; //P0置1,做好读准备
P0MDOUT = 0x00; //P0口设为漏极开路
LCD_JHD19264A_E = 1;
uccode = P0;
LCD_JHD19264A_E = 0;//下降沿,读状态有效
uccode &= 0x80; //得到DB7数据位
}
while(uccode); //等待直到不忙
P0MDOUT = 0xff; //P0口重新设为推挽输出
}
//*******************************************
//函数名称:void LCD_JHD19264A_Init(void)
//函数功能:LCD初始化
//形式参数:无
//行参说明:无
//返回参数:无
//使用说明:无
//*******************************************
void LCD_JHD19264A_Init(void)
{
uchar ucfdback;
LCD_JHD19264A_RST = 0; //复位LCD,低电平有效
LCD_JHD19264A_RST = 1; //拉高,停止复位
LCD_JHD19264A_RS = 0;
LCD_JHD19264A_RW = 1; //读状态
do
{
P0 = 0xff;
LCD_JHD19264A_E = 1;
ucfdback = P0;
LCD_JHD19264A_E = 0;
ucfdback &= 0x10; //取走第四位数据,复位状态位,数据有效
}
while(!ucfdback); //DB4=0表示复位正在进行,DB4=1表示复位结束
LCD_JHD19264A_CSB = 0;
LCD_JHD19264A_CSA = 0; //开片选00
LCD_JHD19264A_Busy();
LCD_JHD19264A_RS = 0;
LCD_JHD19264A_RW = 0; //送指令
LCD_JHD19264A_E = 1;
P0 = LCD_JHD19264A_DISPLAY_ON; //开显示
LCD_JHD19264A_E = 0; //指令有效
LCD_JHD19264A_CSB=1;
LCD_JHD19264A_CSA=0; //开片选01
LCD_JHD19264A_Busy();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -