P87LPC764单片机的I2C总线显示电路
MOVA,R2;取从设备地址
ACALLSEND;发送从设备地址
JBF0,DISP2;无应答信号转移
MOVA,#0;SAA1064子地址
ACALLSEND;发送子地址
JBF0,DISP2;无应答信号转移
MOVA,R1;取SAA1064控制码
ACALLSEND;发送控制码
JBF0,DISP2;无应答信号转移
MOVR4,#04H;四只数码管
DISP1:MOVA,@R0;取字形代码
ACALLSEND;发送字形代码
JBF0,DISP2;无应答信号转移
INCR0;修正显示单元地址
DJNZR4,DISP1;
DISP2:ACALLSSTP;发送停止位
RET;
;发送1个字节
SEND:MOVR4,#8H;设置数据格式为8位
SENDB:MOVI2DAT,A;发送数据位
RLA;取下一个数据位
JNBDRDY,$;等待数据准备好
DJNZR4,SENDB;
MOVI2CON,#0A0H;转换为接收模式
JNBATN,$;等待应答信号
JNBRDAT,SENDE;是应答位吗?
SETBF0;建立无应答信号标志
SENDE:RET;
;发送停止位
SSTP:CLRMASTRQ;取消主机位置
MOVI2CON,#21H;产生总线停止条件
JNBATN,$;等待
MOVI2CON,#20H;清除数据准备好标志
JNBATN,$;等待发送停止条件
MOVI2C0N,#91H;释放I2C总线
CLRTIRUN;停止定时器I的运行
RET
《P87LPC764单片机的I2C总线显示电路(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/169840.html
ACALLSEND;发送从设备地址
JBF0,DISP2;无应答信号转移
MOVA,#0;SAA1064子地址
ACALLSEND;发送子地址
JBF0,DISP2;无应答信号转移
MOVA,R1;取SAA1064控制码
ACALLSEND;发送控制码
JBF0,DISP2;无应答信号转移
MOVR4,#04H;四只数码管
DISP1:MOVA,@R0;取字形代码
ACALLSEND;发送字形代码
JBF0,DISP2;无应答信号转移
INCR0;修正显示单元地址
DJNZR4,DISP1;
DISP2:ACALLSSTP;发送停止位
RET;
;发送1个字节
SEND:MOVR4,#8H;设置数据格式为8位
SENDB:MOVI2DAT,A;发送数据位
RLA;取下一个数据位
JNBDRDY,$;等待数据准备好
DJNZR4,SENDB;
MOVI2CON,#0A0H;转换为接收模式
JNBATN,$;等待应答信号
JNBRDAT,SENDE;是应答位吗?
SETBF0;建立无应答信号标志
SENDE:RET;
;发送停止位
SSTP:CLRMASTRQ;取消主机位置
MOVI2CON,#21H;产生总线停止条件
JNBATN,$;等待
MOVI2CON,#20H;清除数据准备好标志
JNBATN,$;等待发送停止条件
MOVI2C0N,#91H;释放I2C总线
CLRTIRUN;停止定时器I的运行
RET
《P87LPC764单片机的I2C总线显示电路(第3页)》