oner 发表于 2014-5-2 10:54:54

求教5110LCDIO口仿SPI函数问题

本帖最后由 oner 于 2014-5-2 12:52 编辑

大虾们,小弟不才。在看5110的相关函数时,有一个问题不解,请大家帮我解惑。
下面这个函数是网上找的IO口仿SPI的函数。
为什么if(dt&0x80)这里为什么要用数据&0x80?我在5110datasheet里面看了相关寄存器设置也没看出个所以,小弟不才,请大家帮忙。

void LCD_write_byte(unsigned char dt, unsigned char command)
{
        unsigned char i;
        sce=0;        //芯片使能
        dc=command;        //数据或命令
        for(i=0;i<8;i++)
        {
                if(dt&0x80)
                        sdin=1;
                else
                        sdin=0;
                dt=dt<<1;               
                sclk=0;                
                sclk=1;
        }       
        dc=1;        //拉高:数据
        sce=1;//不使能       
        sdin=1;//数据线拉高
}

oner 发表于 2014-5-2 11:17:24

本帖最后由 oner 于 2014-5-2 11:18 编辑

我自己突然明白了。自己C语言基础不扎实啊。
&0x80就是和0x80(和10000000)取数据最高位,如果是真,那就是1,发送数据,如果是假,那就是0,发送数据,继续左移,把已发送数据去掉。
整个函数功能就是从高位一位一位地发送一个字节的指令或数据过去。
这么简单的东西我竟然还要上来问大家{:dizzy:}

NFC 发表于 2014-5-2 12:08:48

你说的很对啊,就是那样的

dlmaowf 发表于 2014-5-2 13:39:42

{:lol:}进一大步

sgzzour 发表于 2014-5-2 21:07:46

楼主的基础功夫有待于进一步提升啊

oner 发表于 2014-5-3 10:54:40

sgzzour 发表于 2014-5-2 21:07
楼主的基础功夫有待于进一步提升啊

是的是的。我发现我的C语言基础、算法基础和数据结构都很不扎实。{:cry:} 有些很简单的程序都要看好几遍才能懂。{:mad:}
我在努力进步中.....{:lol:} {:kiss:} {:handshake:}

sgzzour 发表于 2014-5-3 17:58:03

oner 发表于 2014-5-3 10:54
是的是的。我发现我的C语言基础、算法基础和数据结构都很不扎实。 有些很简单的程序都要看好几遍 ...

亲,我是男的,请不要发这个{:kiss:}
页: [1]
查看完整版本: 求教5110LCDIO口仿SPI函数问题