ZLG7290驱动共阴数码管 I2C寻址问题

来源:百度知道 编辑:UC知道 时间:2024/06/03 00:31:51
ZLG7290作为从机,I2C 总线器件地址是70H 访问内部寄存器要通过“子地址”来实现。可以把指令直接发给子地址吗?
用命令解释控制,其命令缓冲区也有地址CmdBuf0:07H,CmdBuf1:08H。我用的函数是I2C_send(地址,命令,数据)。其中地址怎么写?如果是pdf中的“按位下载数据且译码指令”。怎么用我这函数发送呢?网上的资料该看的看了。例子也找遍了。现在真是一头雾水,请各位大侠帮忙解释解释。如果有现成的程序就更好了。我用的单片机是atmega128的,C语言,ICC avr 编译
我用的是atmega128 的硬件IIC接口

你的单片机带I2C接口吗?
如果没有,你模拟的时候就注意好时序,
我的空间有一篇用了I2C很稳定,(247519442)

你如果要模拟的,我给你看一个,你根据你的实际情况,稍微改下就能用的

祝你早日成功!

#include<reg51.h>
#include <Intrins.h>

#define uchar unsigned char
#define uint unsigned int

sbit pcf8563_scl=P0^5;//时钟频率
sbit pcf8563_sda=P0^4;//串行数据传输脚

bit busy=0;

uchar sg;//时高位
uchar sd;//时低位

uchar fg;//分高位
uchar fd;//分低位

uchar mg;//秒高位
uchar md;//秒低位

uchar hou=0;
uchar min=0;
uchar sec=0;

uchar subadd;//地址
uchar dat;//数据

uchar number;

void start_pcf8563();//开始数据
void send_pcf8563_byte();//发送

void stop_pcf8563();//结束数据
void receive_pcf8563_byte();//接收
void spit_time();//分别计算时、分、秒的各位数字

void spit_time()//分别计算时、分、秒的各位数字
{
sg=(int)hou/10;
sd=(int)hou%10;

fg=(int)min/10;
fd=(int)min%10;