资源描述:
《完整的NOKIA5110液晶51单片机驱动程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/****************************************************************Nokia5110驱动*说明:本驱动适用于51单片机(5V或3.3V),液晶的VCC接5V或3.3V修改偏置电压可改变5110点阵显示的亮度5110接5V时偏置电压改为(0xa7,0),接3.3V时改为(0xc0,0)*作者:JK*创建日期:2013/1/26*修改日期:****************************************************************/#include#include"fo
2、nt.h"#defineuintunsignedint#defineucharunsignedchar/***********************************************************IO口定义区***********************************************************/sbitLCD_RST=P0^0;sbitLCD_CE=P0^1;sbitLCD_DC=P0^2;sbitLCD_DIN=P0^3;sbitLCD_CLK=P0^4;/*********************************
3、**************************函数声明区***********************************************************/voidLCD_Init(void);voidLCD_WriteByte(unsignedchardat,unsignedcharcommand);voidLCD_Set_XY(unsignedcharX,unsignedcharY);voidLCD_Clear(void);voidLCD_WriteChar(unsignedcharx,unsignedchary,unsignedcharc);void
4、LCD_WriteString(unsignedcharX,unsignedcharY,char*s);voidLCD_WriteNum(unsignedcharX,unsignedcharY,unsignedintnum);voidLCD_Write_12X16Font(unsignedcharx,unsignedchary,unsignedcharc[2]);voidLCD_DrawPicture(unsignedcharX,unsignedcharY,unsignedcharconst*map,unsignedcharPix_x,unsignedcharPix_y);/***
5、*********************************************************函数名:LCD_Init*功能:初始化LCD*参数:无*返回值:无*备注:***********************************************************/voidLCD_Init(void){unsignedchari;LCD_RST=0;//复位for(i=0;i<150;i++);LCD_RST=1;LCD_WriteByte(0x21,0);//使用扩展命令设置LCD模式LCD_WriteByte(0xc0,0);//设置偏
6、置电压,修改可改变5110点阵显示的亮度/*5110接5V时偏置电压改为(0xa7,0),接3.3V时改为(0xc0,0)*/LCD_WriteByte(0x20,0);//使用基本命令。并设置V=0,水平寻址LCD_Clear();//清屏LCD_WriteByte(0x0c,0);//设定显示模式,正常显示(普通显示)LCD_CE=0;}/************************************************************函数名:LCD_WriteByte*功能:模拟SPI接口时序写数据/命令LCD*参数:data:写入的数据;command
7、:写数据(1)/命令选择(0);*返回值:无*备注:***********************************************************/voidLCD_WriteByte(unsignedchardat,unsignedcharcommand){unsignedchari;LCD_CE=0;//5110片选有效,允许输入数据if(command==0)//写命令LCD_DC=0;elseLCD_DC=1;//写数据for(i=0;i