网站静态和动态那个好wordpress与微信教程
web/
2025/10/6 11:44:01/
文章来源:
网站静态和动态那个好,wordpress与微信教程,青岛网站建设公司好找吗,广州越秀区二手房STC8H8K64U I2C主机模式相关寄存器
STC8H8K64U-TSSOP20
I2CCFG I2C配置寄存器 I2CMSCR I2C主机控制寄存器 I2CMSST I2C主机状态寄存器 I2CMSAUX I2C主机辅助控制寄存器 I2CTXD I2C数据发送寄存器 I2CRXD I2C数据接收寄存器
I2CCFG I2C配置寄存器
B7ENI2C ENI2C#xff1a…STC8H8K64U I2C主机模式相关寄存器
STC8H8K64U-TSSOP20
I2CCFG I2C配置寄存器 I2CMSCR I2C主机控制寄存器 I2CMSST I2C主机状态寄存器 I2CMSAUX I2C主机辅助控制寄存器 I2CTXD I2C数据发送寄存器 I2CRXD I2C数据接收寄存器
I2CCFG I2C配置寄存器
B7ENI2C ENI2CI2C 功能使能控制位 0禁止 I2C 功能 1允许 I2C 功能 B6MSSL MSSLI2C 工作模式选择位 0从机模式 1主机模式 B5-B0 MSSPEED[5:0]I2C 总线速度等待时钟数控制I2C 总线速度FOSC / 2 / (MSSPEED * 2 4) MSSPEED[5:0] 对应的时钟数 0 4 1 6 2 8 … … x 2x4 … … 62 128 63 130 只有当 I2C 模块工作在主机模式时MSSPEED 参数设置的等待参数才有效。此等待参数主要用于主机模式的以下几个信号 TSSTA起始信号的建立时间Setup Time of START THSTA起始信号的保持时间Hold Time of START TSSTO停止信号的建立时间Setup Time of STOP THSTO停止信号的保持时间Hold Time of STOP THCKL时钟信号的低电平保持时间Hold Time of SCL Low THCKH时钟信号的高电平保持时间Hold Time of SCL High 例 1当 MSSPEED10 时TSSTATHSTATSSTOTHSTOTHCKL24/FOSC 例 2当 24MHz 的工作频率下需要 400K 的 I2C 总线速度时 MSSPEED(24M / 400K / 2 - 4) / 213
I2CMSCR I2C主机控制寄存器
B7EMSI主机模式中断使能控制位 0关闭主机模式的中断 1允许主机模式的中断 51汇编示例
MOV A,#80H;B71允许I2C主机模式的中断
MOV DPTR,#I2CMSCR
MOVX DPTR,AMSCMD[3:0]主机命令 0000待机无动作。 0001起始命令。 发送 START 信号。如果当前 I2C 控制器处于空闲状态即 MSBUSYI2CMSST.7为 0 时写此命令会使控制器进入忙状态硬件自动将 MSBUSY 状态位置 1并开始发送 START 信号若当前 I2C 控制器处于忙状态写此命令可触发发送 START 信号。 0010发送数据命令。 写此命令后I2C 总线控制器会在 SCL 管脚上产生 8 个时钟并将 I2CTXD 寄存器里面数据按位送到 SDA 管脚上先发送高位数据。 0011接收 ACK 命令。 写此命令后I2C 总线控制器会在 SCL 管脚上产生 1 个时钟并将从 SDA 端口上读取的数据保存到 MSACKII2CMSST.1。 0100接收数据命令。 写此命令后I2C 总线控制器会在 SCL 管脚上产生 8 个时钟并将从 SDA 端口上读取的数据依次左移到 I2CRXD 寄存器先接收高位数据。 0101发送 ACK 命令。 写此命令后I2C 总线控制器会在 SCL 管脚上产生 1 个时钟并将 MSACKOI2CMSST.0中的数据发送到 SDA 端口。 0110停止命令。 发送 STOP 信号。写此命令后I2C 总线控制器开始发送 STOP 信号。信号发送完成后硬件自动将 MSBUSY 状态位清零。 0111保留。 1000保留。 1001起始命令发送数据命令接收 ACK 命令。 此命令为命令 0001、命令 0010、命令 0011 三个命令的组合下此命令后控制器会依次执行这三个命令。 1010发送数据命令接收 ACK 命令。 此命令为命令 0010、命令 0011 两个命令的组合下此命令后控制器会依次执行这两个命令。 1011接收数据命令发送 ACK(0)命令。 此命令为命令 0100、命令 0101 两个命令的组合下此命令后控制器会依次执行这两个命令。 注意此命令所返回的应答信号固定为 ACK0不受 MSACKO 位的影响。 1100接收数据命令发送 NAK(1)命令。 此命令为命令 0100、命令 0101 两个命令的组合下此命令后控制器会依次执行这两个命令。 注意此命令所返回的应答信号固定为 NAK1不受 MSACKO 位的影响。
I2CMSST I2C主机状态寄存器
B7MSBUSY主机模式时 I2C 控制器状态位只读位 0控制器处于空闲状态 1控制器处于忙碌状态 当 I2C 控制器处于主机模式时在空闲状态下发送完成 START 信号后控制器便进入到忙碌状态忙碌状态会一直维持到成功发送完成 STOP 信号之后状态会再次恢复到空闲状态。 B6MSIF主机模式的中断请求位中断标志位。当处于主机模式的 I2C 控制器执行完成寄存器 I2CMSCR中 MSCMD 命令后产生中断信号硬件自动将此位 1向 CPU 发请求中断响应中断后 MSIF 位必须用软件清零。 B1MSACKI主机模式时发送“0011”命令到 I2CMSCR 的 MSCMD 位后所接收到的 ACK 数据。只读位 B0MSACKO主机模式时准备将要发送出去的 ACK 信号。当发送“0101”命令到 I2CMSCR 的 MSCMD位后控制器会自动读取此位的数据当作 ACK 发送到 SDA。
I2CMSAUX I2C主机辅助控制寄存器
B0WDTA主机模式时 I2C 数据自动发送允许位 0禁止自动发送 1使能自动发送 若自动发送功能被使能当 MCU 执行完成对 I2CTXD 数据寄存器的写操作后I2C 控制器会自动触发“1010”命令即自动发送数据并接收 ACK 信号。
I2CTXD I2C数据发送寄存器
I2CRXD I2C数据接收寄存器
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87890.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!