基于单片机对直流电机的控制
- 格式:docx
- 大小:389.07 KB
- 文档页数:12
第一章:前言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. 总结本文围绕基于单片机的无刷直流电机控制系统设计展开了探讨,从无刷直流电机的工作原理、单片机在控制系统中的作用,到具体的硬件设计和软件设计,全面、深入地阐述了相关内容。
希望通过本文的阐述,读者能够对基于单片机的无刷直流电机控制系统设计有更深入的理解和应用。
摘要本设计首先介绍了AT89S52单片机,L298驱动电路及直流电机的基本原理与功能;其次,设计直流电机实现转向、速度的控制方案;再次,在这些器件功能与特点的基础上,拟出设计思路,构建系统的总体框架,并利用LED数码管对测试结果进行显示;最后利用Proteus软件绘出电路图,同时写出设计系统的运行流程和相关程序。
整个系统通过写入单片机中的程序分配好控制字的存储单元以及相应的内存地址赋值;启动系统后,从单片机的I/O口输出控制脉冲,经过L298驱动电路对脉冲进行处理,输出能直接控制直流电机的脉冲信号。
本系统采用了低成本的AT89S52单片机芯片作为控制芯片,以按键做为输入达到对直流电机的启停、速度和方向的精确控制。
直流电机的驱动采用的是达林顿集成管L298,并且采用LED的进行显示。
在设计中,采用了PWM技术对电机进行控制,通过对占空比的计算达到精确调速的目的。
总之,本次设计出了操作简单、显示直观的直流电机控制系统。
关键字: AT89S52单片机;L298驱动芯片;直流电机。
AbstractThe design first introduced the AT89S52 single-chip microcomputer, L298 drive circuit and dc motor of the basic principle and function; Second, the design of dc motor to realize, the speed control scheme; and Again, in these devices based on the characteristics of the function and, draw up the design idea, construction of the whole system framework, and use of LED digital tube the results shows; Finally, using the Proteus software draw circuit diagram, at the same time, write design the operation of the system process and procedures. The whole system by writing to the single chip microcomputer program allocation good control of the word and the corresponding storage unit of the memory address assignment; Reboot your system, from single chip I/O mouth output control pulse, after L298 driving circuit pulse processing, the output can directly control dc motor of the pulse signal. This system USES a low cost AT89S52 single-chip microcomputer chip as control chip, with button as input to the keyboard to dc motor of the rev. Stop, speed and direction of the accurate control. Dc motor driver uses is the integration of L298 tube, and using the LED displayed. In the design, adopted PWM technology of motor control, through to the occupies emptiescompared to achieve the purpose of accurate calculation speed. All in all, this design out the operation is simple, direct display of dc motor control system.Key word:AT89S52 single-chip microcomputer; L298 driving chip; DC motor.目录1 绪论 (1)1.1 直流电机调速系统的发展 (1)1.2 开发背景 (2)1.3 选题的目的及意义 (3)1.4 研究方法 (4)2 系统方案设计 (5)2.1 概述 (5)2.2 总体设计任务 (5)2.3 系统总体设计方案论证 (6)2.4 系统总体设计方框图 (7)2.5 直流电机调速概述 (8)2.5.1 直流电机简介 (8)2.5.2 直流电机调速原理 (9)2.5.3 直流调速系统实现方式论证 (9)3 电机调速驱动设计 (11)3.1 PWM控制方式 (11)3.2 PWM控制的基本原理 (11)3.3 PWM 发生电路的设计 (13)3.4 功率放大驱动电路 (16)3.4.1 芯片L 298 性能及特点....................... ..163.4.2 L298芯片引脚的电气特性及功能 (17)3.4.3 L298驱动电机的逻辑功能 (19)4 硬件电路设计 (21)4.1 AT89S52的最小系统电路 (21)4.1.1 单片机芯片AT89S52介绍 (21)4.1.2单片机管脚说明 (22)4.1.3 时钟电路 (25)4.1.4 复位电路 (26)4.2 数码管显示 (27)4.3 排阻的简介 (27)4.4 显示电路与AT89S52单片机接口电路设计 (28)4.5 键盘与AT89S52单片机接口电路设计 (30)4.6 驱动电路与AT89S52单片机接口电路设计 (30)5 系统软件设计 (32)5.1 主程序设计 (33)5.2 子程序设计 (34)5.2.1 键盘子程序设计 (34)5.2.2显示子程序设计 (35)5.2.3 P W M控制程序设计 (36)5.3 系统仿真 (36)5.4 Proteus的简单使用 (37)6 设计总结 (39)致谢 (40)参考文献 (41)附录1 程序清单 (42)附录2 系统总图 (50)绪论1.1 直流电机调速系统的发展直流电气传动系统中需要有专门的可控直流电源,常用的可控直流电源有以下几种: 第一,最初的直流调速系统是采用恒定的直流电压向直流电动机电枢供电,通过改变电枢回路中的电阻来实现调速。
基于单片机控制的直流电机调速系统设计一、引言直流电机在工业自动化领域中广泛应用,其调速系统的设计是实现自动控制的关键。
本文将介绍一种基于单片机控制的直流电机调速系统设计方案,主要包括电机原理、硬件设计、软件设计以及实验结果与分析等内容。
二、电机原理直流电机是一种将直流电能转换为机械能的装置,其原理基于电磁感应和安培定律。
电机由定子和转子两部分组成,定子上绕有恒定电流,产生磁场,而转子上带有电流,与定子的磁场互相作用,产生力矩使电机旋转。
三、硬件设计1.单片机选择在本设计中,选择了一款功能强大、性能稳定的单片机作为控制核心,例如使用ST C89C51单片机。
该单片机具有丰富的GP IO口和定时器/计数器等外设,适合进行电机控制。
2.电机驱动电路设计电机驱动电路主要包括功率电源、运放电路和驱动电路。
其中,功率电源为电机提供稳定的直流电源,运放电路用于信号放大和滤波,驱动电路则根据控制信号控制电机的转速。
3.速度测量电路设计为了实时监测电机的转速,需要设计速度测量电路。
常见的速度测量电路包括光电编码器、霍尔传感器等,通过测量转子上感应物体的变化来获得电机的转速信息。
四、软件设计1.程序框架软件设计的目标是实现对电机转速的控制和监测。
基于单片机的软件设计主要包括主程序的编写、中断服务程序的编写以及定时器的配置等。
2.控制算法常见的直流电机调速算法包括电压调速法、P WM调速法等。
根据实际需求选择合适的算法,并根据测量到的转速信号进行反馈控制,实现对电机转速的精确控制。
五、实验结果与分析设计完成后,进行实验验证。
通过设置不同的转速需求,观察电机的实际转速与设定转速的误差,并分析误差原因。
同时还可以测试电机在不同负载下的转速性能,以评估系统的稳定性和鲁棒性。
六、总结基于单片机控制的直流电机调速系统设计是实现自动控制的重要应用。
本文介绍了该系统的硬件设计和软件设计方案,并展示了实验结果。
通过系统实现电机转速的精确控制,可以广泛应用于工业自动化领域。
基于单片机的直流电机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字左右:________________________________________文献综述:基于单片机的无刷直流电动机控制系统研究1. 引言无刷直流电动机(BLDC)以其高效率、低噪音和长寿命等优点在工业和家用电器中得到了广泛应用。
而基于单片机的无刷直流电动机控制系统,作为一种先进的电机控制技术,具有成本低、响应快、可靠性高等特点,受到了研究者们的广泛关注。
2. 无刷直流电动机的工作原理无刷直流电动机是一种将电能转换为机械能的装置,其工作原理基于电磁感应和电流的相互作用。
通过在电动机中的定子和转子上安装恰当的磁铁,配合适当的控制电路,可以实现对电机转速和转矩的精确控制。
3. 基于单片机的无刷直流电动机控制系统设计基于单片机的无刷直流电动机控制系统一般由三部分组成:传感器模块、控制算法和功率放大模块。
传感器模块用于获取电机的运行状态,包括转速、位置等信息;控制算法根据传感器获取的信息计算出适当的电机控制信号;功率放大模块将控制信号放大驱动电机。
4. 常用的控制算法常用的无刷直流电动机控制算法包括电枢电流控制、感应电动机模型控制、空间矢量调制控制等。
这些控制算法在实际应用中各有优缺点,研究者们通常根据具体的应用场景选择合适的算法。
5. 实验与应用基于单片机的无刷直流电动机控制系统已经在工业自动化、电动汽车、无人机等领域得到了广泛应用。
研究者们通过实验验证了该控制系统的稳定性、精度和可靠性,并不断改进和优化控制算法,以适应不同的应用需求。
6. 结论与展望基于单片机的无刷直流电动机控制系统是电机控制领域的一个重要研究方向,其在提高电机性能、降低能耗、推动电动化技术发展等方面具有重要意义。
基于单片机的直流电机控制系统设计的文献综述随着科技的不断发展,单片机的应用越来越广泛。
在电机控制领域,单片机的应用也得到了广泛的关注。
本文综述了基于单片机的直流电机控制系统设计的相关文献,包括控制系统的设计、控制算法的选择、硬件设计和软件设计等方面。
通过对文献的分析,总结出了单片机在直流电机控制系统中的优点和缺点,并展望了未来的发展方向。
关键词:单片机、直流电机控制、控制算法、硬件设计、软件设计一、引言直流电机是一种常见的电动机,广泛应用于各种机械设备中。
在控制直流电机时,需要使用控制系统来实现对电机的转速、转向等参数的控制。
随着科技的不断发展,单片机的应用越来越广泛。
在直流电机控制领域,单片机的应用也得到了广泛的关注。
本文综述了基于单片机的直流电机控制系统设计的相关文献。
首先介绍了控制系统的设计,包括控制算法的选择、硬件设计和软件设计等方面。
然后对文献进行了分析,总结出了单片机在直流电机控制系统中的优点和缺点。
最后,展望了未来的发展方向。
二、控制系统的设计1. 控制算法的选择直流电机控制系统中常用的控制算法有PID算法、模糊控制算法和神经网络控制算法等。
PID算法是一种经典的控制算法,具有简单、易于实现等特点。
模糊控制算法则能够应对非线性系统的控制问题,具有较强的鲁棒性。
神经网络控制算法则能够学习系统的动态特性,适用于非线性系统的控制。
2. 硬件设计直流电机控制系统的硬件设计包括电机驱动电路、传感器接口电路、单片机接口电路等。
电机驱动电路是直流电机控制系统中最关键的部分,常用的驱动电路包括H桥驱动电路、MOSFET驱动电路等。
传感器接口电路则用于接收电机的参数信号,常用的传感器包括编码器、霍尔传感器等。
单片机接口电路则用于连接单片机和其他模块,常用的接口包括串口、I2C接口等。
3. 软件设计直流电机控制系统的软件设计包括单片机程序设计和上位机程序设计两部分。
单片机程序设计主要是实现控制算法和控制信号的生成,并与硬件电路进行交互。
基于单片机pid算法的直流电机速度控制方法基于单片机PID算法的直流电机速度控制方法是一种常用的技术,其基本原理是通过调节PWM(脉宽调制)信号的占空比来控制电机的输入电压,从而实现电机的速度控制。
以下是基于单片机PID算法的直流电机速度控制方法的基本步骤:1.设定目标速度:首先,需要设定电机的目标速度。
这可以通过按键或其他输入设备来实现。
2.采集实际速度:为了实现精确的控制,需要实时获取电机的实际速度。
这可以通过在电机转轴上安装光电编码器或霍尔传感器来实现,这些传感器可以实时检测电机的转速并将其转换为电信号。
3.计算偏差:单片机通过比较目标速度和实际速度,计算出速度偏差。
如果实际速度小于目标速度,偏差为负;反之,偏差为正。
4.应用PID算法:单片机使用PID算法来处理速度偏差。
PID控制器通过比例、积分和微分三个环节来计算控制量,以尽可能消除偏差。
具体的PID参数(如Kp、Ki、Kd)可以根据实际情况进行调整,以获得最佳的控制效果。
5.生成PWM信号:基于PID控制器的输出,单片机生成PWM信号来调节电机的输入电压。
占空比决定了电机输入电压的大小,进而影响电机的转速。
6.实时调整:在整个控制过程中,单片机不断采集电机的实际速度,计算偏差,并调整PWM信号的占空比,以使电机尽可能接近目标速度。
7.显示和保存数据:为了方便调试和观察,可以通过单片机的显示屏实时显示电机的实际速度和偏差。
此外,也可以将重要的数据保存在单片机的内部或外部存储器中。
8.安全保护:为了防止电机过载或意外事故,单片机应具备安全保护功能。
例如,当电机实际速度超过设定速度一定时间时,单片机应自动切断电源或发出报警信号。
基于单片机PID算法的直流电机速度控制方法具有精度高、稳定性好、适应性强等优点,广泛应用于各种需要精确控制电机速度的场合。
基于C51单片机的直流电机PWM调速控制--SQ这是最近一阶段自己学习所获,现分享与大家。
这里采用A T89C52单片机做主控制芯片,实现两路直流电机的PWM调速控制,另外还可以实现转向、显示运行时间、显示档位等注:考虑小直流电机自身因素,调速范围仅设有四级电路原理图:C语言程序源代码:/******************** 硬件资源分配*********************/数码管:显示电机状态(启停、正反、速度)、运行时间、是否转弯按键:K4 启动/暂停K3 正反转/转弯允许K2 加速/左转/运行时间清零K1 减速/右转/停止定时器:T0 数码管动态显示,输出PWMT1 运行时间记录********************************************************//*******主程序文件PWM.c******/#include <reg52.h>#include "Afx.h"#include "Config.c"#define CIRCLE 5 //脉冲周期//按键定义uchar key,key_tmp=0, _key_tmp=0;//显示定义uchar LedState=0xF0; //LED显示标志,0xF0不显示,Ox00显示uchar code LED_code_d[4]={0xe0,0xd0,0xb0,0x70}; //分别选通1、2、3、4位uchar dispbuf[4]={0,0,0,0}; //待显示数组uchar dispbitcnt=0; //选通、显示的位uchar mstcnt=0;uchar Centi_s=0,Sec=0,Min=0; //分、秒、1%秒//程序运行状态标志bit MotState=0; //电机启停标志bit DirState=0; //方向标志0前,1后uchar State1=-1;uchar State2=-1;uchar State3=0;uchar State4=-1;uchar LSpeed=0;uchar RSpeed=0;//其他uint RunTime=0;uint RTime_cnt=0;uint LWidth;uint RWidth; //脉宽uint Widcnt=1;uint Dispcnt;//函数声明void key_scan(void);void DisBuf(void);void K4(void);void K3(void);void K2(void);void K1(void);void disp( uchar H, uchar n );void main(void){P1|=0xF0;EA=1;ET0=1;ET1=1;TMOD=0x11;TH0=0xFC;TL0=0x66; //T0,1ms定时初值TH1=0xDB;TL1=0xFF; //T1,10ms定时初值TR0=1;Widcnt=1;while(1){key_scan();switch(key){case 0x80: K1(); break;case 0x40: K2(); break;case 0x20: K3(); break;case 0x10: K4(); break;default:break;}key=0;DisBuf();LWidth=LSpeed;RWidth=RSpeed;}}//按键扫描**模拟触发器防抖void key_scan(void){key_tmp=(~P3)&0xf0;if(key_tmp&&!_key_tmp) //有键按下{key=(~P3)&0xf0;}_key_tmp=key_tmp ;}//按键功能处理/逻辑控制void K4(void){if(State4==-1){State4=1;TR1=1;dispbuf[3]=1;LedState=0x00; //打开LEDMotState=1; //打开电机LSpeed=1;RSpeed=1; //初速设为1}else if(State4==1){State4=0;TR1=0;MotState=0; //关闭电机}else if(State4==0){MotState=1;if(State3==0){State4=1;TR1=1;}else if(State3==1){LSpeed=2;RSpeed=2;}}}void K3(void){if(State4==1)DirState=!DirState;if(State4==0){if(State3==0){State3=1; //可以转向标志1可以,0不可以TR1=1;dispbuf[3]=9;MotState=1;LSpeed=2;RSpeed=2;}else if(State3==1){State3=0;TR1=0;dispbuf[3]=0;MotState=0;}}}void K2(void){if(State4==1&&LSpeed<4&&RSpeed<4){LSpeed++;RSpeed++;}else if(State4==0){if(State3==0){//State4=-1;//LedState=0xF0;MotState=0;Sec=0;Min=0;}else if(State3==1&&LSpeed<4&&RSpeed<4){//TurnState=0;LSpeed=2;RSpeed++;}}}void K1(void){if(State4==1&&LSpeed>1&&RSpeed>1){LSpeed--;RSpeed--;}else if(State4==0){if(State3==0){State4=-1;LedState=0xF0;MotState=0;}else if(State3==1&&LSpeed<4&&RSpeed<4){//TurnState=1;LSpeed++;RSpeed=2;}}}//显示预处理void DisBuf(void){if(RTime_cnt==100){Sec++;RTime_cnt=0;}if(Sec==60){Min++;Sec=0;}if(State4==1){dispbuf[0]=Sec%10;dispbuf[1]=Sec/10;dispbuf[2]=Min;if(!DirState) //正转dispbuf[3]=LSpeed;if(DirState) //反转dispbuf[3]=LSpeed+4;}if(State4==0){if(State3==0){dispbuf[0]=Sec%10;dispbuf[1]=Sec/10;dispbuf[2]=Min;dispbuf[3]=0;}if(State3==1){dispbuf[0]=RSpeed;dispbuf[1]=LSpeed;dispbuf[2]=Min;dispbuf[3]=9;}}}//LED驱动void disp( uchar H, uchar n ){P1=n;P1|=LedState ;P1|=LED_code_d[H];}//T0中断**显示/方波输出void Time_0() interrupt 1{TH0=0xFC;TL0=0x66;Widcnt++;Dispcnt++;//电机驱动/方波输出if(Widcnt>CIRCLE){Widcnt=1;}if(Widcnt<=LWidth)LMot_P=!DirState&&MotState;elseLMot_P=DirState&&MotState;LMot_M=DirState&&MotState;if(Widcnt<=RWidth)RMot_P=!DirState&&MotState;elseRMot_P=DirState&&MotState;RMot_M=DirState&&MotState;//显示if(Dispcnt==5){disp(dispbitcnt,dispbuf[dispbitcnt]);dispbitcnt++;if(dispbitcnt==4){dispbitcnt=0;}Dispcnt=0;}}//T1中断**运行时间void Time_1() interrupt 3{TH1=0xDB;TL1=0xFF;RTime_cnt++;}/******配置文件Afx.h******/#ifndef _AFX_#define _AFX_typedef unsigned char uchar;typedef unsigned int uint;typedef unsigned long ulong;#endif/******IO配置文件Config.c******/#ifndef _Config_#define _Config_#include "Afx.h"#include <reg52.h>//显示定义sbit led=P3^2;//电机引脚定义sbit LMot_P=P2^2; sbit LMot_M=P2^3; sbit RMot_P=P2^0; sbit RMot_M=P2^1;#endif。
太原理工大学继续教育学院毕业论文单片机控制直流调速系统作者姓名所属系部导师姓名及职称专业班级论文提交日期摘要近年来由于微型机的快速发展,国外交直流系统数字化已经达到实用阶段。
由于以微处理器为核心的数字控制系统硬件电路的标准化程度高,制作成本低,且不受器件温度漂移的影响。
其控制软件能够进行逻辑判断和复杂运算,可以实现不同于一般线性调节的最优化、自适应、非线性、智能化等控制规律。
所以微机数字控制系统在各个方面的性能都远远优于模拟控制系统且应用越来越广泛。
本文介绍的是用一台26KW的直流电动机,8051单片机构成的数字化直流调速系统。
特点是用单片机取代模拟触发器、电流调节器、速度调节器及逻辑切换等硬件设备。
最后进行软件编程、调试以及计算机仿真。
实时控制结果表明,本数字化直流调速系统实现了电流和转速双闭环的恒速调节,并具有结构简单,控制精度高,成本低,易推广等特点,而且各项性能指标优于模拟直流调速系统,从而能够实际的应用到生产生活中,满足现代化生产的需要。
关键词:单片机双闭环直流调速系统数字方式目录第1章绪论 (1)第二章方案论证 (3)第三章直流调速控制系统 (5)3.1单片机部分的组成 (5)3.1.1时钟电路 (7)3.1.2复位电路 (8)3.1.3存储器 (8)3.1.4外部中断源 (9)3.1.5定时器/计数器 (11)3.2 单片机的扩展 (12)3.2.1程序存储器的扩展 (13)3.2.2数据存储器的扩展 (14)3.2.38279可编程键盘/显示器 (16)3.2.4模拟量与数字量的转换 (24)3.2.5采样和保持 (28)第四章PID的控制算法 (32)4.1PID控制规律及其基本作用 (32)4.2控制算法的实现 (33)第五章直流调速系统的主电路设计 (36)5.1直流电动机的调速方法 (36)5.2整流电路 (37)5.3触发电路 (38)第六章软件设计 (42)7.2 系统仿真结果的输出及结果分析 (49)第七章系统的抗干扰技术 (46)第八章直流调速系统的保护 (49)总结 (51)辞谢 (53)参考文献………………………………………………….第2章系统方案选择和总体结构设计2.1调速方案的选择2.1.1系统控制对象的确定本次设计选用的电动机型号Z2-32型,额定功率1.1KW,额定电压230V,额定电流6.58A,额定转速1000r/min, 励磁电压220V,运转方式连续。
基于单片机设计直流电机控制系统一、本文概述本文将详细介绍基于单片机的直流电机控制系统的设计过程。
随着科技的不断发展,电机控制在许多领域,如工业自动化、机器人技术、家用电器等,都发挥着重要的作用。
单片机作为一种高效、可靠的微控制器,具有集成度高、功耗低、控制精度高等优点,因此,基于单片机的直流电机控制系统设计成为了研究的热点。
本文将首先介绍直流电机的基本原理和控制方式,然后详细阐述如何利用单片机实现直流电机的精确控制。
在设计中,我们将考虑电机的启动、停止、正反转、调速等基本功能,并探讨如何通过编程实现这些功能。
我们还将讨论系统的硬件设计和软件设计,包括单片机的选型、电机的驱动电路、传感器的选择以及控制算法的实现等。
通过本文的阐述,读者将能够深入了解基于单片机的直流电机控制系统的设计过程,掌握相关的理论知识和实践技能,为实际应用提供有益的参考。
二、直流电机基本原理及特性直流电机是一种将电能转换为机械能的装置,其基本原理基于安培环路定律和电磁感应定律。
直流电机主要由定子、转子、电刷和换向器等部分组成。
定子通常由电磁铁构成,用于产生磁场;转子则是一个带有绕组的圆柱形结构,当通电时,在定子的磁场作用下产生转矩,从而使电机旋转。
调速性能好:通过改变电枢电压、磁场强度或电枢回路中的电阻,可以有效地调节直流电机的转速。
这使得直流电机在需要精确控制转速的场合,如精密机械、自动化设备中得到广泛应用。
启动转矩大:直流电机在启动瞬间,由于电枢电流较大,可以产生较大的启动转矩,使其具有良好的启动性能。
良好的调速动态性能:直流电机在调速过程中,转矩和转速的动态响应较快,能够满足一些对动态性能要求较高的应用需求。
控制方便:直流电机的控制相对简单,可以通过改变输入电压、电流或磁场强度来实现对电机转速和转向的控制。
通过改变电刷的位置,还可以实现电机的正反转切换。
然而,直流电机也存在一些局限性,如结构复杂、维护成本较高以及电刷和换向器易磨损等问题。
基于单片机的直流电机控制系统设计的文献综述随着科技的不断发展,单片机技术在电机控制系统中的应用越来越普遍。
本文综述了基于单片机的直流电机控制系统的设计与实现,包括硬件设计、软件设计、电机控制策略等方面。
结果表明,基于单片机的直流电机控制系统具有控制精度高、响应速度快、可靠性强等优点,是一种高效、实用的电机控制方法。
关键词:单片机;直流电机;控制系统;硬件设计;软件设计;控制策略一、引言直流电机广泛应用于工业生产、家电、交通运输等领域,其控制系统的设计和实现对于提高电机的性能和效率具有重要意义。
随着单片机技术的不断发展,基于单片机的电机控制系统成为了研究热点。
本文综述了基于单片机的直流电机控制系统的研究进展和应用现状,以期为相关研究提供参考和借鉴。
二、硬件设计基于单片机的直流电机控制系统的硬件设计包括电机驱动模块、传感器模块、单片机模块和电源模块等部分。
其中,电机驱动模块是整个系统的核心部分,其设计直接影响了系统的性能和稳定性。
电机驱动模块的设计需要考虑电机的电压、电流、转速等参数,以及驱动电路的稳定性和可靠性。
常用的电机驱动器包括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.如果发现问题,对系统进行优化和修改,改进算法和调整参数。
基于单片机的直流电机控制电路设计1.电机驱动电路:电机驱动电路用于控制直流电机的启停、正反转和速度调节。
常见的驱动电路有H桥电路和PWM调速电路。
-H桥电路:H桥电路由四个开关管组成,可以控制电流的流动方向,从而实现正反转功能。
在单片机的控制下,通过控制开关管的导通与断开,可以实现电机的正转和反转。
-PWM调速电路:PWM调速电路通过控制脉冲宽度来调节电机的速度。
单片机产生一个固定频率的PWM信号,通过改变脉冲宽度的占空比,控制电机的速度。
占空比越大,电机转动的速度越快。
2.单片机控制电路:单片机控制电路主要实现对电机的控制和监测功能。
通过单片机的IO口输出控制信号,实现电机的启停、正反转和调速。
同时,通过AD转换接口可以实现对电机的速度、电流等参数的监控。
3.电源电路:电源电路为整个系统提供稳定的直流电源。
常见的电源电路有开关电源和线性电源。
-开关电源:开关电源通过开关器件的开关操作,实现对输入电压的调整,从而输出稳定的直流电压。
开关电源具有体积小、效率高、稳定性好等优点,是直流电机控制电路中常用的电源方式。
-线性电源:线性电源通过线性调节器件,将输入的交流电压转换为稳定的直流电压。
线性电源具有设计简单、成本低等优点,但效率较低,一般用于对电流要求较低的应用场景。
总结:基于单片机的直流电机控制电路通过驱动电路,实现对电机的启停、正反转和速度调节。
通过单片机控制电路,实现对电机的控制和监测功能。
同时,为了保证电路的正常工作,需要提供稳定的直流电源。
以上是一个基本的电机控制电路设计,具体电路设计和参数设置需根据具体的应用场景和要求来确定。
基于单片机的无刷直流电机控制系统设计毕业设计一、引言哎呀,小伙伴们,今天我们来聊聊一个非常有趣的话题,那就是基于单片机的无刷直流电机控制系统设计毕业设计。
这个话题可是关系到我们的未来哦,所以大家一定要认真听讲,不要走神哦!让我们来简单了解一下什么是无刷直流电机。
哎呀,别看这个词挺高大上的,其实就是一种不用刷子的直流电机。
它的特点是效率高、噪音小、寿命长,所以在很多领域都有广泛的应用,比如电动车、空调、风扇等等。
那么,如何设计一个基于单片机的无刷直流电机控制系统呢?这可是一个相当复杂的问题。
不过没关系,我们会一步一步地来讲解,让大家轻松掌握这个技能。
二、单片机的基本知识我们要了解一些单片机的基本知识。
哎呀,单片机可不是什么神秘的东西,它就是一种集成了处理器、存储器和输入输出接口的微型计算机。
它的功能可强大了,可以控制各种外设,实现各种各样的功能。
现在市面上有很多种单片机,比如51系列、ARM系列、AVR系列等等。
它们的性能和价格都有所不同,我们要根据自己的需求来选择合适的单片机。
三、无刷直流电机的基本原理接下来,我们要了解无刷直流电机的基本原理。
哎呀,这个原理可不像我们平时看到的旋转木马那么简单哦。
无刷直流电机是由定子、转子和霍尔传感器组成的。
定子上有很多槽,转子上有永磁体。
当电流通过定子和转子时,就会产生磁场,从而使转子旋转。
霍尔传感器的作用是检测转子的位置,从而控制单片机的输出信号,实现对电机的控制。
四、基于单片机的无刷直流电机控制系统设计现在我们已经了解了单片机和无刷直流电机的基本知识,接下来我们就要开始设计我们的控制系统了。
哎呀,这个过程可是个大工程哦,需要我们分步骤来进行。
我们需要选择合适的单片机。
根据前面的介绍,我们可以选择51系列、ARM系列或AVR系列的单片机。
然后,我们需要编写程序来控制单片机的工作。
这个程序要包括初始化、定时器设置、PWM波形生成等功能。
接下来,我们需要连接电源、定子和转子。
基于51单片机控制直流电机的设计设计目标:1.实现电机的正反转控制。
2.实现电机的速度控制。
3.实现电机的位置控制。
硬件设计:1.51单片机控制器:选择一款性能较好的51单片机,如STC89C522.直流电机:选择合适的直流电机,根据设计需求确定功率和转速。
3.驱动电路:为直流电机提供合适的驱动电路,可以选择H桥驱动芯片,如L298N。
4.传感器:根据设计需求,选用合适的传感器,如编码器、讯号灯等。
软件设计:1.系统初始化:对51单片机进行初始化设置,包括端口方向、定时器等配置。
2.速度控制:设计PID算法,实现对直流电机的速度控制。
通过读取传感器反馈的速度信息,与设定值进行比较,输出控制信号控制电机速度。
3.正反转控制:设计控制程序,读取输入信号控制直流电机的正反转。
可以通过输入按键、外部信号或者串口通信来实现控制。
4.位置控制:通过编码器等传感器读取直流电机的位置信息,与设定值进行比较,输出控制信号控制电机运动到目标位置。
5.通信功能:如果需要与其他设备进行通信,可以使用串口、蓝牙等通信模块实现数据传输。
设计步骤:1.确定设计需求:根据具体应用场景,确定控制电机的功能需求,包括速度控制、正反转控制和位置控制等。
2.硬件搭建:按照设计需求,选取合适的电机、驱动电路和传感器,并进行搭建和连接。
3.软件开发:根据设计目标,编写相应的程序代码,实现功能要求。
5.优化改进:根据实际使用情况,对系统进行优化改进,提高系统的性能和稳定性。
总结:基于51单片机控制直流电机的设计是一种常见的嵌入式系统开发方案。
通过合理选择硬件和设计软件,可以实现控制电机的速度、方向和位置等功能。
在实际应用中,还可以根据具体需求进行优化改进,使系统更加稳定和可靠。
基于单片机对直流电机的控制第十五组姓名:吴代露20131325010张鹏飞20131325012金静丽20131325014周敏20131325015胡会华20131325017顾蓉20131325018专业:2013级信息工程(系统工程方向)指导老师:周旺平2014.12.22基于单片机对直流电机的控制内容摘要电动机作为最主要的动力源,在生产和生活中占有重要地位。
电动机的调速控制过去多用模拟法,随着计算机的产生和发展以及新型电力电子功率器件的不断涌现,电动机的控制也发生了深刻的变化。
关键字:电动机飞思卡尔 PWM控制一、引言(一)直流电机的定义直流电机(direct current machine):是指能将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。
它是能实现直流电能和机械能互相转换的电机。
当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。
(二)直流电机的基本结构由直流电动机和发电机工作原理示意图可以看到,直流电机的结构应由定子和转子两大部分组成。
直流电机运行时静止不动的部分称为定子,定子的主要作用是产生磁场,由机座、主磁极换向极、端盖、轴承和电刷装置等组成。
运行时转动的部分称为转子,其主要作用是产生电磁转矩和感应电动势,是直流电机进行能量转换的枢纽,所以通常又称为电枢,由转轴、电枢铁心、电枢绕组、换向器和风扇等组成。
(三)直流电机工作原理直流电机里边固定有环状永磁体,电流通过转子上的线圈产生安培力,当转子上的线圈与磁场平行时,再继续转受到的磁场方向将改变,因此此时转子末端的电刷跟转换片交替接触,从而线圈上的电流方向也改变,产生的洛伦兹力方向不变,所以电机能保持一个方向转动。
直流发电机的工作原理就是把电枢线圈中感应的交变电动势,靠换向器配合电刷的换向作用,使之从电刷端引出时变为直流电动势的原理。
感应电动势的方向按右手定则确定(磁感线指向手心,大拇指指向导体运动方向,其他四指的指向就是导体中感应电动势的方向)。
导体受力的方向用左手定则确定。
这一对电磁力形成了作用于电枢一个力矩,这个力矩在旋转电机里称为电磁转矩,转矩的方向是逆时针方向,企图使电枢逆时针方向转动。
如果此电磁转矩能够克服电枢上的阻转矩(例如由摩擦引起的阻转矩以及其它负载转矩),电枢就能按逆时针方向旋转起来。
(四)直流电机的分类直流电动机按结构及工作原理可划分:无刷直流电动机和有刷直流电动机。
(1)无刷直流电动机:无刷直流电动机是将普通直流电动机的定子与转子进行了互换。
其转子为永久磁铁产生气隙磁通:定子为电枢,由多相绕组组成。
在结构上,它与永磁同步电动机类似。
无刷直流电动机定子的结构与普通的同步电动机或感应电动机相同.在铁芯中嵌入多相绕组(三相、四相、五相不等).绕组可接成星形或三角形,并分别与逆变器的各功率管相连,以便进行合理换相。
由于电动机本体为永磁电机,所以习惯上把无刷直流电动机也叫做永磁无刷直流电动机。
(2)有刷直流电动机:又可分为永磁直流电动机和电磁直流电动机。
永磁直流电动机划分:稀土永磁直流电动机、铁氧体永磁直流电动机和铝镍钴永磁直流电动机。
稀土永磁直流电动机:体积小且性能更好,但价格昂贵,主要用于航天、计算机、井下仪器等;铁氧体永磁直流电动机:由铁氧体材料制成的磁极体,廉价,且性能良好,广泛用于家用电器、汽车、玩具、电动工具等领域;铝镍钴永磁直流电动机:需要消耗大量的贵重金属、价格较高,但对高温的适应性好,用于环境温度较高或对电动机的温度稳定性要求较高的场合。
电磁直流电动机划分:串励直流电动机、并励直流电动机、他励直流电动机和复励直流电动机。
(1)串励直流电动机:电流串联,分流,励磁绕组是和电枢串联的,直流串励电动机通常用较粗的导线绕成,他的匝数较少。
(2)并励直流电动机:并励直流电机的励磁绕组与电枢绕组相并联。
(3)他励直流电动机:励磁绕组与电枢没有电的联系,励磁电路是由另外流电源供给的。
因此励磁电流不受电枢端电压或电枢电流的影响。
(4)复励直流电动机:复励直流电机有并励和串励两个励磁绕组,若串励绕组产生的磁通势与并励绕组产生的磁通势方向相同称为积复励。
若两个磁通势方向相反,则称为差复励。
二、基础知识(一)PWM寄存器相关基础脉冲宽度调制(Pulse Width Modulation 简称PWM)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。
脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。
这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟实验进行控制的一种非常有效的技术。
PWM控制技术以其控制简单,灵活和动态响应好的优点而成为电子电力技术最广泛应用的控制方式,也是人们研究的热点。
由于当今科学技术的发展已经没有了学科之间的界限,结合现代控制理论思想或实现无谐振波开关技术将会成为PWM控制技术发展的主要方向之一。
PWM就是脉冲脉宽调制,输出的波形就是一些不同占空比的方波,波形周期和占空比你都可以设定。
占空比(Duty Ratio)在一串理想的脉冲周期序列中(如方波),正脉冲的持续时间与脉冲总周期的比值。
看下图,T是周期,高电平时间t除以周期T就叫占空比。
(1)PWM使能寄存器PWME。
PWME[7:0]=1;相应的PWM模块使能,否则禁止。
(2)PWM极性寄存器PWMPOL。
PPOL[7:0]=1,PWM通道输出在开始的时候为高电平,为0说明开始时为低电平。
(3)PWM时钟选择寄存器PWMCLK。
PCLK*=1,使用时钟SA或SB作为时钟源,PCLK*=0,使用时钟A或B作为时钟源。
(4)PWM预分频时钟选择寄存器PWMPRCLK:(5)SA寄存器PWMSCLA,用来设置SA时钟源频率SA的时钟频率 fSA=fA/(2*PWMSCLA),如果PWMSCLA=0x00,fSA=fA/512.(6)PWM中间对齐使能寄存器PWMCAE:CAE[7:0]=1,采用中间对齐模式;CAE[7:0]=0,采用左对齐模式。
(7)PWM通道周期寄存器(PWMPERX)具体按如下公式计算,左对齐时:PWM周期=通道时钟周期*PWMPERX;中间对齐时:PWM周期=通道时钟周期*2*PWMPERX;(8)PWM占空比寄存器PWMDTYX:PWM的占空比按如下公式计算:PWM占空比计算和极性寄存器PWMPOL有关,当PPOLx=0时,占空比=(周期寄存器值减去占空比寄存器值)除以周期寄存器值;当PPOLx=1时,占空比=占空比寄存器值除以周期寄存器值。
(二) L298NL298N是ST公司生产的一种高电压、大电流电机驱动芯片。
该芯片采用15脚封装。
主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。
内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。
使用L298N芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。
L298N 是一种双H桥电机驱动芯片,其中每个H桥可以提供2A的电流,功率部分的供电电压范围是2.5-48v,逻辑部分5v供电,接受5vTTL电平。
一般情况下,功率部分的电压应大于6V否则芯片可能不能正常工作。
管脚图如下:应用框图如下:L298N驱动特点:1)具有信号指示2)转速可调3)抗干扰能力强4)具有过电压和过电流保护5)可单独控制两台直流电机6)可单独控制一台步进电机7)PWM脉冲平滑调速8)可实现正反转9)采用光电隔离三系统设计(一)系统设计框图(二)软件设计流程图一般按键在按下的时候有抖动的问题,即键的簧片在按下时会有轻微的弹跳,需经过一个短暂的时间才会可靠地接触。
若在簧片抖动时进行扫描就可能得出不正确的结果。
因此,在程序中要考虑防抖动的问题。
程序#include <hidef.h> /*与普通的宏定义*/#include "derivative.h" /*导数定义*/int read_porta,key,cntl=0;int encoder_cnt;/*************************************************************//* 初始化锁相环*//*************************************************************/void PLL_32M(void) //总线时钟= 32MHz,PLL时钟= D/A{CLKSEL &= 0x7f; //集oscclk作为系统时钟PLLCTL &= 0x8F; //禁用PLL电路CRGINT &= 0xDF;SYNR = 0x43;REFDV = 0x81; //锁相环频率= 2×oscclk×(同步读+ 1)/(refdv + 1)=D/A PLLCTL = PLLCTL | 0x70; //使锁相环电路asm NOP;asm NOP; //汇编指令nop,空操作,其执行时间是一个时钟周期while(!(CRGFLG&0x08)); //锁相环频率锁定CLKSEL |= 0x80; //设置锁相环频率作为系统时钟}void gpio_inits(void) //通用输入输出接口{DDRA=0x00; //A端口的方向寄存器}/*************************************************************//* PWM初始化*//*************************************************************/void PWM_inits(void){PWME_PWME0=0; // PWM使能关闭PWMPRCLK=0x05; // 预分频时钟寄存器PWMCLK_PCLK0=0; //时钟选择寄存器PWMSCLA=0x7D; //SA寄存器PWMPOL_PPOL0=1; // 极性设置——开始输出高电平PWMCAE_CAE0=0; //对齐方式——左对齐PWMCTL=0x00; // 控制寄存器设置------------无级联PWMDTY0=0; // 占空比PWMPER0=0x64; // 周期100PWMCNT0=0x00; //延时计数PWME_PWME0=1; // Enable PWM 使能}void delay(unsigned int i) //演示函数未测试具体时间仅用来测试系统是否运行{unsigned int k,j;for(j=0;j<i;j++){for(k=0;k<125;k++){;}}}void main(void){PLL_inits();gpio_inits();PWM_inits();EnableInterrupts;for(;;){_FEED_COP(); // feeds the dog read_porta=PORTA;if(read_porta&0x01){delay(5); //延迟消抖if(read_porta&0x01){key=1;}}if(read_porta&0x02){delay(5);if(read_porta&0x02){key=2;}}if(read_porta&0x04){delay(5);if(read_porta&0x04){key=3;}}if(read_porta&0x08){delay(5);if(read_porta&0x08){key=4;}}switch(key){case 1:PWMDTY0=10;break; //开始转动case 2:cntl=cntl+1;if(cntl>99) cntl=99;PWMDTY0=cntl;break; //加速case 3:cntl=cntl-1;if(cntl<0) cntl=0;PWMDTY0=cntl;break; //减速case 4:PWMDTY0=0;break; //停止转动}}}。