找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5099|回复: 10
收起左侧

51单片机pwm方波输出

  [复制链接]
回帖奖励 20 黑币 回复本帖可获得 1 黑币奖励! 每人限 1 次(中奖概率 50%)
ID:295779 发表于 2018-8-14 12:52 | 显示全部楼层 |阅读模式
今天想找个调制pwm方波源码

看了很多都不太理解

了解后自己写了一份

现在把自己的送上

不太会发帖

请多海涵


/*   P1.0口输出pwm方波  P1.1口连接用来对比的led  两个led共阳,低电平点亮  */
#include<reg51.h>                                  //定义单片机库函数      


#define uint unsigned int                    //定义无符号整形
#define uchar unsigned char                        //定义无符号字节型                                 
sbit pwm = P1^0;         //PWM输出端口
sbit led = P1^1;         //对比输出端口
uint count,a,b,th,tl,number,i;


void main()
{


  count = 2;                     //占空比
  a = 12/11059200;            //计算机器周期
  b = 1000/a;                    //计算每个数需要的时间 us
  th = (65536-b)/256;        //计算填入TH的值
  tl =(65536-b)%256;        //计算填入TL的值
  EA = 1;                                //开总中断
  ET0 = 1;                                //打开T0中断
  TMOD = 0x01;                        //设置T0计数器工作方式为16位计数器
  TH0 =th;                                //给TH0填入th
  TL0 =tl;                                //给TL0填入tl
  TF0 = 1;                                //表示T0有中断产生
  TR0 = 1;                                //表示T0开始运行
  led = 0;                                //点亮led灯做对比


while(1){                                //开启死循环等待中断
         if( number==300){                //每进入中断1000次就将占空比加一
                 number=0;                        //复位参考值
                 count=count+1;          //占空比加一
   }
  }
}






void timer()interrupt 1{
  TH0 = th;         //重新填入th
  TL0 = tl;         //重新填入tl
  
   i++;
if(i<count)          //count为占空比
  {
   pwm=0;                     //输出低电平点亮led灯
            
  }else{


      pwm=1;   //输出高电平熄灭led灯
               
         }


if(i>=10){
    i=0; //参考值置零

}
   number++;


}


                  





51单片机pwm方波输出.zip

27.15 KB, 下载次数: 43, 下载积分: 黑币 -5

源码文件

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:396689 发表于 2019-3-6 09:58 | 显示全部楼层
听说回复有黑币
回复

使用道具 举报

ID:169527 发表于 2019-3-6 13:18 | 显示全部楼层
还不错的噢,试了一下
回复

使用道具 举报

ID:126744 发表于 2019-3-6 20:00 | 显示全部楼层
不错哦,谢谢分享
回复

使用道具 举报

ID:126744 发表于 2019-3-6 20:00 | 显示全部楼层
不错哦,谢谢分享
回复

使用道具 举报

ID:442599 发表于 2019-3-6 20:51 | 显示全部楼层
感觉不错哦,谢谢分享
回复

使用道具 举报

ID:498596 发表于 2019-4-2 14:39 | 显示全部楼层
还不错呀
回复

使用道具 举报

ID:483579 发表于 2019-5-12 15:33 来自手机 | 显示全部楼层
请问怎么用51输出频率和占空比可调的pwm波?
回复

使用道具 举报

ID:511484 发表于 2019-5-12 17:56 | 显示全部楼层
还不错
回复

使用道具 举报

ID:250209 发表于 2019-5-12 20:17 | 显示全部楼层
谢谢分享,好好学习学习。
回复

使用道具 举报

ID:518788 发表于 2019-5-13 19:36 | 显示全部楼层
虽然比较简单,但是定义的变量有点多
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表