谁能帮我写一个PIC单片机 用定时器 输出PWM调光C程序!!急急急!单片机可以是PIC16F87
答案:1 悬赏:10 手机版
解决时间 2021-03-19 00:32
- 提问者网友:我们很暧昧
- 2021-03-18 10:53
谁能帮我写一个PIC单片机 用定时器 输出PWM调光C程序!!急急急!单片机可以是PIC16F87
最佳答案
- 五星知识达人网友:轻熟杀无赦
- 2021-03-18 12:17
这是我使用STC89C52单片机写的PWM信号发生器程序
原理很简单,就是利用延时程序来控制端口的状态
改变H的数值,就改变了占空比
我这个使用六个按键,按下不同的按键,输出不同的占空比
#include//通用89C52头文件
sbit D=P2^0 ; //端口定义
int H=5;
void YS( char s)
{
char k; k=9+s;
for(;k>0;k--);
}
void main(void)//主函数
{
while(1)
{
D=0; YS(H); D=1; YS(10-H);
if(P3==0x7f){H=0;}
if(P3==0xBf){H=2;}
if(P3==0xDf){H=4;}
if(P3==0xEf){H=6;}
if(P3==0xF7){H=8;}
if(P3==0xFb){H=10;}
}
}
追问请问一下你 它周期跟频率那些怎么算呢?追答这个怎么算的我还真不知道,没研究理论,我是自学的
最简单的方法就是利用万用表实际测量,单片机晶振11.0592
我这个程序输出频率约为3千赫,方波,调节的是占空比
原理很简单,就是利用延时程序来控制端口的状态
改变H的数值,就改变了占空比
我这个使用六个按键,按下不同的按键,输出不同的占空比
#include
sbit D=P2^0 ; //端口定义
int H=5;
void YS( char s)
{
char k; k=9+s;
for(;k>0;k--);
}
void main(void)//主函数
{
while(1)
{
D=0; YS(H); D=1; YS(10-H);
if(P3==0x7f){H=0;}
if(P3==0xBf){H=2;}
if(P3==0xDf){H=4;}
if(P3==0xEf){H=6;}
if(P3==0xF7){H=8;}
if(P3==0xFb){H=10;}
}
}
追问请问一下你 它周期跟频率那些怎么算呢?追答这个怎么算的我还真不知道,没研究理论,我是自学的
最简单的方法就是利用万用表实际测量,单片机晶振11.0592
我这个程序输出频率约为3千赫,方波,调节的是占空比
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯