搜索
bottom↓
回复: 8

谁有用51单片机控制Nokia5110显示汉字的程序?

[复制链接]

出0入0汤圆

发表于 2013-3-10 22:18:51 | 显示全部楼层 |阅读模式
谁有用51单片机控制Nokia5110显示汉字的程序?本人查了很多资料都是英文的,看不懂。求大虾们给个显示汉字的程序

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2013-3-11 01:00:06 | 显示全部楼层
这个屏幕别花太多时间玩,因为斑马条设计的问题,长期存放很容易出显示问题,批量做东西一般不用这屏幕

出0入0汤圆

 楼主| 发表于 2013-3-11 12:07:22 | 显示全部楼层
tbkmcjl 发表于 2013-3-11 01:00
这个屏幕别花太多时间玩,因为斑马条设计的问题,长期存放很容易出显示问题,批量做东西一般不用这屏幕 ...

我是拆旧手机的,就想用它来做显示练习,有木有显示汉字的程序呢?

出0入0汤圆

发表于 2013-3-10 22:18:52 | 显示全部楼层
这是3310的程序,5110的一样可能驱动,我实验过的!
#include <reg51.h>

sbit    sce = P0^0;  //片选
sbit    res = P0^1;  //复位,0复位
sbit    dc  = P0^2;  //1写数据,0写指令
sbit    sdin = P1^5;  //数据
sbit    sclk = P1^7;  //时钟

unsigned char code hanzi[]=
{
/*--  文字:  单  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
0x00,0x00,0x7C,0x55,0x56,0xFC,0x56,0x55,0x54,0x7C,0x00,0x00,0x01,0x01,0x01,0x01,
0x01,0x07,0x01,0x01,0x01,0x01,0x01,0x00,

/*--  文字:  片  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
0x00,0x00,0xFF,0x48,0x48,0x48,0x4F,0xC8,0x08,0x08,0x08,0x00,0x04,0x02,0x01,0x00,
0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,

/*--  文字:  机  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
0x84,0x64,0xFF,0x24,0x44,0xFE,0x02,0x02,0xFF,0x02,0x00,0x00,0x01,0x00,0x07,0x04,
0x02,0x01,0x00,0x00,0x07,0x04,0x07,0x00,

/*--  文字:  开  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
0x20,0x22,0x22,0xFE,0x22,0x22,0x22,0xFE,0x22,0x23,0x22,0x00,0x04,0x04,0x02,0x01,
0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,

/*--  文字:  发  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
0x08,0x0E,0x88,0x78,0x2F,0xE8,0x28,0xA9,0x6A,0x08,0x08,0x00,0x04,0x02,0x05,0x04,
0x02,0x02,0x01,0x02,0x02,0x04,0x04,0x00,

/*--  文字:  工  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
0x00,0x02,0x02,0x02,0x02,0xFE,0x02,0x02,0x03,0x02,0x00,0x00,0x04,0x04,0x04,0x04,
0x04,0x07,0x04,0x04,0x04,0x04,0x04,0x00,

/*--  文字:  作  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
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;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
0x04,0x06,0x4A,0x6A,0x5A,0xCB,0x4A,0x5A,0x6A,0x4A,0x06,0x00,0x04,0x04,0x05,0x05,
0x05,0x07,0x05,0x05,0x05,0x04,0x04,0x00

};



void delayms(unsigned  int ii)//1ms延时函数
{
        unsigned int i,x;
        for (x=0;x<ii;x++)
        {
        for (i=0;i<100;i++);
        }
}

/*--------------------------------------------
LCD_write_byte: 使用SPI接口写数据到LCD
输入参数:dt:写入的数据;
command :写数据/命令选择;
编写日期:20080918
----------------------------------------------*/
void LCD_write_byte(unsigned char dt, unsigned char command)
{
        unsigned char i;
        sce=0;       
        dc=command;       
        for(i=0;i<8;i++)
        {
                if(dt&0x80)
                        sdin=1;
                else
                        sdin=0;
                dt=dt<<1;               
                sclk=0;                
                sclk=1;
        }       
        dc=1;       
        sce=1;       
        sdin=1;
}
/*---------------------------------------
LCD_init: 3310LCD初始化
编写日期:20080918
-----------------------------------------  */
void LCD_init(void)
{
        res=0;         
          delayms(10);
          res=1;  
        LCD_write_byte(0x21,0);//初始化Lcd,功能设定使用扩充指令
        LCD_write_byte(0xC6,0);//设定液晶偏置电压
        LCD_write_byte(0x06,0);//温度校正
          LCD_write_byte(0x13,0);;//1:48
        LCD_write_byte(0x20,0);//使用基本指令
        LCD_write_byte(0x0C,0);//设定显示模式,正常显示
}
/*-------------------------------------------
LCD_set_XY: 设置LCD坐标函数
输入参数:X:0-83  Y:0-5
编写日期:20080918
---------------------------------------------*/
void LCD_set_XY(unsigned char X, unsigned char Y)
{
        LCD_write_byte(0x40 | Y, 0);// column
        LCD_write_byte(0x80 | X, 0);// row
}
/*------------------------------------------
LCD_clear: LCD清屏函数
编写日期:20080918
--------------------------------------------*/
void LCD_clear(void)
{
        unsigned char t;
        unsigned char k;
        LCD_set_XY(0,0);
        for(t=0;t<6;t++)
        {
                for(k=0;k<84;k++)
                {
                        LCD_write_byte(0x00,1);
                               
                }
        }
}
/*---------------------------------------------
LCD_write_hanzi: 显示12(宽)*16(高)点阵列汉字等半角类
输入参数:c:显示的字符;
编写日期:20080918
-----------------------------------------------*/
void LCD_write_hanzi(unsigned char row, unsigned char page,unsigned char c) //row:列 page:页 dd:字符  12*16
{
        unsigned char i;         
       
        LCD_set_XY(row*6, page);// 列,页
        for(i=0; i<12;i++)
        {
                LCD_write_byte(hanzi[c*24+i],1);
        }
       
    LCD_set_XY(row*6, page+1);// 列,页
        for(i=12; i<24;i++)
        {
                LCD_write_byte(hanzi[c*24+i],1);
        }       
}


void main()
{       

          unsigned char k;
      delayms(1000);
        sce=0;
        res=0;
        for(k=0;k<250;k++);
        res=1;
        LCD_init();  //初始化LCD模块
        LCD_clear(); //清屏幕       
        LCD_write_hanzi(0,0,0);  //单       
        LCD_write_hanzi(2,0,1);  //片
        LCD_write_hanzi(4,0,2);  //机       
        LCD_write_hanzi(6,0,3);  //开
        LCD_write_hanzi(8,0,4);  //发       
        LCD_write_hanzi(10,0,5);  //工
        LCD_write_hanzi(12,0,6);  //作       
        LCD_write_hanzi(0,2,7);  //室                                         
          while(1);

}

出0入0汤圆

发表于 2013-3-11 19:51:15 | 显示全部楼层
本帖最后由 Tliang 于 2013-3-11 19:53 编辑


PS :在给你个中文的资料

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-3-11 22:55:02 | 显示全部楼层
mark                     

出0入0汤圆

 楼主| 发表于 2013-3-15 13:33:32 | 显示全部楼层
huhandong 发表于 2013-3-11 12:15
这是3310的程序,5110的一样可能驱动,我实验过的!
#include

四楼好厉害!可以显示出汉字。

出0入0汤圆

 楼主| 发表于 2013-3-15 13:34:58 | 显示全部楼层
Tliang 发表于 2013-3-11 19:51
PS :在给你个中文的资料

这个也可以,还能显示图片

出0入0汤圆

发表于 2013-3-15 15:03:45 | 显示全部楼层
试试这个吧,Nokia5110液晶驱动例程,字模取模软件也在里面。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 18:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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