内容正文:
单元六 单片机扩展应用
2024/7/10
1
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
知识目标
电子测量仪器有哪几类?
了解ADC和DAC的基本原理;
掌握IIC接口原理和实现方法;
掌握SPI接口原理和实现方法;
掌握ADC0809、ADC0832和PCF8591的使用方法。
电子测量仪器有哪几类?
能够利用单片机I/O口实现IIC协议模拟;
能够利用单片机I/O口实现SPI协议模拟;
能够利用单片机实现EEPROM和FRAM的读与写。
(实训一 利用PCF8591制作一个简易的数字电压表)(实训二 利用PCF8591制作一个简易的呼吸灯)
技能目标
0
预备知识—P口的读写操作
0.1 P口的读写操作
P口输出(写P口):利用C语言直接写P口,例如P0口输出0x55,则P0=0x55即可。
P口输入(读P口):利用C语言将P口置1,然后在对P口进行读操作。例如读P0口则首先P0=0xff,然后a=P0即可将P0口上的数据读入到变量a中。
2024/7/10
3
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
0
预备知识—定时器的配置和使用
0.2定时器的配置和使用
配置模式控制寄存器TMOD
1、配置工作模式,对寄存器的M1和M0位进行配置
2、要选择定时器的定时时间,即配置THn和TLn这两个寄存器。可以通过公式THn=(65536-x)/256和TLn=(65536-x)%256来计算这两个寄存器的值,其中x为需要定时的时间,单位是us
2024/7/10
4
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
ADC的基本概念
ADC是英文Analog to Digital Converter的缩写,意为模数转换器。它的功能是将模拟的电压或电流信号转换为数字信号
2024/7/10
5
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
ADC的基本原理——采样
2024/7/10
6
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
ADC的基本原理——量化和编码
在得到离散化的采样瞬时值后,需要将其量化和编码,经过这两个过程后,模拟信号就完全被转化为数字信号了。
量化又可以称作幅值量化,即根据采样得到离散信号的最大值和最小值,将幅值划分为若干等级,称为量化级。将采样瞬时值用最接近的量化级来表示。从图中可以看出,量化是对模拟信号的近似,所以量化过程会带来量化误差,增加量化级可以减小量化误差。
最后将量化级进行编码,就得到了对应原模拟信号的数字信号。
2024/7/10
7
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
ADC的基本指标
1.分辨率
该指标一般以位数来表示。ADC的位数越高,其分辨率越大。普通精度的ADC一般是8位的,高精度的ADC一般是10位或12位的。
2.精度
ADC的精确度是指对于给定模拟输入,实际数字输出与理论预期数字输出之间的接近度。换而言之,转换器的精确度决定了数字输出代码中有多少个比特表示有关输入信号的有用信息。
3.转换时间与转换速率
ADC完成一次转换所需要的时间为ADC转换时间,是指从启动ADC开始到获得相应数据所需时间(包括稳定时间)。通常,转换速率是转换时间的倒数,即每秒转换的次数。
2024/7/10
8
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
并行ADC芯片——ADC0809
ADC0809是8位8通道逐次逼近式ADC,CMOS工艺,可实现8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道地址锁存用译码电路,其转换时间为100us左右。
2024/7/10
9
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
ADC0809——芯片的管脚和功能
2024/7/10
10
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
ADC0809——地址通道配置
地址信号 选中通道
ADDC ADDB ADDA
0 0 0 IN0
0 0 1 IN1
0 1 0 IN2
0 1 1 IN3
1 0 0 IN4
1 0 1 IN5
1 1 0 IN6
1 1 1 IN7
2024/7/10
11
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
ADC0809 ——工作时序
2024/7/10
12
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
ADC0809 ——工作时序时间约束
时间 名称 典型值 最大值
tWS START脉冲的最小脉宽 100ns 200ns
tWE ALE脉冲的最小脉宽 100ns 200ns
tD ALE有效后,模拟多路器的延时时间 1us 2.5us
tEOC EOC信号延时时间 - 8T+2us
tC 转换时间 100us 116us
2024/7/10
13
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
ADC0809的驱动程序
利用ADC0809测量一个0~5V之间的直流电压为例说明如何编写ADC0809的驱动程序
2024/7/10
14
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
ADC0809的驱动程序
ADC0809与单片机接口连接对应关系
ADC0809接口名称 单片机接口名称
数据接口2-1~2-8 P1
CLOCK P2.0
START P2.1
OUTPUT ENABLE P2.2
ADD A P2.3
ADD B P2.4
ADD C P2.5
ALE P2.6
EOC P2.7
2024/7/10
15
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
程序代码分析
(1)单片机与ADC0809的端口定义
(2)时钟CLOCK发生程序
(3)ADC0809模拟通道选择程序
(4)ADC0809读数据程序
(5)获得电压值的计算方法
ADC0809为8位的ADC,若参考电压为+5V,则ADC0809的电压分辨率为5000/255mV。故所得电压值的计算方法为(_data_*5000)/255的值取整,可得单位为mV的电压值。例如,从ADC0809中读取的数据_data_为100,则对应的电压值为1960mV。
参见 ADC0809程序代码.doc
2024/7/10
16
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
串行ADC芯片——PCF8591
PCF8591是一个单片、单电源、低功耗、8-bit CMOS ADC和DAC集成芯片。PCF8591具有4个模拟输入、1个模拟输出和1个串行I²C总线接口。PCF8591的3个地址引脚A0, A1和A2可用于硬件地址编程,允许在同一条I2C总线上接入8个PCF8591器件,而无需额外的硬件。在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输。
2024/7/10
17
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
PCF8591 ——芯片的管脚和功能
2024/7/10
18
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
PCF8591 ——工作时序之I2C总线协议简介
I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上,每个连接到I2C总线上的设备都有唯一的地址。
各设备连接到I2C总线的输出端时必须是漏极开路(OD)输出或集电极开路(OC)输出,也即I2C总线需要外接上拉电阻才能正常工作。I2C总线处于空闲状态时,SDA和SCL均为高电平,任一设备输出的低电平都将使相应的总线信号线变低,也就是说:各设备的SDA是“与”关系,SCL也是“与”关系。
连接到I2C总线上的设备至少有一个是主机,其他设备都是从机,所以设备上的串行数据线SDA接口电路是双向的,串行时钟线SCL也是双向的。I2C总线上的数据传输必须由主机发起。
2024/7/10
19
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
PCF8591 ——工作时序之I2C总线协议简介
2024/7/10
20
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
I2C总线的起始信号
2024/7/10
21
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
I2C总线的停止信号
2024/7/10
22
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
I2C总线的数据传输
正文页,文本为主的时候选用。有五级标题。文本框内可直接对齐。
左上角的数字可自行填写
2024/7/10
23
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
I2C总线的应答
2024/7/10
24
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
I2C总线的完整的数据传输时序
2024/7/10
25
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
PCF8591中ADC的工作时序
PCF8591中地址控制命令格式
PCF8591中控制命令字节
2024/7/10
26
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
PCF8591中ADC的工作时序
PCF8591中控制命令字节
2024/7/10
27
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
PCF8591 A/D功能的驱动程序
利用PCF8591测量一个0~5V之间的直流电压为例说明如何编写PCF8591 A/D功能的驱动程序
2024/7/10
28
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
PCF8591 A/D功能的驱动程序
PCF8591与单片机接口连接对应关系
PCF8591接口名称 单片机接口名称
SCL P1.0
SDA P1.1
2024/7/10
29
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
1
ADC
程序代码分析
(1)延时程序——10us延时,用来产生SCL信号
(2)接口定义和ACK标志位定义
(3)IIC总线启动条件
(4)IIC总线结束条件
(5)ACK检测程序
(6)主机应答
(7)主机非应答
(8)主机向IIC总线发送一个字节的数据
(9)主机自IIC总线上接收一个字节的数据
(10)PCF8591用作ADC读取通道AIN0上的电压值
参见 PCF8591ADC程序代码.docx
2024/7/10
30
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
2
DAC
DAC的基本概念
DAC是英文Digital to Analog Converter的缩写,意为数模转换器。它的功能是将数字信号转换成模拟量(电压或电流)
2024/7/10
31
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
2
DAC
DAC的基本指标
1.分辨率
DAC的分辨率指DAC接口芯片能分辨的最小输出模拟增量。输人数量发生单位数码变化时,即LSB(最低有效位)产生一次变化时,所对应的输出的模拟量的变化量。对于线性DAC转换器来说,其分辨率△与数字量的位数n的关系为:
3.失调误差
DAC的失调误差指输入数字量为零时,模拟输出量与理想输出量的偏差。偏差值的大小一般用LSB的或用偏差值表示。
2.转换精度
DAC的转换精度指满量程时DAC的实际模拟输出量与理论值的接近程度,与D/A转换芯片的结构和接口配置电路有关。通常,DAC的转换精度为分辨率的一半。
2024/7/10
32
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
2
DAC
并行DAC芯片——DAC0832
DAC0832是微处理器完全兼容的,具有8位分辨率的D/A转换集成芯片,以其价廉、接口简单、转换控制容易等优点,在单片机应用系统中得到了广泛的应用。
2024/7/10
33
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
2
DAC
DAC0832——芯片的管脚和功能
2024/7/10
34
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
2
DAC
DAC0832的基本时序图
2024/7/10
35
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
2
DAC
DAC0832基本时序时间关系表
符号 名称 典型值
tS 电流信号建立时间 1us
tW 写脉冲和XFER信号的最小脉宽 375ns
tDS 数据建立时间 375ns
tDH 数据的最小保持时间 50ns
tCS 片选信号的最小建立时间 900ns
tCH 片选信号的最小保持时间 0
2024/7/10
36
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
2
DAC
DAC0832的工作模式
DAC0832有两种工作模式,分别是单缓冲模式和双缓冲模式。
单缓冲方式就是使DAC0832的两个输入寄存器中有一个(多为DAC寄存器)处于直通方式,而另一个处于受控的锁存方式。应用场合:如果只有一路模拟量输出,或虽是多路模拟量输出但并不要求输出同步的情况下,就可采用单缓冲方式。
双缓冲方式,就是把DAC0832的输入寄存器和DAC寄存器都接成受控锁存方式。
双缓冲方式
2024/7/10
37
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
2
DAC
DAC0832的驱动程序
利用直通方式的DAC0832在给定参考电压的情况下输出最小和最大电压值的驱动程序。
2024/7/10
38
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
2
DAC
程序代码分析
(1)端口定义
程序代码清单如下:
#include <reg52.h>
#define v_data P1
sbit ile = P2^0;
(2)DAC0832写程序
程序代码清单如下:
void dac0832_write(unsigned char r_data)
{
ile = 1;
v_data = r_data;
}
2024/7/10
39
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
2
DAC
串行DAC芯片——PCF8591
PCF8591是ADC和DAC功能一体的芯片。ADC功能与DAC功能的接口电路相同。要使用芯片的DAC功能,只需要改变写入芯片的控制字即可。
若要使用芯片的DAC功能,必须要使能PCF8591的模拟输出端口,这就需要将控制命令字节中的D6位置1。
2024/7/10
40
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
2
DAC
PCF8591 D/A功能的驱动程序
利用PCF8591的D/A功能在给定参考电压的情况下输出最小和最大电压值的驱动程序。
2024/7/10
41
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
2
DAC
程序代码分析
void PCF8591_DAC(unsigned char ctrl_byte, unsigned char v_data)
{
start_IIC();
send_onebyte(0x90);
check_ack();
if(ack_flag)
return;//非应答,返回以示错误
send_onebyte(ctrl_byte&0x77);
check_ack();
if(ack_flag)
return;//非应答,返回以示错误
send_onebyte(v_data);
stop_IIC();
}
2024/7/10
42
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
3
IIC接口的存储器应用
AT24C02简介
AT24C02是美国ATMEL公司的低功耗CMOS串行EEPROM。它的存储空间为2K bit(256×8bit),具有工作电压宽(2.5~5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)等特点。AT24C02一共有8个管脚,A0~A2是芯片的地址端,WP是写保护端,SDA和SCL分别是IIC接口中的数据端口和时钟端口,Vcc和GND分别是电源和地端。
2024/7/10
43
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
3
IIC接口的存储器应用
AT24C02的具体操作
1.AT24C02的地址
2.硬件接口电路
2024/7/10
44
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
3
IIC接口的存储器应用
AT24C02的具体操作
3.字节写入操作
字节写入操作是向AT24C02的某个地址写入一个字节的数据。字节写入操作的具体步骤为:
① 单片机向AT24C02发送IIC起始条件、器件地址信息和写命令。
② AT24C02产生应答信号。
③ 单片机向AT24C02发送要写入数据的地址信息。
④ AT24C02产生应答信号。
⑤ 单片机向AT24C02发送要写入的数据(一个字节)。
⑥ AT24C02产生应答信号。
⑦ 单片机向AT24C02发送IIC停止条件。
⑧ AT24C02开始进行内部数据写入操作,在这期间AT24C02不会响应单片机的任何请求。
2024/7/10
45
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
3
IIC接口的存储器应用
AT24C02的具体操作
AT24C02字节写入操作时序
2024/7/10
46
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
3
IIC接口的存储器应用
AT24C02的具体操作
4.页写入操作
AT24C02页写入操作时序
2024/7/10
47
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
3
IIC接口的存储器应用
AT24C02的具体操作
5.立即地址读取操作
立即地址读取的地址是上一次读/写的地址加1。例如上一次对地址N进行了读/写操作,那么立即地址读取的地址就是N+1。
立即地址读取操作的具体步骤为:
① 单片机向AT24C02发送IIC起始条件、器件地址信息和读命令。
② AT24C02产生应答信号。
③ 单片机接收读取的数据。
④ 单片机向AT24C02发送IIC停止条件。
立即地址读取的操作时序
2024/7/10
48
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
3
IIC接口的存储器应用
AT24C02的具体操作
6.随机读取操作
随机读取操作允许单片机对AT24C02的任意字节进行读操作。
随机读取操作的具体步骤为:
① 单片机向AT24C02发送IIC起始条件、器件地址信息和写命令。
② AT24C02产生应答信号。
③ 单片机向AT24C02发送要读取字节的地址。
④ AT24C02产生应答信号。
⑤ 单片机向AT24C02发送IIC起始条件、器件地址信息和读命令。
⑥ AT24C02产生应答信号。
⑦ 单片机接收读取的数据。
⑧ 单片机向AT24C02发送IIC停止条件。
随机读取操作的时序
2024/7/10
49
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
3
IIC接口的存储器应用
AT24C02的具体操作
7.顺序读取操作
顺序读取操作可以通过随机读取操作或立即地址读取操作来启动。AT24C02向单片机发送完一个字节的数据后,单片机产生一个应答信号,通知AT24C02要求读取更多的数据。对应每个单片机产生的应答信号,AT24C02将向单片机发送一个字节的数据,其地址自动加1,当单片机不再产生应答信号而发送IIC总线停止条件时,顺序读取操作结束。
顺序读取操作的时序
2024/7/10
50
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
3
IIC接口的存储器应用
AT24C02的驱动程序
(1)端口定义
(2)延时函数
(3)ACK检测程序
(4)写操作之字节写入程序
(5)写操作之页写入程序
(6)读操作之立即地址读取程序
(7)读操作之随机读取程序
(8)读操作之顺序读取程序
参考 AT24C02驱动程序.docx
2024/7/10
51
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
4
SPI接口的存储器应用
本节介绍一种SPI接口的存储器应用。在上一节的内容中介绍了EEPROM存储器,虽然EEPROM存储器实现了对ROM的电可擦写操作,但这种存储器毕竟还是ROM,读写速度相对于RAM而言还是比较慢的,但是RAM不能掉电保存数据。
随着技术的进步,人们研制出一种读写速度可达到RAM读写速度的量级而还能兼有ROM的存储特性的存储器FRAM——铁电存储器。
2024/7/10
52
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
4
SPI接口的存储器应用
铁电存储器
FRAM(ferromagnetic random access memory)即铁电存储器。FRAM利用铁电晶体的铁电效应实现数据存储。铁电效应是指在铁电晶体上施加一定的电场时,晶体中心原子在电场的作用下运动,并达到一种稳定状态;当电场从晶体移走后,中心原子会保持在原来的位置。这是由于晶体的中间层是一个高能阶,中心原子在没有获得外部能量时不能越过高能阶到达另一稳定位置,因此FRAM保持数据不需要电压,也不需要像DRAM一样周期性刷新。由于铁电效应是铁电晶体所固有的一种偏振极化特性,与电磁作用无关,所以FRAM存储器的内容不会受到外界条件(诸如磁场因素)的影响,能够同普通ROM存储器一样使用,具有非易失性的存储特性。
FRAM的特点是速度快,能够像RAM一样操作,读写功耗极低,不存在如E2PROM的最大写入次数的问题;但受铁电晶体特性制约,FRAM仍有最大访问(读)次数的限制。
2024/7/10
53
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
4
SPI接口的存储器应用
铁电存储器FM25CL04
FM25CL04的封装图
2024/7/10
54
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
4
SPI接口的存储器应用
FM25CL04的管脚功能说明
管脚名称 管脚功能
/CS 片选端,低电平有效
/WP 写保护,低电平有效
/HOLD 保持,低电平有效
SCK 串行时钟
SI 串行数据输入
SO 串行数据输出
VDD 供电电源
VSS 地
2024/7/10
55
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
4
SPI接口的存储器应用
SPI接口
SPI是串行外设接口(Serial Peripheral Interface)的缩写。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚。
SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(主设备数据输入,从设备数据输出)、SDO(主设备数据输出,从设备数据输入)、SCLK(时钟信号,由主设备产生)、CS(从设备使能信号,由主设备控制)。一般情况下,主设备指的是MCU,从设备指的是存储器或其他支持SPI接口的功能器件。
SPI接口一共有四种工作模式。SPI的工作模式是按照时钟极性和时钟相位的不同组合分类的。CPOL为时钟的极性选择,CPHA为时钟的相位选择。
2024/7/10
56
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
4
SPI接口的存储器应用
SPI接口
SPI工作方式0时序图
2024/7/10
57
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
4
SPI接口的存储器应用
SPI接口
SPI工作方式1时序图
2024/7/10
58
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
4
SPI接口的存储器应用
SPI接口
SPI工作方式2时序图
正文页,文本为主的时候选用。有五级标题。文本框内可直接对齐。
左上角的数字可自行填写
2024/7/10
59
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
4
SPI接口的存储器应用
SPI接口
SPI工作方式3时序图
2024/7/10
60
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
4
SPI接口的存储器应用
FM25CL04的读写操作
FM25CL04与单片机的接口电路
FM25CL04是+3.3V供电的,单片机是+5V供电的,它们的电平基准不同,不能直接连接,需要外加电平转换元件。
74LVC2T45就是实现电平转换的芯片。该芯片由两个电源供电,利用DIR管脚来切换信号流方向。
2024/7/10
61
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
4
SPI接口的存储器应用
FM25CL04的写操作
FM25CL04在上电后禁止写操作。所以在对FRAM进行写操作之前,必须向芯片发送写使能指令(WREN)。WREN指令码为00000110b(二进制格式)。
所有写操作都开始于WREN 操作码紧跟的下一个操作码是WRITE指令,WRITE指令码为00000010b。此操作码跟随着一个两字节地址值,地址高三位忽略。完整13位数据指定写操作的起始地址。连续字节的数据能被连续写入,只要主机连续发布时钟,地址就会内部递增。如果到达最后一个地址1FFFh,地址计数器内容将翻转到0000h。数据先写入最高有效位。
写WREN指令时序图
2024/7/10
62
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
4
SPI接口的存储器应用
FM25CL04的写操作
存储器写时序图
2024/7/10
63
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
4
SPI接口的存储器应用
FM25CL04的读操作
在/CS下降沿后,主机发布一个读操作码(00000011b),跟随此指令的是一个两字节地址值,地址高3位不考虑。总的13个字节地址指定写操作的起始地址。操作码和地址发送完成后,SI线信号被忽略。主机发送8个时钟,每一时钟读取一个数据位。只要主机连续发布时钟地址就会内部递增。如果到达最后一个地址1FFFh,地址寄存器值将回转到0000h。数据将以最高有效位在前的方式读出。/CS上升沿终止读操作。
存储器读时序图
2024/7/10
64
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
4
SPI接口的存储器应用
FM25CL04的读写驱动程序
1.管脚映射及相关定义
2.读写使能WREN指令程序
3.写WRITE指令程序
4.写入数据程序
5.读READ指令程序
6.读出数据程序
参考 SPI程序代码.docx
2024/7/10
65
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
实训 使用PCF8591
2024/7/10
5
实训一:利用PCF8591制作一个简易的数字电压表
实训目标及要求
(1)掌握PCF8591 ADC部分的使用方法。
(2)掌握IIC接口的驱动方法。
实训内容:
利用单片机控制PCF8591测量0~+5V的直流电压,并将电压值显示在4位数码管上,要求显示数据精确到小数点后一位。0~+5V电压由电位器分压产生,调整电位器即可调整PCF8591的测量电压值。
2024/7/10
66
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
实训 使用PCF8591
2024/7/10
5
实训二:利用PCF8591制作一个简易的呼吸灯
实训目标及要求
(1)掌握PCF8591 DAC部分的使用方法。
(2)掌握IIC接口的驱动方法。
实训内容
利用单片机控制PCF8591驱动一个LED发光,使LED像呼吸机一样亮度逐渐升高至最亮,然后亮度再逐渐变弱直至熄灭,这样一直循环往复。
2024/7/10
67
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
谢谢!
2024/7/10
68
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
$$