看看这个,单片机用的是ADUC848,AD转换输出正弦波,和PWM原理类似。
2、源程序清单
DACCONEQU0xfD;定义模数转换控制器
DACHEQU0xfc;定义模数转换数据寄存器高8位
DACLEQU0xfb;定义模数转换数据寄存器低8位
ORG0000H
LJMPMAIN
ORG0200H
MAIN:MOVDACCON,#0fH;DACoperation
CLRA;
MOVDACH,A;模数转换高八位清零
PRG3:MOVR0,#09H;正弦波
MOVR4,#40H
LP11:MOVA,R0
MOVCA,@A+PC
MOVDACL,A;2
ACALLDELAY;2
INCR0;1
DJNZR4,LP11;2
SJMPPRG3;2
DATA0:
DB80H,8CH,98H,0A5H,0B0H,0BCH,0C7H,0D1H,0DAH,0E2H,0EAH
DB0F0H,0F6H,0FAH,0FDH,0FFH,0FFH,0FDH,0FAH,0F6H,0F0H
DB0EAH,0E2H,0DAH,0D1H,0C7H,0BCH,0B0H,0A5H,98H,8CH
DB80H,7FH,73H,67H,5AH,4FH,43H,38H,2EH,25H,1DH,15H
DB0FH,09H,05H,02H,00H,00H,02H,05H,09H,0FH,15H
DB1DH,25H,2EH,38H,43H,4FH,5AH,67H,73H,7FH
RET
DELAY:MOVR6,#10H
MOVR7,#0A1H
DELAYLOOP:;延时程序
DJNZR6,DELAYLOOP
DJNZR7,DELAYLOOP
RET
四、实验板插针配置:
无需插针配置,注意DAC是从CONDACOUT1端子输出,可用示波器观察DAC输出波形。若产生失真情况,请检查开发板DA输出端LM358运算放大器的放大倍数,适当更改所查函数表的范围。
五、思考题
1、改变程序,使能添加输出锯齿波;
2、改变程序,使输出添加三角波;
3、改变程序,使输出添加方波;
4、改变程序,并制作一个简单的函数发生器
② 单片机如何同时输出三路独立的pwm波
输出PWM有三种方法:1、如果你的单片机里有PWM发生器就可以独立生成。
2、用软件实现:在程序里对要输出PWM波的端口不断取反。例:
#include<reg52.h>
sbit pwm=P0^0;
void delay(char i,char j)
{
for(i=100;i>0;i--)
for(j=200;j>0;j--);
}
void main()
{
while(1)
{
pwm=0;
delay();
pwm=1;
}
}
3、用单片机的定时器中断产生。
③ 单片机pwm是什么意思
单片机PWM是指从单片机输出的一个恒定的直流电平,通过计算机技术,按照一定的规律控制电平的占空比来实现模拟电路的调节。PWM技术广泛运用于电路、电机控制、智能家居控制等领域。之所以选择使用单片机控制PWM电平是因为其高精度、低功耗、良好稳定性等特点。
通过PWM技术,单片机可以方便地控制电路的电压大小,从而实现电机的调速、灯光的调节、音响的音量控制等功能。同时,PWM技术还可以有效地控制电路的能耗,避免不必要的能耗浪费,节省电力和降低成本。此外,PWM还可以实现数字信号和模拟信号之间的转换,甚至可以控制电路的输出频率,使得设备更具灵活性和适应性。
单片机PWM技术广泛应用于各种电子产品和嵌入式系统中,例如风扇调速、LED灯控、温度控制等等。此外,PWM技术也可用于实现具有智能功能的家居和工业控制系统,例如窗帘控制、自动门锁等等。这些功能的实现离不开单片机PVM技术的支持,由此可见,单片机PWM已成为电子行业一项重要的技术。