标题:
pwm单片机直流调速源码
[打印本页]
作者:
116天尊
时间:
2018-5-13 15:09
标题:
pwm单片机直流调速源码
//*******************函数声明,变量定义*******************
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
//端口定义
sfr p0=0x80;
sfr p1=0x90;
sfr p2=0xa0;
sfr p3=0xb0;
//键
sbit add_speed=P1^0;
sbit sub_speed=P1^1;
//PWM控速
uint time_PWM=0; //PWM时间计数
uint high_PWM=0; //PWM高电平时间
uint t_PWM=16; //PWM周期
//*******************延 时 程 序*******************
void delayms(unsigned char ms)
{
unsigned char i ;
while(ms--)
{
for(i = 0 ; i < 120 ; i++) ;
}
}
//*******************键盘扫描程序*******************
void key_change()
{
if(add_speed==0)
{
delayms(10);
if(add_speed==0)
{
if(high_PWM < 16)
{
high_PWM++;
} } }
if(sub_speed==0)
{
delayms(10);
if(sub_speed==0)
{
if(high_PWM > 0)
{
high_PWM--;
} } } }
//*******************中断程序*******************
//PWM波生成,T0中断
void PWM_T0(void) interrupt 1
{
TH0=0Xd8;
TL0=0Xf0;
time_PWM++;
if(time_PWM < high_PWM)
{
p2=0xff;
}
if(time_PWM==high_PWM)
{
p2=0x00;
}
else if(time_PWM==t_PWM)
{ p2=0xff;
time_PWM=0;
} }
//*******************主程序*******************
void main()
{p0=0xff;
p1=0Xff;
p2=0xff;
p3=0xff;
TH0=0xd8; //定时10us
TL0=0xf0;
TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
while(1)
{ key_change();
}}
复制代码
51CTO下载-单片机输出PWM波.doc
2018-5-13 15:08 上传
点击文件名下载附件
下载积分: 黑币 -5
22 KB, 下载次数: 10, 下载积分: 黑币 -5
pwm
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1