我的单片机是STC89C52RC,做的是控制点阵屏显示汉字,怎样处理汉字数据的存放?如何写入它内部的EEPROM?请各位高手指点!谢谢啦!
没用过那个片子
不过我用51时是直接UCHAR CODE 某个汉字={XX,XX,XX,XX....}
这些字模写到ROM里啊,内部E2PROM没多大的
对于STC89C52,你想通过点阵屏显示汉字,首先需要采用对应的字模提取软件,或者自己比划提取。
然后按照对应的格式将你提取的字模数据储存在一个数组表格中。
至于放在FLASH里还是放在E2PROM里,这个没有太大必要进行限制吧。
另外最好去网上搜索下STC89C52对应的代码,你在它们的基础上进行修改,这样学得快。
怎样处理汉字数据的存放?
如果你的汉字要修改,那么是好用带字库的LCD,另外放到RAM或者EEPROM空间
如果不需要修改,那么字模直接放到ROM区就可以
如何写入它内部的EEPROM?
去下宏晶对应单片机的数据手册里面会有接口程序
先找个字模软件,如字模3,把所需要的汉字码列出来,放在一个code tab里,再在程序里调用刷新就OK了.
STC89C52RC老是会跑漏部分代码,不知道为什么.
编译出来的结果是这样:
Program Size: data=99.7 xdata=0 code=7961
我也刚用STC89C52做了一个点阵,如果你想用到EEPROM,就得用I2C总线。。
STC89C52RC的eeprom不是很大吧,我用的是stc11f16xe,有32k的eeprom,32x32的点阵字大约可以放200个。我也正在做点阵屏的东西。不知道楼主的点阵字模数据准备从哪里获得,用现成的字模提取软件还是需要从上位机下载到单片机。STC89C52RC的指令周期只比普通51快了一倍而已,晶振倒是可以提高不少,但总的来说速度还不如stc11f系列的。还有,stc的eeprom读写需要注意跨扇区的问题,因为一个扇区只有512字节。另外,当时我没有选片外的i2c总线的eeprom,感觉速度比片内的eeprom(其实对于stc的片子,就是flash rom)会慢不少,毕竟i2c是一位一位传输的。
stc这个ram这么小,动不动就超了,用起来郁闷,还是不推荐用这个,
10多元的arm 都比这个强n倍;
还是推荐你用arm,如果字库多,可以挂flash,
s52当然也是可以挂字库flash 的, 显得有些浪费,hoho
stc11 stc12 系列的, 技术还不太完备,
如果做小东西,可以尝试一下,大项目,不敢用
建议采用文字压缩和解压缩(压后存入单片机,单片机里面用解压缩算法复原),否则,stc肯定是存储不了的,I2c通讯显然费劲。
STC的内部EEPROM其实也是FLASH,其数据手册上有读写方法。程序代码容量有限制,点阵屏显示数据大小要算进去,不要超过单片机存储空间,否则当然会出错。
一般如字库较大需外扩一片容量稍大的FLASH的。
1:将你要显示的汉字数组做成.BIN文件
2:打开程序文件后打开汉字数组文件
3:配置设置
4:写入即可
字库使用时在程序中从EEPROM中读回