单片机8051 D/A转换实验 利用DAC0832,编制程序产生三角波和梯形波 单片机编程

如题所述

第1个回答  2012-12-06
用定时器来实现吧,三角波其实也可以用积分器实现。
第2个回答  推荐于2017-05-17
这是三角波的C语言程序:
#include<reg52.h>
##include<stdio.h>
#define DAC0832Addr 0x7ffff //0832地址
#define uchar unsigned char
#define uint unsogned int
Uart_Init(); //申明输出口初始化子函数
sbit P26=0XA6;
sbit P27=0XA7;
void TransformData(ucahr c0832data); //转换函数
void delay(); //延时
main()
{
bit upFlag=1;
xdata cdigital=1;
Uart_Init();
P0=P1=P2=P3=0xff;
delay();
while(1)
{transformData(cDigital); //进行数模转换
if((cdigital==255)|(cDigital==0))upFlag=~upFlag;//标志位取反
if(upFlag==1){cDigital++;}
else(cDigital--;)
delay();
printf("digital is %d \n",cDigital);
}
}

void TransformData(ucahr c0832data)
{
*((uchar xdata *)DAC0832Addr)=c0832data;
}
Uart_Init()
{
SCON=0X52;
TMOD=0X21;
TCON=0X69;
TH1=0XF3;
}
void delay()
{
uint i;
for(i=0;i<200;i++);
}本回答被网友采纳
第3个回答  2012-12-07
我发给你一份。留个联系方式追问

zhaoyucheng@hotmail.com

本回答被提问者采纳
第4个回答  2012-12-06
可以有

利用单片机和DAC0832控制输出方形波,锯齿波,三角波,并通过示波器显示...
unsigned char i,sqar_num=128; \/\/最大值100,默认值50 unsigned char cho=0; \/\/0:正弦波。1:方波。2:三角波。3:锯齿波。unsigned char num=0;unsigned char TIME0_H=0xff,TIME0_L=0xd9; \/\/定时器0的初值设置;全局变量.对应正弦波,锯齿波50HZ sbit chg= P1^0; \/\/...

编写一个汇编程序,用DAC0832芯片实现D\/A转换产生 锯齿波
INC DPTR ;地址加一 MOVX @DPTR,A ;启动转换 INC A ;数据加一 CJNE A,#0FFH,LOOP1 ;如果没到峰值,循环转换 MOV A,#00H ;赋A=0 DJNE B,LOOP ;x显示锯齿波 RET 这是51单片机的 和8086差不多 可根据这个程序修改 纯手打的 包括注释 希望楼主采纳 !!O(...

【51单片机】D\/A、A\/D转换
首先,D\/A转换器的输出形式有两种:电压输出和电流输出。电流输出类型的转换器通常需要在输出端加装运算放大器构成的I-V转换电路,以实现电压输出。其次,D\/A转换器与单片机的接口形式,早期多采用并行传输接口,但现在也逐渐引入带有串行口的D\/A转换器,如SPI接口。在选择单片D\/A转换器时,需根据系统...

用两片DAC0832和单片机实现信号发生器,如何搭接电路
采用一片AT89C51单片机和两片DAC0832数模转换器组成数字式低频信号发生器,它具有价格低、性能高和在低频范围内稳定性好、操作方便、体积小、耗电少等特点。信号发生器采用数字波形合成技术通过硬件电路和软件程序相结合可输出自定义波形如正弦波、方波、三角波、三角波、梯形波及其他任意波形,波形的频率和幅度...

8031和8051主要有什么区别?各有什么特点?
关键词:移相 单片机 D\/A转换 计数器两个同频信号之间的移相与实现方式所谓移相是指两种同频的信号,以其中的一路为参考,另一路相对于该参考作超前或滞后的移动,即称为是相位的移动。两路信号的相位不同,便存在相位差,简称相差。若我们将一个信号周期看作是3600,则相差的范围就在0°~360°。要实现移相,通常...

基于单片机设计一个波形发生器,可产生方波、三角波、正弦波,且波形幅度...
DAC0832是具有20条引线的双列直插式CMOS器件,它内部具有两级数据寄存器,完成8位电流D\/A转换,故不需要外加电路。0832是电流输出型,示波器上显示波形,通常需要电压信号,电流信号到电压信号的转换可以由运算放大器LM358实现,用两片LM358可以实现双极性输出。 单片机向0832发送数字编码,产生不同的输出。先利用采样定理对...

《单片机C语言程序设计实训100例——基于8051+Proteus仿真》 第03...
实例66:数码时钟设计 实例67:用LED数码管显示计数器T0的计数值 实例68:静态显示数字“59”单片机c语言编程100个实例目录3 键盘控制*键盘控制* *键盘控制 *键盘控制 *\/ 实例69:无软件消抖的独立式键盘输入实验 实例70:软件消抖的独立式键盘输入实验 实例71:CPU控制的独立式键盘扫描实验 ...

汇编语言
(1)LCALL LABEL (2)ACALL LABEL21.汇编语言程序设计分哪几个步骤?22.试分别说明采用高级语言及汇编语言编程的优缺点。23.采用程序流程图有什么好处?存在哪些不足之处?24.什么叫“伪指令”?伪指令与指令有什么区别?25.MCS-51系列单片机有哪几条伪指令?它们的用途是什么?26.基本程序结构有哪几部分构成?各有...

用89C51单片机设计多功能低频函数信号发生器,能产生方波、正弦波、三角...
DAC0832是具有20条引线的双列直插式CMOS器件,它内部具有两级数据寄存器,完成8位电流D\/A转换,故不需要外加电路。0832是电流输出型,示波器上显示波形,通常需要电压信号,电流信号到电压信号的转换可以由运算放大器LM358实现,用两片LM358可以实现双极性输出。 单片机向0832发送数字编码,产生不同的输出。先利用采样定理对...

设计并制作一个信号发生器要能产生正弦波周期性波形还能显示当前频率值...
DAC0832是具有20条引线的双列直插式CMOS器件,它内部具有两级数据寄存器,完成8位电流D\/A转换,故不需要外加电路。0832是电流输出型,示波器上显示波形,通常需要电压信号,电流信号到电压信号的转换可以由运算放大器LM358实现,用两片LM358可以实现双极性输出。单片机向0832发送数字编码,产生不同的输出。先...

相似回答