【定时器/中断/PWM】利用一个定时器实现一路PWM波的输出---点亮LED
来源:互联网 发布:mac资料库文件夹在哪 编辑:程序博客网 时间:2024/05/16 08:05
------------------------------------------凑热闹的分割线------------------------------------------------
/*点亮led0(P1^0)和led7(P1^7) 其中led0以5v电压正常点亮
led1利用pwm和按键实现可调亮度*/#include<reg52.h>#define ui unsigned int#define uc unsigned charsbit led0=P1^0;sbit led1=P1^7;sbit up=P3^0;sbit down=P3^1;ui n=0;//定义了每个周期有几小段uc pwm=20; //定义了占空比(pwm越大 低电平占比越大) 数据类型范围0~256void delay();void init_timr0();void scan();void main(){init_timr0(); //初始化定时器led0=0; //正常点亮一个led 用于比较scan();}/*主函数*/void init_timr0(){TMOD=0x02; //设置定时0 工作方式2TH0=TL0=210; //周期中每段时间50usEA=1;ET0=1;TR0=1;}/*延时函数*/void delay(){uc x,y;for(x=10;x>0;x--)for(y=120;y>0;y--);}/*循环扫描检测是否要变亮或变暗*/void scan(){while(1){if(!up) //按下灯变亮(){delay(); //防抖if(!up)if(pwm<=250) //限制了pwm的范围不能大于255 否则溢出后变为最小pwm++;}delay(); //使按键调速更慢些if(!down){delay();if(!down)if(pwm>0) //限制了pwm的范围不能小于0 否则跳变到最大pwm--;}delay(); }}/*中断服务程序*/void timer0()interrupt 1{n++;if(n==250) //设置周期有250段 则 周期=n*定时器溢出时间{n=0;led1=0; // 0-pwm的时间内P1^7输出低电平}if(n==pwm)led1=1; // pwm-250的时间内P1^7输出高电平}------------------------------------------搞事情的分割线------------------------------------------------
折腾了好久,PWM这块总算是有点明白了。接下来打算用一个定时器实现两路PWM波输出。继续加油!
0 0
- 【定时器/中断/PWM】利用一个定时器实现一路PWM波的输出---点亮LED
- S5PC100的PWM定时器中断实现示例
- 定时器中断模拟pwm输出声音文件
- 通用定时器PWM输出
- MSP430_定时器输出PWM
- STM32定时器PWM输出
- ok6410实现定时器中断驱动 pwm驱动
- 利用STM32的定时器输出PWM(1)
- 如何利用STM32通用定时器实现输出两路占空比和频率可调的互补PWM
- STM32F103VCT6 高级定时器的PWM输出
- stm32通用定时器的PWM输出
- stm32 基于TIM1定时器的PWM输出
- stm32定时器TIM2的PWM输出PB3
- 定时器TIM和PWM的输出
- AVRmega16通过一个定时器实现多路IO口输出多路可调的PWM
- STM32F103定时器输出PWM波控制直流电机
- CC2530定时器输出PWM波设置方法
- PWM定时器
- Xilinx zynq 7000 Linux系统启动流程
- ofo与凤凰合作,再看“互联网+”如何变绞杀为赋能
- 二叉树子结构
- 用js实现图片轮播切换(1)
- JavaScript中typeof与instanceof用法区别
- 【定时器/中断/PWM】利用一个定时器实现一路PWM波的输出---点亮LED
- PendingIntent 传递参数的问题
- windows下命令行运行caffe:
- 编写函数int stat(int a[],int n,int c[][2]).a指向的数组中保存了由n个1位整数组成的数列(n为偶数)。
- C++实验6—数组合并
- C++第六次上机实验——项目一(数组操作)
- jQuery常用方法的API
- 编写函数fun(int *a,int n,int *odd,int *even),功能是:求出数组a[]中所有偶数之和,利用指针even返回偶数之和
- Window user32子动态库控件封装和消息分发浅析