找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

这三条C语言赋值语句的目的是干什么?

查看数: 5302 | 评论数: 23 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-7-26 17:45

正文摘要:

这三条赋值语句的目的是干什么?

回复

ID:691907 发表于 2020-7-29 08:06
254或256也可以, 差不多一小段时间
ID:401564 发表于 2020-7-28 20:40
QWE4562012 发表于 2020-7-28 18:10
你现在有自己做产品不   用C语言

C我不会,我只会汇编
ID:668004 发表于 2020-7-28 18:10
Y_G_G 发表于 2020-7-28 09:01
问题1:这是IIC通讯中的的等待响应程序,没有什么是"255",你喜欢的话可以是12345或者是655353555,这个是作者 ...

你现在有自己做产品不   用C语言
ID:401564 发表于 2020-7-28 09:01
问题1:这是IIC通讯中的的等待响应程序,没有什么是"255",你喜欢的话可以是12345或者是655353555,这个是作者自己写,就是查询255次,看IIC接收器有没有响应,这并不是一个严谨的程序
问题2:这个是IIC的写入
问题3:这个是IIC的读取
2和3原理是一样的,但你并没有认真看数字电路方面的东西,这个属于移位寄存器这一块的
对于单片机编程,基础很重要,而且基础要花很多时间去学,不然,你看后面的代码基本是没有一句你能真正理解的,你要是理解了,也就是好像明白它在说什么而已,实际上,你看了那么久的C语言,估计是一点用都没有
ID:808485 发表于 2020-7-28 08:53
QWE4562012 发表于 2020-7-27 18:19
51单片机Cy位即baiPSW.7,是51单片机算数运算du中的进位借位标zhi志,根据算数运算结果由系统置位或复位d ...

在这段程序里,CY是移位操作时,移出累加器的那个位,
这段话,对这段程序理解没有任何帮助。
ID:808485 发表于 2020-7-28 08:51
QWE4562012 发表于 2020-7-27 18:19
51单片机Cy位即baiPSW.7,是51单片机算数运算du中的进位借位标zhi志,根据算数运算结果由系统置位或复位d ...

在这里,CY是移位运算时,移出累加器的那个位,进入CY
ID:808485 发表于 2020-7-28 08:35
QWE4562012 发表于 2020-7-27 18:21
那K左移一位再火上0或者1 是什么目的

接收数据
ID:668004 发表于 2020-7-27 18:21
gbchang 发表于 2020-7-27 15:52
j 的值是sda,sda是一个管脚,值可能是 1 或者 0

那K左移一位再火上0或者1 是什么目的
ID:668004 发表于 2020-7-27 18:19
gbchang 发表于 2020-7-27 15:56
其实,楼主应该问, 这个 CY 是干什么的,在什么地方定义的。这样才符合I2C提问的常规场景。

51单片机Cy位即baiPSW.7,是51单片机算数运算du中的进位借位标zhi志,根据算数运算结果由系统置位或复位dao,也可以编程置位或复位。置位指令为:SETB C;复位指令为CLR C。
ID:808485 发表于 2020-7-27 15:56
其实,楼主应该问, 这个 CY 是干什么的,在什么地方定义的。这样才符合I2C提问的常规场景。
ID:808485 发表于 2020-7-27 15:52

j 的值是sda,sda是一个管脚,值可能是 1 或者 0
ID:668004 发表于 2020-7-27 15:49
土豆西红柿 发表于 2020-7-27 15:00
k先左移1位,然后位运算或上j的值,最后在赋值给k

这个j是多少
ID:808485 发表于 2020-7-27 15:16
这明显是 模拟方式发送 IIC 字节呀。在 C 语言中调用 CY 寄存器,是个有深度的想法。设计者对MCU底层汇编还是比较在行的。
ID:426143 发表于 2020-7-27 15:00
QWE4562012 发表于 2020-7-27 12:04
将SDA读取到j,K右移1位并与j结合;-----------------你讲下这个具体是怎么运算的好不

k先左移1位,然后位运算或上j的值,最后在赋值给k
ID:668004 发表于 2020-7-27 12:04
TTQ001 发表于 2020-7-26 23:53
首先,I2C SDA高且变量i不大于255,请保持递增。 第二,将SDA设置为CY(高或低); 第三,将SDA读取到j,K ...

将SDA读取到j,K右移1位并与j结合;-----------------你讲下这个具体是怎么运算的好不
ID:668004 发表于 2020-7-27 11:54
mm201 发表于 2020-7-26 23:59
第一张图是说,SDA为高,程序自加(起延时作用)溢出。第二张图是,写sda高低,通过参数传递
第三张图是, ...

CY是寄存器的一个高位符号  给到SDA好抽象啊
ID:668004 发表于 2020-7-27 11:52
lyxing 发表于 2020-7-26 21:40
这个应是模拟I2C总线传输数据流程,可以参考I2C总线传输协议。第一图SDA拉高延时,第二图发送一位数据,第 ...

直接发一个字节按八次发不就行了吗?他这样做很麻烦啊
ID:668004 发表于 2020-7-27 11:50
mm201 发表于 2020-7-26 23:59
第一张图是说,SDA为高,程序自加(起延时作用)溢出。第二张图是,写sda高低,通过参数传递
第三张图是, ...

您好,为什么是255呢
ID:808296 发表于 2020-7-26 23:59
第一张图是说,SDA为高,程序自加(起延时作用)溢出。第二张图是,写sda高低,通过参数传递
第三张图是,把每一次读回来的一个位 或操作,理解为读一个位。
ID:420836 发表于 2020-7-26 23:53
首先,I2C SDA高且变量i不大于255,请保持递增。 第二,将SDA设置为CY(高或低); 第三,将SDA读取到j,K右移1位并与j结合;
ID:99174 发表于 2020-7-26 22:31
本帖最后由 windows100 于 2020-7-26 22:37 编辑

第一张图是说,SDA为高则总线不忙退出,或者程序自加(起延时作用)溢出。第二张图是,写sda高低,通过参数传递
第三张图是,把每一次读回来的一个位 或操作,理解为读一个位。你应该还有个for循环没有截图进来。
不要追问了,我不一定按时回答
ID:67199 发表于 2020-7-26 21:40
这个应是模拟I2C总线传输数据流程,可以参考I2C总线传输协议。第一图SDA拉高延时,第二图发送一位数据,第三图接收一位数据后,与K合并,完成一字节的接收。
ID:808263 发表于 2020-7-26 21:08
位运算 左移

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表