/*-----------------------------------------------
名称:直流电机调速
内容:1、学习目的:利用定时器产生 PWM,了解原理和使用方法
2
、硬件要求:直流电机 定时器
3、试验现象:按键调速,PWM
部分显示速度档位,电机根据档位调节速度 这个需
要把电机驱动输入端和 PWM 端连接起来
------------------------------------------------*/
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的
定义
sbit KEY1 = P3^1; //定义调速按键
sbit PWM = P1^5; //定义调速端口
unsigned char CYCLE; //
定义周期 该数字 X
基准定时时间 如果是 10 则周期是 10 x 0.1ms
unsigned char PWM_ON ;//定义高电平时间
/******************************************************************/
/*
延时函数
*/
/******************************************************************/
void delay(unsigned int cnt)
{
while(--cnt);
}
/******************************************************************/
/*
主函数
*/
/******************************************************************/
main()
{
unsigned char PWM_Num;//定义档位
TMOD |=0x01;//
定时器设置 1ms in 12M crystal
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;//定时 1mS
IE= 0x82; //打开中断
TR0=1;
CYCLE = 10;//
时间可以调整 这个是 10
步调整 周期 10ms 8 位 PWM 就是 256 步
while(1)
{
if(!KEY1)
{
delay(10000);
if(!KEY1)
{
PWM_Num++;
if(PWM_Num==4)PWM_Num=0;
switch(PWM_Num){