DA转换实验MAX531及X5045.docx
- 文档编号:11401275
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:15
- 大小:111.58KB
DA转换实验MAX531及X5045.docx
《DA转换实验MAX531及X5045.docx》由会员分享,可在线阅读,更多相关《DA转换实验MAX531及X5045.docx(15页珍藏版)》请在冰豆网上搜索。
DA转换实验MAX531及X5045
实验八D/A转换实验X5045实验(二选一)
一、实验预习
1.熟悉单片机串行扩展技术中几种主要的总线。
2.熟悉单片机仿真器的应用。
3.熟悉烧写器的应用。
实验预习问题:
1.MAX531D/A转换器的转换位数、极性、与单片机的数据传输采用并行还是串行方式?
12位,双极性,串行
具体:
MAX531位12位双极性的D/A转换芯片,它的工作方式是串行输入的,从MAX531的时序图可知:
当片选=1,VOUT处于高阻状态。
当片选=0则允许MAX531 D/A转换。
从DIN输入的串行数据共16位,其中高4位是用于级连用的,若存在级连,则高4位便从移位寄存器移出,从VOUT往下一级MAX531输出。
除了高4位外,余下的12位数据便是D/A转换的数据。
12位数据通过数据总线,从移位寄存器并行传送至DAC寄存器,再传送至12位D/A转换器,作为D/A转换的数据。
由于从DIN输入一共16位数据,因此需要16个SCLK时钟才能全部被接收,而每一位的数据都是在SCLK时钟的上升沿从MAX531的DIN串行输入。
其程序为:
2.X5045在单片机系统中起到哪些作用,eeprom的作用是什么,x5045与单片机的数据传输采用并行还是串行方式?
X5045是一种集合了看门狗、电压监控和串行EEPROM三种功能于一身的器件。
上电复位功能:
在系统上电时产生一个足够长时间的复位信号,以确保单片机正常工作前,系统电路已处于稳定状态。
看门狗功能:
如果在规定的时间内单片机没有在CS引脚产生规定的电平变化(喂狗信号),芯片内的看门狗电路将产生复位信号。
利用该功能,可让单片机死机后自动复位并开始工作。
电压检测:
当电源电压下降到一定的值后,虽然单片机仍能工作,但可能已经不能稳定工作了,此时X5045将产生复位信号,直到电压恢复正常后,才能正常工作。
串行EEPROM:
X5045自带512字节的数据存储空间,数据可掉电保存。
(使用方法
1)上电复位:
当器件通电并超过规定值时,X5045内部的复位电路将会产生一个约200ms的复位脉冲,使单片机正常复位。
2)电压检测:
工作过程中,X5045能不断检测VCC端的电压,在电压下降到一定值后,将产生一个复位脉冲,使单片机停止工作,这个复位脉冲一直有效,直到VCC下降到1V以下,整个系统停止工作。
如果VCC在下降后又升高,则当超过规定值后200ms,复位信号消失,单片机可以继续工作。
3)看门狗定时器:
看门狗定时器电路通过检测WDI端的输入来判断单片机工作是否正常,在规定的时间内,单片机必须在WDI端口产生一个由高到低的电平变化。
否则,X5045将产生一个复位信号。
4)SPI总线串行EEPROM,EEPROM除了可以由WP引脚置高电平保护外,还可以通过软件保护,通过设置X5045的状态寄存器可以改变看门狗定时器的定时周期和被保护块的大小。
在写操作之前,先要检测WIP标志位,WIP=1表示X5045正忙于向EEPROM写数据,此时不能向X5045写数据,WIP=0表示可以向X5045写数据。
WEL为写使能锁存器的状态位。
WEL=1表示允许写,WEL=0表示禁止写。
5)芯片操作:
X5045有6条操作指令,所有的指令、地址和数据都是以高位在前的方式传送的,输入的数据在CS变为低电平后的第一个上升沿被采样。
向存储器写入数据的协议:
首先将CS拉低以选中芯片,然后写入WREN(写允许)指令,接着将CS拉高,然后再次将CS拉低,随后写入WRITE指令。
WRITE指令的第3位用于确定存储器的上半区和下半区。
如果没有在WREN和WRITE两个指令之间将CS的信号变为低电平,WRITE指令将被忽略。
最后需要将CD的信号变为高电平。
从存储器读出数据的协议:
首先将CS拉低以选中该芯片,然后写入READ(读出)指令,READ指令的第3位用于确定存储器的上半区和下半区。
在读操作指令和地址码发送完毕后,所选中地址单元的数据将通过引脚SO送出,最后须将CS拉高。
)
EEPROM(ElectricallyErasableProgrammableRead-OnlyMemory),电可擦可编程只读存储器--一种掉电后数据不丢失的存储芯片。
EEPROM可以在电脑上或专用设备上擦除已有信息,重新编程。
一般用在即插即用。
(EEPROM(电可擦写可编程只读存储器)是可用户更改的只读存储器(ROM),其可通过高于普通电压的作用来擦除和重编程(重写)。
不像EPROM芯片,EEPROM不需从计算机中取出即可修改。
在一个EEPROM中,当计算机在使用的时候是可频繁地重编程的,EEPROM的寿命是一个很重要的设计考虑参数。
EEPROM的一种特殊形式是闪存,其应用通常是个人电脑中的电压来擦写和重编程。
DRAM断电后存在其中的数据会丢失,而EEPROM断电后存在其中的数据不会丢失。
另外,EEPROM可以清除存储数据和再编程。
一般用于即插即用(Plug&Play);常用在接口卡中,用来存放硬件设置数据;也常用在防止软件非法拷贝的"硬件锁"上面。
)
x5045与单片机的数据传输采用串行方式
(书面预习,写在实验报告上)
二、实验目的
1.具备自学芯片资料(datasheet)的能力。
2.具备单片机最小系统电路图的分析能力。
3.能够在硬件电路上调试程序。
三、演示实验
128*64液晶显示器演示实验。
演示实验关注点:
了解较为复杂C51程序的编写及设备驱动程序的编写。
四、实验内容
自制实验开发板布局如上图所示。
单片机部分最小系统电路原理图如下。
图中P3~P6为单排针,将单片机的P0~P3口引出。
MAX531部分电路原理图如下。
X5045部分电路原理图如下。
注意以上电路原理图网络标号的用法。
仔细阅读原理图,记录单片机与max531、单片机与X5045的连接关系,完成:
1.选择max531,完成输出三角波的功能。
2.选择X5045,完成对eeprom的功能验证。
五、实验步骤
1.选择max531,编写程序,编译排除语法错误,接仿真器调试,产生三角波,周期,幅值,起始相位可自定。
2.选择X5045,编写程序,编译排除语法错误,接仿真器调试,完成对X5045的写、读操作,程序可说明eeprom是否正常工作。
MAX531:
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
unsignedintdat;//dat531的转化值
sbitdin=P1^0;
sbitsclk=P1^1;
sbitcs=P1^2;
voiddelay(uintt)//延时
{
ucharj;
while(t--)
{
for(j=0;j<255;j++);
}
}
voidda_out(unsignedintt)
{unsignedchardatai;
unsignedintdataj;
j=t;
sclk=0;
cs=0;
//j=j<<4;
for(i=0;i<16;i++)
{
din=j&0x8000;//在双极性模式带阻性负载,DAC代码设置为800H
sclk=0;
sclk=1;//产生时钟上升沿
j=j<<1;//数据移位进入DAC寄存器
}
cs=1;//SCLK被禁止且DIN端的数据不能进入D/A
din=1;
sclk=1;
}
voidmain()
{
dat=0x900;
while
(1)
{
da_out(0x801);
delay(10);
}
}
X5045:
//在实际硬件设计中可以将ep_wip脚接高电平
//在x5045的测试有无写入时,先执行程序写入;在断电一会儿,上电看是否已经写入。
#include
//#include
sbitep_sck=P2^2;
sbitep_si=P2^3;
sbitep_so=P3^5;
sbitep_cs=P3^4;
//向5045中写入数据
voidxinput(unsignedcharv)
{
unsignedchardatav1;
for(v1=0;v1<8;v1++)
{
ep_sck=0;//拉低时钟
ep_si=v&0x80;//送出一位数据
ep_sck=1;//拉高时钟触发移位寄存器
v=v<<1;//准备输出下一位
}
ep_si=1;
}
//数据的读出
//辅助函数:
从5045输入一个字节8位数据,首先输出高位。
unsignedcharxout()
{
unsignedchardatav1,x,y;
ep_sck=0;//拉低时钟
for(v1=0;v1<8;v1++)
{
ep_sck=1;//拉高时钟
x=x<<1;//输出字节先左移
y=ep_so;//获得一位输出
x=x|y;//组装输出结果
ep_sck=0;
}
returnx;
}
//辅助函数:
写结束测试
voidwip_poll()
{
unsignedchardatav;
do
{
ep_cs=1;
ep_cs=0;
xinput(0x05);//准备读状态寄存器
v=xout();
ep_cs=1;
v=v&0x01;
}
while(v==1);//测试寄存器低位,为零则写结束。
}
//辅助函数:
打开写开关,所有写操作前必须运行本程序,命令字为06H
voidwren()
{
//ep_wip=1;//打开硬件写开关
ep_cs=1;
ep_cs=0;
xinput(0x06);//发出打开开关命令
ep_cs=1;
}
//辅助函数:
关闭写开关,所有写操作后必须运行本程序,以防止误写,命令字为04H
voidwrdi()
{
ep_cs=1;
ep_cs=0;
xinput(0x04);
ep_cs=1;
//ep_wip=0;//关闭硬件写控制I/O
}
//辅助函数:
写状态寄存器,包含WREN_CMD命令。
//功能:
改变块锁定控制位BL1,BL0(D3,D2)及看门狗超时控制位WD1,WD0(D5,D4)
voidwrsr(unsignedcharx)
{
wren();//打开写开关
ep_cs=1;
ep_cs=0;
xinput(0x01);//送入命令
xinput(x);
ep_cs=1;
wip_poll();//测试写结束
wrdi();//关闭写开关
}
//辅助函数:
读状态寄存器。
unsignedcharrdsr()
{
unsignedchardatax;
ep_cs=1;
ep_cs=0;
xinput(0x05);
x=xout();
ep_cs=1;
returnx;
}
//单字节写子程序,使用中调用wren()。
如果使用了块锁定,还需要先写状态寄存器解除锁定。
//函数带有形参wrdat和wradd,前者为写入的字符型数据,后者为整形地址。
voidbyte_write(unsignedcharwrdat,unsignedintwradd)
{
unsignedchardatax;
wren();
ep_cs=1;
ep_cs=0;
if(wradd<256)//据输入地址决定写前256地址块或者后256块
xinput(0x02);//02表示使用低256区块
else
xinput(0x0a);//0a表示使用高256区块
x=wradd%256;//高位地址已经输入,此处只需要输入低8位地址
xinput(x);
xinput(wrdat);
ep_cs=1;
wip_poll();
wrdi();
}
//单字节读子程序,本函数返回字符型结果
unsignedcharbyte_read(unsignedintrdadd)
{
unsignedchardatax;
ep_cs=1;
ep_cs=0;
if(rdadd<256)//根据要读取的地址写入命令字
xinput(0x03);
else
xinput(0x0b);
x=rdadd%256;
xinput(x);
x=xout();
ep_cs=1;
return(x);
}
//双字节写子程序。
使用中调用wren()。
如果使用了块锁定,还需要先解除锁定。
//函数带有形参wrdat1和wradd1,前者为写入的整型数据,后者为整形地址。
voidword_write(unsignedintwrdat1,unsignedintwradd1)
{
unsignedchardatax;
wren();
ep_cs=1;
ep_cs=0;
if(wradd1<256)
xinput(0x02);//根据地址写入命令字
else
xinput(0x0a);
x=wradd1%256;
xinput(x);
x=wrdat1>>8;//写入高字节
xinput(x);
x=wrdat1%256;//写入低字节
xinput(x);
ep_cs=1;
wip_poll();
wrdi();
}
//双字节读子程序,本函数返回整形结果
unsignedintword_read(unsignedintrdadd1)
{
unsignedchardatax;
unsignedintdatarddat1;
ep_cs=1;
ep_cs=0;
if(rdadd1<256)
xinput(0x03);
else
xinput(0x0b);
rddat1=rdadd1%256;
xinput(rddat1);
x=xout();
rddat1=256*x;
x=xout();
rddat1=rddat1+x;
ep_cs=1;
return(rddat1);
}
//看门狗清除函数
voidrst_wdog()//如果开启了看门狗使用本函数定时清除它的计数器
{
ep_cs=0;//在X5045的片选上制造一个脉冲
ep_cs=1;
}
voidmain()
{
unsignedchara,b,c,d;
byte_write(1,0x00);
byte_write(8,0x02);
byte_write(3,0x03);
byte_write(4,0x04);
a=byte_read(0x00);
b=byte_read(0x02);
c=byte_read(0x03);
d=byte_read(0x04);
while
(1);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DA 转换 实验 MAX531 X5045