lcd16824驱动程序文件.docx

上传人:b****8 文档编号:23916472 上传时间:2023-05-22 格式:DOCX 页数:17 大小:16.97KB
下载 相关 举报
lcd16824驱动程序文件.docx_第1页
第1页 / 共17页
lcd16824驱动程序文件.docx_第2页
第2页 / 共17页
lcd16824驱动程序文件.docx_第3页
第3页 / 共17页
lcd16824驱动程序文件.docx_第4页
第4页 / 共17页
lcd16824驱动程序文件.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

lcd16824驱动程序文件.docx

《lcd16824驱动程序文件.docx》由会员分享,可在线阅读,更多相关《lcd16824驱动程序文件.docx(17页珍藏版)》请在冰豆网上搜索。

lcd16824驱动程序文件.docx

lcd16824驱动程序文件

#include

#definefuc_PERIPHSYSCTL_PERIPH_GPIOE

#definefuc_PORTGPIO_PORTE_BASE

#definers_PINGPIO_PIN_0

#definerw_PINGPIO_PIN_1

#defineen_PINGPIO_PIN_2

#definelcd_PERIPHSYSCTL_PERIPH_GPIOD

#definelcd_PORTGPIO_PORTD_BASE

#definelcd_PINS0xff

#defineSysCtlPeriEnableSysCtlPeripheralEnable

#defineSysCtlPeriDisableSysCtlPeripheralDisable

#defineGPIOPinTypeInGPIOPinTypeGPIOInput

#defineGPIOPinTypeOutGPIOPinTypeGPIOOutput

#defineGPIOPinTypeODGPIOPinTypeGPIOOutputOD

#defineFIRST_ADDR0//定义字符/汉字显示起始位置

unsignedcharCGRAM[]={

0x08,0x20,0x1c,0x10,0x1c,0x1c,0xff,0x9e,0x7f,0x1e,0x1c,0x1f,0x3e,0x1f,0x3e,0x1f,

0x77,0x1f,0x41,0x3f,0x00,0x7e,0x00,0xfe,0x83,0xfc,0x7f,0xf8,0x3f,0xf0,0x0f,0xc0,

};

unsignedcharBMP1[];

unsignedcharBMP2[];

unsignedcharBMP3[];

unsignedcharBMP4[];

unsignedcharBMP5[];

unsignedcharBMP6[];

unsignedcharBMP7[];

unsignedcharBMP8[];

unsignedcharNum[]={'0','1','2','3','4','5','6','7','8','9','.'};

 

voiddelay(intm)

{

intn;

for(n=0;n<=m;n++);

}

voidcheck(void)//判断是否忙碌

{

delay(500);

}

voidwrite_(unsignedchar)//写显示命令

{

GPIOPinWrite(lcd_PORT,lcd_PINS,);//P0=;

GPIOPinWrite(fuc_PORT,rs_PIN,0X00);//rs=0;

GPIOPinWrite(fuc_PORT,rw_PIN,0X00);//rw=0

GPIOPinWrite(fuc_PORT,en_PIN,0Xff);//lcden=0;

check();

GPIOPinWrite(fuc_PORT,en_PIN,0X00);//lcden=1;

GPIOPinWrite(lcd_PORT,lcd_PINS,0xff);//P0=;

}

voidwrite_data(unsignedchardate)//写显示数据

{

GPIOPinWrite(lcd_PORT,lcd_PINS,date);//P0=;

GPIOPinWrite(fuc_PORT,rs_PIN,0Xff);//rs=0;

GPIOPinWrite(fuc_PORT,rw_PIN,0X00);//rw=0

GPIOPinWrite(fuc_PORT,en_PIN,0xff);//lcden=0;

check();

GPIOPinWrite(fuc_PORT,en_PIN,0X00);//lcden=1;

GPIOPinWrite(lcd_PORT,lcd_PINS,0xff);//P0=;

}

 

voidLCD_INIT(void)//初始化LCD

{

SysCtlPeriEnable(lcd_PERIPH);//使能LcD所在的GPIO端口

GPIOPinTypeOut(lcd_PORT,lcd_PINS);

SysCtlPeriEnable(fuc_PERIPH);//使能LcD功能端口所在的GPIO端口

GPIOPinTypeOut(fuc_PORT,rs_PIN|en_PIN|rw_PIN);

GPIOPinWrite(fuc_PORT,en_PIN,0Xff);//lcden=1;

write_(0x01);//清除屏幕显示,将DDRAM的地址计数器清零

delay(5);

write_(0x30);//清除屏幕显示,将DDRAM的地址计数器清零

delay(5);

write_(0x30);//8BIT控制界面,基本指令集

delay(5);

write_(0X0C);

delay(5);

write_(0x01);///清除屏幕显示,将DDRAM的地址计数器清零

delay(5);

write_(0x06);//DDRAM的地址计数器(AC)加1

delay(5);

 

}

//********************************************************************

//名称:

DisStr16()

//功能:

12864显示16*16字符串函数

//输入:

hang显示的行数,lie显示的列数,*p显示的容

//输出:

//***********************************************************************

voidzhifuchuan16(unsignedcharhang,unsignedcharlie,char*p)

{

unsignedchara=0,i=0;

if(lie>8)lie=1;

switch(hang)

{

case1:

a=0x80;break;

case2:

a=0x90;break;

case3:

a=0x88;break;

case4:

a=0x98;break;

}

a=a+lie-1;

delay(5);

write_(a);

delay(5);

while

(1)

{

if((i/2+lie)>8)break;

if(*p=='\0')break;

write_data(*p);

p++;

i++;

}

GPIOPinWrite(lcd_PORT,lcd_PINS,0xff);

//IO1PIN=IO1PIN&0xff00ffff|0x00010000;

}

//********************************************************************

//*名称:

DisStr8()

//*功能:

12864显示8*16字符串函数

//*输入:

hang显示的行数,lie显示的列数,*p显示的容

//*输出:

//***********************************************************************/

voidzhifuchuan8(unsignedcharhang,unsignedcharlie,char*p)

{

unsignedchara,i=0;

if(lie<1)lie=1;

if(lie>16)lie=16;

lie=lie-1;

if(hang==1)a=0x80;

if(hang==2)a=0x90;

if(hang==3)a=0x88;

if(hang==4)a=0x98;

a=a+lie/2;

write_(a);

if(lie%2==1)write_data(0x20);

while

(1)

{

if((i+lie)>15)break;

if(*p=='\0')break;

write_data(*p);

p++;

i++;

}

//IO1PIN=IO1PIN&0xff00ffff|0x00010000;

}

/********************************************************************

*名称:

DisChar()

*功能:

显示单个数字字符函数

*输入:

hang显示的行数,lie显示的列数,sign显示的容

*输出:

***********************************************************************/

voidDisChar(unsignedcharhang,unsignedcharlie,unsignedintsign)

{

unsignedchara;

if(lie<1)lie=1;

if(lie>16)lie=16;

lie=lie-1;

if(hang==1)a=0x80;

if(hang==2)a=0x90;

if(hang==3)a=0x88;

if(hang==4)a=0x98;

a=a+lie/2;

write_(a);

if(lie%2==1)write_data(0x20);

write_data(sign+0x30);

//IO1PIN=IO1PIN&0xff00ffff|0x00010000;

}

 

/*名称:

DisNum()

*功能:

显示单个数字字符函数

*输入:

hang显示的行数,lie显示的列数,sign显示的容

*输出:

***********************************************************************/

 

voidDisNum(unsignedcharhang,unsignedcharlie,unsignedintnum1,unsignedintnum2)

{

unsignedchara;

if(lie<1)lie=1;

if(lie>16)lie=16;

lie=lie-1;

if(hang==1)a=0x80;

if(hang==2)a=0x90;

if(hang==3)a=0x88;

if(hang==4)a=0x98;

a=a+lie/2;

write_(a);

if(lie%2==1)write_data(0x20);

write_data(num1+0x30);

write_data(num2+0x30);

//IO1PIN=IO1PIN&0xff00ffff|0x00010000;

}

 

/********************************************************************

*名称:

DisImg(uintxs,uintys,uintxe,uintye,uchar*img)

*功能:

显示图片xs为图片显示的起始横坐标,xs=1-16

xe为图片显示的结束横坐标,xe=2-17

宽单位为8个像素点,图片大小必须为的宽必须为8的倍数,

且小于128,如宽为16时,xe-xs=2即宽度为2*8=16个像素点

ys为图片显示的起始纵坐标,ys=1-64

ye为图片显示的结束纵坐标,ye=2-65

高单位为1个像素,图片高小于64,

如高为19,ye-ys=19即高度为19个像素点

*输入:

*输出:

***********************************************************************/

voidDisImg(unsignedintxs,unsignedintys,unsignedintxe,unsignedintye,unsignedchar*img)

{

unsignedintj=0;

unsignedcharx,y,xxs,xxe,i=0,k=0;

xs-=1;ys-=1;xe-=1;ye-=1;

xxs=xs/2;xxe=xe/2;

for(y=ys;y<=ye;y++)

{

for(x=xxs;x

{

if(y>=32)i=8,k=32;

write_(0x36);//8位数据总线,扩展指令集,绘图显示开

write_(y+0x80-k);//行地址

write_(x+0x80+i);//列地址

write_(0x30);

if(xs%2==1)write_data(0x00);

write_data(img[j++]);

write_data(img[j++]);

}

}

}

 

/********************************************************************

*名称:

CLR()

*功能:

清屏

*输入:

*输出:

***********************************************************************/

voidCLR()

{

write_(0x01);

delay

(1);

}

/********************************************************************

 

/********************************************************************

*名称:

CLRGDRAM()

*功能:

清整个GDRAM空间

*输入:

*输出:

***********************************************************************/

 

voidCLRGDRAM()

{

unsignedcharx,y,i;

CLR();

zhifuchuan16(1,1,"");

for(i=0;i<9;i+=8)//0时上半屏,8时下半屏

for(y=0;y<32;y++)//列地址(0~32)(0~32)

for(x=0;x<8;x++)//行地址(0~7)(8~15)

{

write_(0x36);//8位数据总线,扩展指令集,绘图显示开

write_(y+0x80);//行地址

write_(x+0x80+i);//列地址

write_(0x30);

write_data(0x00);

write_data(0x00);

}

CLR();

}

//***********************************闪烁******************************************************//

//voidshanshuo()

//{

//write_(0x02);

//write_(0x0e);

voidLCD_set_xy(unsignedcharhang,unsignedcharlie)

{

unsignedchara=0,i=0;

if(lie>8)lie=1;

switch(hang)

{

case1:

a=0x80;break;

case2:

a=0x90;break;

case3:

a=0x88;break;

case4:

a=0x98;break;

}

a=a+lie-1;

delay(5);

write_(a);

}

 

voidLCD_falsh(unsignedcharhang,unsignedcharlie,unsignedcharfalsh)

{

LCD_set_xy(hang,lie);

if(falsh)

write_(0x0e);

}

 

//****************************************************************************

//*火影图片*/

//*--宽度x高度=128x64--*/

unsignedcharBMP2[]=

{

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,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,

0XFC,0X00,0X00,0X03,0XFF,0XFF,0XF1,0X33,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X3F,

0XFC,0X00,0X00,0X40,0X3E,0XFC,0X00,0X10,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X7F,

0XFC,0X00,0X00,0X40,0X38,0X00,0X00,0X01,0XC3,0XFF,0XFF,0XFF,0XF8,0X00,0XFF,0X7F,

0XFC,0X00,0X00,0XC0,0X50,0X27,0XFE,0X00,0X07,0XFF,0XFF,0XC0,0X00,0X00,0X7F,0X3F,

0XFC,0X00,0X00,0XC0,0X11,0XFF,0XFE,0X00,0X0F,0XFF,0X00,0X00,0X00,0X00,0X2F,0X3F,

0XFC,0X00,0X00,0XC0,0X00,0XF7,0XFE,0X00,0X1F,0XF8,0X03,0XFF,0XFF,0XF8,0X23,0XBF,

0XFC,0X00,0X01,0XC0,0X00,0XF7,0XFE,0X80,0X3F,0XF0,0XFF,0XFF,0XFF,0XF4,0X11,0XBF,

0XFC,0X00,0X01,0XC0,0X01,0XFF,0XFE,0X01,0X3F,0X61,0X7F,0XFF,0XCF,0XFC,0X00,0XFF,

0XFC,0X00,0X01,0XC0,0X00,0XF9,0XFE,0X00,0XEE,0X23,0X3F,0XF8,0X1F,0XFC,0X00,0X3F,

0XFC,0X00,0X01,0XD0,0X00,0XFF,0X80,0XE4,0X0C,0X03,0X3F,0XF7,0XFF,0XFC,0X00,0X3F,

0XFC,0X00,0X01,0XC0,0X00,0X00,0X00,0XF5,0X0A,0X03,0X3F,0XEC,0X3F,0XF8,0X00,0X3F,

0XFC,0X00,0X01,0X80,0X02,0X01,0X03,0X79,0X16,0X02,0X3F,0XE9,0X3F,0XF8,0X00,0X3F,

0XFC,0X00,0X00,0X00,0X03,0X07,0X66,0XFB,0X14,0X02,0X7F,0XCB,0X5F,0XFC,0X00,0X3F,

0XFC,0X00,0X00,0X00,0X03,0X87,0XFF,0XFF,0X20,0X02,0X7F,0XCC,0X5F,0XFC,0X00,0X3F,

0XFC,0X00,0X00,0X00,0X03,0XDF,0XFF,0XF0,0X00,0X03,0X7F,0XA7,0X9F,0XFC,0X00,0X3F,

0XFC,0X00,0X00,0X00,0X01,0XFF,0XFF,0XF0,0X00,0X03,0X7F,0XA0,0X3F,0XF0,0X00,0X3F,

0XFC,0X00,0X00,0X00,0X01,0XFF,0XFF,0XD0,0X40,0X01,0X7F,0XFD,0XFF,0XF4,0X01,0XBF,

0XFC,0X00,0X00,0X00,0X01,0XFF,0XFF,0XF0,0X00,0X01,0X7F,0XFF,0XFD,0XF8,0X01,0X3F,

0XFC,0X00,0X00,0X00,0X00,0XFF,0XFF,0XC0,0X00,0X00,0X7F,0XFF,0XF0,0X00,0X02,0X3F,

0XFC,0X00,0X00,0X00,0X00,0XF9,0X7F,0XE0,0X03,0X00,0X00,0X00,0X00,0X00,0X0C,0XBF,

0XFC,0X00,0X00,0X00,0X00,0X7D,0XFF,0X80,0X01,0X80,0X00,0X00,0X00,0X0F,0XE8,0X3F,

0XFC,0X00,0X00,0X00,0X00,0X7F,0XFF,0X00,0X00,0XA8,0X00,0X00,0X02,0X03,0XE1,0XBF,

0XFC,0X00,0X00,0X00,0X00,0X3E,0X30,0X00,0X03,0X4F,0X81,0XFF,0XFC,0X01,0XE1,0XBF,

0XFC,0X00,0X00,0X00,0X00,0X0F,0XE0,0X00,0X03,0X0F,0X00,0XFF,0XC4,0X45,0XE1,0XBF,

0XFC,0X00,0X00,0X00,0X00,0X1F,0X00,0X00,0X03,0X1F,0X40,0X47,0XEC,0X0F,0XE9,0XBF,

0XFC,0X00,0X00,0X00,0X00,0X30,0X00,0X00,0X03,0X0F,0X40,0X6F,0XFE,0X0F,0XF9,0XBF,

0XFC,0X

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1