单片机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
我发给你一份。留个联系方式追问

[email protected]

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