最近看了看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手册))
// 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
一周热门 更多>