51单片机按键控制输出pwm的占空比

    之前说到利用51单片机输出pwm,但是输出的pwm是固定占空比的,如果想要改变占空比,还得回过头来修改程序并重新烧写进单片机。这样做的话不但麻烦、效率低,还又把芯片的可烧写次数减少了一次,虽然51的芯片现在很便宜,但能省点就省点,能不浪费就不浪费,哈哈,开玩笑啦!最主要的还是为了灵活性,为此特地通过加入按键的功能来实现动态修改输出的pwm的占空比。这样在用pwm控制电机的时候就能使用按键来控制电机转速了。废话不多说,见下:

#include<reg51.h>

#define uint unsigned int 
#define uchar unsigned char							 

uchar time; 
double count=26;	//定义占空比,并初始占空比为26%
sbit PWM=P2^0;      //P2^0口输出PWM 
sbit key_add=P3^4;   //电机加速的按键 的I/O口
sbit key_dec=P3^5;   //电机减速的按键 的I/O口


/************函数声明**************/
void delayxms(uint z); //延时
void Motor_add();	  //电机加速,即增加占空比
void Motor_dec();	   //电机减速,即减少占空比
void timer0_init();		//定时器0初始化

/*********主函数********************/
void main()
{	 
	timer0_init();
	delayxms(5);
	while(1)
	{
	 Motor_add();
	 Motor_dec();
	}
}

/****************延时处理**********************/
void delayxms(uint z) //延时xms程序
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值