飞思卡尔智能车野火K60FX系列诺基亚5110驱动程序飞思卡尔智能车野火K60FX系列诺基亚5110驱动程序
/****************************************************************************
*
******备注:因为野火库文件"common.h"包含对数据类型的声明,所以加入此库
******备注:因为野火库文件"include.h"包含对PORT初始化,延时函数用的库,所以加入此库
******备注:DELAY_US(1);延时函数在 "MK60_wdog.h" 已经定义
**********...
飞思卡尔智能车野火K60FX系列诺基亚5110驱动程序
/****************************************************************************
*
******备注:因为野火库文件"common.h"包含对数据类型的声明
,所以加入此库
******备注:因为野火库文件"include.h"包含对PORT初始化<"MK60_gpio.h">,延时函数用的库<"MK60_wdog.h">,所以加入此库
******备注:DELAY_US(1);延时函数在 "MK60_wdog.h" 已经定义
*****************************************************************************
****/
#include "common.h"
#include "include.h"
#include "FIRE_LCD5110.h"
/*-----------------------------------------------------------------------
*****函数名称: LCD5110_init()
*****函数功能: 5110LCD初始化
*****最后修改日期 :2014-3-7
-----------------------------------------------------------------------*/
void LCD5110_init(void)
{
gpio_init(PTA14,GPO,1);
gpio_init(PTA15,GPO,1);
gpio_init(PTA16,GPO,1);
gpio_init(PTA17,GPO,1);
gpio_init(PTE28,GPO,1);
LCD5110_RST = 0; // 产生一个让LCD复位的低电平脉冲
DELAY_US(1);
LCD5110_RST = 1;
LCD5110_CE = 0; // 关闭LCD
DELAY_US(1);
LCD5110_CE = 1; // 使能LCD
DELAY_US(1);
LCD5110_write_byte(0x21, 0); // 使用扩展命令设置LCD模式
LCD5110_write_byte(0xc8, 0); // 设置偏置电压
LCD5110_write_byte(0x06, 0); // 温度校正
LCD5110_write_byte(0x13, 0); // 1:48
LCD5110_write_byte(0x20, 0); // 使用基本命令
LCD5110_clear(); // 清屏
LCD5110_write_byte(0x0c, 0); // 设定显示模式,正常显示
LCD5110_CE = 0; // 关闭LCD
}
/*-----------------------------------------------------------------------
*****函数名称:LCD5110_clear()
*****函数功能: LCD5110液晶清屏函数
*****最后修改日期 :2014-3-7
-----------------------------------------------------------------------*/
void LCD5110_clear(void)
{
uint16 i;
LCD5110_write_byte(0x0c, 0);
LCD5110_write_byte(0x80, 0);
for (i=0; i<504; i++)
LCD5110_write_byte(0, 1);
}
/*-----------------------------------------------------------------------
LCD5110_write_byte : 使用SPI接口写数据到LCD
函数功能 :写一个字节
输入参数:data :写入的字节;
command :写数据/命令选择;0为命令,1为数据;
最后修改日期 :2014-3-7
-----------------------------------------------------------------------*/
void LCD5110_write_byte(uint8 data, uint8 command)
{
uint8 i;
LCD5110_CE = 0; // 使能LCD
if (command == 0)
LCD5110_DC = 0; // 传送命令
else
LCD5110_DC = 1; // 传送数据
for(i=0;i<8;i++)
{
if(data&0x80)
LCD5110_SDIN = 1;
else
LCD5110_SDIN = 0;
LCD5110_SCLK = 0;
data = data << 1;
LCD5110_SCLK = 1;
}
LCD5110_CE = 1;
}
/*-----------------------------------------------------------------------
*****LCD5110_set_XY() : 设置LCD坐标函数
*****输入参数:X :0,83
Y :0,5
*****最后修改日期 :2014-3-7
-----------------------------------------------------------------------*/
void LCD5110_set_XY(uint8 X, uint8 Y)
{
LCD5110_write_byte(0x40 | Y, 0); // column
LCD5110_write_byte(0x80 | X, 0); // row
}
/*-----------------------------------------------------------------------
LCD5110_write_char() : 写入1个英文字符
输入参数:c :要显示的字符;
最后修改日期 :2014-3-7
-----------------------------------------------------------------------*/
void LCD5110_write_char(uint8 c)
{
uint8 line;
c -= 32;
for (line=0; line<6; line++)
LCD5110_write_byte(font6x8[c][line], 1);//从ACSII码中读取字节,然后写入液晶
}
/***********************************************************************
* 函数名称:LCD5110_Write_Char()
* 函数功能:定位的写入1个字符
* 入口参数:X:行;Y:列;c:要写入的数据
* 修改时间:2014-03-07
**********************************************************************/
void LCD5110_Write_Char(uint8 X,uint8 Y,uint8 c) {
uint8 line;
LCD5110_set_XY(X,Y); //光标定位
c-=32;
for (line=0; line<6; line++)
LCD5110_write_byte(font6x8[c][line], 1);//从ACSII码表中读取字节,然后写入液晶
}
/***********************************************************************
* 函数名称:LCD5110_Write_Num()
* 函数功能:定位 显示变量
* 入口参数:X:行;Y:列;num:变量;N:要显示的变量的位数
* 修改时间:2014-03-07
**********************************************************************/
void LCD5110_Write_Num(uint8 X,uint8 Y,uint16 num,uint8 N)
{
uint8 line;
uint8 i=0;
uint16 n[5]={0};
n[0]= num%10;
n[1]=(num/10)%10;
n[2]=(num/100)%10;
n[3]=(num/1000)%10;
n[4]=(num/10000)%10;
for(i=0;i<5;i++) n[i]=n[i]+16;
for(i=N;i>0;i--)
{
LCD5110_set_XY(X+(N-i)*6,Y);//光标定位
for (line=0; line<6; line++)
LCD5110_write_byte(font6x8[n[i-1]][line], 1);//从ACSII码表中读取字节,然后写入液
晶
}
}
/*-----------------------------------------------------------------------
LCD5110_write_english_String() : 英文字符串显示函数
输入参数:*s :英文字符串指针;
X、Y : 显示字符串的位置,x 0-83 ,y 0-5
最后修改日期 :2014-3-7
-----------------------------------------------------------------------*/
void LCD5110_write_english_string(uint8 X,uint8 Y,int8 *s)
{
LCD5110_set_XY(X,Y); //光标定位
while (*s)
{
LCD5110_write_char(*s);
s++;
}
}
/*-----------------------------------------------------------------------
LCD5110_write_chinese_string: 在LCD上显示汉字
输入参数:X、Y :显示汉字的起始X、Y坐标;
ch_with :汉字点阵的宽度
num :显示汉字的个数;
line :汉字点阵数组中的起始行数
row :汉字显示的行间距
最后修改日期 :2014-03-07
测试:
LCD5110_write_chi(0,0,12,7,0,0);
LCD5110_write_chi(0,2,12,7,0,0);
LCD5110_write_chi(0,4,12,7,0,0);
-----------------------------------------------------------------------*/
void LCD5110_write_chinese_string(uint8 X, uint8 Y,
uint8 ch_with,uint8 num,
uint8 line,uint8 row)
{
uint8 i,n;
LCD5110_set_XY(X,Y); //设置初始位置
for (i=0;i(30)
{0x00,0x02,0x01,0x51,0x09,0x06},//?(31)
{0x00,0x32,0x49,0x79,0x41,0x3E},//@(32)
{0x00,0x7E,0x11,0x11,0x11,0x7E},//A(33)
{0x00,0x7F,0x49,0x49,0x49,0x3E},//B(34)
{0x00,0x3E,0x41,0x41,0x41,0x22},//C(35)
{0x00,0x7F,0x41,0x41,0x22,0x1C},//D(36)
{0x00,0x7F,0x49,0x49,0x49,0x41},//E(37)
{0x00,0x7F,0x09,0x09,0x09,0x01},//F(38)
{0x00,0x3E,0x41,0x49,0x49,0x7A},//G(39)
{0x00,0x7F,0x08,0x08,0x08,0x7F},//H(40)
{0x00,0x00,0x41,0x7F,0x41,0x00},//I(41)
{0x00,0x20,0x40,0x41,0x3F,0x01},//J(42)
{0x00,0x7F,0x08,0x14,0x22,0x41},//K(43)
{0x00,0x7F,0x40,0x40,0x40,0x40},//L(44)
{0x00,0x7F,0x02,0x04,0x02,0x7F},//M(45)
{0x00,0x7F,0x04,0x08,0x10,0x7F},//N(46)
{0x00,0x3E,0x41,0x41,0x41,0x3E},//O(47)
{0x00,0x7F,0x09,0x09,0x09,0x06},//P(48)
{0x00,0x3E,0x41,0x51,0x21,0x5E},//Q(49)
{0x00,0x7F,0x09,0x19,0x29,0x46},//R(50)
{0x00,0x46,0x49,0x49,0x49,0x31},//S(51)
{0x00,0x01,0x01,0x7F,0x01,0x01},//T(52)
{0x00,0x3F,0x40,0x40,0x40,0x3F},//U(53)
{0x00,0x1F,0x20,0x40,0x20,0x1F},//V(54)
{0x00,0x3F,0x40,0x38,0x40,0x3F},//W(55)
{0x00,0x63,0x14,0x08,0x14,0x63},//X(56)
{0x00,0x03,0x04,0x78,0x04,0x03},//Y(57)
{0x00,0x61,0x51,0x49,0x45,0x43},//Z(58)
{0x00,0x00,0x7F,0x41,0x41,0x00},//[(59)
{0x00,0x15,0x16,0x7C,0x16,0x15},//\(60)
{0x00,0x00,0x41,0x41,0x7F,0x00},//](61)
{0x00,0x04,0x02,0x01,0x02,0x04},//^(62)
{0x00,0x40,0x40,0x40,0x40,0x40},//_(63)
{0x00,0x00,0x01,0x02,0x04,0x00},//`(64)
{0x00,0x20,0x54,0x54,0x54,0x78},//a(65)
{0x00,0x7F,0x48,0x44,0x44,0x38},//b(66)
{0x00,0x38,0x44,0x44,0x44,0x20},//c(67)
{0x00,0x38,0x44,0x44,0x48,0x7F},//d(68)
{0x00,0x38,0x54,0x54,0x54,0x18},//e(69)
{0x00,0x08,0x7E,0x09,0x01,0x02},//f(70)
{0x00,0x0C,0x52,0x52,0x52,0x3E},//g(71)
{0x00,0x7F,0x08,0x04,0x04,0x78},//h(72)
{0x00,0x00,0x44,0x7D,0x40,0x00},//i(73)
{0x00,0x20,0x40,0x44,0x3D,0x00},//j(74)
{0x00,0x7F,0x10,0x28,0x44,0x00},//k(75)
{0x00,0x00,0x41,0x7F,0x40,0x00},//l(76)
{0x00,0x7E,0x02,0x0C,0x02,0x7C},//m(77)
{0x00,0x7E,0x04,0x02,0x02,0x7C},//n(78)
{0x00,0x38,0x44,0x44,0x44,0x38},//o(79)
{0x00,0x7C,0x14,0x14,0x14,0x08},//p(80)
{0x00,0x08,0x14,0x14,0x18,0x7C},//q(81)
{0x00,0x7C,0x08,0x04,0x04,0x08},//r(82)
{0x00,0x48,0x54,0x54,0x54,0x20},//s(83)
{0x00,0x04,0x3F,0x44,0x40,0x20},//t(84)
{0x00,0x3C,0x40,0x40,0x20,0x7C},//u(85)
{0x00,0x1C,0x20,0x40,0x20,0x1C},//v(86)
{0x00,0x3C,0x40,0x30,0x40,0x3C},//w(87)
{0x00,0x44,0x28,0x10,0x28,0x44},//x(88)
{0x00,0x0C,0x50,0x50,0x50,0x3C},//y(89)
{0x00,0x44,0x64,0x54,0x4C,0x44},//z(90)
{0x00,0x00,0x08,0x36,0x41,0x00},//{(91)
{0x00,0x00,0x00,0x7F,0x00,0x00},//|(92)
{0x00,0x00,0x41,0x36,0x08,0x00},//}(93)
{0x00,0x08,0x04,0x08,0x10,0x08},//~(94)
{0x00,0x08,0x08,0x2A,0x1C,0x08},//?(127)
{0x00,0x08,0x1C,0x2A,0x08,0x08},//?(128)
{0x00,0x04,0x02,0x7F,0x02,0x04},//?(129)
{0x00,0x10,0x20,0x7F,0x20,0x10},//?(130)
{0x00,0x1C,0x2A,0x32,0x2A,0x1C},//笑面(131)
{0x00,0x1C,0x22,0x44,0x22,0x1C},//爱心(132)
{0x14,0x14,0x14,0x14,0x14,0x14}// horiz lines(133)
};
//-------------------------------------汉字字库
--------------------------------------------------------------------------------- //Index[2];//一个汉字占两个字节
//Msk[24];//一个汉字的编码由24个十六进制数组成
uint8 write_chinese[][24]={
(1) //测
{0x89,0xF2,0x00,0xFF,0x01,0xF9,0xFF,0x00,0xFC,0x00,0xFF,0x00,0x00,0x07,0x04,0x04,0x02,0x01,0x02,0x04,0x01,0x04,0x07,0x00},
//试(2)
{0x11,0xF6,0x00,0x04,0x24,0xE4,0x24,0x24,0xFF,0x05,0x06,0x00,0x00,0x07,0x02,0x01,0x02,0x03,0x01,0x01,0x01,0x02,0x07,0x00},
//程(3)
{0x8A,0x6A,0xFF,0x49,0x20,0xAF,0xA9,0xE9,0xA9,0xAF,0x20,0x00,0x01,0x00,0x07,0x00,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x00},
//序(4)
{0x00,0xFE,0x42,0x4A,0x4A,0x5B,0xEA,0x5A,0x4A,0xC2,0x42,0x00,0x06,0x01,0x00,0x00,0x04,0x04,0x07,0x00,0x00,0x00,0x00,0x00},
//电(5)
{0x00,0xFC,0x94,0x94,0x94,0xFF,0x94,0x94,0x94,0xFE,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x04,0x04,0x04,0x04,0x06,0x00},
//子(6)
{0x20,0x21,0x21,0x21,0x21,0xF9,0x29,0x25,0x23,0x31,0x20,0x00,0x00,0x00,0x00,0x04,0x04,0x07,0x00,0x00,0x00,0x00,0x00,0x00},
//制(7)
{0x18,0xD6,0x54,0xFF,0x54,0x56,0xD4,0x00,0xFC,0x00,0xFF,0x00,0x00,0x03,0x00,0x07,0x00,0x02,0x03,0x00,0x04,0x04,0x07,0x00},
//作(8)
{0x10,0x08,0xFC,0x13,0x08,0x04,0xFF,0x24,0x24,0x24,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x07,0x01,0x01,0x01,0x01,0x00},
//杂(9)
{0x40,0x62,0x52,0xCA,0x47,0xE2,0x42,0xDE,0x50,0x50,0x58,0x00,0x04,0x02,0x01,0x04,0x04,0x07,0x00,0x00,0x01,0x02,0x04,0x00},
//志(10)
{0x04,0xA4,0x24,0xA4,0x24,0xBF,0x24,0x24,0x24,0xA6,0x04,0x00,0x02,0x01,0x00,0x07,0x04,0x04,0x05,0x04,0x06,0x00,0x03,0x00},
//社(11)
{0x84,0x44,0xF5,0x2E,0x40,0x10,0x10,0xFF,0x10,0x10,0x10,0x00,0x00,0x00,0x07,0x00,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x00},
};
/*------------------------------------------------------------------------------ ; 宽×高(像素): 40×24
; 字模格式/大小 : 单色点阵液晶字模,纵向取模,字节倒序/120字节
; 数据转换日期 : 2014-3-7
------------------------------------------------------------------------------*/ uint8 AVR_bmp[]=
{
/*-- 调入了一幅图像:C:\Documents and Settings\armok\桌面\1.bmp --*/
/*-- 宽度x高度=60x47 --*/ /*
0x00,0x00,0x00,0x00,0x80,0xE0,0xFC,0xFF,0xFF,0xFF,0x7F,0xFF,0xFE,0xFC,0xF0,0xC1, 0x0F,0x7F,0xFF,0xFF,0xFE,0xF0,0xC0,0x00,0x00,0x00,0xC0,0xF8,0xFE,0xFF,0xFF,0x3F, 0x07,0xC1,0xF0,0xFE,0xFF,0xFF,0xFF,0x1F,0x07,0x8F,0xCF,0xFF,0xFF,0xFF,0xFE,0xFC, 0x00,0x80,0xF0,0xFC,0xFF,0xFF,0xFF,0x7F,0x7F,0x78,0x78,0x79,0x7F,0x7F,0xFF,0xFF, 0xFC,0xF0,0xC1,0x07,0x1F,0xFF,0xFF,0xFE,0xFC,0xFF,0xFF,0xFF,0x1F,0x07,0xC1,0xF0, 0xFE,0xFF,0xFF,0x3F,0x0F,0x0F,0x7F,0xFF,0xFF,0xFF,0xFF,0xE7,0x07,0x03,0x01,0x00, 0x02,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03, 0x03,0x03,0x03,0x03,0x00,0x00,0x03,0x1F,0x3F,0x1F,0x07,0x00,0x00,0x02,0x03,0x03, 0x03,0x03,0x01,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x00
*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x40, 0x20,0x00,0x10,0x10,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x10,0x10,0x00, 0x20,0x40,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x0C,0x02,0x01,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x0C,0x70,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00, 0x80,0xC0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF0,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0xC0,
0xE0,0xF0,0xF0,0xF0,0xF0,0xE0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x7F,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00, 0x18,0x60,0x83,0x87,0x87,0x87,0x07,0x03,0x03,0x03,0x01,0x40,0xF0,0xF0,0xF0,0xF0, 0xF0,0x40,0x01,0x03,0x03,0x03,0x07,0x87,0x87,0x87,0x83,0x60,0x18,0x00,0x07,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x1F,0x27,0x48,0x88,0x88,0x88,0x88,0x88,0x48, 0x48,0x48,0x88,0x88,0x88,0x88,0x88,0x48,0x27,0x1F,0x00,0xFF,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x02,0x04,0x04,0x08,0x00,0x10,0x10, 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x08,0x04,0x04,0x02,0x03,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
#endif /* __LCD5110_H__ */
本文档为【飞思卡尔智能车野火K60FX系列诺基亚5110驱动程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。