AT89C51与DAC0832输出方波、正弦波、三角波的C语言程序是什么?

AT89C51与DAC0832输出方波、正弦波、三角波的C语言程序是什么?,第1张

#include<reg52.h>

#define  uchar unsigned char

#define  uint  unsigned int

#define DAdata  P0//DA数据端口

可以产生弦波、方波、三角波、三角波、梯形波及其他任意波形,波形的频率(最大790HZ)和幅度在一定范围内可任意改变。波形和频率的改变通过软件控制,幅度的改变通过硬件实现。

正弦波是频率成分最为单一的一种信号,因这种信号的波形是数学上的正弦曲线而得名。任何复杂信号——例如音乐信号,都可以看成由许许多多频率不同、大小不等的正弦波复合而成。振荡电路是电子技术的一个重要组成部分,正弦波振荡器广泛应用于广播、电视、通讯,工业自动控制,测量表计, 以及高频加热,超声波探伤等等方面。

#include<reg51.h>

unsigned char code table[]={

0xc0,0xf9,0xa4,0xb0,

0x99,0x92,0x82,0xf8,

0x80,0x90}// 数码管段选

unsigned char aa,second

sbit LED=P1^0// 小灯

void init() //初始化

void keypress() //按键识别

void delay(unsigned int z)//延时

void main()

{

init()

LED = 1

while(1)

{

if(aa==20)

{

aa=0

second++

LED=~LED

if(second==21)

{

second=0

}

}

keypress()

P0=table[second%10]

P2=table[second/10]

}

}

void init()

{

TMOD=0x01//定时器T0的方式1

TH0=(65536-50000)/256 //高8位

TL0=(65536-50000)%256 //低8位

EA=1 //中断总允许打开

ET0=1 //定时器T0允许打开

TR0=1 //启动定时器T0

aa=0

second=0

}

void delay(unsigned int z)

{

unsigned int x,y

for(x=zx>0x--)

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

}

void timer0() interrupt 1

{

TH0=(65536-50000)/256

TL0=(65536-50000)%256

aa++

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10967970.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存