基于单片机的直流电机

合集下载

基于单片机的直流电机调速系统设计

基于单片机的直流电机调速系统设计

直流电机转速 :
根据基尔霍夫第二定律,得到电枢电压电动势平衡方程式 U=Ea+Ia(Ra+Rc)……………式1
式1中,Ra为电枢回路电阻,电枢回路串联保绕阻与电刷 接触电阻的总和;Rc是外接在电枢回路中的调节电阻
由此可得到直流电机的转速公式为:
n=(Ua-IR)/CeΦ ………………………式2
式2中, Ce为电动势常数, Φ是磁通量。 由1式和2式得
n=Ea/CeΦ ……………………………式3
由式3中可以看出, 对于一个已经制造好的电机, 当励磁电压和 负载转矩恒定时, 它的转速由回在电枢两端的电压Ea决定, 电 枢电压越高, 电机转速就越快, 电枢电压降低到0V时, 电机就 停止转动;改变电枢电压的极性, 电机就反转。
PWM脉宽调速
PWM(脉冲宽度调制)是通过控制固定电压的 直流电源开关频率, 改变负载两端的电压, 从 而达到控制要求的一种电压调整方法。在PWM 驱动控制的调整系统中, 按一个固定的频率 来接通和断开电源, 并且根据需要改变一个 周期内“接通”和“断开”时间的长短。通 过改变直流电机电枢上电压的“占空比”来 达到改变平均电压大小的目的, 从而来控制 电动机的转速。也正因为如此, PWM又被称为 “开关驱动装置”。
, 软件简单。但每个按键需要占用一个输入口线, 在 按键数量较多时, 需要较多的输入口线且电路结构复杂, 故此种键盘适用于按键较少或操作速度较高的场合。
数码管显示部分 本设计使用的是一种比较常用的是四位数码 管, 内部的4个数码管共用a~dp这8根数据线, 为使用提供了方便, 因为里面有4个数码管, 所以它有4个公共端, 加上a~dp, 共有12个引 脚, 下面便是一个共阴的四位数码管的内部 结构图(共阳的与之相反)

基于stm32单片机的直流电机调速系统设计

基于stm32单片机的直流电机调速系统设计

基于stm32单片机的直流电机调速系统设计
本文介绍一种基于STM32单片机的直流电机调速系统设计,主要包括硬件电路设计和软件程序设计两部分。

硬件电路设计:
该电机调速系统的主要硬件电路包括电源模块、STM32单片机控制电路、直流电机驱动电路和反馈电路。

1. 电源模块
电源模块包括AC/DC变换模块和稳压模块,用于将输入的AC电压转换为适宜单片机和电机工作的DC电压。

2. STM32单片机控制电路
STM32单片机控制电路包括主控芯片STM32单片机、晶振、复位电路和下载程序电路等。

3. 直流电机驱动电路
直流电机驱动电路包括电机驱动芯片(如L298N)和电机,用于控制电机的转
速和方向。

4. 反馈电路
反馈电路包括编码器和光电传感器等,用于实现电机转速的反馈和闭环控制。

软件程序设计:
该电机调速系统的软件程序采用C语言编写,主要包括定时器计数、PWM输出控制、编码器读取、PID算法控制等模块。

1. 定时器计数
通过STM32单片机内部定时器计数来实现电机转速的测量和控制。

2. PWM输出控制
采用STM32单片机内部PWM输出控制模块控制电机的转速,并实现电机方向的控制。

3. 编码器读取
通过编码器读取电机的转速信息,并反馈到单片机进行控制和显示。

4. PID算法控制
采用PID(比例、积分、微分)算法控制电机的转速,实现闭环控制,提高控制精度。

总之,基于STM32单片机的直流电机调速系统设计,既可以提高电机运行的效率和精度,又可以简化电路结构和减小系统成本,具有较好的应用前景。

基于单片机STC89C52的直流电机PWM调速控制系统

基于单片机STC89C52的直流电机PWM调速控制系统

第一章:前言Pwm 电机调速原理对于电机的转速调整,我们是采用脉宽调制(PWM)办法,控制电机的时候,电源并非连续地向电机供电,而是在一个特定的频率下以方波脉冲的形式提供电能。

不同占空比的方波信号能对电机起到调速作用,这是因为电机实际上是一个大电感,它有阻碍输入电流和电压突变的能力,因此脉冲输入信号被平均分配到作用时间上,这样,改变在始能端EN1 和EN2 上输入方波的占空比就能改变加在电机两端的电压大小,从而改变了转速。

此电路中用微处理机来实现脉宽调制,通常的方法有两种:(1)用软件方式来实现,即通过执行软件延时循环程序交替改变端口某个二进制位输出逻辑状态来产生脉宽调制信号,设置不同的延时时间得到不同的占空比。

(2)硬件实验自动产生PWM 信号,不占用CPU 处理的时间。

这就要用到STC89C52的在PWM模式下的计数器1,具体内容可参考相关书籍。

51 单片机PWM 程序产生两个PWM,要求两个PWM 波形占空都为80/256,两个波形之间要错开,不能同时为高电平!高电平之间相差48/256,PWM 这个功能在PIC 单片机上就有,但是如果你就要用51 单片机的话,也是可以的,但是比较的麻烦.可以用定时器T0来控制频率,定时器T1 来控制占空比:大致的的编程思路是这样的:T0 定时器中断是让一个I0口输出高电平,在这个定时器T0的中断当中起动定时器T1,而这个T1 是让IO 口输出低电平,这样改变定时器T0 的初值就可以改变频率,改变定时器T1 的初值就可以改变占空比。

前言:直流电机的定义:将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。

近年来,随着科技的进步,直流电机得到了越来越广泛的应用,直流具有优良的调速特性,调速平滑,方便,调速范围广,过载能力强,能承受频繁的冲击负载,可实现频繁的无极快速起动、制动和反转,需要满足生产过程自动化系统各种不同的特殊要求,从而对直流电机提出了较高的要求,改变电枢回路电阻调速、改变电压调速等技术已远远不能满足现代科技的要求,这是通过 PWM 方式控制直流电机调速的方法就应运而生。

基于单片机的无刷直流电机的控制系统设计

基于单片机的无刷直流电机的控制系统设计

【基于单片机的无刷直流电机的控制系统设计】1. 引言无刷直流电机(BLDC),作为一种高效、低噪音、长寿命的电动机,被广泛应用于各种领域。

而采用单片机进行控制,实现对BLDC的精准控制,则成为现代工业中的热门技术。

本文将围绕基于单片机的无刷直流电机控制系统设计展开探讨,深入剖析其原理和实现过程。

2. 无刷直流电机的工作原理无刷直流电机是一种采用电子换相技术的电机,其工作原理与传统的直流电机有所不同。

它不需要使用碳刷和电刷环来实现换向,而是通过内置的电子控制器来精确控制转子上的永磁体和定子上的电磁线圈的相互作用,实现转子的旋转运动。

3. 单片机在无刷直流电机控制中的作用单片机在无刷直流电机的控制系统中扮演着核心角色,它通过内置的PWM模块生成PWM波形,用于控制电机驱动器中的功率器件,同时监测电机的运行状态,并根据需要进行调整和反馈控制,实现对电机的精准控制。

4. 基于单片机的无刷直流电机控制系统设计(1)硬件设计在设计基于单片机的无刷直流电机控制系统时,需要考虑到电机的功率和控制要求,选择合适的单片机和电机驱动器,设计电机驱动电路以及检测装置,确保系统能够稳定可靠地工作。

(2)软件设计利用单片机的PWM模块生成PWM波形,采用适当的控制算法(如PID控制算法),编写控制程序,实现对无刷直流电机的精准控制。

考虑到系统的实时性和稳定性,需要进行充分的软件优化和调试。

5. 个人观点和理解在基于单片机的无刷直流电机控制系统设计中,充分理解无刷直流电机的工作原理和单片机的控制特点,合理选择硬件和编写软件,是至关重要的。

只有系统全面、深刻地理解,才能设计出高质量、稳定可靠的控制系统。

6. 总结本文围绕基于单片机的无刷直流电机控制系统设计展开了探讨,从无刷直流电机的工作原理、单片机在控制系统中的作用,到具体的硬件设计和软件设计,全面、深入地阐述了相关内容。

希望通过本文的阐述,读者能够对基于单片机的无刷直流电机控制系统设计有更深入的理解和应用。

基于单片机的直流电机调速系统的课程设计

基于单片机的直流电机调速系统的课程设计

一、总体设计概述本设计基于8051单片机为主控芯片,霍尔元件为测速元件, L298N为直流伺服电机的驱动芯片,利用 PWM调速方式控制直流电机转动的速度,同时可通过矩阵键盘控制电机的启动、加速、减速、反转、制动等操作,并由LCD显示速度的变化值。

二、直流电机调速原理根据直流电动机根据励磁方式不同,分为自励和它励两种类型,其机械特性曲线有所不同。

但是对于直流电动机的转速,总满足下式:式中U——电压;Ra——励磁绕组本身的内阻;——每极磁通(wb );Ce——电势常数;Ct——转矩常数。

由上式可知,直流电机的速度控制既可以采用电枢控制法也可以采用磁场控制法。

磁场控制法控制磁通,其控制功率虽然较小,但是低速时受到磁场和磁极饱和的限制,高速时受到换向火花和换向器结构强度的限制,而且由于励磁线圈电感较大,动态响应较差,所以在工业生产过程中常用的方法是电枢控制法。

电枢控制法在励磁电压不变的情况下,把控制电压信号加到电机的电枢上来控制电机的转速。

传统的改变电压方法是在电枢回路中串连一个电阻,通过调节电阻改变电枢电压,达到调速的目的,这种方法效率低,平滑度差,由于串联电阻上要消耗电功率,因而经济效益低,而且转速越慢,能耗越大。

随着电力电子的发展,出现了许多新的电枢电压控制法。

如:由交流电源供电,使用晶闸管整流器进行相控调压;脉宽调制(PWM)调压等。

调压调速法具有平滑度高、能耗低、精度高等优点,在工业生产中广泛使用,其中PWM应用更广泛。

脉宽调速利用一个固定的频率来控制电源的接通或断开,并通过改变一个周期内“接通”和“断开”时间的长短,即改变直流电机电枢上的电压的“占空比”来改变平均电.压的大小,从而控制电动机的转速,因此,PWM又被称为“开关驱动装置”。

如果电机始终接通电源是,电机转速最大为Vmax,占空比为D=t1/t,则电机的平均转速:Vd=Vmax*D,可见只要改变占空比D,就可以调整电机的速度。

平均转速Vd与占空比的函数曲线近似为直线。

基于单片机控制的直流电机调速系统设计

基于单片机控制的直流电机调速系统设计

基于单片机控制的直流电机调速系统设计一、引言直流电机在工业自动化领域中广泛应用,其调速系统的设计是实现自动控制的关键。

本文将介绍一种基于单片机控制的直流电机调速系统设计方案,主要包括电机原理、硬件设计、软件设计以及实验结果与分析等内容。

二、电机原理直流电机是一种将直流电能转换为机械能的装置,其原理基于电磁感应和安培定律。

电机由定子和转子两部分组成,定子上绕有恒定电流,产生磁场,而转子上带有电流,与定子的磁场互相作用,产生力矩使电机旋转。

三、硬件设计1.单片机选择在本设计中,选择了一款功能强大、性能稳定的单片机作为控制核心,例如使用ST C89C51单片机。

该单片机具有丰富的GP IO口和定时器/计数器等外设,适合进行电机控制。

2.电机驱动电路设计电机驱动电路主要包括功率电源、运放电路和驱动电路。

其中,功率电源为电机提供稳定的直流电源,运放电路用于信号放大和滤波,驱动电路则根据控制信号控制电机的转速。

3.速度测量电路设计为了实时监测电机的转速,需要设计速度测量电路。

常见的速度测量电路包括光电编码器、霍尔传感器等,通过测量转子上感应物体的变化来获得电机的转速信息。

四、软件设计1.程序框架软件设计的目标是实现对电机转速的控制和监测。

基于单片机的软件设计主要包括主程序的编写、中断服务程序的编写以及定时器的配置等。

2.控制算法常见的直流电机调速算法包括电压调速法、P WM调速法等。

根据实际需求选择合适的算法,并根据测量到的转速信号进行反馈控制,实现对电机转速的精确控制。

五、实验结果与分析设计完成后,进行实验验证。

通过设置不同的转速需求,观察电机的实际转速与设定转速的误差,并分析误差原因。

同时还可以测试电机在不同负载下的转速性能,以评估系统的稳定性和鲁棒性。

六、总结基于单片机控制的直流电机调速系统设计是实现自动控制的重要应用。

本文介绍了该系统的硬件设计和软件设计方案,并展示了实验结果。

通过系统实现电机转速的精确控制,可以广泛应用于工业自动化领域。

基于单片机的直流电机PWM调速控制系统的设计

基于单片机的直流电机PWM调速控制系统的设计

基于单片机的直流电机PWM调速控制系统的设计第一章:前言1.1前言:直流电机的定义:将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。

近年来,随着科技的进步,直流电机得到了越来越广泛的应用,直流具有优良的调速特性,调速平滑,方便,调速范围广,过载能力强,能承受频繁的冲击负载,可实现频繁的无极快速起动、制动和反转,需要满足生产过程自动化系统各种不同的特殊要求,从而对直流电机提出了较高的要求,改变电枢回路电阻调速、改变电压调速等技术已远远不能满足现代科技的要求,这是通过PWM方式控制直流电机调速的方法就应运而生。

采取传统的调速系统主要有以下的缺陷:模拟电路容易随时间飘移,会产生一些不必要的热损耗,以及对噪声敏感等。

而用PWM技术后,避免上述的缺点,实现了数字式控制模拟信号,可以大幅度减低成本和功耗。

并且PWM调速系统开关频率较高,仅靠电枢电感的滤波作用就可以获得平滑的直流电流,低速特性好;同时,开关频率高,快响应特性好,动态抗干扰能力强,可获很宽的频带;开关元件只需工作在开关状态,主电路损耗小,装置的效率高,具有节约空间、经济好等特点。

随着我国经济和文化事业的发展,在很多场合,都要求有直流电机PWM调速系统来进行调速,诸如汽车行业中的各种风扇、刮水器、喷水泵、熄火器、反视镜、宾馆中的自动门、自动门锁、自动窗帘、自动给水系统、柔巾机、导弹、火炮、人造卫星、宇宙飞船、舰艇、飞机、坦克、火箭、雷达、战车等场合。

1.2本设计任务:任务: 单片机为控制核心的直流电机PWM调速控制系统设计的主要内容以及技术参数:功能主要包括:1)直流电机的正转;2)直流电机的反转;3)直流电机的加速;4)直流电机的减速;5)直流电机的转速在数码管上显示;6)直流电机的启动;7)直流电机的停止;第二章:总体设计方案总体设计方案的硬件部分详细框图如图一所示。

示数码管显PWM单片机按键控制电机驱动基于单片机的直流电机PWM调速控制系统的设计键盘向单片机输入相应控制指令,由单片机通过P1.0与P1.1其中一口输出与转速相应的PWM脉冲,另一口输出低电平,经过信号放大、光耦传递,驱动H型桥式电动机控制电路,实现电动机转向与转速的控制。

基于单片机的无刷直流电动机控制系统研究 的文献综述2000字左右

基于单片机的无刷直流电动机控制系统研究 的文献综述2000字左右

基于单片机的无刷直流电动机控制系统研究的文献综述2000字左右研究无刷直流电动机控制系统是电气工程领域的一个重要课题,它涉及到控制理论、电机原理、嵌入式系统等多个学科领域。

以下是一个关于基于单片机的无刷直流电动机控制系统研究的文献综述,大约2000字左右:________________________________________文献综述:基于单片机的无刷直流电动机控制系统研究1. 引言无刷直流电动机(BLDC)以其高效率、低噪音和长寿命等优点在工业和家用电器中得到了广泛应用。

而基于单片机的无刷直流电动机控制系统,作为一种先进的电机控制技术,具有成本低、响应快、可靠性高等特点,受到了研究者们的广泛关注。

2. 无刷直流电动机的工作原理无刷直流电动机是一种将电能转换为机械能的装置,其工作原理基于电磁感应和电流的相互作用。

通过在电动机中的定子和转子上安装恰当的磁铁,配合适当的控制电路,可以实现对电机转速和转矩的精确控制。

3. 基于单片机的无刷直流电动机控制系统设计基于单片机的无刷直流电动机控制系统一般由三部分组成:传感器模块、控制算法和功率放大模块。

传感器模块用于获取电机的运行状态,包括转速、位置等信息;控制算法根据传感器获取的信息计算出适当的电机控制信号;功率放大模块将控制信号放大驱动电机。

4. 常用的控制算法常用的无刷直流电动机控制算法包括电枢电流控制、感应电动机模型控制、空间矢量调制控制等。

这些控制算法在实际应用中各有优缺点,研究者们通常根据具体的应用场景选择合适的算法。

5. 实验与应用基于单片机的无刷直流电动机控制系统已经在工业自动化、电动汽车、无人机等领域得到了广泛应用。

研究者们通过实验验证了该控制系统的稳定性、精度和可靠性,并不断改进和优化控制算法,以适应不同的应用需求。

6. 结论与展望基于单片机的无刷直流电动机控制系统是电机控制领域的一个重要研究方向,其在提高电机性能、降低能耗、推动电动化技术发展等方面具有重要意义。

基于单片机的直流电机控制系统设计的文献综述

基于单片机的直流电机控制系统设计的文献综述

基于单片机的直流电机控制系统设计的文献综述随着科技的不断发展,单片机的应用越来越广泛。

在电机控制领域,单片机的应用也得到了广泛的关注。

本文综述了基于单片机的直流电机控制系统设计的相关文献,包括控制系统的设计、控制算法的选择、硬件设计和软件设计等方面。

通过对文献的分析,总结出了单片机在直流电机控制系统中的优点和缺点,并展望了未来的发展方向。

关键词:单片机、直流电机控制、控制算法、硬件设计、软件设计一、引言直流电机是一种常见的电动机,广泛应用于各种机械设备中。

在控制直流电机时,需要使用控制系统来实现对电机的转速、转向等参数的控制。

随着科技的不断发展,单片机的应用越来越广泛。

在直流电机控制领域,单片机的应用也得到了广泛的关注。

本文综述了基于单片机的直流电机控制系统设计的相关文献。

首先介绍了控制系统的设计,包括控制算法的选择、硬件设计和软件设计等方面。

然后对文献进行了分析,总结出了单片机在直流电机控制系统中的优点和缺点。

最后,展望了未来的发展方向。

二、控制系统的设计1. 控制算法的选择直流电机控制系统中常用的控制算法有PID算法、模糊控制算法和神经网络控制算法等。

PID算法是一种经典的控制算法,具有简单、易于实现等特点。

模糊控制算法则能够应对非线性系统的控制问题,具有较强的鲁棒性。

神经网络控制算法则能够学习系统的动态特性,适用于非线性系统的控制。

2. 硬件设计直流电机控制系统的硬件设计包括电机驱动电路、传感器接口电路、单片机接口电路等。

电机驱动电路是直流电机控制系统中最关键的部分,常用的驱动电路包括H桥驱动电路、MOSFET驱动电路等。

传感器接口电路则用于接收电机的参数信号,常用的传感器包括编码器、霍尔传感器等。

单片机接口电路则用于连接单片机和其他模块,常用的接口包括串口、I2C接口等。

3. 软件设计直流电机控制系统的软件设计包括单片机程序设计和上位机程序设计两部分。

单片机程序设计主要是实现控制算法和控制信号的生成,并与硬件电路进行交互。

基于单片机pid算法的直流电机速度控制方法

基于单片机pid算法的直流电机速度控制方法

基于单片机pid算法的直流电机速度控制方法基于单片机PID算法的直流电机速度控制方法是一种常用的技术,其基本原理是通过调节PWM(脉宽调制)信号的占空比来控制电机的输入电压,从而实现电机的速度控制。

以下是基于单片机PID算法的直流电机速度控制方法的基本步骤:1.设定目标速度:首先,需要设定电机的目标速度。

这可以通过按键或其他输入设备来实现。

2.采集实际速度:为了实现精确的控制,需要实时获取电机的实际速度。

这可以通过在电机转轴上安装光电编码器或霍尔传感器来实现,这些传感器可以实时检测电机的转速并将其转换为电信号。

3.计算偏差:单片机通过比较目标速度和实际速度,计算出速度偏差。

如果实际速度小于目标速度,偏差为负;反之,偏差为正。

4.应用PID算法:单片机使用PID算法来处理速度偏差。

PID控制器通过比例、积分和微分三个环节来计算控制量,以尽可能消除偏差。

具体的PID参数(如Kp、Ki、Kd)可以根据实际情况进行调整,以获得最佳的控制效果。

5.生成PWM信号:基于PID控制器的输出,单片机生成PWM信号来调节电机的输入电压。

占空比决定了电机输入电压的大小,进而影响电机的转速。

6.实时调整:在整个控制过程中,单片机不断采集电机的实际速度,计算偏差,并调整PWM信号的占空比,以使电机尽可能接近目标速度。

7.显示和保存数据:为了方便调试和观察,可以通过单片机的显示屏实时显示电机的实际速度和偏差。

此外,也可以将重要的数据保存在单片机的内部或外部存储器中。

8.安全保护:为了防止电机过载或意外事故,单片机应具备安全保护功能。

例如,当电机实际速度超过设定速度一定时间时,单片机应自动切断电源或发出报警信号。

基于单片机PID算法的直流电机速度控制方法具有精度高、稳定性好、适应性强等优点,广泛应用于各种需要精确控制电机速度的场合。

基于STM32单片机的直流电机调速系统设计

基于STM32单片机的直流电机调速系统设计

基于STM32单片机的直流电机调速系统设计直流电机调速系统是电子控制技术在实际生产中的应用之一,利用数字信号处理器(DSP)和单片机(MCU)等嵌入式系统,通过变换输出电压、调整周期和频率等方式实现对电机运行状态的控制。

本文将介绍一种基于STM32单片机的直流电机调速系统设计方案。

1. 系统设计方案系统设计主要分为硬件方案和软件方案两部分。

1.1 硬件方案设计:硬件主要包括STM32单片机模块、电机模块、电源模块、继电器模块。

STM32单片机模块采用STM32F103C8T6芯片,拥有高性能、低功耗、低成本和丰富的外设资源,为系统开发提供了最佳解决方案。

电机模块采用直流电机,电源模块采用可调电源模块,可以输出0-36V的电压。

继电器模块用于控制电机正反转。

1.2 软件方案设计:软件设计主要涉及编程语言和控制算法的选择。

控制算法采用PID控制算法,以实现对电流、转速、转矩等参数的调节。

2. 系统实现过程2.1 电机驱动设计:电机驱动采用PWM调制技术,控制电机转速。

具体过程为:由程序控制产生一个PWM波,通过适当调整占空比,使电机输出电压和电机转速成正比关系。

2.2 PID控制算法设计:PID控制器通过测量实际变量值及其与期望值之间的误差,并将其输入到控制系统中进行计算,以调节输出信号。

在本系统中,设置了三个参数Kp、Ki、Kd分别对应比例、积分和微分系数。

根据实际情况,分别调整这三个参数,可以让电机达到稳定的运行状态。

2.3 系统运行流程:启动系统后,首先进行硬件模块的初始化,然后进入主函数,通过读取控制输入参数,比如速度、电流等参数,交由PID控制器计算得出PWM输出信号,送给电机驱动模块,以产生不同的控制效果。

同时,还可以通过设置按钮来切换电机正反转方向,以便实现更精确的控制效果。

3. 总结本系统设计基于STM32单片机,采用PWM驱动技术和PID 控制算法,实现了对直流电机转速、转矩、电流等运行状态参数的精确调节。

基于单片机的直流调速系统设计终

基于单片机的直流调速系统设计终

基于单片机的直流调速系统设计终直流电机是目前应用最广泛的电机之一,直流调速系统是指通过调节电源电压或电机绕组连接方式来实现电机转速调节的一种控制系统。

而基于单片机的直流调速系统是指利用单片机来实现对直流电机的调速控制。

在设计基于单片机的直流调速系统之前,首先需要了解直流电机的工作原理和调速原理。

直流电机是通过改变电枢绕组中的电流或电势差来控制电机的转速的。

调速原理一般分为电压调速和极数切换调速两种。

在基于单片机的直流调速系统设计中,主要包括以下几个方面:1.电源模块设计:设计一个稳定的直流电源供电给直流电机。

通常采用相关电路来实现,如整流电路、滤波电路和调压电路等。

2.传感器模块设计:为了能够实时地监测电机的转速和电流等参数,需要设计相关的传感器模块。

可以采用霍尔元件或光电传感器来检测电机的转动情况,采用电流传感器来检测电机的电流。

3.控制模块设计:单片机作为控制中心,需要设计相应的控制模块。

可以通过PWM信号来控制电机的转速,通过采样电机参数来实时调节PWM 信号的占空比。

4.软件程序设计:设计单片机的软件程序,实现对直流电机的调速控制。

可以采用PID控制算法来调节电机的转速。

在进行基于单片机的直流调速系统设计时,需要考虑以下几个关键问题:1.硬件选型:选择合适的单片机和其他外围器件,保证系统的可靠性和稳定性。

2.电路设计:根据需求确定电机的功率和电压等参数,设计合适的电路以满足要求。

3.系统安全性设计:设计过流、过载和过温等保护机制,确保系统的安全性。

4.程序设计:编写单片机的程序代码,实现对直流电机的调速控制和保护功能。

5.系统测试:在完成硬件设计和软件编程后,进行系统测试和调试,确保系统的正常运行。

基于单片机的直流调速系统设计需要综合运用电机控制原理、电路设计、单片机应用等多个知识领域,需要耐心和细心的设计和调试工作。

在实际应用中,可以根据具体需求对系统进行定制和优化,如添加显示功能、通信功能等,以满足不同的应用场景需求。

基于单片机设计直流电机控制系统

基于单片机设计直流电机控制系统

基于单片机设计直流电机控制系统一、本文概述本文将详细介绍基于单片机的直流电机控制系统的设计过程。

随着科技的不断发展,电机控制在许多领域,如工业自动化、机器人技术、家用电器等,都发挥着重要的作用。

单片机作为一种高效、可靠的微控制器,具有集成度高、功耗低、控制精度高等优点,因此,基于单片机的直流电机控制系统设计成为了研究的热点。

本文将首先介绍直流电机的基本原理和控制方式,然后详细阐述如何利用单片机实现直流电机的精确控制。

在设计中,我们将考虑电机的启动、停止、正反转、调速等基本功能,并探讨如何通过编程实现这些功能。

我们还将讨论系统的硬件设计和软件设计,包括单片机的选型、电机的驱动电路、传感器的选择以及控制算法的实现等。

通过本文的阐述,读者将能够深入了解基于单片机的直流电机控制系统的设计过程,掌握相关的理论知识和实践技能,为实际应用提供有益的参考。

二、直流电机基本原理及特性直流电机是一种将电能转换为机械能的装置,其基本原理基于安培环路定律和电磁感应定律。

直流电机主要由定子、转子、电刷和换向器等部分组成。

定子通常由电磁铁构成,用于产生磁场;转子则是一个带有绕组的圆柱形结构,当通电时,在定子的磁场作用下产生转矩,从而使电机旋转。

调速性能好:通过改变电枢电压、磁场强度或电枢回路中的电阻,可以有效地调节直流电机的转速。

这使得直流电机在需要精确控制转速的场合,如精密机械、自动化设备中得到广泛应用。

启动转矩大:直流电机在启动瞬间,由于电枢电流较大,可以产生较大的启动转矩,使其具有良好的启动性能。

良好的调速动态性能:直流电机在调速过程中,转矩和转速的动态响应较快,能够满足一些对动态性能要求较高的应用需求。

控制方便:直流电机的控制相对简单,可以通过改变输入电压、电流或磁场强度来实现对电机转速和转向的控制。

通过改变电刷的位置,还可以实现电机的正反转切换。

然而,直流电机也存在一些局限性,如结构复杂、维护成本较高以及电刷和换向器易磨损等问题。

基于单片机的直流电机控制系统设计的文献综述

基于单片机的直流电机控制系统设计的文献综述

基于单片机的直流电机控制系统设计的文献综述随着科技的不断发展,单片机技术在电机控制系统中的应用越来越普遍。

本文综述了基于单片机的直流电机控制系统的设计与实现,包括硬件设计、软件设计、电机控制策略等方面。

结果表明,基于单片机的直流电机控制系统具有控制精度高、响应速度快、可靠性强等优点,是一种高效、实用的电机控制方法。

关键词:单片机;直流电机;控制系统;硬件设计;软件设计;控制策略一、引言直流电机广泛应用于工业生产、家电、交通运输等领域,其控制系统的设计和实现对于提高电机的性能和效率具有重要意义。

随着单片机技术的不断发展,基于单片机的电机控制系统成为了研究热点。

本文综述了基于单片机的直流电机控制系统的研究进展和应用现状,以期为相关研究提供参考和借鉴。

二、硬件设计基于单片机的直流电机控制系统的硬件设计包括电机驱动模块、传感器模块、单片机模块和电源模块等部分。

其中,电机驱动模块是整个系统的核心部分,其设计直接影响了系统的性能和稳定性。

电机驱动模块的设计需要考虑电机的电压、电流、转速等参数,以及驱动电路的稳定性和可靠性。

常用的电机驱动器包括PWM调速器、H桥驱动器、单向驱动器等。

另外,传感器模块用于检测电机的位置、速度、转向等信息,常用的传感器包括霍尔传感器、编码器、光电传感器等。

三、软件设计基于单片机的直流电机控制系统的软件设计包括控制算法、驱动程序和用户界面等部分。

其中,控制算法是整个系统的核心部分,其设计直接影响了系统的控制精度和响应速度。

常用的控制算法包括PID控制算法、模糊控制算法、神经网络控制算法等。

驱动程序用于实现电机控制算法,包括PWM输出、速度控制、位置控制等功能。

用户界面用于显示电机的运行状态和控制参数,包括LCD显示屏、LED指示灯等。

四、电机控制策略基于单片机的直流电机控制系统的电机控制策略包括速度控制、位置控制、转向控制等方面。

其中,速度控制是电机控制的基本功能,其目的是保持电机在指定的转速范围内运转。

基于单片机的直流电机控制系统设计

基于单片机的直流电机控制系统设计

基于单片机的直流电机控制系统设计一、设计目标设计一个基于单片机的直流电机控制系统,能够实现对直流电机的速度和方向的控制。

二、设计方案1.硬件设计(1)电源电路:通过适配器将交流电转换为直流电以供系统使用。

(2)单片机选择:选择一款适合该应用的单片机,如STC89C52系列。

(3)直流电机驱动电路:使用H桥驱动电路来控制直流电机的速度和方向。

(4)编码器:使用编码器来进行速度反馈,可以根据反馈信号来调整电机的转速。

2.软件设计(1)系统初始化:对单片机进行初始化配置,包括IO口的设置、定时器的配置等。

(2)速度控制算法:设计一个控制算法,根据期望速度和实际速度的差距来调整PWM波的占空比,从而控制电机转速。

(3)方向控制算法:设计一个方向控制算法,通过改变H桥电路的输入信号来改变电机的转向。

(4)编码器反馈处理:读取编码器的信号,计算出实际速度,并与期望速度进行比较。

(5)用户接口设计:可以通过按键或者外部PWM输入调节期望速度和方向,实现用户对电机的控制。

三、系统实现1.硬件实现根据硬件设计方案,按照电路原理图进行电路连接和焊接。

确保电源电路正常工作,单片机可以正常工作,H桥驱动电路可以正常控制电机的转向和速度。

连接编码器并确保能够正常读取速度反馈信号。

2.软件实现(1)编写单片机初始化程序,进行必要的配置。

(2)编写速度控制算法,根据期望速度和实际速度的差距来调整PWM波的占空比。

(3)编写方向控制算法,根据用户输入的方向来改变H桥电路的输入信号。

(4)编写编码器反馈处理程序,读取编码器的信号并计算实际速度。

(5)编写用户接口程序,可以通过按键或者外部PWM输入来调节期望速度和方向。

四、系统测试与优化1.对系统进行功能测试,确保可以通过用户接口控制电机的转向和速度。

2.对编码器反馈进行测试,验证实际速度计算的准确性。

3.对速度和方向控制进行测试,确保系统能够按照期望速度和方向进行控制。

4.如果发现问题,对系统进行优化和修改,改进算法和调整参数。

基于51单片机的PWM直流电机调速系统

基于51单片机的PWM直流电机调速系统

基于51单片机的PWM直流电机调速系统一、本文概述随着现代工业技术的飞速发展,直流电机调速系统在众多领域如工业自动化、智能家居、航空航天等得到了广泛应用。

在众多调速方案中,基于脉冲宽度调制(PWM)的调速方式以其高效、稳定、易于实现等优点脱颖而出。

本文旨在探讨基于51单片机的PWM直流电机调速系统的设计与实现,以期为相关领域的技术人员提供一种可靠且实用的电机调速方案。

本文将简要介绍PWM调速的基本原理及其在直流电机控制中的应用。

随后,将详细介绍基于51单片机的PWM直流电机调速系统的硬件设计,包括电机选型、驱动电路设计、单片机选型及外围电路设计等。

在软件设计部分,本文将阐述PWM信号的生成方法、电机转速的检测与控制算法的实现。

还将对系统的性能进行测试与分析,以验证其调速效果及稳定性。

本文将总结基于51单片机的PWM直流电机调速系统的优点与不足,并提出改进建议。

希望通过本文的阐述,能为相关领域的研究与应用提供有益参考。

二、51单片机基础知识51单片机,也被称为8051微控制器,是Intel公司在1980年代初推出的一种8位CISC(复杂指令集计算机)单片机。

尽管Intel公司已经停止生产这种芯片,但由于其架构的通用性和广泛的应用,许多其他公司如Atmel、STC等仍然在生产与8051兼容的单片机。

51单片机的核心部分包括一个8位的CPU,以及4KB的ROM、低128B 的RAM和高位的SFR(特殊功能寄存器)等。

它还包括两个16位的定时/计数器,四个8位的I/O端口,一个全双工的串行通信口,以及一个中断系统。

这些功能使得51单片机在多种嵌入式系统中得到了广泛的应用。

在PWM(脉冲宽度调制)直流电机调速系统中,51单片机的主要作用是生成PWM信号以控制电机的速度。

这通常是通过定时/计数器来实现的。

定时/计数器可以设置一定的时间间隔,然后在这个时间间隔内,CPU可以控制I/O端口产生高电平或低电平,从而形成PWM信号。

基于单片机的直流电机控制电路设计

基于单片机的直流电机控制电路设计

基于单片机的直流电机控制电路设计1.电机驱动电路:电机驱动电路用于控制直流电机的启停、正反转和速度调节。

常见的驱动电路有H桥电路和PWM调速电路。

-H桥电路:H桥电路由四个开关管组成,可以控制电流的流动方向,从而实现正反转功能。

在单片机的控制下,通过控制开关管的导通与断开,可以实现电机的正转和反转。

-PWM调速电路:PWM调速电路通过控制脉冲宽度来调节电机的速度。

单片机产生一个固定频率的PWM信号,通过改变脉冲宽度的占空比,控制电机的速度。

占空比越大,电机转动的速度越快。

2.单片机控制电路:单片机控制电路主要实现对电机的控制和监测功能。

通过单片机的IO口输出控制信号,实现电机的启停、正反转和调速。

同时,通过AD转换接口可以实现对电机的速度、电流等参数的监控。

3.电源电路:电源电路为整个系统提供稳定的直流电源。

常见的电源电路有开关电源和线性电源。

-开关电源:开关电源通过开关器件的开关操作,实现对输入电压的调整,从而输出稳定的直流电压。

开关电源具有体积小、效率高、稳定性好等优点,是直流电机控制电路中常用的电源方式。

-线性电源:线性电源通过线性调节器件,将输入的交流电压转换为稳定的直流电压。

线性电源具有设计简单、成本低等优点,但效率较低,一般用于对电流要求较低的应用场景。

总结:基于单片机的直流电机控制电路通过驱动电路,实现对电机的启停、正反转和速度调节。

通过单片机控制电路,实现对电机的控制和监测功能。

同时,为了保证电路的正常工作,需要提供稳定的直流电源。

以上是一个基本的电机控制电路设计,具体电路设计和参数设置需根据具体的应用场景和要求来确定。

基于单片机的无刷直流电机控制系统设计毕业设计

基于单片机的无刷直流电机控制系统设计毕业设计

基于单片机的无刷直流电机控制系统设计毕业设计一、引言哎呀,小伙伴们,今天我们来聊聊一个非常有趣的话题,那就是基于单片机的无刷直流电机控制系统设计毕业设计。

这个话题可是关系到我们的未来哦,所以大家一定要认真听讲,不要走神哦!让我们来简单了解一下什么是无刷直流电机。

哎呀,别看这个词挺高大上的,其实就是一种不用刷子的直流电机。

它的特点是效率高、噪音小、寿命长,所以在很多领域都有广泛的应用,比如电动车、空调、风扇等等。

那么,如何设计一个基于单片机的无刷直流电机控制系统呢?这可是一个相当复杂的问题。

不过没关系,我们会一步一步地来讲解,让大家轻松掌握这个技能。

二、单片机的基本知识我们要了解一些单片机的基本知识。

哎呀,单片机可不是什么神秘的东西,它就是一种集成了处理器、存储器和输入输出接口的微型计算机。

它的功能可强大了,可以控制各种外设,实现各种各样的功能。

现在市面上有很多种单片机,比如51系列、ARM系列、AVR系列等等。

它们的性能和价格都有所不同,我们要根据自己的需求来选择合适的单片机。

三、无刷直流电机的基本原理接下来,我们要了解无刷直流电机的基本原理。

哎呀,这个原理可不像我们平时看到的旋转木马那么简单哦。

无刷直流电机是由定子、转子和霍尔传感器组成的。

定子上有很多槽,转子上有永磁体。

当电流通过定子和转子时,就会产生磁场,从而使转子旋转。

霍尔传感器的作用是检测转子的位置,从而控制单片机的输出信号,实现对电机的控制。

四、基于单片机的无刷直流电机控制系统设计现在我们已经了解了单片机和无刷直流电机的基本知识,接下来我们就要开始设计我们的控制系统了。

哎呀,这个过程可是个大工程哦,需要我们分步骤来进行。

我们需要选择合适的单片机。

根据前面的介绍,我们可以选择51系列、ARM系列或AVR系列的单片机。

然后,我们需要编写程序来控制单片机的工作。

这个程序要包括初始化、定时器设置、PWM波形生成等功能。

接下来,我们需要连接电源、定子和转子。

基于单片机的直流无刷电机调速电路设计

基于单片机的直流无刷电机调速电路设计

一、概述现代工业生产中,电机作为常见的驱动设备,广泛应用于各种机械设备中。

而直流无刷电机作为一种高效、可靠的电机类型,被广泛应用于各种领域,如汽车、航空航天、工业自动化等。

直流无刷电机在这些应用中常需要进行调速控制,以适应不同工况下的需求。

而基于单片机的直流无刷电机调速电路设计,不仅可以实现精确的调速控制,同时还可以实现多种保护功能,提高了电机的可靠性和性能。

二、直流无刷电机调速原理1. 直流无刷电机工作原理直流无刷电机是一种将电能转换为机械能的装置,其工作原理是依靠电磁感应和电场力的作用。

当电流通过电机的线圈时,会产生磁场,而通过电子开关控制磁场的变化,从而驱动转子旋转。

2. 调速原理直流无刷电机的转速与电压或电流成正比,因此通过调节电机的供电电压或电流大小,可以实现对电机转速的调节。

而单片机作为控制中心,可以通过采集电机转速反馈信号,通过控制电机供电电压或电流大小,实现对电机的精准调速。

三、基于单片机的直流无刷电机调速电路设计1. 电机驱动电路设计为了实现对直流无刷电机的精确控制,需要设计一个高性能的电机驱动电路。

电机驱动电路通常包括功率放大器、电流感应电路、电流反馈电路等部分。

其中功率放大器主要用于放大来自单片机的PWM控制信号,并驱动电机;电流感应电路用于采集电机的电流信号,以实现对电机电流的监测和控制;电流反馈电路则用于对电机电流进行反馈,以保证电机运行的稳定性和安全性。

2. 单片机控制电路设计单片机作为控制中心,需要设计一个高性能的控制电路,以实现对电机的精确控制。

控制电路通常包括主控芯片、AD/DA转换电路、通信接口、显示器等部分。

主控芯片用于控制电机的启停、正反转、以及调速等功能;AD/DA转换电路用于采集电机的转速反馈信号,并实现对电机转速的实时监测和控制;通信接口和显示器则用于与外部设备进行通讯和显示。

3. 保护电路设计为保证电机运行的安全可靠,需要设计一个完善的保护电路。

保护电路通常包括过压保护、欠压保护、过流保护、过温保护等部分。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要本课程主要是设计一个基于单片机的直流电机 PWM 控制系统。

PWM 控制提高了调速范围,提高了调速精度,改善了快速性能、功率和功率因数。

系统在设计中被控对象采用 5V 的直流电机,以 MCS-51 单片机为控制核心,采用 LCD12864 液晶作为显示元件,进行软硬件的设计。

硬件电路由protel 设计制作,主要设计了液晶显示电路、键盘控制电路、复位电路、测速电路和驱动电路。

软件设计在 Keil 开发平台用 C 语言编写,程序采用模块化设计方案,包括液初始化程序、晶显示程序、键盘控制程序。

本系统 PWM 控制直流电机采用调压调速的方法,整体设计包括软件和硬件两个部分。

通过利用单片机产生 PWM 控制信号控制直流电机,详细介绍脉宽调制 ( PWM) 控制原理,直流电机的工作原理和数学模型以及用 H型桥电路基本原理设计的驱动电路。

通过硬件电路的模拟情况,说明系统运行正常,各个功能模块实现是可行的,控制精度比较高,能够满足系统的基本要求。

关键词:单片机;PWM;直流电机;L298N;LCD12864;目录一、设计任务 (1)二、设计方案 (1)三、系统硬件设计 (3)1、 STC52最小系统 (3)2、电机模块 (8)3、 L298N模块 (9)4、测速模块 (11)5、测压模块 (12)6、液晶模块 (13)7、按键模块 (15)8、灯光信号模块 (16)四、系统软件设计 (17)1、软件流程图 (17)2、 PWM程序设计 (18)3、测压程序设计 (18)4、测速程序设计 (19)5、液晶驱动程序设计 (20)6、菜单程序设计 (21)7、按键程序设计 (23)8、电机反电动势系数计算程序 (24)9、电机力矩系数计算程序 (25)10、逼近算法控制程序 (25)11、比例控制程序 (25)12、 PID控制程序 (26)五、直流调速系统动态数学模型的建立 (28)六、调速数据 (32)1、比例调速数据 (32)2、 PID调速数据 (33)3、逼近算法调速数据 (34)4、反电动势系数和电机力矩系数数据 (34)七、心得体会 (34)参考文献 (36)附录一硬件原理图 (37)附录二硬件PCB图 (38)附录三程序清单 (39)一、设计任务本课题设计主要的目的是为了能够准确及时的控制直流电动机的正转、反转、停止、加速和减速功能可以准确调节控制直流电机的转速。

同时,本设计可以自动测量计算直流电机的反电动势系数以及马达的力矩系数。

直流电机的转速控制分别采用的调速方案:PID控制调速。

本系统采取了上位机,人机交流界面更加人性化。

二、设计方案1、任务分析本设计要求中央控制芯片具有定时计数的功能,一定的程序存储空间,还要有足够的IO外接端口。

由于本设计以LCD12864作为人机交流的显示界面,所以要求中央控制芯片具有一定的电流驱动能力。

LCD、电机控制信号、LED指示灯、独立按钮,电压采集这些都需要占用大量IO接口,所以要求中央控制芯片要有足够多的外部接口以满足需要。

本设计要求能准确控制电机的转向以及转速,所以要求电机的控制芯片就有较强的调速控制功能以及转向控制功能。

本设计要求所采用的的直流电机转速具有一定的可调空间以及足够的灵敏度。

本设计涉及直流电机转速的采集,电机输出电压的测量,所以要求本系统具有测量电机转速和采集电压的功能。

2、方案流程图3、系统结构框图显示器A/D变换器单片机核心键盘和开关电平转换 H桥隔离和驱动电源测速马达马达一、系统硬件设计1、STC89C521、电源(1) VCC-芯片电源,接+5V,(2) VSS-接地端;注意:用万用表测试单片机引脚电流表一般为0V或者5V,这是标准的TTL电平,但有时候在单片机程序正在工作时候测试结果并不是这个值而是介0V-5V之间,其实这只是万用表反映没这么快而已,在某一瞬间单片机引脚电流不是保持在通常情况下0V或者5V的。

2、时钟:XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。

3、控制线:控制线共有4根(1)ALE/PROG:地址锁存允许/片内EPROM编程脉冲①ALE功能:用来锁存PO口送出的低8位地址②PROG功能:片内有EPROM的芯片,在EPROG编程期间,此引脚输入编程脉冲。

(2)PSEN:外ROM读选通信号。

(3)RST/VPD:复位/备用电源。

① RST(Reset)功能:复位信号输入端。

② VPD功能:在VCC掉电情况下,接备用电源。

(4)EA/VPP:内外ROM 选择/片内EPROM编程电源。

①EA功能:内外ROM选择端。

②VPP功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源VPP。

4、I/O线89C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。

P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总路线)。

RST:复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

STC89C52单片机的引脚如图1所示图1 STC89C52单片机引脚图(1)系统时钟电路本系统采用11.0592MKZ的外部石英晶振作为单片机的时钟脉冲输入。

电路图如图2所示。

图2 时钟电路(2)复位电路本系统采用的是上电复位方式。

如图3所示。

图3 复位电路2、电机模块直流电机是指能将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。

它是能实现直流电能和机械能互相转换的电机。

当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。

本系统采用带M130直流电机。

其实物图如图5所示。

图5 电机3、L298N模块(1)ADC结构图如6所示采用7.5V可充电两节干电池对EnA供电图6 ADC的结构(2)引脚说明见表3-1:表3-1 L298N引脚说明表MW.15Name Function1;15 Sense A; Sense B 在这个引脚和低之间可以接感应电阻用于控制负载电流2;3 Out 1; Out 2 A桥的输出端口;流经这两个端子连接的负载电流在端子1被检测4 VS 用于驱动负载的功率输出电源电压。

在这个引脚和地之间必须接一个100nf的无极性电容5;7 Input 1; Input 2 A桥TTL输入端6;11 Enable A; EnableB TTL使能输入端:低电平使桥A或桥B无效8 GND 地9 VSS 逻辑模块的电源供应。

引脚与地间必须接一个100nF的电容10; 12 Input 3; Input 4 B桥TTL输入端13; 14 Out 3; Out 4 B桥的输出;流经这两个端子连接的负载电流在端子15被检测4、按键模块本系统设计了5个独立按键,低电平有效。

分别用作电机正转按键、电机反转按键、电机加速按键、电机减速按键,电机停止按键。

其电路原理图如图12所示。

图12 按键电路图5、液晶模块(1)概述带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。

可以显示8×4行16×16点阵的汉字也可完成图形显示低电压低功耗是其又一显著特点。

由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。

(2)基本特性(1)、低电源电压(VDD:+3.0--+5.5V)(2)、显示分辨率:128×64点(3)、内置汉字字库,提供8192个16×16点阵汉字(简繁体可选)(4)、内置 128个16×8点阵字符(5)、2MHZ时钟频率(6)、显示方式:STN、半透、正显(7)、驱动方式:1/32DUTY,1/5BIAS(8)、视角方向:6点(9)、背光方式:侧部高亮白色LED,功耗仅为普通LED的1/56、光电测速模块光电测速传感器,包括传感器和码盘两部分二、系统软件设计1、软件流程图开始初始化串口连接函数按键动作函数上位机控制函数正反,加减控制液晶显示注释:初始化定时器,中断,串口中断,初始化12864,初始化PWM的值。

按键动作函数和上位机控制包括正、反、加减,停止函数。

液晶显示包括电流显示函数、转速显示函数。

2、测速程序设计#include <reg52.h>#include <intrins.h>#include"jianpan.h"#include"12864.h"#include"cesu.h"#include"uart.h"sbit INA=P1^0; //正转sbit INB=P1^1; //反转sbit ENA=P1^2; //控制通断unsigned char tt=0;unsigned int ttcs=0;unsigned char num=0;unsigned char p;bit ttflag=0;void add_dec(); //声明加减速函数(1)系统主程序void main(){init(); //初始化定时器,中断,串口中断main12864(); //初始化12864pwm=25; //初始PWM值设置25while(1){Uart_Main(); //串口主函数jianpan(); //按键函数kongzhi(); //正反,加减控制display_hanzi(); //显示汉字display_date(); //显示数据if(pwmflag==0) //正转{pos(0,0); //第一行第一例开始for(num=0;num<4;num++){//显示“前进”frontwrite_date(table_front[num]);delay12(5);}}if(pwmflag==1) //反转{pos(0,0);for(num=0;num<4;num++){write_date(table_back[num]); //显示后退delay12(1);}}}}(1)初始化函数程序void init(){TMOD=0x21; //串口中断;定时器0工作方式1 TH0=(65536-2000)/256; //2msTL0=(65536-2000)%256;TH1=0xfd; //初值 9600TL1=0xfd;/*******定时器0*********/EA=1;ET0=1; //允许C/T1申请中断TR0=0;/*****外部中断0*******/IT0 = 1;EX0 = 1;/*******串口中断配置***************/ES=1; //串行口中断允许TR1=1;SM0=0;SM1=1;//工作方式1;波特率可以变REN=1; //允许接收控制位}/******定时器0************/void timer0() interrupt 1{TH0=(65536-2000)/256; //2msTL0=(65536-2000)%256;tt++;ttcs++;if(tt>=50) tt=0; //T=100msif(pwm>=50) pwm=50;if(pwm<=0) pwm=0;if(pwmflag==0) //正转标志位{if(tt<=pwm){ENA=1;INA=1;INB=0; //Ton }else{ENA=0;INA=1;INB=1; //Toff }}if(pwmflag==1){if(tt<=pwm){ENA=1;INA=0;INB=1; //Ton }else{ENA=0;INA=1;INB=1; //Toff }}if(ttcs==250) //每当250ms算一次外部中断{EX0=0;ttcs=0;csnum2=csnum1*10/3;csnum1=0;EX0=1;}}/******外部中断0**********/void exint0() interrupt 0 //(location at 0003H){csnum1++;}(2)12864.h程序#ifndef _12864_H_#define _12864_H_void main12864();void init12864();void pos(unsigned char x,unsigned char y); void write_date(unsigned char date);void delay12(unsigned char z);extern unsigned char code table_front[]; extern unsigned char code table_stop[]; extern unsigned char code table_back[]; extern unsigned char code table_add[]; extern unsigned char code table_dec[]; extern unsigned char code table_i[]; extern unsigned char code table_speed[]; extern unsigned char tablenum[];#endif(3)Jianpan.h程序#ifndef _JIANPN_H_#define _JIANPAN_H_void jianpan();void delay(unsigned char d);/****外部用到的变量要加extern进行外部变量声明*************/extern unsigned char kn1flag; //按键1标志位extern unsigned char kn2flag; //按键2标志位extern unsigned char kn0flag; //按键2标志位extern bit kn2; //extern bit kn3;extern bit kn4;#endif(4)cesu.h程序#ifndef _CESU_H_#define _CESU_H_extern unsigned int csnum1;extern unsigned int csnum2;//extern unsigned int T0count;#endif(5)uart.h程序#ifndef _UART_H_#define _UART_H_extern unsigned char flag;extern unsigned char a;extern unsigned char sbufdate;extern unsigned char pwm;extern unsigned char pwmflag;void Uart_Main();#endif(6)按键控制子程序/********按键对应控制**************/void kongzhi(){if(kn0flag==1) //按下P1^7停止{kn0flag=0;ENA=0;TR0=0;csnum1=0;pwm=0;pos(0,0);for(num=0;num<16;num++){write_date(table_stop[num]);delay12(1);}}if(kn1flag==1) //按下P3^3正转{kn1flag=0;TR0=1;pwmflag=0;add_dec();}if(kn2flag==1) //按下P3^4反转{kn2flag=0;TR0=1;pwmflag=1;add_dec();}}(7)PWM加减速控制子程序void add_dec() //加减程序{if(kn3==1) //按下松开P3^5;PWM加2 {kn3=0;TR0=1;pwm=pwm+2;pos(0,4);for(num=0;num<4;num++){write_date(table_add[num]);delay12(1);}}if(kn4==1) //按下松开P3^6;pwm减2{kn4=0;TR0=1;pwm=pwm-2;pos(0,4);for(num=0;num<4;num++){write_date(table_dec[num]);delay12(1);}}}(8)速度,PWM,电流显示子程序/******显示速度,PWM,电流****/void display_date(){pos(1,2); //速度for(p=0;p<1;p++){write_date(':');write_date(tablenum[csnum2/1000]);write_date(tablenum[csnum2/100%10]);write_date(tablenum[csnum2/10%10]);write_date(tablenum[csnum2%10]);delay12(1);write_date('r');write_date('/');write_date('m');write_date('i');write_date('n');delay12(1);}pos(2,2); //初略计算电流for(p=0;p<1;p++){write_date(':');write_date(tablenum[pwm*189/100/100%10]);write_date(tablenum[pwm*189/100/10%10]);write_date(tablenum[pwm*189/100%10]); //[(pwm*163/10/50)/4*6/50/4%10]);delay12(1);write_date('m');write_date('A');delay12(1);}pos(3,0); //pwm Ufor(p=0;p<1;p++){write_date('p');write_date('w');write_date('m');write_date(' ');write_date(tablenum[pwm/100%10]);write_date(tablenum[pwm/10%10]);write_date(tablenum[pwm%10]);delay12(1);write_date(' ');write_date(' ');write_date('U');write_date(':');write_date(tablenum[(pwm*63/50)/10%10]); // 电压 u=ton/T *Udwrite_date('.');write_date(tablenum[(pwm*63/50)%10]);delay12(1);}}(9)汉字显示子程序void display_hanzi() //汉字{pos(1,0); //第二行第一列开始for(num=0;num<4;num++){write_date(table_speed[num]); //显示“速度”speeddelay12(1);}pos(2,0); //第三行第一例开始for(num=0;num<4;num++){write_date(table_i[num]); //显示“电流:”idelay12(1);}}3、液晶驱动程序设计LCD12864驱动除了集成基本的读写函数、空闲检测等基本函数外,本系统还字符输出、图形绘制、画点、画直线、画圆等方便于界面显示的功能函数,并且采取了多个函数实现参数化,这有利于在其他文件中进行调用,传入不同参数可以出现不同效果。

相关文档
最新文档