51单片机软件I2C驱动中的CY

做一个MSP430的项目,虽然430内部有硬件I2C的模块,略难,准备直接移植51的。。碰到一句代码

        dat <<= 1;              //移出数据的最高位
        pSDA = CY;               //送数据口
        digitalWrite(pSCL, HIGH);                //拉高时钟线

CY是什么??

百度了一下。。

位 7: CY:进位标志。 
当最后一次算术操作产生进位(加法)或借位(减法)时,该位置 1。其它算
术操作将其清 0。
右移时最高位被移入CY。循环移八次,刚好把一字节移完。

意思就是左移的时候溢出后CY会成为1

一次一次发就把8位发完了。。

移植到430上直接dat&0x80取最高位就行就可以无视CY勒。。

原文地址:https://www.cnblogs.com/cj695/p/3283028.html