求教5110LCDIO口仿SPI函数问题

2020-01-23 14:46发布

本帖最后由 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;//数据线拉高
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
oner
1楼-- · 2020-01-23 16:29
本帖最后由 oner 于 2014-5-2 11:18 编辑

我自己突然明白了。自己C语言基础不扎实啊。
&0x80就是和0x80(和10000000)取数据最高位,如果是真,那就是1,发送数据,如果是假,那就是0,发送数据,继续左移,把已发送数据去掉。
整个函数功能就是从高位一位一位地发送一个字节的指令或数据过去。
这么简单的东西我竟然还要上来问大家
NFC
2楼-- · 2020-01-23 16:49
 精彩回答 2  元偷偷看……
dlmaowf
3楼-- · 2020-01-23 21:43
进一大步
sgzzour
4楼-- · 2020-01-24 02:25
楼主的基础功夫有待于进一步提升啊
oner
5楼-- · 2020-01-24 03:28
sgzzour 发表于 2014-5-2 21:07
楼主的基础功夫有待于进一步提升啊


是的是的。我发现我的C语言基础、算法基础和数据结构都很不扎实。 有些很简单的程序都要看好几遍才能懂。
我在努力进步中.....
sgzzour
6楼-- · 2020-01-24 08:17
oner 发表于 2014-5-3 10:54
是的是的。我发现我的C语言基础、算法基础和数据结构都很不扎实。 有些很简单的程序都要看好几遍 ...

亲,我是男的,请不要发这个

一周热门 更多>