1、个人收集整理 勿做商业用途单片机及接口控制试验平台设计序 言自从单片机问世以来,在国外,它已广泛应用于自动控制、数据采集和处理、家用电器等各方面,同时也渗透到其它各个科技领域。在国内,虽然起步较晚,但由于单片机价廉物美、功能强、体积小、使用灵活方便,得到发展越来越多的发展,尤其在工业过程控制、自动化仪器等领域得到广泛应用。对推动国家的工业现代化进程有着重大意义。现代工业中绝大部分的动力装置都是用电机来实现的,由于电机并不能自身对转速进行控制,在以前只能用机械装置对电机进行调速,随着机械调速装置在实际应用中暴露出来的噪音、能耗大以及易磨损、占用空间大、安装不便等问题,人们开始把目光投向了电子调速
2、。本设计目的就是利用单片机对当前国内使用最多的三种电机进行调速。本说明书共分为4章,第一章课题分析与方案论证;第二章对硬件进行了详细的说明;第三章对系统的软件进行了分析;第四章有选择地列举了软硬件在调试过程中出现的问题,并对问题作出了分析;其中重点是单片机的各接口单元电路的设计,以及数据的显示处理。设计的最终成果是能通过按钮对电机的速度进行控制,并实现对交流电机转速模拟量的采集,并通过LED进行显示。 第1章 课题分析与方案论证1.1课题任务分析 本课题主要实现用单片机控制交流、直流、步进三种电机转速的目的,并采集变频器转速输出口的电流信号将交流电机的实际转速显示出来。实验室现有的西门子变频器
3、有一模拟量输入口,在该口输入010V的电压,变频器就可以输出不同频率的交流电,达到控制交流电机转速的目的,为此对于交流电机的转速控制只要将单片机产生的数字信号转化为模拟电压信号与实验室现有的西门子变频器的模拟量输入口接驳即可;交流电机的转速显示则需将变频器输出的电流模拟信号转换为数字信号送单片机.步进电机通过环行分配器控制各绕组的通电顺序运转,分配器有软件和硬件之分。实验室的步进电机是通过硬件环行分配器驱动的,因而只要使单片机输出不同频率的脉冲至硬件环行分配器就可以控制步进电机的转速。还可以从单片机上引出一个口,通过控制这个口的高低电平让步进电机正转或反转。直流电机的转速控制只要改变直流电机的
4、输入电压就能实现,为此利用单片机产生PWM脉冲送直流电机的驱动电路,由驱动电路产生不同的电压至直流电机,从而达到直流电机的转速控制。本实验平台要求三种电机的调速电路以及模/数转换电路相互独立,以便在以后做不同的实验时只需将相应的电路与单片机控制电路接驳。为此需要将各电路的硬件和系统的软件模块化,其中硬件部分首先将各电路设计成一个个独立的单元,然后用插口将各单元电路与单片机控制单元相连;软件的模块化则通过在主程序中调用各子程序实现。1.2方案论证 尽管所要控制的交流电机的额定转速为1400r/min,所要的A/D、D/A芯片的分辨率最小为1/1400,但考虑到本次设计任务只是锻炼我们的实践能力和
5、方便以后教学,没有必要去片面的追求高精度而增加硬件成本,为此直接选用了市面上较为常见的八位D/A(DAC0809)、A/D(ADC0832)转换芯片,而没有将D/A、A/D芯片的选择在方案中作为考虑对象。本次方案论证主要对键盘/显示接口电路进行选择。方案一:1.键盘/显示器单元电路方案选用通用并行接口芯片8155作LED显示和键盘的输入。其中,8155的PA口为输出口,控制键盘列线的扫描,PA口同时又是4位LED显示器的位扫描口,PB作为显示器的段码口,PC口作为键盘行线状态的输入口.2.交流电机单元的转速控制方案由AT89C51单片机将键盘输入信号进行判断处理后经P0输出8位数字量信号经D/
6、A转换芯片DAC0832进行转换,产生相应的模拟电压信号,再将模拟电压信号通过二级运算器放大后,输入西门子变频器MM420的模拟量输入口,去控制交流电动机的转动。3。步进电机单元的转速控制方案由AT89C51单片机将键盘输入信号进行判断处理后经P1。0、P1.1口输出步进电机的控制信号,经74LS07正向放大后送步进电机驱动电路.4。直流电机单元的转速控制方案由AT89C51单片机将键盘输入信号进行判断处理后经P1.0口输出PWM信号,将此脉冲信号送直流电机驱动电路控制直流电机的转动。方案二:1。键盘/显示器单元的电路方案选用五片“串入并出”移位寄存器74LS164扩展五个8位并行输出口:一个
7、8位并行输出口用于键盘的列线使用,其余的四个8位并行输出口用于控制4个LED段选口作静态显示。2.交流电机单元的转速控制方案由AT89C51单片机将键盘输入信号进行判断处理后经P0输出8位数字量信号经D/A转换芯片DAC0832进行转换,产生相应的模拟电压信号,再将模拟电压信号通过二级运算器放大后,输入西门子变频器MM420的模拟量输入口,去控制交流电动机的转动。3。步进电机单元的转速控制方案由AT89C51单片机将键盘输入信号进行判断处理后经P1。0、P1.1口输出步进电机的控制信号,经74LS07正向放大后送步进电机驱动电路。4.直流电机单元的转速控制方案由AT89C51单片机将键盘输入信
8、号进行判断处理后经P1.0口输出PWM信号,将此脉冲信号送直流电机驱动电路控制直流电机的转动。 综合上述两种方案,区别在于所采用的键盘、显示接口电路不同。方案一:选用通用并行接口芯片8155作LED显示和键盘的输入,这样就会和 D/A转换芯片DAC0832 共用P0口资源,需要进行片选,软件工作量大,硬件接线复杂. 方案二:直接使用89C51的串换行口外扩键盘/显示器.应用串行口方式0的输入方式,在串行口外接移位寄存器74LS164,构成键盘/显示器接口.这种静态显示方式的优点是亮度大,显示闪烁感小,且CPU不必频繁地为显示服务,因而主程序可不必扫描显示器,软件设计比较简单,整个接口电路硬件也
9、不复杂。通过比较我发现:第二种方案软、硬较第一种方案简单,且充分利用了89C51单片机的串行口资源,节约了成本.为此,我采用第二种方案。最终确定的整体方案框图如下:显示单元单 片 机键盘单元 A/D转换单元交流电机单元步进电机单元直流电机单元图1-1 整体方案框图 第2章 硬件电路根据第一章中的各单元电路方案,细化总体框图如下:显示接口单元电路键盘接口单元电路单 片 机 D/A转换接口单元电路 直流驱动接口单元电路电路 A/D转换接口单元电路硬件环行分配器变频器 步进电机直流电机交流电机 图21 系统结构图 下面先介绍涉及的硬件知识点,再说明各单元电路的设计方法,最后给出总体设计图.2。1主要
10、芯片简介 2.1。1 AT89C51AT89C51是ATMEL公司生产的MCS-51系列芯片,是一种低功耗、高性能的片内含有4KB快闪可编程/擦除只读存(FPEROM-FLASH PROGRAMMABLE AND ERASABLE READ ONLY MEMORY)的8位CMOS微控制器。芯片上的FPEROM允许在线编程或采用通用的非易失存储编程器对程序存储器重复编程.AT89C51的引脚图如图2-1所示: 图22 AT89C51引脚图AT89C51各个引脚功能说明如下:(1)输入/输出引脚:P0口:在不接外部存储器与不扩展I/O时,可做为准双向的输入/输出口。在接有外部存储器或有扩展I/O口
11、时,该口分时复用为低8位的数据总线和地址总线。 P1口的字节地址位90H,位地址为90H97H.P1口只能作为通用I/O口使用,是准双向口.当P1口作为输出口使用时,已能对外提供推拉电流负载,外电路无需再接上拉电阻。当P1口作为输入口使用时,应先向锁存器写入“1”,使输出驱动电路的FET截止。P2口:P2口的字节地址位0A0H,位地址为0A0H0A7H。在实际应用中P2口用于为系统提供高位地址,。此外,P2口也可以作为通用I/O口使用,这时多路转接开关倒向锁存器Q端。P3口:除了作为准双向口使用外,还可以将每一位用于地二功能,而且P3口的每一条引脚都可以独立的定义为第一功能的输入输出或第二功能
12、。 (2)控制线:ALE/PROG:地址锁存有效信号输出端。ALE在每个机器周期内输出两个脉冲. PSEN:片外程序存储器读选通信号输出端,低电平有效。 RST/Vpd:该引脚为单片机的上电复位和掉电保护端。RST引脚是复位信号的输入端,复位信号是高电平有效。复位操作有上电自动复位和按键手动复位两种方式。 (3)、主电源引脚:Vcc:接+5V电源正极(4)、外接晶体引脚:XTAL1:接外部石英晶体的一端。它是一个反相放大器的输入端,这个放大器构成了片内震荡器。当采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHMOS单片机,该引脚作为外部震荡信号是输入端。XTAL2:接外部石英晶体的另一
13、端。在单片机内部,它是片内震荡器的反相放大器的输出端。当采用外部时钟时。 2。1.2 D/A转换芯DAC0832D/A转换接口设计,主要是选择D/A转换集成芯片,配置外围电路及器件,实现数字量至模拟量的线性转换,并不涉及D/A转换器的结构设计,也不必对其内部电路作详细分析。 1DAC0832的内部结构及其引脚DAC0832的内部结构主要由两面三个8位寄存器与一个D/A转换器组成.这种结构使输入的数据能有两次缓冲,因此在操作上十分方便与灵活。DAC0832是电流型输出,应用时需要外接运算放大器使之成为电压型输出。DAC0832为20脚双列直插芯片,芯片的引脚与逻辑结构如图所示。图23 DAC08
14、32芯片的引脚与逻辑结构DAC0832的各管脚的功能如下:-8位数据输入端,常和CPU的数据总线相连,用于输入CPU送来的待换的数字量,DI7为最高位。ILE-数据允许锁存信号引脚,高电平有效.输入寄存器选择信号脚,低电平有效。输入寄存器写选信号,输入寄存器的锁存信号/LE1由ILE、的逻辑组合产生,为高电平时,输入寄存器状态随输入数据线变化,的负跳变将输入数据锁存。传送控制输入线,低电平有效。DAC寄存器的写选通信号.DAC寄存器的锁存器锁存信号由和/XFER的逻辑组合而成,为高电平时,DAC寄存器的输出随寄存器的输入变化,负跳变时,输入寄存器的内容打入DAC寄存并开始D/A转换。-参考电压
15、输入端,一般在,由稳压电源提供.运算放大器反馈信号输入端,通常接到运算放大器输出端.Iout1、Iout2电流输出端,其值随DAC内容线性变化、Iout1+Iout2=常数。为保证额定负载下输出电流的线形度,Iout1、Iout2引脚上的电位尽量接近地电平。因此,Iout1、Iout2通常接运算放大器输入端。当输入数字为全”1”时, Iout1输出电流最大,约为:, 全0”时, 输出电流为0。电源输入端,可在范围内。AGND-模拟地。DGND数字地。通常上两种地线接在一起.2。1.3 A/D转换芯片ADC0809 1 主要参数(1)8路8位A/D转换器。(2)具有转换起停控制端。 (3)转换时
16、间为100s(4)单个5V电源供电 (5)模拟输入电压范围05V,不需零点和满刻度校准。2 内部结构 ADC0809是CMOS单片型逐次逼近式AD转换器,内部结构如图1322所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型DA转换器、逐次逼近寄存器、三态输出锁存器等其它一些电路组成.因此,ADC0809可处理8路模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作。 ADC0809引脚 ADC0809逻辑结构 图24ADC0809引脚与逻辑结构图 3外部特性(引脚功能)ADC0809芯片有28条引脚,采用双列直插式封装.下面说明各引脚功能。IN0IN7:8路模拟量输
17、入端. 2128:8位数字量输出端。 ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。如表21所示。本次课程设计中,我们将A、B、C接地,选择IN0输入通道。 表2-1ADDA、ADDB、ADDC真值表ALE:地址锁存允许信号,输入,高电平有效。 START: AD转换启动信号,输入,高电平有效。 EOC: AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端.要求时钟频率不高于640KHZ。 RE
18、F(+)、REF():基准电压. Vcc:5V电源。 GND:接地.4工作过程ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可 用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上.2.1.4 移位寄存器74LS164 74LS164是8位串入并出移位寄存器. 图2-5 74LS164移位寄存器
19、(1)A、B为串行输入端 (2)QAQH为串行输出端 (3)CLK为串行时钟输入端 (4)为串行输出清零端(5)VCC为+5V电源输入端(6)GND为接地端 2。2硬件接线分析与设计 2。2.1 键盘接口单元电路设计 键盘接口单元电路主要为电机的转速输入提供解决方案,并能对所要控制的电机进行选择,以及启动A/D转换。本设计中键盘接口电路采用一片74LS164串入并出八位输出,接收端使用P3。4、P3.5的第一功能,通过判断这两个口的高低电平,再结合74LS164就可以判断是哪个键按下,图26为键盘接口电路。 图26 键盘接口单元电路 1CLK引脚接线说明 图27 CLK引脚接线 上图中164的
20、CLK为串行时钟输入端,与单片机的移位时钟脉冲输出口TXD相连。 2串行数据接线说明图2-8 A、B引脚接线 上图中164的A、B为串行数据输入口,A、B并联后与单片机的串行数据输出口相连。3MR接线说明图2-9 A、B引脚接线 由于164做键盘扩展用不需要对输出清零,故上图中MR接 +5V 高电平.2。2。2 显示接口单元电路设计显示接口单元电路主要为键盘输入的数值提供显示方案。本设计采用静态显示的方式,考虑到直流、交流电机的最高转速达到千转,为此用四片74LS164(串入并出移位寄存器)驱动四只LED发光二极管。图210 显示接口单元电路1CLK引脚接线说明 图2-11 P3.3控制的TX
21、D显示接口单元电路与键盘接口单元电路的最大不同在于单片机的移位时钟脉冲输出口TXD与P3。3口经或门(74LS08)后与74LS164的CLK相连(图29),这样 TXD 就受到P3。3的控制,只有当P3。3输出为高电平时74LS164的CLK端才能接受到 TXD 发出的移位脉冲,从而更新显示.这样接线的目的在于避免显示与键盘扫描的干扰,只有当要更新显示时才置P3.3为高电平。2CLK引脚接线说明 同键盘扫描电路一样用164实现八位段码显示时也不要对输出清零,故接 +5V 高电平.3多位数值显示的接线说明图212 多位数值显示的接线由于164遵循“先入先出”的原则,故用164实现4位数值显示时
22、只要将上级164的Q7引脚与下级的A、B引脚相连就能实现。3 LED限流电阻的选择一般LED段码的驱动电流在5-10mA左右,为此选用了750的电阻,则本设计中LED段码的驱动电流为6。7mA(5/750=6.7 mA)。2.2。3 交流电机接口单元电路设计交流电机接口单元电路为将单片机的数字信号转换为变频器的模拟量输入口能识别的模拟电压信号(05V)提供解决方案.本设计采用8位D/A转换芯片DAC0832先将单片机产生的数字信号转换为电流信号,再通过第一级运放(OP07)将DAC0832输出的电流信号转换为电压信号;接着用第二级运放(OP07)把电压信号进行放大,在设计时将放大电路的放大倍数
23、设为可调,实际调试时可以通过调节10K的可变电阻将交流电机的输入转速与实际转速相近.图2-13 D/A接口电路DAC0832是八位D/A转换芯片,它的分辨率为1/255,本设计的交流电机的最高转速为1275r/min,这样本设计的分辨率为5 r/min (1275/255=5)。1CS接线说明 图2-14 CS接线要DAC0832工作,首先应对0832进行片选,我将单片机的P2.7口与0832的CS相连,启动D/A转换时将P2。7口置低电平.2ILE(输入数据锁存允许信号)接线说明图215 ILE接线ILE是高电平有效,我将ILE接在了+5V,使0832始终允许输入数据锁存.3单缓冲方式的接线
24、说明 图216 单缓冲方式的接线由于0832只有一路模拟量输出,为此选择将0832的DAC寄存器处于直通方式,而让0832的输入寄存器处于受控的锁存方式。于是把WR2、XREF接地。2.2.4 A/D接口单元电路设计A/D接口单元电路为采集到的变频器的模拟量能被单片机识别提供解决方案。本设计采用8位A/D转换芯片ADC0809,ADC0809的分辨率为1/255,而设计的交流电机的最高转速为1275r/min,这样本设计中的A/D采集的最小分辨率为5r/min。为了在以后的实验中能用A/D转换芯片单独采集电压信号,在设计中将ADC0809的INT0口和地线预留了接口。图2-17 A/D接口电路
25、1输入模拟量的接线说明 图2-18 输入模拟量的接线由于变频器输出的是0-20mA,而ADC0809只能采集电压信号,故用两个510的电阻并联后接地,使电流信号转换为05V电压信号。上图中的运放是射随器的接法,为了增强变频器输出的带载能力。2路模拟通道的选择 图219 模拟通道的选择由于只用一路通道作为变频器模拟量的输入,为简化电路将模拟通道选择信号A、B、C接地,选择IN0口作为模拟量的输入口。 3ALE、START接线说明 图220 ALE、START接线图 图219中由89C51的P2。6和RD经74LS02(或非门)后与START(转换启动信号)、ALE(地址锁存允许信号)连接.在置A
26、DC0809地址时将P2。6置为低电平,这样在ADC0809起动后就由89C51的WR作为ADC0809的写选通信号。本次设计中将START、ALE连接在一起,这样使得在WR信号的前沿写入通道地址,紧接着在其后沿就起动转换.4 OE(输出允许信号)接线说明 图2-21 OE接线图 图2-20中由89C51的P2.7和RD经74LS02(或非门)后与START(转换启动信号)、ALE(地址锁存允许信号)连接。在置ADC0809地址时将P2。7置为低电平,这样在ADC0809起动后就由89C51的RD作为ADC0809的读选通信号。5EOC(转换结束信号)接线说明 图2-22 EOC接线图 本设计
27、中A/D转换完成后以中断方式进行传送,当EOC=1时(高电平)时,A/D转换结束;而89C51的外中断INT0是低电平有效,因而将EOC经非门后与INT0连接,实现了数据的中断方式传送,由于电路中有一片74LS02(或非门),且只用了其中的两路非门,为此我将74LS02的一路非们的两个输入引脚并联接输入,当非门用.6CLK(时钟信号)接线说明 图2-23 ALE接线图ADC0809一般使用频率为500kHz的时钟信号,而单片机使用的是600MHz的晶振,经六分频后由89C51的ALE引脚输出的是1000kHz的时钟信号,此因将ALE引脚上的信号经74LS74二分频后得到500kHz的时钟信号连
28、接到ADC0809的ALE(时钟信号)引脚。在这里把74LS74当作一个二分频的分频器使用.2。2.5 直流电机驱动接口单元电路设计 本设计采用功率MOSFET单电源方式驱动电路. 图224 直流电机驱动接口单元电路各元件在驱动电路中的功能如下:光耦的驱动采用PNP形式的三极管9012,这样当控制上为高电平时,就不会导通,防止89C51在未初始化时电机运转.4N25起到耦合脉冲和隔离单片机系统输出部分的作用,使两部分的电流信号独立。本设计中在三极管的输出回路中串了510的电阻,因此在三极管完全导通时光耦的驱动电流约为10mA(5/51010 mA). 74LS07同相驱动器是作为IRF540场
29、效应管输入端的驱动,在74LS07的输出口接了5。1K的上拉电阻。三极管(IRF540)是起到功率放大的作用.它是功率MOSFET,可以用逻辑电平直接驱动。 2。2.6 电源接口单元电路设计电源接口单元电路为各接口单元电路提供电源解决方案。本设计中单片机、A/D转换芯片ADC0809以及各门电路芯片的工作电压为5V,这样就让D/A转换芯片DAC0832也接5V电压(DAC0832正常工作电压515V)。这就需要5V电源,本设计通过5V的稳压管实现5V电压输出。控制交流电机的变频器要求输入的电压为010V,由于在市面上没有10V的稳压管,为防止输入变频器的电压过高,为此选用9V的稳压管输出9V电
30、压。图2-25 电源接口单元电路本次设计的电源接口单元电路首先用三抽头的变压器将220V的交流电降为两路12V的交流电输出,接着用全桥整流电路将两路12V交流电变为两路16。8V(12=16。8)的直流电输出,最后经7809(+9V稳压管)、7909(9V稳压管)变为9V电压输出。+5V的电压直接通过稳压管7805经7809获得。 2。2.7 总体电路图图226 总体电路图 参考文献1 宋培义,刘立新. 单片机原理接口技术与应用M。 北京:中国广播电视台出版社, 1999。2 梁恩主,梁恩维编著。 Protel 99 SE电路设计与仿真应用M. 北京:清华大学出版社,2005.3 潘新民, 王
31、燕芳编著。 微型计算机控制技术M. 北京:人民邮电出版社,1999。4 马志良编著。 单片机原理与控制技术M。 北京:机械工业出版社,2002.5 李广弟, 朱月秀, 王秀山编著。 单片机基础(第二版)M。 北京:北京航空航天大学出版社,2001.6 何宏编著。 单片机原理与接口技术M. 北京:国防工业出版社,2006。7 秦晓梅, 陈育斌编著. 单片机原理综合实验教程M。 大连:大连理工大学出版社, 2004.8 公茂法,马宝甫,孙辰.单片机人机接口实例M。 北京:北京航空航天大学,1998.9 胡汗才,单片机原理及其接口技术M.北京:清华大学出版社,1996. 10 张振荣,晋明武,王毅平
32、.MCS51单片机原理及其实用技术M。北京:人民邮电出版社,2000.11 李秉操, 张登举,付寿英,徐飞。单片机接口技术及其在工业控制中的应M.陕西:陕西电子编辑部,1991。12 赵依军.单片微型计算机接口技术M。湖北:湖北计算机协会,1988。13 张俊谟。单片机中级教程M. 北京:北京航空航天大学出版社,2000。 14 梁建明.电阻炉炉温控制系统J.兵工自动化,2003,Vol。18(3):123126.15 Bose B K 。 Power Electronics and Motion ControlTechnology Status and Recent TrendsJ。 IEE
33、E,1993:828836.致 谢毕业设计是我们在大学期间最后的课程,是几年学习的一个好的总结,也是我们学习成果具体的体现;所以我们搞毕业设计必须有一个良好的态度,认真地对待,只有这样才可以学到更多的专业知识,为将来的工作做好各个方面准备。首先要感谢带我毕业设计的李四老师,我学的很多机电方面的知识都是他传授的.在毕业设计中遇到的问题,老师都能得到老师的悉心指导和帮助。往往都是在吃饭和下班的时间,老师继续为我们留在学校。通过毕业设计我不但更深的掌握了单片机控制方面的知识,更为重要的是也学到了做人做事应该所必要的素质,那就是李老师那种治学严谨,平易近人,无私奉献的精神。 其次要感谢我的同学们,感谢他们在设计的过程中给我的帮助。没有他们的帮助,我也不可能很好的完成本次设计 .感谢从我进入大学以来,学校所有老师在学习方面和生活方面对我的关心。最后感谢为我们毕业设计辛苦的所有老师。 第 22 页 共 54 页