问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

急求,,能给一份DAC0832和89c51单片机的仿真吗,能够完成输出三角波,方波,正弦波。有程序,

发布网友 发布时间:2022-04-23 13:46

我来回答

2个回答

热心网友 时间:2023-10-16 10:22

#include <reg51.h>

#define uchar unsigned char

#define uint unsigned int

#define DAC0832 P2          //将DAC0832定义为P2口;

#define ALL 65536           //将ALL定义为65536;

#define Fosc 12000000       //频率为12M

uchar TH_0,TL_0,flag1,flag=0;

uint  FREQ=100,num; //起始频率设定为100HZ

float temp;

uchar code sin_num[]={     

0,0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,2,2,2,

2,    3,  3,  4,  4,  4,  5,  5,  6,  6,  7,7,8,8,9,9,

10,   10, 11, 12, 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 20, 21,

22,   23, 24, 25, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36,37,

38,   39, 40, 41, 42, 44, 45, 46, 47, 49, 50, 51, 52, 54, 55, 56,

57,   59, 60, 61, 63, 64, 66, 67, 68, 70, 71, 73, 74, 75, 77, 78,

80,   81, 83, 84, 86, 87, 89, 90, 92, 93, 95, 96, 98, 99, 101,102,

104,  106,    107,    109,    110,    112,    113,    115,    116,    118,    120,121,123,124,126,128,

129,  131,    132,    134,    135,    137,    139,    140,    142,    143,    145,    146,148,    149,151,153,

154,  156,    157,    159,    160,    162,    163,    165,    166,    168,    169,171,172,174,175,177,

178,  180,    181,    182,    184,    185,    187,    188,    189,    191,    192,194,195,196,198,199,

200,  201,    203,    204,    205,    206,    208,    209,    210,    211,    213,214,215,216,217,218,

219,  220,    221,    223,    224,    225,    226,    227,    228,    229,    230,230,231,232,233,234,

235,  236,    237,    237,    238,    239,    240,    240,    241,    242,    243,243,244,245,245,246,

246,  247,    247,    248,    248,    249,    249,    250,    250,    251,    251,    251,252,252,253,253,

253,  253,    254,    254,    254,    254,    254,    255,    255,    255,    255,    255,255,255,255,255

};

/***********端口设置***************/

sbit cs=P3^6;

sbit change=P3^2; 


/***********延时函数:延时1ms*********/

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

/***********初始化函数***********/

void init()

{

TMOD=0X01;   //设定工作模式 1

temp=ALL-Fosc/12.0/256/FREQ; //定时器初值计算?

TH_0=(uint)temp/256;

TL_0=(uint)temp%256;

EA=1;     //开总中断

EX0=1;    //开外部中断

IT0=1;    //设定下降沿有效工作方式

ET0=1;    //设定定时器工作在定时方式

TR0=1;    //开定时器中断


/************切换波形函数********************/

void changefreq(void)

{

if(change==0)

{flag++;    if(flag==4) {flag=0;num=0;}}

TH_0=(uint)temp/256;

TL_0=(uint)temp%256;

}  

/***********三角波发生函数**********************/

void sanjiaobo(void)

{

for(num=0;num<255;num++)

{cs=0;DAC0832=num;cs=1;}

for(num=255;num>0;--num)

{cs=0;DAC0832=num;cs=1;}

}

/************方波发生函数*********************/

void fangbo(void)

{

cs=0;DAC0832=0XFF;cs=1;

for(num=0;num<255;num++);

cs=0;DAC0832=0X00;cs=1;

for(num=255;num>0;num--);

}

/************锯齿波发生函数**********************/

void juchibo(void)

{

cs=0;DAC0832=++num;cs=1;

}

/*************正弦波发生函数********************/

void zhengxianbo(void)

{

for(num=0;num<255;num++)

{cs=0;DAC0832=sin_num[num];cs=1;}

for(num=255;num>0;num--)

{cs=0;DAC0832=sin_num[num];cs=1;}

}

/*************外部中断服务函数***********************/

void ext0() interrupt 0

{

changefreq(); //引用频率改变函数

}

/**************定时器中断函数****************/

void timer0() interrupt 1

{

TH0=TH_0;TL0=TL_0;  //重新装初值

TR0=0;

switch(flag)

{

case 0: {sanjiaobo();TR0=1;break;}  

case 1: {fangbo();TR0=1;break;}

case 2: {juchibo();TR0=1;break;}

case 3: {zhengxianbo();TR0=1;break;} 

default: ;

}

}


/**************主函数********************/

void main()

{

init();

while(1);

}

热心网友 时间:2023-10-16 10:22

朋友,我这儿有一个输出三角波的,有程序和仿真,其他波形的,自己仿照着写吧。。希望对您有帮助。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
企业培训学到了什么 培训感悟简短 有关培训的感悟 通过培训学到什么 培训你学到了什么 领导问培训学到什么怎么回复 Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 雪花配黑元宝出什么颜色? 花元宝鸽怎么配出来的,短嘴点子鸽子,肉鸽子 JUc239女主角 鸽子种类名称及图片 元环鸽子,和元宝鸽子图片 请问小区地下停车场位的停车位的划线是按内线还是外线。 在拼多多想拍。可没有收藏。那该怎么办? 白元宝配黑元宝出鸽子什么颜色 东莞大朗路边停车位要收费吗 拼多多商品收藏以前收藏的,现在如果取消的话,好友还能看到吗?_百度... 拼多多收藏的商店和商品怎么没有了?还有以前下的单也没有了,这是怎么... 停车场里的停车位是要哪个部门来画。还是自己就可以画,要不要手续,审批啥的? 拼多多别人收藏了我的商品,当有人拼这个商品的时候,系统会通知收藏的这个人吗? 4.5米宽小区道路如何划线,有什么要求? 拼多多商家哪里可以看商品有没有人收藏? 停车场车位线怎么划线 拼多多有点击有收藏没有转化怎么办? 停车场划线都有什么要求? 热熔标线车位,车位划线多少钱一个,热熔材 怎么拼多多的商品收藏?安全吗? 鸽子有什么特点 iphone4s的序列号怎么查 ps里怎样用图层蒙版让一张风景图印到鸽子身上 怎么写代码使单片机引脚电压在几秒钟内从5v降到0v 鸽子多长时间出壳 若想利用DAC0832芯片输出正弦波,编制相应程序 鸽子多少天下一次蛋? 红鸽子和黑雨点配出来怎样的鸽子图片 迷茫看什么书? 黑元宝配红二线元宝出什么颜色的鸽子? 用C语言编写一段程序,使用查表的方式使单片机控制DAC0832产生一个电压值在0~5V之间的方波。 鸽子多长时间产一次蛋,一个月能产多少个蛋 玉米浆饼的家常做法,玉米浆饼的做法大全,如何做 玉米浆饼的正宗做法,玉米浆饼怎样做才好吃的做法步骤 香煎玉米浆饼的做法,香煎玉米浆饼怎么做好吃 玉米浆蒸饼的做法,玉米浆蒸饼怎么做好吃 新鲜 玉米浆的做法 谢谢大家:新鲜玉米饼的做法?? 新鲜的玉米怎么做饼 新鲜玉米饼怎么做如何做好吃