基于AT89C51和DAC0832、LM324的波形发生器能发生正弦,方波,三角波,锯齿波四种波形用C语言编写,
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/06/11 04:05:37
基于AT89C51和DAC0832、LM324的波形发生器能发生正弦,方波,三角波,锯齿波四种波形用C语言编写,
#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit lcdrs=P3^2;sbit lcdrw=P3^3;sbit lcde=P3^4;sbit d=P2^7;sbit s1=P2^0;sbit s2=P2^1;sbit s3=P2^2;sbit cs=P3^5;sbit wr=P3^6;uchar slnum,a,ys,j;uint fre;void delay(uint z){ uint i,j; for(i=z;i>0;i--) for(j=110;j>0;j--);}void delay1(uint y){ uint i; for(i=y;i>0;i--); }uchar code tosin[256]={0x80,0x82,0x85,0x88,0x8b,0x8e,0x91,0x94,0x97,0x9a,0x9d,0xa0,0xa3,0xa6,0xa9,0xac,0xaf,0xb2,0xb6,0xb9,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80};void write_com(uchar com){ lcdrs=0; P1=com; delay(5); lcde=1; delay(5); lcde=0;}void write_data(uchar date){ lcdrs=1; P1=date; delay(5); lcde=1; delay(5); lcde=0;}void init(){ lcdrw=0; lcde=0; wr=0; cs=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80+0x00); write_data(0x77); //写wave write_data(0x61); write_data(0x76); write_data(0x65); write_data(0x3a); write_data(0x80+0x40); //写f write_data(0x66); write_data(0x3a);}void write_f(uint date) //写频率{ uchar qian,bai,shi,ge; qian=date/1000; bai=date/100%10; shi=date/10%10; ge=date%10; write_com(0x80+0x42); write_data(0x30+qian); write_data(0x30+bai); write_data(0x30+shi); write_data(0x30+ge); write_data(0x48); write_data(0x5a);}void xsf() //显示频率{ if(slnum==1) { fre=(1000/(9+3*ys)); write_f(fre); } if(slnum==2) { fre=(100000/(3*ys)); write_f(fre); } if(slnum==3) { fre=(1000/(15+3*ys)); write_f(fre); } }void keyscanf(){ d=0; if(s1==0) { delay(5); if(s1==0) { while(!s1); slnum++; if(slnum==1) { ys=0;write_com(0x80+0x05);write_data(0x73); //写sine:write_data(0x69);write_data(0x6e);write_data(0x65);write_data(0x20);write_data(0x20); } if(slnum==2) { ys=10;write_com(0x80+0x05);write_data(0x73); //写squraewrite_data(0x71);write_data(0x75);write_data(0x61);write_data(0x72);write_data(0x65); } if(slnum==3) { ys=0;write_com(0x80+0x05); //写trainwrite_data(0x74);write_data(0x72);write_data(0x61);write_data(0x69);write_data(0x6e);write_data(0x20); } if(slnum==4) { slnum=0;P1=0;write_com(0x80+0x05);write_data(0x20);write_data(0x20);write_data(0x20);write_data(0x20);write_data(0x20);write_data(0x20);write_com(0x80+0x42);write_data(0x20);write_data(0x20);write_data(0x20);write_data(0x20);write_data(0x20);write_data(0x20); } } } if(s2==0) { delay(5); if(s2==0) { while(!s2);ys++; } } if(s3==0) { delay(5); if(s3==0) { while(!s3);ys--; } }}void main(){ init(); while(1) { keyscanf(); if(slnum==1)//正弦波// { for(j=0;j<255;j++) { P0=tosin[j];delay(ys); } } if(slnum==2) //方波// { P0=0xff; delay1(ys); P0=0; delay1(ys); } if(slnum==3) //三角波// { if(a<128) { P0=a;delay1(ys); } else { P0=255-a;delay1(ys); } a++; } if(!(s1&s2&s3)) { xsf(); } }}
再问: 谢谢你的程序,请问仿真成功了吗?
再答: 成功的
再问: 谢谢你的程序,请问仿真成功了吗?
再答: 成功的
基于AT89C51和DAC0832、LM324的波形发生器能发生正弦,方波,三角波,锯齿波四种波形用C语言编写,
怎么求三角波、方波、正弦波、锯齿波的波形因数和波峰因数?
基于单片机设计一个波形发生器,可产生方波、三角波、正弦波,且波形幅度、周期可调.
在方波三角波发生器中,三角波的输出幅度是否可以超过方波的幅度?如果正负电源不对称,输出波形会发生什么变化?
利用集成运算放大器LM324设计一个简易函数信号发生器,要求能产生正弦波、方波和三角波三种波形.
protel 课程设计 波形发生器 设计任务:方波发生器;三角波发生器;电源电路设计;
波形发生器电路,分别产生100HZ,1000HZ,10000HZ的方波,三角波,正弦波,用分立元件和集成运放
函数信号发生器设计:设计产生一定幅度和频率的正弦波、三角波、方波及锯齿波、阶梯波等电压信号波形的电
英语翻译本文以89S52为核心,结合DAC0832实现程序控制产生正弦波、三角波、方波和锯齿波四种常用低频信号发生器.可
方波-三角波和矩形波-锯齿波发生电路设计
函数发生器 设计任务:1、 输出波形:正弦波、三角波和方波 2、 频率范围:20HZ~20KHZ 3、 输出电压:U0
我想设计一个函数信号发生器要求:设计一个能输出正弦波、 方波和三角波等波形的简易函数信号发生器,能产生从20Hz~2KH