专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
调节占空比为啥灯的亮度变化 不明显
2019-03-24 19:20
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
5223
10
1573
我用单片机产生pwm波,周期是500hz,控制灯的亮度,调节占空比,为啥灯的亮度变化不明显,而且我的按键程序也不能用 此帖出自
小平头技术问答
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
51新手
1楼-- · 2019-03-24 21:10
是 频率,不是周期,搞晕了
加载中...
cain0203
2楼-- · 2019-03-25 02:38
把程序贴出来看看呗···
加载中...
51新手
3楼-- · 2019-03-25 05:41
现在是弄的100hz的啦,示波器显示的是98hz;主要是由于初值有小数,然后我去掉了小数造成的估计
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit led=P0^0;
sbit key1=P1^3;
sbit key2=P1^4;
unsigned int a, b;
void delay(int z);
void key(void);
void inti()
{
EA=1;
ET0=1; //允许定时器0中断
TMOD=0x01;//定时器0用作定时
TR0=1;
TH0=0xFC;
TL0=0x66;
}
void main()
{
a=0;
b=5;
inti();
while(1);
{
key();
}
}
void led1() interrupt 1
{
TH0=0xFC;
TL0=0x66;
a++;
if (a <= b)
{
led= 1;
}
if (a > b)
{
led = 0;
}
if (a == 10)
{
a=0;
}
}
void key(void)
{
key1=0;
if (key2==0)
{
delay(5);
if (key2 ==0)
{
b = b+1;
}
}
if (b > 10)
{
b=10;
}
}
void delay(int z)
{
int x, y;
for (x=0; x<z;x++)
{
for (y=0;y<110;y++);
}
}
加载中...
51新手
4楼-- · 2019-03-25 08:28
for (x=0; x {
for (y=0;y<110;y++);
}
}
是
for(x=0;x<z;x++)
{
for(y=0;y<110;y++)
{
}
}
加载中...
51新手
5楼-- · 2019-03-25 14:06
是 for(x=0;x<z;x++)
加载中...
jishuaihu
6楼-- · 2019-03-25 17:59
精彩回答 2 元偷偷看……
加载中...
1
2
下一页
一周热门
更多
>
相关问题
相关文章
基于51单片机的计算器设计
0个评论
51单片机300个proteus仿真实例下载
0个评论
51单片机 蜂鸣器
0个评论
51单片机驱动RC522模块
0个评论
基于51单片机的指纹密码锁
0个评论
AT89C51单片机制作简易密码锁
0个评论
51单片机汇编语言计数器
0个评论
51单片机精确延时设计
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit led=P0^0;
sbit key1=P1^3;
sbit key2=P1^4;
unsigned int a, b;
void delay(int z);
void key(void);
void inti()
{
EA=1;
ET0=1; //允许定时器0中断
TMOD=0x01;//定时器0用作定时
TR0=1;
TH0=0xFC;
TL0=0x66;
}
void main()
{
a=0;
b=5;
inti();
while(1);
{
key();
}
}
void led1() interrupt 1
{
TH0=0xFC;
TL0=0x66;
a++;
if (a <= b)
{
led= 1;
}
if (a > b)
{
led = 0;
}
if (a == 10)
{
a=0;
}
}
void key(void)
{
key1=0;
if (key2==0)
{
delay(5);
if (key2 ==0)
{
b = b+1;
}
}
if (b > 10)
{
b=10;
}
}
void delay(int z)
{
int x, y;
for (x=0; x<z;x++)
{
for (y=0;y<110;y++);
}
}
for (y=0;y<110;y++);
}
}
是
for(x=0;x<z;x++)
{
for(y=0;y<110;y++)
{
}
}
一周热门 更多>