笔段式液晶液晶驱动程序优化
结合大家的程序并优化而成ourdev_502967.rar(文件大小:18K) (原文件名:段式液晶自编主程序.rar)优化如下:
1、结合论坛大家的程序,去粗取精。
2、大家的程序都是在单片机开一个128bit数组,存储显示数据,一方面占用了单片机的宝贵空间,而且,每次改变一个段位,都要把全部数据写一遍,比较占用时间。
3、采用对所写段位先读后写的方式,每次只读写4bit,对数字位,只读写8bit,提高速度。
4、程序在89s52单片机运行通过,程序中加了详细注解,便于阅读。
5、编译后的空间占用由论坛的程序的1200字节降到800字节,降低1/3. 楼主辛苦了。
的确在单片机里建显示缓冲区再整体刷新的方法不合适,就是编起程序来简单,合理的用法确实是从芯片里读取、修改再写入,用上芯片内部的RAM。 定义两个数组
const unsigned int BUFFER0={0xEB00,0x6000,0xC700,0xE500,0x6C00,0xAD00,0xAF00,
0xE000,0xEF00,0xED00};
const unsigned int BUFFER1={0x0D70,0x0060,0x0E30,0x0A70,0x0360,0x0B50,0x0F50,
0x0070,0x0F70,0x0B70};
BUFFER0数组是0-9十个数字的断码吗?但第二个数组是怎么来的呢?没弄明白,请指教!!谢谢! mark 刚看了楼主的程序,方法很好呀,感谢楼主也感谢白沙兄的指点 MARK.XIEXIE 没有显示的段 有余辉 这是怎么原因 ?? 原来的驱动里也可以单独写半个字节
/********************************************************
函数名称:void Ht1621WrOneData(uchar Addr,uchar Data)
功能描述: HT1621在指定地址写入数据函数
全局变量:无
参数说明:Addr为写入初始地址,Data为写入数据
返回说明:无
说 明:因为HT1621的数据位4位,所以实际写入数据为参数的后4位
********************************************************/
void Ht1621WrOneData(unsigned char Addr,unsigned char Data)
{
CS_LOW;
Ht1621Wr_Data(0xa0,3); //写入数据标志101
Ht1621Wr_Data(Addr<<2,6); //写入地址数据
Ht1621Wr_Data(Data<<4,4); //写入数据
CS_HIGH;
} 哎 看不明白 【2楼】 lizexi486
定义两组的原因是这液晶的大数字和小数字的段码不一样,顺序是乱的。
所以要两组,大字用大字的段码,小字用小字的段码 回复【2楼】lizexi486
-----------------------------------------------------------------------
段式液晶的段码表是怎么来的,所以这样的液晶的段码表是统一的,还是? mark mark mark mark! mark 使用单片机直接驱动的飘过
为了使电路简化导致程序复杂化的内牛满面的飘过。。。 郁闷,怎么不能下载呀,资料丢失了吗? 回复【楼主位】lgw65
-----------------------------------------------------------------------
mark 标记一下 不能下载,mark一下,以后能下载的时候再下 {:titter:}
马克 高手啊,学习中。 下来学习一下,道谢 先顶一下.....要慢慢看了 道谢中,希望大神多多指导
页:
[1]