欢迎来到天天文库
浏览记录
ID:37915427
大小:24.00 KB
页数:4页
时间:2019-06-02
《IIC总线子程序库》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、;******************IIC总线子程序库******************;IIC_START:IIC总线起始条件;IIC_STOP:IIC总线结束条件;WRITE_BYTE:IIC总线写一字节;入口:ACC;占用:ACC,R7;READ_BYTE:IIC总线写一字节;WR_X:连续写字节;入口:;R0数据源地址(单片机);R1地址识别码+写命令;R2数据目的地址(IIC芯片);R3写入数据字节个数;占用:;ACC,R0,R1,R2,R3;调用:WRITE_BYTE;RD_X:连续读字节;R0读出字节存放地址指针(单片机);R1地址识别码+读命令;R2要读出字节的地址
2、(IIC芯片);R3读出数据字节个数;**********************************************************IIC_START:SETBSDANOP;注意依据单片机主频来添加延时SETBSCLNOPCLRSDANOPCLRSCLRETIIC_STOP:CLRSDANOPSETBSCLNOPSETBSDANOPRETWRITE_BYTE:MOVR7,#08HWR_B1:CLRSCLRLCAMOVSDA,CNOPSETBSCLDJNZR7,WR_B1CLRSCLNOP;判断ACK信号SETBSDANOPSETBSCLMOVC,SDACLRSCL
3、RETWR_X:CLRF0CALLIIC_STARTMOVA,R1CALLWRITE_BYTEJCWR_RETMOVA,R2CALLWRITE_BYTEJCWR_RETWR_X_1:MOVA,@R0CALLWRITE_BYTEJCWR_RETINCR0DJNZR3,WR_X_1CALLIIC_STOPRET;IIC写成功返回,标志位F0=0WR_RET:SETBF0;IIC写失败返回,标志位F0=1RETRD_X:CALLIIC_STARTMOVA,R1CLRACC.0CALLWRITE_BYTEJCRDA_RETMOVA,R2CALLWRITE_BYTEJCRDA_RETCALLII
4、C_STARTMOVA,R1CALLWRITE_BYTEJCRDA_RETDJNZR3,RDA_S1JMPREAD_ONERDA_S1:CALLREAD_BYTEMOV@R0,AINCR0CLRSDASETBSCLNOPCLRSCLSETBSDADJNZR3,RDA_S1READ_ONE:CALLREAD_BYTEMOV@R0,ASETBSDASETBSCLRDA_RET:CALLIIC_STOPNOPNOPRETREAD_BYTE:MOVR7,#8SETBSDASETBSCLRD_B1:NOPSETBSCLNOPMOVC,SDARLCACLRSCLDJNZR7,RD_B1RET
此文档下载收益归作者所有