⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jrmlcd.c

📁 用keil和proteus做的液晶驱动。
💻 C
字号:
/*-------------------------------------
文件名称:JRMLCD.C
文件功能:JRM-12232液晶的驱动实现函数
时间:2008-7-31 19:34
作者:小琅
-------------------------------------*/
#define IN_JRMLCD

#include "JRMLCD.h"

uint8 code ASCII[][6]={
{0x00,0x00,0x00,0x00,0x00,0x00},//SPACE

{0x00,0x00,0x00,0x4f,0x00,0x00},//!

{0x00,0x00,0x00,0x07,0x00,0x07},//"

{0x00,0x14,0x7f,0x14,0x7f,0x14},//#

{0x00,0x24,0x2a,0x7f,0x2a,0x12},//$

{0x00,0x23,0x13,0x08,0x62,0x61},//%

{0x00,0x36,0x49,0x55,0x22,0x50},//&	

{0x00,0x00,0x00,0x05,0x03,0x00},//'

{0x00,0x00,0x1c,0x22,0x41,0x00},//(
                               
{0x00,0x00,0x41,0x22,0x1c,0x00},//)

{0x18,0x5a,0x3c,0x3c,0x5a,0x18},//*

{0x00,0x08,0x08,0x3e,0x08,0x08},//+

{0x00,0x00,0x00,0x28,0x18,0x00},//,

{0x00,0x08,0x08,0x08,0x08,0x08},//-

{0x00,0x00,0x00,0x60,0x60,0x00},//.

{0x00,0x14,0x08,0x3e,0x08,0x14},// /

{0x00,0x3e,0x51,0x49,0x45,0x3e},//0
                              
{0x00,0x00,0x42,0x7f,0x40,0x40},//1
                               
{0x00,0x62,0x51,0x51,0x49,0x46},//2
                               
{0x00,0x21,0x41,0x45,0x4b,0x31},//3
                               
{0x00,0x18,0x14,0x12,0x7f,0x10},//4
                               
{0x00,0x27,0x45,0x45,0x45,0x39},//5
                               
{0x00,0x3c,0x4a,0x49,0x49,0x30},//6
                               
{0x00,0x01,0x71,0x09,0x05,0x03},//7
                               
{0x00,0x36,0x49,0x49,0x49,0x36},//8
                               
{0x00,0x06,0x49,0x49,0x29,0x1e},//9

{0x00,0x00,0x36,0x36,0x00,0x00},//:

{0x00,0x00,0x56,0x36,0x00,0x00},//;

{0x00,0x08,0x14,0x22,0x41,0x00},//<

{0x00,0x14,0x14,0x14,0x14,0x14},//=
                              
{0x00,0x00,0x41,0x22,0x14,0x08},//>
                               
{0x00,0x02,0x01,0x51,0x09,0x06},//?

{0x00,0x3e,0x59,0x55,0x79,0x3e},//@

{0x00,0x7e,0x21,0x21,0x21,0x7e},//A
                               
{0x00,0x7f,0x49,0x49,0x49,0x36},//B
                               
{0x00,0x3e,0x41,0x41,0x41,0x22},//C
                               
{0x00,0x7f,0x41,0x41,0x22,0x1c},//D
                               
{0x00,0x7f,0x49,0x49,0x49,0x49},//E
                               
{0x00,0x7f,0x09,0x09,0x09,0x01},//F
                               
{0x00,0x3e,0x41,0x49,0x49,0x7a},//G
                               
{0x00,0x7f,0x08,0x08,0x08,0x7f},//H
                               
{0x00,0x41,0x7f,0x41,0x00,0x00},//I
                               
{0x00,0x20,0x40,0x41,0x3f,0x01},//J
                               
{0x00,0x7f,0x08,0x14,0x22,0x41},//K
                               
{0x00,0x7f,0x40,0x40,0x40,0x40},//L
                               
{0x00,0x7f,0x02,0x0c,0x02,0x7f},//M
                               
{0x00,0x7f,0x04,0x08,0x10,0x7f},//N
                               
{0x00,0x3e,0x41,0x41,0x41,0x3e},//O
                               
{0x00,0x7f,0x09,0x09,0x09,0x06},//P
                               
{0x00,0x3e,0x41,0x41,0x41,0x3e},//Q
                               
{0x00,0x7f,0x09,0x19,0x29,0x46},//R
                               
{0x00,0x46,0x49,0x49,0x49,0x31},//S
                               
{0x00,0x01,0x01,0x7f,0x01,0x01},//T
                               
{0x00,0x3f,0x40,0x40,0x40,0x3f},//U
                               
{0x00,0x1f,0x20,0x40,0x20,0x1f},//V
                               
{0x00,0x3f,0x40,0x38,0x40,0x3f},//W
                               
{0x00,0x63,0x14,0x08,0x14,0x63},//X
                               
{0x00,0x07,0x08,0x70,0x08,0x07},//Y
                               
{0x00,0x61,0x51,0x49,0x45,0x43},//Z

{0x00,0x00,0x7f,0x41,0x41,0x00},//[

{0x00,0x01,0x02,0x08,0x10,0x20},// \ 
                               
{0x00,0x00,0x41,0x41,0x7f,0x00},//]

{0x00,0x04,0x02,0x01,0x02,0x04},//^
                               
{0x00,0x40,0x40,0x40,0x40,0x40},//_
                               
{0x00,0x00,0x01,0x02,0x04,0x00},//`
                               
{0x00,0x20,0x54,0x54,0x54,0x7c},//a
                               
{0x00,0x7f,0x48,0x44,0x44,0x38},//b
                               
{0x00,0x38,0x44,0x44,0x44,0x20},//c
                               
{0x00,0x38,0x44,0x44,0x48,0x7f},//d               
                               
{0x00,0x38,0x54,0x54,0x54,0x18},//e               
                               
{0x00,0x08,0x7e,0x09,0x01,0x02},//f               
                               
{0x00,0x0c,0x52,0x52,0x52,0x3e},//g               
                               
{0x00,0x7f,0x08,0x04,0x04,0x78},//h               
                               
{0x00,0x00,0x44,0x7d,0x40,0x00},//i               
                               
{0x00,0x40,0x40,0x44,0x3d,0x00},//j               
                               
{0x00,0x7f,0x10,0x28,0x44,0x00},//k               
                                 
{0x00,0x00,0x41,0x7e,0x40,0x00},//l               
                               
{0x00,0x7c,0x04,0x18,0x04,0x78},//m               
                               
{0x00,0x7c,0x08,0x04,0x04,0x78},//n               
                               
{0x00,0x38,0x44,0x44,0x44,0x38},//o             
                               
{0x00,0x7c,0x14,0x14,0x14,0x08},//p              
                               
{0x00,0x08,0x14,0x14,0x14,0x7c},//q              
                               
{0x00,0x7c,0x08,0x04,0x04,0x08},//r              
                               
{0x00,0x48,0x54,0x54,0x54,0x20},//s              
                                
{0x00,0x04,0x3f,0x44,0x44,0x24},//t               
                               
{0x00,0x3c,0x40,0x40,0x20,0x7e},//u             
                               
{0x00,0x1d,0x20,0x40,0x20,0x1c},//v               
                               				 
{0x00,0x3c,0x40,0x30,0x40,0x3c},//w               
                               
{0x00,0x44,0x28,0x10,0x28,0x44},//x               
                               
{0x00,0x06,0x48,0x48,0x48,0x3e},//y               
                               
{0x00,0x44,0x64,0x54,0x4c,0x44},//z              

{0x00,0x00,0x08,0x36,0x41,0x00},//{

{0x00,0x00,0x00,0x7e,0x00,0x00},//|
                               
{0x00,0x00,0x41,0x36,0x08,0x00},//} 
 
{0x00,0x04,0x08,0x04,0x08,0x04} //~
};

/*----------------------------------
函数功能:初始化LCD
输入:无
输出:无
-----------------------------------*/
void InitLCD()
{
	WriteCmdLCD(0,LCD_RESET);	         //初始化
	WriteCmdLCD(0,LCD_DUTY32);
	WriteCmdLCD(0,LCD_DRIVER_ON);      //开驱动
	WriteCmdLCD(0,LCD_DISPLAY_ON);	 	//开显示
	WriteCmdLCD(0,0xA1); 			     //设置ADC

	WriteCmdLCD(1,LCD_RESET);	         //初始化
	WriteCmdLCD(1,LCD_DUTY32);
	WriteCmdLCD(1,LCD_DRIVER_ON);      //开驱动
	WriteCmdLCD(1,LCD_DISPLAY_ON);	 	//开显示
	WriteCmdLCD(1,0xA1); 			     //设置ADC
//	SetLineLCD(0);	                 //设置行
//	SetColumnLCD(0);                 //设置显示列 
//	SetPageLCD(0);                   //设置页地址	
}

/*----------------------------------
函数功能:读LCD的状态
输入:无
输出:	0:空闲
     	1:忙
-----------------------------------*/
bit ReadStateLCD()
{
	E1 = 0;
	CDout = 0xFF;        //输出1,准备读数据
	A0 = 0;
	RW = 1;
	nop6;
	E1 = 1;
	nop6;
	return BF;	         //返回最高位
}

/*---------------------------------
函数功能:发送一条指令
输入:  cmd:发送的指令
输出: 无
----------------------------------*/
void WriteCmdLCD(bit selchip,uint8 cmd)
{	
	A0 = 0;
	RW = 0;
	if(!selchip)
	{
		E1 = 0;
		nop6;
		E1 = 1;
		CDout = cmd;
		nop6;
		E1 = 0;
	}
	else
	{
		E2 = 0;
		nop6;
		E2 = 1;
		CDout = cmd;
		nop6;
		E2 = 0;	
	}
}

/*-------------------------------------
函数功能:向其一发送一个字节
输入:selchip :选择芯片0:第一个,1:第二个
     nadata :输入的数据
输出:无
--------------------------------------*/
void WriteRamLCD(bit selchip,uint8 ndata)
{
    A0=1;
    RW=0;
    if(!selchip)
    {
    	E1=1;
    	CDout=ndata;
    	nop6;
		E1=0;
    	nop6;
    }
    else
    {
    	E2=1;
    	CDout=ndata;
    	nop3;
		E2=0;
		nop6;
    }
}

/*----------------------------------------------------
函数功能:向其一RAM写一个字符,即6个字节
输入:selchip :选择芯片0:第一个,1:第二个
     ndata   :要发送的字符
输出:无
----------------------------------------------------*/
void WriteCharLCD(bit selchip,uint8 ndata)
{
	uint8 i;
	for(i=0; i<6; i++)
		WriteRamLCD(selchip,ASCII[ndata-32][i]);	
}

/*-----------------------------------------------------
函数功能:向LCD写一串数据,数据以字符的形式存在数组中
输入:  	selchip:选择芯片,0:第一个,1:第二个
		count :字符的个数,count要小于等于10
        ndata:字符的首地址
输出:无
------------------------------------------------------*/
void WriteStrLCD(bit selchip,uint8 count,uint8 *ndata)
{
	uint8 i;

	if(count>10)
		return;
	for(i=0; i<count; i++)
		WriteCharLCD(selchip, ndata[i]);		
}

/*----------------------------------------------------
函数功能:写其中一个RAM的一页
输入:  npage: 页数
       ndata: 61个字节的首地址   
----------------------------------------------------*/
/*void WritePageLCD(uint8 npage,uint8 *ndata)
{
    uint8 i;
    bit selchip = npage%3;
    SetPageLCD(npage%4);
    SetColumnLCD(0);
    for(i=0;i<61;i++)
        WriteRamLCD(selchip,ndata[i]);
}  */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -