Advertisement

基于51单片机的C语言程序实现电机转速测量及PWM控制

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本项目采用51单片机和C语言编程技术,实现了对直流电机转速的精确测量,并通过PWM信号进行速度调控,展示了嵌入式系统在电机控制领域的应用。 部分源程序如下: //=================测速计数处理=================================== void timer1() interrupt 3 { time1++; } //+++++++++++++++++测速转换处理+++++++++++++++++++++++ void int1() interrupt 2 { long kA = 0; uchar temp; TR1 = 0; if(SP_bit == 0) {TR1 = 1; SP_bit = 1;} else {kA = time1 * 65536 + TH1 * 256 + TL1; temp = 2500000 / kA; SP_out = temp; TH1 = 0x00; TL1 = 0x00; time1 = 0x00; TR1 = 0; SP_bit = 0;} } //================PWM处理与数据采集处理函数=================== void PWM_generator() interrupt 1 using 0 { if(flag == 1) {a--; if(a == 0) {flag = 0; if(K_B_bit == 1) a = UK; else a = SP_in;} else OUT_PWM = 0;} if(flag == 0) {b--; if(b == 0) {flag = 1; if(K_B_bit == 1) b = 0xff - UK; else b = 0xff - SP_in; } else OUT_PWM = 1;} m++; if(m == 20) {m = 0; n++; if(n == 40) {n = 0; EK0 = SP_in - SP_out; PI_bit = 1;} } }

全部评论 (0)

还没有任何评论哟~
客服
客服
  • 51CPWM
    优质
    本项目采用51单片机和C语言编程技术,实现了对直流电机转速的精确测量,并通过PWM信号进行速度调控,展示了嵌入式系统在电机控制领域的应用。 部分源程序如下: //=================测速计数处理=================================== void timer1() interrupt 3 { time1++; } //+++++++++++++++++测速转换处理+++++++++++++++++++++++ void int1() interrupt 2 { long kA = 0; uchar temp; TR1 = 0; if(SP_bit == 0) {TR1 = 1; SP_bit = 1;} else {kA = time1 * 65536 + TH1 * 256 + TL1; temp = 2500000 / kA; SP_out = temp; TH1 = 0x00; TL1 = 0x00; time1 = 0x00; TR1 = 0; SP_bit = 0;} } //================PWM处理与数据采集处理函数=================== void PWM_generator() interrupt 1 using 0 { if(flag == 1) {a--; if(a == 0) {flag = 0; if(K_B_bit == 1) a = UK; else a = SP_in;} else OUT_PWM = 0;} if(flag == 0) {b--; if(b == 0) {flag = 1; if(K_B_bit == 1) b = 0xff - UK; else b = 0xff - SP_in; } else OUT_PWM = 1;} m++; if(m == 20) {m = 0; n++; if(n == 40) {n = 0; EK0 = SP_in - SP_out; PI_bit = 1;} } }
  • 51PWM-51PWM技术.docx
    优质
    本文档详细介绍了利用51单片机通过PWM(脉宽调制)技术来控制直流电机速度的方法和技术,包括硬件连接和软件编程技巧。 控制51单片机上的直流电机是最简单的应用之一,只需通过调换正负极即可改变电机的转向。此外,由于直流电机具有较强的负载能力,因此非常适合用于越野车驱动。 为了实现可调节速度的越野车功能,我们需要调整电机转速。通常情况下,在固定电源电压下,输出电压也是固定的,这会导致电机运行在恒定的速度上。然而,在许多应用场景中需要改变电机速度以适应不同的需求(例如:双电机驱动小车如何转向?通过让两侧轮胎有不同的旋转速度即可实现)。因此,我们需要一种方法来调节直流电的平均输出电压大小。 PWM调制技术可以解决这一问题。该技术将恒定的直流电源转换为具有固定频率但可变宽度脉冲序列的形式,从而改变电机的实际输入电压,并进而调整其转速。对于51单片机而言,引脚输出范围大约在4.5到5伏之间。 具体实现方式如下:在一个周期内(例如设定为10毫秒),前半段时间(如前5毫秒)让引脚保持高电平状态;后半段时间则维持低电平。这样就可以得到一个占空比为50%的稳定方波信号,用于驱动电机。 进一步调整脉冲宽度的比例能够改变输出电压的有效值大小:比如将周期内高电平时长设定为2毫秒而其余时间保持在低电平,则可以获得占空比仅为20%,从而实现对直流电机转速更加精细地控制。
  • 51PWM
    优质
    本程序基于51单片机设计,通过PWM技术实现对直流电机转速的精准调控。适合初学者学习和应用开发参考。 本段落给大家分享了一个使用51单片机进行PWM电机调速的程序。
  • 51PWM直流PID
    优质
    本项目提供了一套基于51单片机的PWM直流电机转速PID控制源代码。通过精确调节占空比实现对电机速度的有效控制,适用于学习和工程实践。 本段落介绍51单片机PWM直流电机PID控制转速的源程序,一起来学习一下。
  • 51PWM
    优质
    本项目介绍了一种基于51单片机的脉宽调制(PWM)技术在电机速度控制中的应用。通过编程实现对直流电机转速的有效调节,展示了该硬件平台在工业自动化领域的实用价值。 使用51单片机的计时和中断功能来实现对电机8位和16位脉宽调制(PWM)的调速控制。
  • 51PWM
    优质
    本项目基于51单片机设计实现了一套PWM(脉宽调制)电机速度控制系统,通过调整PWM信号占空比精确调节直流电机转速。 电机转速控制 1. 使用AT89C51制作。 2. 通过串口发送命令来控制电机的转速。 3. 编写仿真程序。 4. 串口指令如下(hex格式): - 波特率:9600 - aa:低速 - bb:中速 - cc:高速 - dd:停止 5. 发送数据时需配合虚拟串口驱动,相关资料已提供。使用方法可以在百度上找到,非常简单。
  • 51直流PWMC
    优质
    本项目介绍如何使用51单片机通过PWM技术进行直流电机速度控制,并提供详细的C语言编程实现方法。 51单片机控制直流电机PWM调速的C语言程序可以实现对电机速度的精确调节。通过调整脉冲宽度调制信号(PWM)的比例,可以在不改变电源电压的情况下动态地控制电机的速度。这种技术广泛应用于需要精细速度控制的各种应用场景中,如工业自动化、机器人技术和家用电器等。编写此类程序时需要注意单片机的具体型号和直流电机的技术参数以确保最佳性能与稳定性。
  • C51步进
    优质
    本项目采用C语言编写针对51单片机的步进电机控制程序,实现对步进电机的速度、方向和位置精确控制,适用于自动化控制系统开发。 本段落主要介绍基于51单片机的电机控制C语言程序。
  • ADC0832双通道51C
    优质
    本项目介绍了一种使用ADC0832芯片和51单片机通过C语言进行双通道电压测量的方法,适用于电子测量与控制系统。 ADC0832双通道电压表的51单片机C语言代码及Proteus仿真电路。
  • 采用PWMC
    优质
    本项目提供了一种基于PWM技术精确调控直流电机速度的C语言编程实现方案,适用于嵌入式系统开发。代码简洁高效,易于移植与调试。 有使用C语言编写的PWM方式控制电机转动的代码,已经调试通过可以直接使用。