问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

...AT89C52单片机控制直流电动机正反转的调速系统,

发布网友 发布时间:2024-04-04 02:46

我来回答

2个回答

热心网友 时间:2024-04-04 06:06

给你个程序参考一下

/*******************************************************************/
/* 程序名:PWM直流电机调速 */
/* 晶振:11.00592 MHz CPU型号:AT89C51 */
/* 直流电机的PWM波控制,可以直接的调速从0到20级的调速 */

/*****************************************************************/

#include<reg51.h>
#define TH0_TL0 (65536-1000)//设定中断的间隔时长
unsigned char count0 = 50;//低电平的占空比
unsigned char count1 = 0;//高电平的占空比

bit Flag = 1;//电机正反转标志位,1正转,0反转

sbit Key_add=P2 ^ 0; //电机减速
sbit Key_dec=P2 ^ 1; //电机加速
sbit Key_turn=P2 ^ 2; //电机换向

sbit PWM1=P2^6;//PWM 通道 1,反转脉冲
sbit PWM2=P2^7;//PWM 通道 2,正转脉冲

unsigned char Time_delay;

/************函数声明**************/
void Delay(unsigned char x);
void Motor_speed_high(void);
void Motor_speed_low(void);
void Motor_turn(void);
void Timer0_init(void);

/****************延时处理**********************/
void Delay(unsigned char x)
{
Time_delay = x;
while(Time_delay != 0);//等待中断,可减少PWM输出时间间隔
}

/*******按键处理加pwm占空比,电机加速**********/
void Motor_speed_high(void)
{
if(Key_add==0)
{
Delay(10);
if(Key_add==0)
{
count0 += 5;

if(count0 >= 100)
{
count0 = 100;
}
}
while(!Key_add);//等待键松开
}
}

/******按键处理减pwm占空比,电机减速*****/
void Motor_speed_low(void)
{
if(Key_dec==0)
{
Delay(10);
if(Key_dec==0)
{
count0 -= 5;

if(count0 <= 0)
{
count0 = 0;
}
}
while(!Key_dec );
}
}

/************电机正反向控制**************/
void Motor_turn(void)
{
if(Key_turn == 0)
{
Delay(10);
if(Key_turn == 0)
{
Flag = ~Flag;
}
while(!Key_turn);
}
}

/***********定时器0初始化***********/
void Timer0_init(void)
{
TMOD=0x01; //定时器0工作于方式1
TH0=TH0_TL0/256;
TL0=TH0_TL0%256;
TR0=1;
ET0=1;
EA=1;
}

/*********主函数********************/
void main(void)
{
Timer0_init();

while(1)
{
Motor_turn();
Motor_speed_high();
Motor_speed_low();
}
}

/**************定时0中断处理******************/
void Timer0_int(void) interrupt 1 using 1
{
TR0 = 0;//设置定时器初值期间,关闭定时器
TL0 = TH0_TL0 % 256;
TH0 = TH0_TL0 / 256 ;//定时器装初值
TR0 = 1;

if(Time_delay != 0)//延时函数用
{
Time_delay--;
}

if(Flag == 1)//电机正转
{
PWM1 = 0;

if(++count1 < count0)
{
PWM2 = 1;
}
else
PWM2 = 0;

if(count1 >= 100)
{
count1=0;
}
}
else //电机反转
{
PWM2 = 0;

if(++count1 < count0)
{
PWM1 = 1;
}
else
PWM1 = 0;

if(count1 >= 100)
{
count1=0;
}
}
}
/************************************************

void Delay(unsigned char x)
{
Time_delay = x;

while(Time_delay != 0);//等待中断,可减少PWM输出时间间隔
}

Delay(10);

if(Time_delay != 0)//延时函数用
{
Time_delay--;
}

热心网友 时间:2024-04-04 06:07

看你是有仿真文件了啊,发来给你做。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
湖北哪些学校有专升本 湖北哪些学校可以报专升本 华为mate7会不会卡 中央集权的本质 秦朝中央集权的实质是什么 秦朝建立专制主义中央集权制度的本质特征是 A改王为皇帝 B建立中央官制... 想生个女儿怎么备孕 怎样备孕生女孩7个方法 备孕怎样做才能生女孩 天津市国税局公务员面试成绩去哪儿查? 形式宾语和形式主语区别 哪位朋友能给我讲讲It 做形式宾语和形式主语怎么用是什么意思... 什么情况下才能用形式主语形式宾语 主语、宾语、形式主语、形式宾语? 南方航空改签热线电话是多少 为何鳊鱼身上的腥味像檀香味 反正不像腥味 iPad系统升级后速度会变慢吗? 有哪些给鲳鳊去腥的技巧分享? 反射弧什么梗网络语说的反射弧什么意思 反射弧是指( )A.与反射有关的人体器官B.完成某一反射活动的神经结构C... 形容神态失常失去控制的词语是什么 思域1.5T的有没有出现机油增多的现象了 发动机(1.5t的)有没有机油增多 1.5T有哪些车机油增多 ...价格希望在二千左右,不知道哪个小区的房价会便宜点? 常州白马公馆房价为啥便宜 常州哪边的房价最便宜? 淘宝每年都要交年费吗? 从昆山花桥坐地铁十一号线能不能转一号线 ...她却不跟你说说怎么说 这句话翻译成英语是什么 基于单片机AT89C52的步进电机控制器 波尔日记 THE POLL DIARIES怎么样 横躺竖卧造句用横躺竖卧造句 RAV42.4现在买划算吗?和奇骏2.5比,买那款好? 益阳桥北选小二店在哪里 益阳市桥北附近,哪里有卖行李箱的,急!谢谢 重庆哪几所高中最好 老婆大半夜吃KFC撑住了我要怎么办? 电动汽车撞车逃逸怎么查 myday英语作文myday英语作文带翻译 车祸逃逸怎么找到车主 新东方3500词汇和1000,2000词哪个好 去成都花水湾温泉度假旅游区游玩,有哪些必吃的美食? 去泰宁李家岩游玩,有哪些必吃的美食? 去遵义枫香温泉游玩,有哪些必吃的美食? 千鸟是谁的忍术? 谁有火影忍者那些忍术的发音啊?最好是把中文标音和忍术名称对应起来... 我脸型是瓜子脸,一直留刘海,不知道适不适合剪朋克(子弹头)? 一根电线已用去64厘米,还剩下36厘米。这根电线原来长多少厘米?合多少米... 一根绳子,用去里65厘米,还剩下35厘米,这根绳子原来长多少米二年级?_百 ...