图9.9AT24CXX读当前地址内容②读随机地址内容这种方式允许主器件读存贮器任意地址的内容,操作如图9.10所示。图9.10AT24CXX读随意地址的内容第30页,共60页,星期日,2025年,2月5日主器件发1010A2A1A0后发0位,再发读的存贮器地址,在收到从器件的确认位ACK后产生一个开始条件S,以结束上述写过程,再发一个读控制字节,从器件AT24CXX在发ACK信号后发出8位数据,主器件发后,发一个停止位,AT24CXX不再发后续字节。③读顺序地址的内容读顺序地址内容的方式与读随意地址内容的方式相同,只是在AT24CXX发送第一个字节以后,主器件不发和STOP,而是发ACK确认信号,控制AT24CXX发送下一个顺序地址的8位数据字,直到x个数据读完(见图9.11)。 图9.11AT24CXX读顺序地址的内容第31页,共60页,星期日,2025年,2月5日④防止噪声 AT24CXX使用了一个Vcc门限检测器电路。在一般条件下,如果Vcc低于1.5V,门限检测器对内部擦/写逻辑不使能。 SCL和SDA输入端接有施密特触发器和滤波器电路,即使在总线上有噪声存在的情况下,它们也能抑制噪声峰值以保证器件正常工作。第32页,共60页,星期日,2025年,2月5日6)串行EEPROM和AT89C51接口图9.12为8XX51微控制器与4K位的AT24C04串行EEPROM的典型连接。图中P1.6、P1.7提供AT24C04的时钟SCL、SDA和AT24C04进行数据传送,A2、A1、A0内部无连接,为无关位。WP为EEPROM的写保护信号,高电平有效。因为我们要进行写入操作,所以只能把它接低电平。利用上面的子程序,将8XX51单片机内部RAM60~67H存放的“1”~“8”LED显示器的字形码写入24C04存贮器的20~27H单元,为检查写入效果,再将24C04的20~27H单元的内容读出存入8XX51内部RAM的40H~47H单元,同时送LED显示器显示。第33页,共60页,星期日,2025年,2月5日9.2.4IIC总线接口的串行A/D、D/A扩展 PCF8591是一款典型的IIC总线接口的串行8位A/D、D/A转换器,该器件为单一电源供电(2.5~6V),CMOS工艺。PCF8591有4路8位A/D输入,属逐次比较型,内含采样保持电路;1路8位D/A输出,内含有DAC的数据寄存器。A/D、D/A的最大转换速率约为11kHz,转换的基准电源需由外部提供。PCF8591的内部结构和外部引脚分别如图9.18所示。第34页,共60页,星期日,2025年,2月5日图9.18PCF8591的内部结构(a)的外部引脚(b)第35页,共60页,星期日,2025年,2月5日PCF8591引脚功能描述见表9.7。
表9.7PCF8591的引脚功能表第36页,共60页,星期日,2025年,2月5日PCF8591的工作字有两个,地址选择字和转换控制字。地址选择字的格式如表9.8所示。
表9.8PCF8591的地址选择字格式PCF8591的转换控制字存放在控制寄存器中,用于实现器件的各种功能。总线操作时,为主发送的第二个字节。其格式如表9.9所示。 表9.9PCF8591的转换控制字格式第37页,共60页,星期日,2025年,2月5日PCF8591的包括D/A转换和A/D转换两个部分,下面分别介绍之。
1)PCF8591的D/A转换
D/A转换器是PCF8591的关键单元,除作为D/A转换使用外,还用于A/D转换中。D/A转换使用IIC总线的写入操作完成的,其数据操作格式如下:其中data1~datan为待转换的二进制数字。CONBYT为PCF8591的控制字节。图中灰底位由主机发出,白底位由PCF8591产生。D/A转换时,控制字中的输出允许位(D6)应为1,写入PCF8591的数据字节存放在DAC数据寄存器中,通过D/A转换器转换成相应的模拟电压通过AOUT引脚输出,并保持到输入新的数据为止。由于片内DAC单元还用于A/D转换,在A/D转换周期里释放DAC单元供A/D转换用,而DAC输出缓冲放大器的采样、保持电路在这期间将保持D/A转换的输出电压。第38页,共60页,星期日,2025年,2月5日2)PCF8591的A/D转换 PCF8591的A/D转换为逐次比较型ADC,在A/D转换周期中借用DAC及高增益比较器。