实验七DAC0832数模转换实验Word文档下载推荐.docx
- 文档编号:18060132
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:12
- 大小:78.34KB
实验七DAC0832数模转换实验Word文档下载推荐.docx
《实验七DAC0832数模转换实验Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《实验七DAC0832数模转换实验Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
Xfer:
数据传送控制信号输入端,低电平有效。
WR2:
DAC寄存器写选通控制端。
当XFER*=0,WR2*=0时,输入寄存器状态传入DAC寄存器中。
Iout1:
电流输出1端,当数据全为1时,电流输出最大;
当数据全为0时,输出电流最小。
Iout2:
电流输出2端。
DAC0802具有Iout1+Iout2=常数的特性。
Rfb:
反馈电阻端。
Vref:
基准电压输入端,是外加的高精度电压源,它与芯片内的电阻网络相连接,该电压范围为-10V~10V;
VCC和GND:
芯片的电源和接地端。
DAC内部有两个寄存器,而这两个寄存器的控制信号有五个,输入寄存器有LIE、CS、WR1控制,DAC寄存器由WR2、Xref控制,用软件指令控制这五个控制端可以实现三种工作方式:
直通方式,单缓冲方式,双缓冲方式。
直通方式是将两个寄存器的五个控制端预先置为有效信号,两个寄存器都开通,只要有数字信号输入就立即进入DA转换。
单缓冲方式是使DAC0832的两个输入寄存器中由一个处于直通方式,另一个处于受控方式,可以将WR2和Xref相连接到地上,并把WR1接到80C51的WR上,LIE接高电平,CS接高位地址或地址译码的输出端上。
双缓冲方式把DAC0832的输入寄存器和DAC寄存器都接成受控方式,这种方式可以用于多路模拟量要求同时输出的情况下。
三种工作方式的区别是:
直通方式不需要选通,直接进行DA转换;
单缓冲方式一次选通;
双缓冲方式二次选通。
三、实验步骤
1、单片机最小应用系统1的P1口接DAC0832的DI0~DI7,单片机最小应用系统的P2.0、WR分别接DA转换的P2.0、WR,Vref接-5V,DA转换的out接示波器探头。
2、用串行数据线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,主要仿真器的方向:
缺口朝上。
3、打开keiluvision2仿真软件,首先建立本实验的项目文件,接着添加DA转换程序。
4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400.
5、打开模块电源和总电源,点击开始调试按钮,点击run按钮运行程序。
观察示波器测量输出波形的周期和幅度。
四、实验内容
1、在硬件不改动的情况下,请编程实现输出波形为锯齿波及三角波、正弦波。
参考程序:
1、矩形波参考程序:
#include"
reg51.h"
absacc.h"
#defineDACXBYTE[0xFEFF]
voiddeley(unsignedintk)
{
unsignedinti;
for(i=0;
i<
k;
i++);
}
voidmain()
unsignedintk;
unsignedintdout;
while
(1)
{DAC=0x00;
deley(10);
DAC=0xff;
2、三角波参考程序:
for(k=0;
k<
0xff;
k++)
DAC=k;
for(k=0xff;
k>
0;
k--)
3、锯齿波参考程序:
4、键盘控制波形产生程序:
intrins.h"
#defineucharunsignedchar;
#defineuintunsignedint;
unsignedcharaa;
unsignedintcodesintab[]={
0x80,0x86,0x8C,0x92,0x98,0x9E,0xA5,0xAA,0xB0,0xB6,0xBC,0xC1,0xC6,0xCB,0xD0,0xD5,
0xDA,0xDE,0xE2,0xE6,0xEA,0xED,0xF0,0xF3,0xF5,0xF8,0xFA,0xFB,0xFD,0xFE,0xFE,0xFF,
0xFF,0xFF,0xFE,0xFE,0xFD,0xFB,0xFA,0xF8,0xF5,0xF3,0xF0,0xED,0xEA,0xE6,0xE2,0xDE,
0xDA,0xD5,0xD0,0xCB,0xC6,0xC1,0xBC,0xB6,0xB0,0xAA,0xA5,0x9E,0x98,0x92,0x8C,0x86,
0x7F,0x79,0x73,0x6D,0x67,0x61,0x5A,0x55,0x4F,0x49,0x43,0x3E,0x39,0x34,0x2F,0x2A,
0x25,0x21,0x1D,0x19,0x15,0x12,0x0F,0x0C,0x0A,0x07,0x05,0x04,0x02,0x01,0x01,0x00,
0x00,0x00,0x01,0x01,0x02,0x04,0x05,0x07,0x0A,0x0C,0x0F,0x12,0x15,0x19,0x1D,0x21,
0x25,0x2A,0x2F,0x34,0x39,0x3E,0x43,0x49,0x4F,0x55,0x5A,0x61,0x67,0x6D,0x73,0x79};
sbitP3_0=P3^0;
sbitP3_6=P3^6;
voiddeley(unsignedcharz);
voidju();
voidsan();
voidchi();
voidsin();
ucharkeyscan();
//*主函数*//
P3_0=0;
P3_6=0;
aa=keyscan();
if(aa==1)
ju();
if(aa==2)
san();
if(aa==3)
chi();
if(aa==4)
sin();
}
//*延时子程序*//
voiddeley(unsignedcharz)
unsignedintx,y;
for(x=z;
x>
x--)
for(y=110;
y>
y--);
voidju()
P1=0x00;
P1=0xff;
//*三角波产生程序*//
voidsan()
P1=k;
//*锯齿波产生程序*//
voidchi()
P1=P1+1;
if(P1==0xff)
//*正弦波产生程序*//
voidsin()
unsignedintkk;
for(kk=0;
kk<
=127;
kk++)
P1=sintab[kk];
//*键盘扫描程序*//
ucharnum,temp;
ucharkeyscan()
unsignedcharii;
for(ii=0;
ii<
4;
ii++)
P2=_crol_(0xfe,ii);
temp=P2;
temp=temp&
0xf0;
while(temp!
=0xf0)
{
deley(5);
switch(temp)
case0xee:
num=1;
break;
case0xde:
num=2;
case0xbe:
num=3;
case0x7e:
num=4;
case0xed:
num=5;
case0xdd:
num=6;
case0xbd:
num=7;
case0x7d:
num=8;
break;
case0xeb:
num=9;
case0xdb:
num=10;
case0xbb:
num=11;
case0x7b:
num=12;
case0xe7:
num=13;
case0xd7:
num=14;
case0xb7:
num=15;
case0x77:
num=16;
}
=0xf0)
returnnum;
汇编语言:
矩形波:
ORG0000H
AJMPSTART
ORG0030H
START:
MOVDPTR,#0FEFFH
LP:
MOVA,#0FFH
MOVX@DPTR,A
LCALLDELAY
MOVA,#00H
SJMPLP
DELAY:
MOVR3,#11H
D1:
NOP
NOP
DJNZR3,D1
RET
END
三角波:
LP0:
MOVA,#00H;
MOVR2,#0FFH;
LP1:
INCA;
DJNZR2,LP1
MOVA,#0FEH
MOVR2,#0FDH;
LP2:
DECA
DJNZR2,LP2;
LJMPLP0
锯齿波:
流程图:
六、电路图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 DAC0832 数模 转换