网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
07月18日漏签0天
电子科技大学吧 关注:351,572贴子:9,162,879
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 4回复贴,共1页
<<返回电子科技大学吧
>0< 加载中...

用单片机输出PWM程序怎么写

  • 只看楼主
  • 收藏

  • 回复
  • l追逐我的梦g
  • 怒发一贴
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
用两个按键一个占空比增加,一个减少来控制,还有幅度从0 5v递增到5v,步进是0.5那怎么写


  • l追逐我的梦g
  • 怒发一贴
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
用51单片机


2025-07-18 06:01:16
广告
  • 我热热热了
  • 神功刚成
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include <reg51.h>
#include <ABSACC.H>
sbit KEY2 = P2^0;
sbit KEY3 = P2^1;
#define PWM_MAX10
unsigned char PwmValue;
unsigned char KeyScan()
{
unsigned char k;
k = '\0';
if ( KEY2 == 0 ) k = '+';
if ( KEY3 == 0 ) k = '-';
return k;
}
void T1INTSVC() interrupt 3
{
static unsigned char temp = 0;
TR1 = 0;
TH1 = 0xFF;
TL1 = 0x00;
TR1 = 1;
temp++;
if ( temp >= PWM_MAX ) temp = 0;
if ( temp <= PwmValue )
{
PWM=1;
}
else
{
PWM=0;
}
}
void Delay(unsigned int t)
{
do
{
TH0 = 0xFA;
TL0 = 0x24;
TR0 = 1;
while ( !TF0 );
TR0 = 0;
TF0 = 0;
} while ( --t != 0 );
}
void SysInit()
{
TMOD &= 0xF0;
TMOD |= 0x01;
TMOD &= 0x0F;
TMOD |= 0x10;
PwmValue = PWM_MAX / 2;
P0 = 0xff;
TH1 = 0xFF;
TL1 = 0x00;
TR1 = 1;
ET1 = 1;
EA = 1;
}
void main()
{
unsigned char k;
SysInit();
for (;;)
{
for (;;)
{
Delay(50);
k = KeyScan();
if ( k != '\0' ) break;
}
switch ( k )
{
case '+':
if ( PwmValue < PWM_MAX-1 ) PwmValue++;
break;
case '-':
if ( PwmValue > 0 ) PwmValue--;
break;
default:
break;
}
for (;;)
{
Delay(50);
if ( KeyScan() == '\0' ) break;
}
}
}


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 4回复贴,共1页
<<返回电子科技大学吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示