永发信息网

单片机PWM控制DA输出的问题

答案:2  悬赏:20  手机版
解决时间 2021-01-28 06:48
#include

//--定义使用的IO口--//
sbit PWM=P2^1;
bit DIR;

//--定义一个全局变量--//
unsigned int count,value,timer1;

void Time1Config();



void main(void)
{
Time1Config();
while(1)
{
if(count>100)
{
count=0;
if(DIR==1) //DIR控制增加或减小
{
value++;
}
if(DIR==0)
{
value--;
}

}

if(value==1000)
{
DIR=0;
}
if(value==0)
{
DIR=1;
}

if(timer1>1000) //PWM周期为100*1us
{
timer1=0;
}
if(timer1 {
PWM=1;
}
else
{
PWM=0;
}
}

}



void Time1Config()
{
TMOD|= 0x10; //设置定时计数器工作方式1为定时器

//--定时器赋初始值,12MHZ下定时1us--//
TH1 = 0xFF;
TL1 = 0xff;

ET1 = 1; //开启定时器1中断
EA = 1;
TR1 = 1; //开启定时器
}



void Time1(void) interrupt 3 //3 为定时器1的中断号 1 定时器0的中断号 0 外部中断1 2 外部中断2 4 串口中断
{
TH1 = 0xFF; //重新赋初值
TL1 = 0xFf;
timer1++;
count++;

}
两个地方不懂,DIR控制增减是什么意思?怎么控制的?PWM周期100us是怎么知道的?为什么
timer1
最佳答案
  • 五星知识达人网友:怀裏藏嬌
  • 2021-01-27 12:54
PWM周期100us是怎么知道的?

--这程序,做不到这么小的周期。
全部回答
  • 1楼网友:人间朝暮
  • 2021-01-27 13:36
所谓pwm芯片,你要0到24v是需要运放 选da的话再给op07 tl072即可,要么找贵一点的轨到轨运放tlc2252 2262。 如果不用da,可以直接用单片机的定时器输出方波,使用占空比调压。 精度不高,8位。 da和单片机一般是spi接口4线。 51核心的带pwm输出的,15元档次,开发系统比片子贵的多。 可以学stc89c54 带da的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯