写命令OK,写数据后无显示,请高手帮忙check

[复制链接]
2708|4
 楼主| jmx 发表于 2007-7-27 09:22 | 显示全部楼层 |阅读模式
ck, LCD, CD, LED, RS
<font color=#000000>执行写命令OK,</font>例如我W_cmd(0x85);&nbsp;光标会跑到第一行第五列的位置并闪烁.<br />但是当我执行写数据指令把要显示的内容写入的时候,屏幕就什么也没有了.<br />我怀疑是W_data();有问题,可是我试了把&nbsp;&nbsp;&nbsp;&nbsp;LCD_DATA=lcddata;放在LCD_EN=1;前面,也不行,而且我看别人的demo程序时序也是这样的,实在找不出问题了.<br />以前没有搞过LCD,请高手帮忙看看,<br />/*-------------------------------------------------------------<br /><br />-------------------------------------------------------------*/<br />#include&nbsp;&quot;REG52.H&quot;<br />&nbsp;&nbsp;<br />#define&nbsp;uchar&nbsp;unsigned&nbsp;char&nbsp;<br /><br /><br />/*-------------------------------------------------------------<br />sbit分别定义CPU&nbsp;管脚对应的硬件连接<br />-------------------------------------------------------------*/<br />sfr&nbsp;&nbsp;&nbsp;LCD_DATA&nbsp;&nbsp;=&nbsp;0xA0;<br /><br />sbit&nbsp;&nbsp;LCD_EN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0xB3;//------P3.3&nbsp;Enable&nbsp;Pin<br />sbit&nbsp;&nbsp;LCD_RS&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0xB4;//------P3.4&nbsp;RS&nbsp;pin<br />sbit&nbsp;&nbsp;LCD_RW&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0xB5;//------P3.5&nbsp;R/W&nbsp;pin<br /><br />sbit&nbsp;led0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0x80;//------LED,&nbsp;for&nbsp;debug<br />sbit&nbsp;led1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0x82;//------LED,&nbsp;for&nbsp;debug<br />sbit&nbsp;led2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0x84;//------LED,&nbsp;for&nbsp;debug<br />sbit&nbsp;led3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0x86;//------LED,&nbsp;for&nbsp;debug<br />sbit&nbsp;bflag=P2^7;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//------busy&nbsp;bit<br /><br /><br />LCD_busy(void);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//判断LCD&nbsp;BUSY<br />void&nbsp;W_cmd(uchar);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//写命令<br />void&nbsp;R_data(void);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//读数据<br />void&nbsp;W_data(uchar);&nbsp;&nbsp;&nbsp;&nbsp;//写数据<br />void&nbsp;Delay_xMs(unsigned&nbsp;int&nbsp;x);//延时;<br /><br /><br />LCD_busy(void)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//----判断LCD&nbsp;BUSY<br />{<br />unsigned&nbsp;char&nbsp;Lcdbusy;<br />&nbsp;&nbsp;&nbsp;LCD_EN=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//clear&nbsp;enable<br />&nbsp;&nbsp;&nbsp;led0=0;<br />&nbsp;&nbsp;&nbsp;Delay_xMs(3);<br />&nbsp;&nbsp;&nbsp;LCD_RS=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//clear&nbsp;RS<br />&nbsp;&nbsp;&nbsp;led1=0;<br />&nbsp;&nbsp;&nbsp;Delay_xMs(3);<br />&nbsp;&nbsp;&nbsp;LCD_RW=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//set&nbsp;R/W<br />&nbsp;&nbsp;&nbsp;led2=1;<br />&nbsp;&nbsp;&nbsp;Delay_xMs(3);<br />&nbsp;&nbsp;&nbsp;LCD_EN=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//set&nbsp;enable<br />&nbsp;&nbsp;&nbsp;led0=1;<br />&nbsp;&nbsp;&nbsp;Delay_xMs(3);<br />&nbsp;&nbsp;Lcdbusy=P2;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//读P2口,取得BF状态&nbsp;<br />&nbsp;&nbsp;while(&nbsp;bflag==1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;{&nbsp;&nbsp;Lcdbusy=P2;}<br />&nbsp;&nbsp;LCD_EN=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//clear&nbsp;EN<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;led0=0;<br /><br />}<br />void&nbsp;W_cmd(uchar&nbsp;lcdcmd)&nbsp;&nbsp;&nbsp;&nbsp;//---写命令<br />{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;LCD_busy();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//判断BUSY<br />&nbsp;&nbsp;&nbsp;LCD_EN=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//clear&nbsp;&nbsp;EN<br />&nbsp;&nbsp;&nbsp;&nbsp;led0=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_xMs(3);<br />&nbsp;&nbsp;&nbsp;LCD_RS=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//clear&nbsp;&nbsp;RS<br />&nbsp;&nbsp;&nbsp;led1=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_xMs(3);<br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_RW=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//clear&nbsp;RW<br />&nbsp;&nbsp;&nbsp;&nbsp;led2=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_xMs(3);<br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_EN=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//set&nbsp;EN<br />&nbsp;&nbsp;&nbsp;&nbsp;led0=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_xMs(3);<br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_DATA=lcdcmd;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//send&nbsp;command&nbsp;to&nbsp;LCD<br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_EN=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//clear&nbsp;&nbsp;EN<br />&nbsp;&nbsp;&nbsp;&nbsp;led1=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_xMs(128);<br />}<br /><br />void&nbsp;W_data(uchar&nbsp;lcddata)&nbsp;&nbsp;&nbsp;&nbsp;//--写数据到LCD<br />{<br />&nbsp;&nbsp;&nbsp;LCD_busy();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//判断BUSY<br />&nbsp;&nbsp;&nbsp;LCD_EN=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//clear&nbsp;&nbsp;EN<br />&nbsp;&nbsp;&nbsp;led0=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_xMs(3);<br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_RS=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//set&nbsp;RS<br />&nbsp;&nbsp;&nbsp;&nbsp;led1=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_xMs(3);<br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_RW=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//clear&nbsp;&nbsp;RW<br />&nbsp;&nbsp;&nbsp;&nbsp;led2=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_xMs(3);<br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_EN=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//set&nbsp;EN<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;led0=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_xMs(3);<br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_DATA=lcddata;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//send&nbsp;data&nbsp;to&nbsp;LCD<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_EN=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//clear&nbsp;&nbsp;EN<br />&nbsp;&nbsp;&nbsp;&nbsp;led0=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_xMs(128);<br />}<br /><br /><br /><br /><br />/*------------------------------------------------<br />功能:显示码.<br />-------------------------------------------------*/<br />unsigned&nbsp;char&nbsp;code&nbsp;LCD_Show[]={0x50,0xf5,0x68,0x4a,0x47,0xc2,0xc0,0x5b,0x40,0x42,0x41,0xc4,0xf0,0x4c,0xe0,0xe1,0xff};<br /><br /><br />/*-------------------------------------------------<br />功能:1MS延时子程序<br />-------------------------------------------------*/<br />void&nbsp;Delay_xMs(unsigned&nbsp;int&nbsp;x)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;i,j;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(&nbsp;i&nbsp;=0;i&nbsp;&lt&nbsp;x;i++&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(&nbsp;j&nbsp;=0;j&lt500;j++&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />/*-------------------------------------------------<br />主程序<br />--------------------------*/<br />void&nbsp;main()<br />{&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;uchar&nbsp;i;<br />&nbsp;&nbsp;LCD_EN=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;led0=0;<br />&nbsp;&nbsp;&nbsp;LCD_RW=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;led2=0;<br /><br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;led0=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;W_cmd(0x38);//显示模式设置,这个命令的格式为:001,DL,N,F,-,-<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;------------------------------------------------请看第6条命令的说明,因这是一个16字符<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;--------------------------------------------------2行的模组,用并行传输,因此将DL设定为1,将N设定<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;--------------------------------------------------为1表示有两行,将F设定为0,表示用5X8的点的字符<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;led1=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;W_cmd(0x01);//清屏<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;W_cmd(0x0E);;-----------------显示,光标,闪动控制,这个命令的格式为:00001,D,C,B<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;--------------------------------------------------D为1,表示显示开,C为0表示光标关,B为0表示闪动关<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;W_cmd(0x80);//设定首行地址<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;W_data(0x55);//写入要显示的内容--------<b><font color=#000000>问题就在这行执行以后</font></b><br /><br /><br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;led2=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(1);&nbsp;<br /><br />
 楼主| jmx 发表于 2007-7-27 21:57 | 显示全部楼层

难道没有人能帮忙解决么?

难道没有人能帮忙解决么?
XWJ 发表于 2007-7-27 22:39 | 显示全部楼层

先送数,再改变EN

void&nbsp;W_cmd(uchar&nbsp;lcdcmd)&nbsp;&nbsp;&nbsp;&nbsp;//---写命令<br />{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;LCD_busy();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//判断BUSY<br />&nbsp;&nbsp;&nbsp;LCD_EN=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//clear&nbsp;&nbsp;EN<br />&nbsp;&nbsp;&nbsp;&nbsp;led0=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_xMs(3);<br />&nbsp;&nbsp;&nbsp;LCD_RS=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//clear&nbsp;&nbsp;RS<br />&nbsp;&nbsp;&nbsp;led1=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_xMs(3);<br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_RW=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//clear&nbsp;RW<br />&nbsp;&nbsp;&nbsp;&nbsp;led2=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_DATA=lcdcmd;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//send&nbsp;command&nbsp;to&nbsp;LCD<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_xMs(3);<br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_EN=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//set&nbsp;EN<br />&nbsp;&nbsp;&nbsp;&nbsp;led0=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_xMs(3);<br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_EN=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//clear&nbsp;&nbsp;EN<br />&nbsp;&nbsp;&nbsp;&nbsp;led1=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_xMs(128);<br />}<br /><br />void&nbsp;W_data(uchar&nbsp;lcddata)&nbsp;&nbsp;&nbsp;&nbsp;//--写数据到LCD<br />{<br />&nbsp;&nbsp;&nbsp;LCD_busy();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//判断BUSY<br />&nbsp;&nbsp;&nbsp;LCD_EN=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//clear&nbsp;&nbsp;EN<br />&nbsp;&nbsp;&nbsp;led0=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_xMs(3);<br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_RS=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//set&nbsp;RS<br />&nbsp;&nbsp;&nbsp;&nbsp;led1=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_xMs(3);<br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_RW=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//clear&nbsp;&nbsp;RW<br />&nbsp;&nbsp;&nbsp;&nbsp;led2=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_DATA=lcddata;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//send&nbsp;data&nbsp;to&nbsp;LCD<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_xMs(3);<br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_EN=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//set&nbsp;EN<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;led0=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_xMs(3);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_EN=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//clear&nbsp;&nbsp;EN<br />&nbsp;&nbsp;&nbsp;&nbsp;led0=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_xMs(128);<br />}<br /><br /><br />
 楼主| jmx 发表于 2007-7-28 22:19 | 显示全部楼层

试过了,还是不行啊:(

试过了,还是不行啊:(
 楼主| jmx 发表于 2007-7-29 00:10 | 显示全部楼层

为什么写执行数据命令看起来像是写地址呢

我看到书上有这样的介绍:<br />显示模块类型&nbsp;|&nbsp;DDRAM地址&nbsp;&nbsp;|&nbsp;显示位置<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|0&nbsp;|1&nbsp;|2&nbsp;|3&nbsp;|...&nbsp;|13|14|15|<br />16X2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;第一行&nbsp;&nbsp;&nbsp;&nbsp;|00|01|02|03|...&nbsp;|0D|0E|0F|<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;第二行&nbsp;&nbsp;&nbsp;&nbsp;|40|41|42|43|...&nbsp;|4D|4E|4F|&nbsp;<br />当我执行完我的W_cmd(0x85),光标会跑到第一行第六列,<br />可是接下来我打算写入数据的时候奇怪的事情发生了,当我执行W_data(0x40)以后,光标就跑到第二行第一列,执行W_data(0x4F)光标就跑到第二行最后一列,W_data(0x55)后就什么也没有了。<br />不知道有没有高手遇到类似情况,<br />我有换一个20X2的LCD也是一样,所以应该和LCD没有关系<br />请指点!谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

jmx

9

主题

58

帖子

0

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