- 1、本文档共76页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 调用该子程序前,将要发送的数据送入A中。占用资源R0、C。 WRBYT:MOV R0,#08H WLP :RLC A JC WR1 AJMP WR0 WLP1: DJNZ R0,WLP RET WR1: SETB SDA SETB SCL NOP NOP CLR SCL CLR SDA AJMP WLP1 WR0:CLR SDA SETB SCL NOP NOP CLR SCL AJMP WLP1 * (3)从SDA上接收一字节数据子程序RDBYT 初始化 自SDA接收1位送C 8位收完? RET N Y 送C中位to A 使SCL=0,继续收 * (3)从SDA上接收一字节数据子程序RDBYT 从SDA上读取的一字节存放在R2或A中。占用资源 R0、R2和C。 RDBYT:MOV R0,#08H RLP: SETB SDA SETB SCL NOP MOV C,SDA MOV A,R2 RLC A MOV R2,A CLR SCL NOP DJNZ R0,RLP RET * (4) 向被控器发送N字节数据子程WRNBYT 在使用本子程序时,须调用STA、STOP、WRBYT和CACK子程序,而且应在片内RAM中分配好这些地址。 * (4) 向被控器发送N字节数据子程WRNBYT 初始化 启动I2C总线 应答位? 发送数据初始化 N Y 送地址字节 检查应答位 发送一字节 应答位? Y N 发送完? Y 发送停止位 N * WRNBYT:MOV R3,NUMBYT LCALL STA MOV A,SLA LCALL WRBYT LCALL CACK JB F0,WRNBYT MOV R1,#MTD WRDA: MOV A,@R1 LCALL WRBYT LCALL CACK JB F0,WRNBYT INC R1 DJNZ R3,WRDA LCALL STOP RET * (5)从外围器件读取N字节数据子程序RDNBYT * (5)从外围器件读取N字节数据子程序RDNBYT 初始化 启动I2C总线 应答位? 接收缓冲器初始化 N Y 送地址字节 检查应答位 接收一字节 接收完? N 发送应答位 Y 发送非应答 位、停止位 * RDNBYT: MOV R3,NUMBYT LCALL STA MOV A,SLAR LCALL WRBYT LCALL CACK JB F0,RDNBYT RDN: MOV R1,#MRD RDN1: LCALL RDBYT MOV @R1,A DJNZ R3,ACK LCALL MNACK LCALL STOP RET ACK: LCALL MACK INC R1 SJMP RDN1 * I2C总线接口的数码管驱动芯片SAA1064 * * * I2C总线接口的数码管驱动芯片SAA1064 引脚ADR 模拟电平 引脚ADR数字化 从地址 寻址命令 A1 A0 D7 D6 D5 D4 D3 A1 A0 R/W 写 读 GND(0V) 0 0 0 1 1 1 0 0 0 1/0 70H 71H 3/8 VCC 0 1 0 1 1 1 0 0 1 1/0 72H 73H 5/8 VCC 1 0 0 1 1 1 0 1 0 1/0 74H 75H VCC(5V) 1 1 0 1 1 1 0 1 1 1/0 76H 77H * I2C总线接口的数码管驱动芯片SAA1064 * I2C总线接口的数码管驱动芯片SAA1064 SC位、SB位和SA位构成一个指针,用于装入控制字节和4个显示段码(
文档评论(0)