单片机C51编程关于max7219的问题(欢迎高手)

来源:百度知道 编辑:UC知道 时间:2024/05/27 22:18:54
DIN=(bit)(address&0x80); //每次取高字节
这是往max7219里传送数据的函数中的语句。我看不懂注释,比如说address=0x87,请问
(address&0x80)的结果是多少?DIN是多少?

下面还有一句移位操作吧?DIN的值根据每次和0x80与得结果,为1或0!
你可以软件仿真一下,观察DIN的值!

address&0x80意思是把address的值于0x80相与,也就是取address的高八位。address=0x87的话,address&0x80=0x80.DIN=(bit)(address&0x80); 是只要address的最高位,即 “1”。(bit)的意思是强制转化为位。

二楼正解,
这条指令时每次只有一个字节的结果,要有移位语句才能每次去一个字节。
0x80是01000000与address按位与,就得到(0?000000)
?是address的次高位