基于直流电机的pwm调速
单片机源程序如下:
- #include "reg52.h"
- typedef unsigned int u16;
- typedef unsigned char u8;
- sbit PWM=P1^0;
- bit DIR;
- u16 count,value,timer1;
- void Timer1Init(void)
- {
- TMOD|=0X10;
- TH1 = 0xFF;
- TL1 = 0xff;
- ET1 = 1;
- EA = 1;
- TR1 = 1;
- }
- void main(void)
- {
- Timer1Init(); //定时器1初始化
- while(1)
- {
- if(count>50) //该变量控制中心点移动的快慢
- {
- count=0;
- if(DIR==1)
- {
- value++; //中心点右移
- }
- if(DIR==0)
- {
- value--; //中心点左移
- }
- }
- if(value==1000) //方向
- {
- DIR=0;
- }
- if(value==0)
- {
- DIR=1;
- }
-
- if(timer1>1000) //一个周期
- {
- timer1=0;
- }
- //PWM工作
- if(timer1 <value) //与中心点进行比较
- {
- PWM=1; //小于中心点输出 1
- }
- else
- {
- PWM=0; //大于等于中心点输出 0
- }
- }
- }
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
PWM.rar
(23.31 KB, 下载次数: 23)
|