lcd16824驱动程序文件.docx
- 文档编号:23916472
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:17
- 大小:16.97KB
lcd16824驱动程序文件.docx
《lcd16824驱动程序文件.docx》由会员分享,可在线阅读,更多相关《lcd16824驱动程序文件.docx(17页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- lcd16824 驱动程序 文件
![提示](https://static.bdocx.com/images/bang_tan.gif)