单片机编程,语言C,请高手帮忙,财富值可以追加的哦

是基于STC89C52的信号发生器设计,产生5种波形(三角波,正弦波,方波,梯形波,锯齿波),数模转换模块式DAC0832和运放LM358组成的电路,利用查询或中断方式都行,先行谢过各位哈!

想做什么程序? 仅供参考:
连接:
单片机与DAC0823的连接,P0.0与D0,P0.1与D1,P0.2与D2…………P0.7与D7连接
单片机的ALE接口与74LS373的第11脚连接,74LS373的2脚与DAC0823的连接1和17脚连接,P0.0与D0,P0.1与D1,P0.2与D2…………P0.7与D7连接同时与74LS373的第3脚至9脚连接。
LM358为运算放大,连接:
DAC0823的11与LM3358的2连接,DAC08358的12与LM324的3连接,9与1连接。
程序如下:
输出锯齿
#include<reg52.h>
#include<absacc.h>
#define uchar unsigned char
#define DACO832A XBYTE[0XCFA0]
#define DACO832A XBYTE[0XCFA1]
void delay(int a)
{int b;
for(b=0;b<a;b++);}
void main(void)
{uchar b;
while(1)
{for(b=0;b<200;b++)
{adc0832a=b;
dac0832b=b;
delay(0x500);}
}
}
矩形波:
#include<reg52.h>
#include<absacc.h>
#define uchar unsigned char
#define DACO832A XBYTE[0XCFA0]
#define DACO832A XBYTE[0XCFA1]
void delay(unsigned int a)
{unsigned int b;
for(b=0;b<a;b++);}
void main(void)
{uchar b;
while(1)
{for(b=0;b<5;b++)
{adc0832a=0;
dac0832b=0;
delay(39000);}
for(b=0;b<5;b++)
{adc0832a=200;
dac0832b=200;
delay(39000);}
}
}

以上程序经过调试,结果验证是可以满足你的要求。
希望对你有用.追问

已经解决问题了,谢谢您啊

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-13
这个怎么说呢?单片机其实和C语言是可以一起学的,嗯哈,以前学效果应该不错,关键是要理解里面的内涵,重点的编程算法(编程思想),学习了一定程度之后,可以进一步学习一下数据结构,学习编程的话,关键就是掌握算法和数据结构就可以了,C语言和单片机也一样的
第2个回答  2012-05-13
问题呢?