I2C通信
本实验有两个模块iic_com和led_seg7,iic_com为I2C协议,led_seg7为数码管的显示(`define WRITE_DATA 8'b0100_1001 //写入EEPROM的数据 数据为49),显示即为WRITE_DATA值。
本实验的目的了解AT24C02的I2C协议,I2C通信中涉及两条信号线,即时钟线SCL和数据线SDA,时序如下:
PS:本实验是通过随机读时序来编程的。程序主要是根据SCL和SDA的时序关系来书写程序。
器件地址(DEVICE ADDRESS)的定义如图:
最低位R/W表示读或者写状态,1表示读,0表示写。
由AT24C02的电路图:
可知,A2,A1,A0均为0,故有`define DEVICE_READ 8'b1010_0001 //被寻址器件地址(读操作)
`define DEVICE_WRITE 8'b1010_0000 //被寻址器件地址(写操作)
Iic_com.v: //计数器,//当计数满时,锁存按键值(注意:按键的初值为高电平) //cnt_delay500计数循环,为iic提供时钟// cnt=0:scl上升沿,cnt=1:scl高电平中间,cnt=2:scl下降沿,cnt=3:scl低电平中间 //使能信号start赋值//读、写时序
Led_seg7:略(数码管的显示电路)
文章评论(0条评论)
登录后参与讨论