如何用C语言写LCD RAM

[复制链接]
 楼主| sunzp0229 发表于 2012-7-24 22:04 | 显示全部楼层 |阅读模式
打算用79F166驱动LCD,看了下datasheet后,有几个疑问:
1、如何通过C语言来写LCD RAM寄存器啊?
2、对应的LCD RAM写1,是不是就意味着,SEG为高,相应的COM为低?
sinonion 发表于 2012-7-26 10:21 | 显示全部楼层
LCD RAM属于外部RAM,需要使用xdata关键词,如下图:


用指针去操作就OK了!

本帖子中包含更多资源

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

×
快乐小小鱼 发表于 2012-7-27 09:08 | 显示全部楼层
unsigned int xdata dis_ram[] at 0x1e0
用AT这个关键字就不是把数据放在你led显存的RAM上了,以后写数据元素就是向0x1e0以上的地址写数据了
快乐小小鱼 发表于 2012-7-27 09:12 | 显示全部楼层
当然也可以用指针去操作,也是让数组放在哪个地址上

unsigned int xdata dis_ram[] =  (*unsigned int)0x1e0;

应该这样写,没有调试,如果不对,帮忙修改下哈!
sinonion 发表于 2012-7-27 11:26 | 显示全部楼层
看来没有回复呀!我随手给你写一段,没有验证哦,呵呵~~

void LCD_Write( unsigned  int address, unsigned char dat)
{
     unsigned char *ptr;
     ptr = (unsigned char *)(address+0x01e0);
    *ptr = dat;
}

你试一试吧!
LCD RAM每一位都是COM与SEG的交叉点,具体研究一下DATASHEET。
写1的话,意味着交叉点点亮!
sinonion 发表于 2012-7-27 11:34 | 显示全部楼层
void LCD_Write( unsigned  int xdata address, unsigned char dat)
{
     unsigned char xdata  *ptr;
     ptr = (unsigned int  xdata  *)(address+0x01e0);
    *ptr = dat;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

77

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部