找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1625|回复: 5
打印 上一主题 下一主题
收起左侧

51单片机驱动NOKIA7110液晶程序

[复制链接]
跳转到指定楼层
楼主
NOKIA7110液晶在世面上还有不少 存在,显示效果相当不错,还有利用价值,
以下有全部单片机代码,取摸方式,取摸软件,这样容易上手,还有Proteus图
//nokia7110液晶驱动
//取摸软件zimo21,取摸方式:纵向取摸,字节倒序,保留
#include <reg52.h>  
void delay_1us(unsigned int n);
void LCD_init(void);  
void LCD_clear(void);  
void LCD_set_XY(unsigned char X, unsigned char Y);
void LCD_write_char(unsigned char c);
void LCD_write_english_string(unsigned char X,unsigned char Y,char*s);//英语
void  LCD_write_chinese_string(unsigned  char X,  unsigned  char Y,unsigned  char  
ch_with,unsigned char num,  
unsigned char line,unsigned char row);//汉字
void LCD_write_byte(unsigned char dat, unsigned char command);
sbit SCLK = P1^5;  
sbit SDIN = P1^4;
sbit LCD_DC = P1^3;
sbit LCD_CE = P1^1;
sbit LCD_RST = P1^2;  
sbit LED = P1^6;
code unsigned char write_chinese[18][32]={
{0x20,0x24,0x24,0x24,0xFE,0x23,0x22,0x20,0x20,0xFF,0x20,0x22,0x2C,0xA0,0x20,0x00,
0x00,0x08,0x48,0x84,0x7F,0x02,0x41,0x40,0x20,0x13,0x0C,0x14,0x22,0x41,0xF8,0x00},//我
{0x80,0x64,0x2C,0x34,0x24,0x24,0xEC,0x32,0x22,0x22,0x32,0x2E,0x23,0xA2,0x60,0x00,
0x00,0x41,0x21,0x91,0x89,0x87,0x4D,0x55,0x25,0x25,0x55,0x4D,0x81,0x80,0x80,0x00},//爱
{0x00,0x80,0x60,0xF8,0x07,0x40,0x20,0x18,0x0F,0x08,0xC8,0x08,0x08,0x28,0x18,0x00,
0x01,0x00,0x00,0xFF,0x00,0x10,0x0C,0x03,0x40,0x80,0x7F,0x00,0x01,0x06,0x18,0x00},//你
{0x00,0x00,0xF0,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0xF0,0x00,0x00,0x00,
0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x0F,0x00,0x00,0x00},/*"中",0*/
{0x00,0xFE,0x02,0x12,0x92,0x92,0x92,0xF2,0x92,0x92,0x92,0x12,0x02,0xFE,0x00,0x00,
0x00,0xFF,0x40,0x48,0x48,0x48,0x48,0x4F,0x48,0x4A,0x4C,0x48,0x40,0xFF,0x00,0x00},/*"国",1*/
{0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x00},/*"人",2*/
/*--  文字:  中  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0xF0,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0xF0,0x00,0x00,0x00,
0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x0F,0x00,0x00,0x00,
/*--  文字:  国  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0xFE,0x02,0x12,0x92,0x92,0x92,0xF2,0x92,0x92,0x92,0x12,0x02,0xFE,0x00,0x00,
0x00,0xFF,0x40,0x48,0x48,0x48,0x48,0x4F,0x48,0x4A,0x4C,0x48,0x40,0xFF,0x00,0x00,
/*--  文字:  人  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x00,
/*--  文字:  民  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0x22,0xE2,0x22,0x22,0x22,0x3E,0x00,0x00,0x00,
0x00,0x00,0xFF,0x41,0x21,0x11,0x01,0x01,0x03,0x0D,0x11,0x21,0x41,0xF1,0x00,0x00,
/*--  文字:    --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x12,0xEA,0xAF,0xAA,0xEA,0x0F,0xFA,0x02,0x88,0x8C,0x57,0x24,0x54,0x8C,0x84,0x00,
0x02,0x02,0xEA,0xAA,0xAA,0xAB,0xAA,0xAB,0xAA,0xAA,0xAA,0xAA,0xEA,0x02,0x02,0x00,
/*--  文字:    --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x08,0x46,0xA2,0x5A,0x92,0x52,0x32,0x03,0x3A,0x52,0x92,0x52,0x32,0x0A,0x06,0x00,
0x04,0x44,0x22,0x15,0x04,0x45,0x85,0x7D,0x05,0x05,0x04,0x15,0x21,0x42,0x02,0x00,
/*--  文字:  中  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0xF0,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0xF0,0x00,0x00,0x00,
0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x0F,0x00,0x00,0x00,
/*--  文字:  央  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0xF8,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,
0x82,0x82,0x42,0x43,0x22,0x12,0x0E,0x03,0x0E,0x12,0x22,0x43,0x42,0x82,0x82,0x00,
/*--  文字:  人  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x00,
/*--  文字:    --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0x22,0xE2,0x22,0x22,0x22,0x3E,0x00,0x00,0x00,
0x00,0x00,0xFF,0x41,0x21,0x11,0x01,0x01,0x03,0x0D,0x11,0x21,0x41,0xF1,0x00,0x00,
/*--  文字:    --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x04,0xC4,0x04,0x04,0xFC,0x84,0x84,0x04,0x80,0x70,0x8F,0x08,0x08,0xF8,0x08,0x00,
0x20,0x3F,0x20,0x20,0x1F,0x10,0x10,0x90,0x40,0x20,0x13,0x0C,0x33,0x40,0x80,0x00,
/*--  文字:    --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0xFC,0x04,0x04,0xC4,0x34,0x05,0x86,0x84,0x84,0x84,0xF4,0x84,0x84,0x00,
0x40,0x30,0x0F,0x02,0x01,0xFF,0x00,0x00,0x02,0x0C,0x40,0x80,0x7F,0x00,0x00,0x00,
};
code unsigned char font6x8[92][6] = {
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
{ 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 },
{ 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 },
{ 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 },
{ 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 },
{ 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 },
{ 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 },
{ 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 },
{ 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 },
{ 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 },
{ 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 },
{ 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 },
{ 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 },
{ 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 },
{ 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 },
{ 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 },
{ 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E },
{ 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 },
{ 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 },
{ 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 },
{ 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 },
{ 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 },
{ 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 },
{ 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 },
{ 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 },
{ 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E },
{ 0x00, 0x00, 0x36, 0x36, 0x00, 0x00 },
{ 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 },
{ 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 },
{ 0x00, 0x14, 0x14, 0x14, 0x14, 0x14 },
{ 0x00, 0x00, 0x41, 0x22, 0x14, 0x08 },
{ 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 },
{ 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E },
{ 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C },
{ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 },
{ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 },
{ 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C },
{ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 },
{ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 },
{ 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A },
{ 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F },
{ 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 },
{ 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01 },
{ 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 },
{ 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 },
{ 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F },
{ 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F },
{ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E },
{ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 },
{ 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E },
{ 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 },
{ 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 },
{ 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 },
{ 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F },
{ 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F },
{ 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F },
{ 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 },
{ 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 },
{ 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 },
{ 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 },
{ 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55 },
{ 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 },
{ 0x00, 0x04, 0x02, 0x01, 0x02, 0x04 },
{ 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 },
{ 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 },
{ 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 },
{ 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38 },
{ 0x00, 0x38, 0x44, 0x44, 0x44, 0x20 },
{ 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F },
{ 0x00, 0x38, 0x54, 0x54, 0x54, 0x18 },
{ 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02 },
{ 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C },
{ 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78 },
{ 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00 },
{ 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00 },
{ 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 },
{ 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00 },
{ 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78 },
{ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 },
{ 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 },
{ 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18 },
{ 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC },
{ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 },
{ 0x00, 0x48, 0x54, 0x54, 0x54, 0x20 },
{ 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20 },
{ 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C },
{ 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C },
{ 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C },
{ 0x00, 0x44, 0x28, 0x10, 0x28, 0x44 },
{ 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C },
{ 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 },
{ 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 },
};
//******主程序*****//
void main(void)
{
LCD_init();
LCD_write_english_string(8,7,"QQ:");//第2列第8行开始显示QQ
LCD_write_english_string(24,7,"137670553"); //第4列第8行开始显示123456789
//LCD_write_english_string(9,6,"QQ:");
LCD_write_chinese_string(0,0,16,6,0,0);// 第1列第1行开始显示汉字
LCD_write_chinese_string(0,2,16,6,6,0);//  第2列第1行开始显示汉字
LCD_write_chinese_string(0,4,16,6,12,0);  //  第3列第1行开始显示汉字
//LCD_write_chinese_string(0,6,16,6,0,0);//第4列第1行开始显示汉字
while(1){}
}  
//******延时程序*****//  
void delay_1us(unsigned int n)
{
unsigned int i,j;
for(j=0;j<n;j++)  
for(i=0;i<1000;i++);
}  
//*****LCD初始化*******//
void LCD_init(void)
{  
LCD_CE = 1;
delay_1us(1);
LCD_RST = 0;
delay_1us(1);  
LCD_RST = 1;
delay_1us(1);  
LCD_write_byte(0xA6, 0);
LCD_write_byte(0xA3, 0);
LCD_write_byte(0xA1, 0);
LCD_write_byte(0xC0, 0);
LCD_write_byte(0x22, 0);
LCD_write_byte(0x81, 0);
LCD_write_byte(0x2E, 0);
LCD_write_byte(0x2F, 0);
LCD_write_byte(0xE3, 0);
LCD_write_byte(0x40, 0);
LCD_write_byte(0xAF, 0);
LCD_write_byte(0xA5, 0);
delay_1us(5);  
LCD_write_byte(0xAE, 0);
LCD_clear();
LCD_write_byte(0xAF, 0);
LCD_write_byte(0xA4, 0);
}  
//******LCD   清屏****//
void LCD_clear(void)
{  
unsigned int i,x;  
for (i=0; i<9; i++)
{
LCD_write_byte(0xB0|i, 0);
LCD_write_byte(0x11, 0);
LCD_write_byte(0x02, 0);
for (x=96; x>0; x--)  
{LCD_write_byte(0, 0);}
}
}
//******LCD坐标设置*******//  
void LCD_set_XY(unsigned char X, unsigned char Y)
{  
LCD_write_byte(0xB0+Y, 0);
X=0x12+X;  
LCD_write_byte(0x10+(X>>4), 0);
LCD_write_byte(0x0F&X, 0);
}  
//******写一个字母*******//
void LCD_write_char(unsigned char c)
{  
unsigned char line;
c -= 32;  
for (line=0; line<6; line++)
LCD_write_byte(font6x8[c][line],1);
}  
//*****写英语*******//  
void LCD_write_english_string(unsigned char X,unsigned char Y,char *s)
{  
LCD_set_XY(X,Y);
while (*s)
{
LCD_write_char(*s);
s++;  
}
}  
//******写中文******//
void LCD_write_chinese_string(unsigned char X, unsigned char Y, //起始坐标
unsigned char ch_with,unsigned char num,//字宽,字数
unsigned char line,unsigned char row)//第几个字,字间隔
{
unsigned char i,n;
LCD_set_XY(X,Y);
for (i=0;i<num;i++)
{
for (n=0; n<ch_with*2; n++)
{
if (n==ch_with)
{
LCD_set_XY((X+(ch_with+row)*i),Y+1);//设置字下行的起始坐标(一个字两行)
}  
LCD_write_byte(write_chinese[line+i][n],1);//发送数据
}  
LCD_set_XY((X+(ch_with+row)*(i+1)),Y);//设置下个字的起始坐标
}  
}
//***发送数据(1)和命令(0)*****//  
void LCD_write_byte(unsigned char dat, unsigned char command)
{  
unsigned char i;  
LCD_CE = 0;
if (command == 0)
LCD_DC = 0;
else
LCD_DC = 1;
for(i=0;i<8;i++)
{SCLK = 0;
if(dat&0x80)
SDIN = 1;
else
SDIN = 0;
dat = dat << 1;
SCLK = 1;
}  
LCD_CE = 1;
}

1.png (20.68 KB, 下载次数: 30)

1.png

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1064915 发表于 2023-8-16 09:48 | 只看该作者
NOKIA7110液晶的图片、参数、引脚定义等等,最好给个链接
回复

使用道具 举报

板凳
ID:253767 发表于 2023-8-17 14:20 | 只看该作者
仿真成功

屏幕截图 2023-08-17 141726.png (24.98 KB, 下载次数: 29)

屏幕截图 2023-08-17 141726.png
回复

使用道具 举报

地板
ID:1065749 发表于 2023-8-17 19:02 | 只看该作者
这个手机都过了好多年,你们哪来的屏幕,某一个宝上都搜不到。
回复

使用道具 举报

5#
ID:91165 发表于 2023-8-18 11:06 | 只看该作者
18689719961 发表于 2023-8-17 19:02
这个手机都过了好多年,你们哪来的屏幕,某一个宝上都搜不到。

3110或者5110都是这个屏幕。X宝多的很
回复

使用道具 举报

6#
ID:16255 发表于 2023-8-20 22:48 | 只看该作者
我曾经也买了这个屏,当时打算驱动它来玩玩。相比12864来说难度要大一点,毕竟它没有字库,要自己建字库,一行一行把文字“画”出来,不像12864直接给个代码就能显示汉字。所以那一段时间一直围绕着12864在玩,这个3110屏幕就在盒子里吃灰了。再后来接触彩屏,就更加觉得这个小屏幕没那么香了。
所以,至今这个屏幕一直没有被正式驱动显示过……
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表