搜索
bottom↓
回复: 7

lcd1602液晶屏换行为什么是0xb0,而不是0xC0,写过1602的大虾帮...

[复制链接]

出0入0汤圆

发表于 2013-4-10 10:13:15 | 显示全部楼层 |阅读模式

void writecode(uchar ins)                                    //向液晶控制模块写命令
     {
          uchar xdata t;
          uint xdata j;        
          for(j=0;j<500;j++);        
          virt_port|=ins&0xf0;                                        //取高字节向1602写数据
          writelcd(virt_port);                                        //先写高4位后再写低4位 这是在选择四个数据线的时候     
          virt_port|=0x08;                                                  
          writelcd(virt_port);                                        //使能E脚为高电平
          virt_port&=~0x08;                                       
          writelcd(virt_port);                                        //使能E脚为低电平
          t=ins<<4;            
          virt_port|=t&0xf0;                                  //取低字节向1602写数据
          writelcd(virt_port);
          virt_port|=0x08;                                                //使能E脚为高电平
          writelcd(virt_port);
          virt_port&=~0x08;                                            //使能E脚为低电平
          writelcd(virt_port);
          virt_port=0;
          writelcd(virt_port);
}
void lcdchar (void)
{   
     uint i,j,k;
      writedata(tab1[i]);
       for(j=0;j<1000;j++);
       for(k=0;k<1000;k++);
       for(k=0;k<5000;k++);
       for(k=0;k<1000;k++);
       writecode(0xb0);                       // 换行                  
      for(j=0;j<5000;j++);                                       
      for(k=0;k<5000;k++);

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2013-4-10 11:49:01 | 显示全部楼层
又是个不看资料的。。。

出0入0汤圆

发表于 2013-4-10 11:52:34 | 显示全部楼层
你的1602是否是hd44780以及兼容芯片吗?如果不是的话你的度娘一下相应的控制芯片的指令。

出0入0汤圆

 楼主| 发表于 2013-4-10 12:07:46 | 显示全部楼层
我开发板上是一个液晶模块,GDM1602A,我看1602上面的指令0xC0才是换行的呀?

出0入0汤圆

 楼主| 发表于 2013-4-10 12:08:41 | 显示全部楼层
刚学习液晶模块,大家多多指教

出0入0汤圆

发表于 2013-4-10 12:16:46 | 显示全部楼层
看数据手册!!!

出0入0汤圆

 楼主| 发表于 2013-4-10 13:04:48 | 显示全部楼层
看了呀,所有的手册上都说第一行DDRAM地址为0x00-0x0F,第二行地址为0x40-0x4F,写的时候最高位要设置为1,所以第二行第一个应该是0x40|0x80=0xC0,这样才对呀????求解为啥是0xb0呢?我在我板子上试过了,只有0xB0才能换行到第二行第一个,0xC0换到第二行但不是第一个,具体是第几个没仔细算过

出0入0汤圆

发表于 2013-4-10 17:34:17 | 显示全部楼层
结合时序图,,资料很总要,必要的延时!!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-18 10:54

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表