做一块自带5110英文字库的单片机(程序中不需要字库代码)

2020-01-20 19:00发布

最近看了看STC的PDF,上面的资源比传统51要多些,比如自带的RAM扩展,内部EEPROM等
但是好像都不太常用。忽然想到可以利用一下内部的EEPROM,把NOKIA5110液晶的英文字库写到
里面去,程序里面就不需要在写字库数据了!哈哈,貌似不错的想法。

用了两个小时的时间终于做成功了,哈哈,还相当不错(自我感觉良好 (^-^) ),上传给大家参考参考。

先说思路:
1.先写一个程序(对EEPROM操作的程序),把字库数据写到EEPROM中保存起来(当然具体位置我们应该要清楚)。
2.修改原来5110中写字符的函数,字模数据来自EEPROM中,去掉原程序中的字库数据。

其实还是蛮简单的哈!

先看几张图咯:

(原文件名:2.jpg)


(原文件名:3.jpg)


(原文件名:4.jpg)


写入EEPROM中的字库数据 (原文件名:5.jpg)

源程序如下:

两个程序都在里面ourdev_521423.rar(文件大小:284K) (原文件名:STC自带5110字库.rar)
(WR_EEPROM文件夹为写eeprom的程序(该程序实现把5110英文字库的数据写到单片机内部eeprom中),先把该程序下载到单片机,用串口依次发送命令:"X#commd""W#commd""R#commd",把字库数据写到eeprom中,5110字库即永久保存在单片机内,这就是一块自带英文字库的单片机啦!

然后再烧写EEPROM_ZIKU文件夹内的程序即可。

**此程序用的单片机为STC89C52RC,如用STC其他型号单片机则应修改相应的eeprom地址(因为不同的信号EEPROM地址不同,具体见
STC的PDF手册))
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
21条回答
winfuture
2020-01-21 03:44
//**********************************************************************
// NOKIA5110_w_char: 显示英文字符
// 输入参数:c   :显示的字符;
//**********************************************************************
void NOKIA5110_w_char(unsigned char c)
{
        unsigned char i;
        unsigned int addr;

        addr = (c-32)*5;                             // 字模在eeprom的地址
        NOKIA5110_w_byte(0,1);                 // 第一列为空白
        for( i=0;i<5;i++ )
        {
                STC_EEPROM_R(addr+i);         // 从eeprom中读出字模数据
                NOKIA5110_w_byte(ep_data,1);  // 向LCD写如数据
        }
}
//**********************************************************************
// NOKIA5110_w_char_string  : 英文字符串显示函数
// 输入参数:*s      :英文字符串指针;
//           X、Y    : 显示字符串的位置,x 0-83 ,y 0-5
//**********************************************************************
void NOKIA5110_w_char_string(unsigned char X,unsigned char Y,char *str)
{
        NOKIA5110_set_XY(X,Y);
        while (*str)
        {
                NOKIA5110_w_char(*str);
                str++;
        }
}
#endif

一周热门 更多>