基于单片机的PWM直流调速系统毕业设计

  • 格式:doc
  • 大小:741.50 KB
  • 文档页数:55

基于单片机的PWM直流调速系统毕业设计目录基于单片机的PWM直流调速系统设计 (I)摘要 (I)Abstract........................................................... I I 第一章绪论.. (1)1.1课题背景 (1)1.2课题功能 (1)第二章系统硬件电路的设计 (2)2.1 系统总体设计 (2)2.1.1 系统总体设计框图 (2)2.1.2单片机的选择及其简介 (2)2.1.3 其他芯片简介 (6)2.2 PWM信号发生电路设计 (18)2.2.1 PWM的基本原理 (18)2.2.2 PWM信号发生电路设计 (19)2.2.3 H桥芯片的工作原理 (20)2.3 主电路设计 (23)2.4 转速和电流的测量 (23)2.5 AD转换 (25)2.6显示与键盘电路 (25)第三章系统软件程序的设计 (27)3.1 PID控制算法原理及流程图 (27)3.2 系统部分程序的设计 (29)3.2.1 单片机资源分配 (29)3.2.2 程序流程图 (29)结论 (32)参考文献 (33)附录 (34)致谢 (47)第一章绪论1.1课题背景随着时代的进步和科技的发展,电机调速系统在工农业生产、交通运输以及日常生活中起着越来越重要的作用,因此,对电机调速的研究有着积极的意义.长期以来,直流电机被广泛应用于调速系统中,而且一直在调速领域占居主导地位,这主要是因为直流电机不仅调速方便,而且在磁场一定的条件下,转速和电枢电压成正比,转矩容易被控制;同时具有良好的起动性能,能较平滑和经济地调节速度。

因此采用直流电机调速可以得到良好的动态特性。

由于直流电动机具有优良的起、制动性能,宜于在广泛围平滑调速。

在轧钢机、矿井卷机、挖掘机、金属切削机床、造纸机、高层电梯等领域中得到广泛应用。

近年来交流调速系统发展很快,然而直流控制系统毕竟在理论上和在时间上都比较成熟,而且从反馈闭环控制的角度来看,它又是交流系统的基础,长期以来,由于直流调速系统的性能指标优于交流调速系统。

因此,直流调速系统一直在调速系统领域占重要位置。

1.2课题功能本论文介绍了基于AT89C52单片机来实现最优PID控制的直流脉冲(PWM)调速系统,并且详细论述了该系统的控制方法、结构、参数设计、程序设计等方面的问题。

该系统结构简单,调速性能好,性能价格比高,真正实现了直流调速系统的高精度控制。

本设计是基于单片机控制的PWM直流电机调速系统,系统以AT89C52单片机为核心,以2A、1000r/min小直流电机为控制对象,L298N为H桥驱动芯片实现速度、电流反馈双闭环。

采用PID控制算法,调节PWM 占空比从而控制电机两端电压,以达到调速的目的。

用4*3键盘输入有关控制信号及参数,可以实现电机的启制动、正反转、速度调节。

并在4位LED上实时显示输入参数及动态转速。

第二章系统硬件电路的设计2.1 系统总体设计2.1.1 系统总体设计框图本设计的任务是基于单片机控制的PWM直流电机调速系统,系统以单片机为核心,以小直流电机为控制对象,实现速度、电流反馈双闭环、采用PID控制算法。

方便的人机对话接口,用键盘输入有关控制信号及参数,可以实现电机的启制动、正反转、速度调节。

并在LED上实时显示输入参数及动态转速。

因此整个系统大致包括五部分:单片机、显示电路、键盘电路、驱动电路、检测电路。

【1】根据设计任务,提出如图2.1所示的硬件电路组成框图。

图2.12.1.2单片机的选择及其简介本设计选用了AT89C52单片机【2】,下面对它进行介绍。

图 2.2给出了At89C52的芯片引脚结构。

at89c52单片机是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片含8K bytes的可反复擦写的Flash只读程序存储器和256bytes的随机数据存储器(RAM),器件采用ATMEL公司的高密度,非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容。

功能强大的at89c52单片机适合于许多较为复杂的控制应用场合。

(1)At89C52 主要性能参数①与Mcs-51产品指令和引脚完全兼容。

②8字节可重擦写FLASH闪速存储器③1000 次擦写周期④全静态操作:0HZ-24MHZ⑤三级加密程序存储器⑥256X8字节部RAM⑦32个可编程I/0口线⑧3个16 位定时/计数器⑨8个中断源⑩可编程串行UART通道、低功耗空闲和掉电模式(2)At89C52功能特性AT89C52 提供以下标准功能:8字节FLASH闪速存储器,256字节部RAM , 32个I/O口线,3个16 位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片振荡器及时钟电路。

同时,AT89c52可降至OHz的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU 的工作,但允许RAM,定时/计数器.串行通信口及中断系统继续工作。

掉电方式保存RAM 中的容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位.图2.2 AT89C52引脚图(3)At89C52部分引脚功能说明①XTAL1:片晶振电路反相放大器的输入端.②XTAL2:片晶振电路反相放大器的输出端。

③P0:P0口是一组8位漏极开路型双向I/O 口,即地址/数据总线复用口。

作为输出口用时.每位能以吸收电流的方式驱动8个TTL 逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活部上拉电阻。

在FLASH中编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

④P1口:P1 是一个带部上拉电阻的8位双向I/O口,Pl的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为部存在上拉电阻某个引脚被外部信号拉低时会输出一个电流。

与AT89C51不同之处是,Pl.0 和P1.1还可分别作为定时/计数器 2 的外部计数输入(Pl.0/T2 )和外部触发输入(P1.1/T2EX) , FLASH编程和程序校验期间,Pl接收低8位地址。

⑤P2口:P2 是一个带有部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑电路。

对端口P2写“1”,通过部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。

在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOvxDPTR 指令)时,P2送出高8 位地址数据。

在访问8位地址的外部数据存储器、如执行MOVXRI指令)时,P2口输出P2锁存器的容。

FLASH编程或校验时,P2亦接收高位地址和一些控制信号。

⑥P3口:P3口是一组带有部上拉电阻的8位双向I/O口。

P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对P3口写入“1”时,它们被部上拉电阻拉高并可作为输入端口。

此时,被外部拉低的P3口将用上拉电阻输出电流。

P3口除了作为I/0口线外,更重要的用途是它的第二功能,如表2.1所示。

此外,P3口还接收一些用于FLASH闪速存储器编程和程序校验的控制信号。

⑦RST:复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

表2.1⑧ALE/PROG:脉冲用于锁存地址的低8位字节.一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。

要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。

对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位.可禁止ALE操作。

该位置位后,只有一条MOVX和MOVC指令才能将ALE激活,此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。

⑨PSEN:程序储存允许PSEN输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。

在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

⑩EA/VPP:外部访问允许。

欲使CPU 仅访问外部程序存储器(地址为0000H-FFFFH ) , EA端必须保持低电平(接地).需注意的是:如果加密位LBI 被编程,复位时部会锁存EA端状态。

如EA端为高电平(接Vcc端), CPU则执行部程序存储器中的指令。

flash存储器编程时,该引脚加上+12V的编程允许电源VPP ,当然这必须是该器件是使用12V编程电压VPP 。

(4)AT89C52特殊功能寄存器在AT89C52片存储器中,80H-FFH共128个单元为特殊功能寄存器(SFE ) 。

并非所有的地址都被定义,从80H-FFH共128 个字节只有一部分被定义,还有相当一部分没有定义。

对没有定义的单元读写将是无效的,读出的数位将不确定,而写入的数据也将丢失。

不应将数据"1"写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能。

在这种情况下,复位后这些单元数值总是“0”。

(5)AT89C52 单片机扩展电路及分析AT89C52 提供以下标准功能:8字节FLASH闪速存储器,256字节部RAM , 32个I/O口线,3个16 位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片振荡器及时钟电路。

由于AT89C52具有256字节部RAM。

对本设计已经足够使用,因此不需要再扩展外部数据存储器。

但本设计需外扩I/O接口,因此采用8255扩展外部I/O口。

因为单片机的P0口是数据总线和低八位地址线共用的,所以需要使用地址锁存器74HC373。

由此将P0口地址送于74HC373锁存,以便下一时刻,P0口传送数据。

2.1.3 其他芯片简介2.1.3.1 8255的简介【3】8255是一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口.它具有24个可编程设置的I/O口,即3组8位的I/O口,为PA 口,PB口和PC口.它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3).A组可设置为基本的I/O 口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定。

图2.3给出了8255芯片引脚结构.8255引脚功能① RESET:复位输入线,当该输入端外接高电平时,所有部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。