还剩5页未读,继续阅读
文本内容:
通常我们用的液晶显示都是4*16的字符/汉字显示这里介绍(jLsh台)4/16的液晶字符显示驱动程序!//ms延时voidlcd_DelayMsuintmsuchari;whilemsfori=0;i254;i++;ms-;〃串行数据shCjjD输入一字节voidLCD_SendByteuchars_datauchari;SID=0;SCLK=0;fori=0;i8;i++SID=bits_data0x80;delay⑴;SCLK=1;delay⑴;sjdata«=1;delay⑴;SCLK=0;delay⑴;//命令mingling输入voidLCD_SendCommucharcomm_datadelay⑴;LCD_SendByte0xF8OxFF;delay⑴;LCD_SendBytecomm_dataOxFO;//sendD7D6D5D40000delay⑴;LCD_SendBytecomm_data0x0F«4;//sendD3D2D1DO0000delay80;〃数据shM输入voidLCD_SendDataucharsend_dataLCD_SendByteOxFAOxFF;//11111RW=0RS=10delay⑴;LCD_SendBytesend_dataOxFO;//sendD7D6D5D40000delay⑴;LCD_SendBytesend_data0x0F«4;//sendD3D2D1DO0000delay80;//设定s*d〕ng光标位置voidSet_CursorucharXYifX==0X=0x80;elseifX==1X=0x90;elseifX==2X=0x88;elseifX==3X=0x98;Y=X+Y;LCD_SendCommY;〃清除qingch
①屏幕voidlcd_ClearvoidLCD_SendCommSCIear;lcd_DelayMs30;LCD_SendCommSOrigin;delay150;〃显示ximnsh〕字符串X:行Y:歹Jvoidlcd_DispStringucharXYuchar*msgSet_CursorXY;while*msg!=\0LCD_SendData*msg++;//坐标zu6b诒o写入voidwrPositionvoidLCD_SendCommSFunSetE;LCD_SendCommlcdPosY;LCD_SendCommlcdPosX;LCD_SendCommSFunSetB;一〃函数功能全屏显示X谙nsh〕图形〃bmpCls=清除qingchCi图形屏幕选项OFF为不清屏,即显示图形ON为清屏voidlcd_DispPhotouchar*bmp5ucharbmpCIsIcdPosX=0x80;halfScr=2;for;halfScr!=0;halfScr-IcdPosY=0x80;halfLineCnt=32;for;halfLineCnt!=0;halfLineCnt-basicBlock=16;wrPosition;for;basicBlock!=0;basicBlock-ifbmpCIs==OFFLCD_SendData*bmp++;elseifbmpCIs==ONLCD_SendData0x00;lcdPosY++;IcdPosX=0x88;LCD_SendCommSFunDrawOn;LCD_SendCommSFunSetB;////函数%nshCj原形voidlcd_ConvertCharucharCXCYwidth〃函数功能gongHng:字符反白显示〃输入shwCi参数:〃返回值//voidlcd_ConvertCharucharCXCYwidthlcd_DispPhotoOFFON;IcdPosY=0x80;ifCX==0CX=0x80;halfLineCnt=16;elseifCX==1CX=0x80;halfLineCnt=32;elseifCX==2CX=0x88;halfLineCnt=16;elseifCX==3CX=0x88;halfLineCnt=32;IcdPosX=CX+CY;for;halfLineCnt!=0;halfLineCnt-basicBlock=width;wrPosition;for;basicBlock!=0;basicBlock-ifhalfLineCnt16LCD_SendDataOxOO;elseLCD_SendDataOxff;lcdPosY++;LCD_SendCommSFunDrawOn;LCD_SendCommSFunSetB;////函数h2nshCj原形:voidlcd_LineChooseucharline//函数功能gonghng:选中某行反白显示〃输入shwCi参数:〃返回值//voidlcd_LineChooseucharlineifline4lcd_ConvertCharline016;Set_Cursorline7;}//初始化voidLCDJnitvoid-scs=o;lcd_DelayMs30;SCS=1;SCS=1;SCLK=0;lcd_DelayMs40;LCD_SendCommSFunSetE;//功能设置,一次送8位数据,功能设定扩充kudchong指令delay300;LCD_SendCommSFunSetB;〃功能设置shVzhi一次送8位数据,基本指令集delay300;LCD_SendCommSDispOn;//00001100整体亿hVngtT显示,游标off游标位置ffdelay300;LCD_SendCommSCIear;//00000001清DDRAMdelay300;lcd_DelayMs1;LCD_SendCommSEntryMode;//00000010DDRAM地址d〕zhl归位lcd_DelayMs1;LCD_SendCommSOrigin;〃10000000设定shedingDDRAM7位地址0000000到地址计数器AClcd_DelayMs1;//LCD_SendComm0x04;〃点设定,显示字符/光标从左到右移位,DDRAM地址加-lcd_DelayMs1;//LCD_SendComm0x0f;〃显示设定,开显示,显示光标,当前显示位反白闪动lcd_DelayMs5;}内容总结1通常我们用的液晶显示都是4*16的字符/汉字显示这里介绍4*16的液晶字符显示驱动程序//ms延时voidlcd_DelayMsuintms-uchari//send11111RW=ORS=O0delay⑴//11111RW=ORS=10delay⑴⑸}lcdPosY++。