帖个代码:
void write_data(uint8 rl,uint8 data)
{
isbusy();
if(rl)
{
IOCLR=CS2;
IOSET=RS;
IOCLR=RW;
IOSET=data;
//IOCLR=~data;
//IOPIN=(IOPIN&0xffffff00)|data;
IOSET=EN;
IOCLR=EN;
IOSET=CS2;
}
else
{
IOCLR=CS1;
IOSET=RS;
IOCLR=RW;
IOSET=data;
//IOCLR=~data;
//IOPIN=(IOPIN&0xffffff00)|data;
IOSET=EN;
IOCLR=EN;
IOSET=CS1;
}
}
不解的是:IOSET=data;这句,当data中有数据位为0时,0对应的这个位会输出为0么?为什么 我的这个函数write_data(0,0x00)能使LCD清屏?我在书看到的是这个寄存器只有在对应的位为1时才输出1的么,写入0无效的呀??不解,请教大家了! |