#include<reg52.h>
#include<intrins.h>  //包含_nop_(),汇编中的子函数
#define uchar unsigned char
sbit PWM=P1^0;      //PWM输出
uchar count,PWMH;   //count组波计数,PWMH设置高低挡

void delay(uchar i)  //延时100us,和定时器组波无光,可自己随意定义
{
uchar j;
for(;i>0;i--)
{
for(j=100;j>0;j--)
{
_nop_();   //一个机器周期;
}
}
}

void timer0() interrupt 1
{
if(PWMH==0)        //0档,全0
  PWM=0;
else if(PWMH==10)  //1档,全1
  PWM=1;
else               //组波
    {
if(count++<PWMH) //举例PWMH=1,则第一次count=0(然后就++);执行一次(即只能进入中断一次);以后则为0
PWM=1;
else
   PWM=0;
if(count>=10)    //count=10,即为到了一个周期,重新计数
   count=0;
}
}

void main()
{
TMOD=0x02;  //工作方式2(自动再装入,预置数方式)   
TL0=265-100; //低八位放初值;高八位放预置数;定时100次
TH0=265-100; //八位寄存器,故为265
count=0;
PWMH=0;

TR0=1;   //启动定时器1
ET0=1;  //定时器0中断允许
EA=1;  //cpu中断允许
while(1)
{
PWMH=0;
delay(200); //延时20ms
PWMH=1;
delay(200);
   PWMH=2;
delay(200);
PWMH=3;
delay(200);
PWMH=4;
delay(200);
PWMH=5;
delay(200);
   PWMH=6;
delay(200);
PWMH=7;
delay(200);
PWMH=8;
delay(200);
PWMH=9;
delay(200);
PWMH=10;
delay(200);
}
}

单片机 PWM输出 c相关推荐

  1. 单片机PWM输出控制直流电机(89c51系列、stc12c5a60s2系列)

    目录 [pwm是如何控制电机转速] [89C51系列单片机产生pwm波] [STC12C5A60S2系列单片机输出PWM] [pwm是如何控制电机转速] 在本科学习中,学生所做的小车多数为使用lm29 ...

  2. 单片机PWM输出原理与实践

    一.什么是PWM?   PWM(Pulse Width Modulation)脉冲宽度调制,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码.  ...

  3. STM8单片机 PWM无波形输出解决方法

      调试STM8单片机PWM功能的时候,经常会遇到一种情况,就是PWM初始化设置完成之后,程序下载到单片机中,确没有任何波形的输出.有时候代码是下载别的调试好的,但是在自己芯片上就是没有波形输出.这时 ...

  4. 合泰杯——合泰单片机工程7之PWM输出

    合泰杯--合泰单片机工程7之PWM输出 前言 一.合泰系列的PWM实现方式? 二.PTM输出PWM波 二.具体实现过程 2.1配置PTM3C0和PTM3C1 2.3PWM的输出引脚功能选择 2.4呼吸 ...

  5. 普中51pwm_51单片机实现PWM输出功能的两种方法解析

    51单片机没有PWM输出功能,可以采用定时器配合软件的方法实现,对精度要求不高的场合是非常实用的.采用高速光隔6N137输出,并将PWM的信号倒相. 一. 工作原理 二.PWM输出 1. 固定脉宽PW ...

  6. linux 普通io实现pwm,用普通IO口做PWM输出 - 51单片机 - 电子工程世界-论坛 - 手机版...

    本人现在想用IO口做PWM输出,频率1KHz,然后用两按键(+.-)来调节占空比0-100%,对应数码管显示000-100. 现波形是OK了,也可以调占空比,但是出现一个问题数码管显示乱七八糟,调了两 ...

  7. 单片机C语言PWM程序原理,单片机C语言程序设计:用 ADC0808 控制 PWM 输出

    /* 名称:用 ADC0808 控制 PWM 输出 说明:使用数模转换芯片 ADC0808,通过调节可变电阻 RV1 来调节脉冲宽度, 运行程序时,通过虚拟示波器观察占空比的变化. */ #inclu ...

  8. 5、SONIX单片机TC0、TC1的pwm输出

    TC0与TC1的功能和使用方法是一样的,所以这里只介绍TC0 与定时器TC0的pwm功能相关的寄存器共有3个;TC0M,TC0C,TC0R 一.TC0M模式寄存器 Bit7 Bit6 Bit5 Bit ...

  9. 集成两路MAX1169的STC8G1K08模块,带有两路PWM输出

    ■ 设计背景 在 集成有MAX1169,MAX520的DAAC单片STC8G1K08机电路板 中设计了集成有MAX1169的ADDA模块,对于一些需要使用PWM驱动的实验,这款模块还无法进行集成实验. ...

最新文章

  1. 暴雪战斗公式——除法公式的精髓
  2. 只能输入字母的c语言程序设计教程课后答案,c语言程序设计基础教程_习题答案20120319...
  3. 操作系统(三)内存管理
  4. “约见”面试官系列之常见面试题之第六十七篇之jsonp原理和实现(建议收藏)
  5. javascript实现数组深复制的方法
  6. 快速删除node_modules文件夹!!!
  7. 在线数值列表求和工具
  8. ROS-PCL读取pcd点云数据并在rviz中进行显示
  9. Python 获取对象信息 —— dype 与 dir
  10. django redis
  11. 操作教程:摄像头通过GB28181协议注册EasyCVR的详细配置
  12. NE555延时电路设计
  13. 基于贝叶斯决策理论的分类方法
  14. 【Linux】Infiniband 驱动安装---(HCA光钎)---mlnx
  15. Excel 常用快捷键
  16. 读懂这三个关键词,就明白迅雷链为什么受开发者欢迎
  17. HC-05主从模式蓝牙配对说明v1.0
  18. 2022劳务员-岗位技能(劳务员)考试试题及答案
  19. Win10 Windows Defender 保护历史记录清空方法
  20. 科学计算机怎么调试,用科学的方法调节用电脑之后的眼睛视力

热门文章

  1. 怎样才算精通Python?
  2. 网易云首届渠道大会:多媒体通信助力互联网+
  3. 网易云信深度优化解决移动聊天室“痼疾”
  4. PostgreSQL MySQL 兼容性之 - bit 函数和操作符
  5. jquery easyui dataGrid动态改变排序字段名
  6. 转:使用curl来调试你的应用
  7. 通过Intent调用系统功能大全
  8. Oracle教程之管理表(六)--Oracle外部表的管理
  9. How to Review a Paper
  10. 归类练习的有效性思考