基于单片机的电调编程器研制2.docx

上传人:b****6 文档编号:7340279 上传时间:2023-01-23 格式:DOCX 页数:36 大小:2.67MB
下载 相关 举报
基于单片机的电调编程器研制2.docx_第1页
第1页 / 共36页
基于单片机的电调编程器研制2.docx_第2页
第2页 / 共36页
基于单片机的电调编程器研制2.docx_第3页
第3页 / 共36页
基于单片机的电调编程器研制2.docx_第4页
第4页 / 共36页
基于单片机的电调编程器研制2.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

基于单片机的电调编程器研制2.docx

《基于单片机的电调编程器研制2.docx》由会员分享,可在线阅读,更多相关《基于单片机的电调编程器研制2.docx(36页珍藏版)》请在冰豆网上搜索。

基于单片机的电调编程器研制2.docx

基于单片机的电调编程器研制2

 

基于单片机的电调编程器研制

 

学院

自动化学院

专业

测控技术与仪器

班级

学号

姓名

指导教师

负责教师

 

摘要

电子调速器在航模领域中有广泛应用。

电子调速器通过对电机的控制驱动飞行器运行,不同电调搭配不同规格的电机时,都要事先用遥控器对其进行调校。

传统的调校方式只是大致调校。

本文基于这一点设计了一个基于单片机的电调编程器,通过单片机产生的PWM信号对电调进行调校和编程,可以实现精确调校。

我们可以使用旋钮和按键对PWM信号进行控制,并通过LED数码管显示出控制量。

程序采用C语言开发,主要的程序模块包括初始化子程序,数据采集子程序,数据处理子程序和显示子程序。

实验结果表明,系统满足设计要求,具有实际应用价值。

关键词:

电调编程器;单片机;PWM信号;LED显示

DesignoftheprogramcardbasedonMCU

Abstract

Electronicgovernorhasawideapplicationinmodelaircraft.Electronicgovernordriveaircraftoperationbycontrollingmotor.Differentelectricgovernorhasdifferentspecificationofcollocationofmotor.Weshuolddebugittheuseingremote-controlunitinadvance.Thetraditionalcalibrationisrough.Sowedesignamicrocontroller-basedprogramequipmentofelectronicgovernorinthispaper.ItdebugandprogramthroughPWMsignalgeneratedbythemicrocontroller.Andaccuratecalibrationcanbeachieved.WecanusetheknobandthekeytocontrolPWMsignal,andLEDdigitaltubetodisplay.TheProgramisdevelopedbyClanguage.Themainprogrammodulesinclude:

initializesubroutine,dataacquisitionsubroutine,dataprocessingsubroutine,anddisplaysubroutine.Theresultsofexperimentshowthatthesystemproposedmeetsthedesignrequirementsandisvaluableinpracticalapplication.

Keywords:

Electronicgovernorprogramming;MCU;PWMsignal;LEDdisplay

目录

1绪论1

1.1课题背景1

1.2电子调速器的研究概况1

1.3课题的研究内容3

2电调编程器总体方案设计4

2.1电调编程器系统任务分析4

2.2电调编程器硬件方案设计4

2.3电调编程器软件方案设计4

3电调编程器硬件设计6

3.1单片机最小系统6

3.1.1时钟电路6

3.1.2复位电路6

3.2PWM信号产生与控制电路7

3.3显示电路9

4电调编程器软件设计12

4.1keil开发平台简介12

4.2电调编程器的主程序设计13

4.3定时器初始化子程序13

4.4数据采集子程序14

4.5数据处理子程序15

4.6显示子程序16

5电调编程器软件仿真18

5.1proteus介绍18

5.2最小系统仿真19

5.3整体仿真20

6系统调试与分析25

6.1调试工具及使用方法25

6.2硬件调试25

6.2.1最小系统调试25

6.2.2ADC0809与LED数码管的调试25

6.2.3按键的调试26

6.2.4整体联调27

6.3调试结果与分析28

结论30

社会经济效益分析31

参考文献32

致谢34

附录Ⅰ电调编程器原理图35

附录Ⅱ程序清单36

附录Ⅲ元器件清单40

1绪论

1.1课题背景

近年来,随着航空科技领域的不断发展,使得越来越多的人加入航模爱好者的阵列。

我国航空模型运动起步于四十年代,1947年举行首届全国比赛。

新中国成立后,于五十年代建立了组织指导机构,培养了一批技术骨干,群众性的航空模型运动得到蓬勃发展,运动水平迅速提高。

随着航空科技领域的不断发展,电子调速器在航模领域得到了广泛的的应用。

航模无刷电子调速器,是根据电子调速器(简称:

电调)在航空模型上的应用而命名的。

但是不同厂家或者同一厂家的不同型号电子调速器,甚至是同一厂家同一型号的电子调速器,有于生产的批次不同,为了保证装机设备的一致性,电子调速器在装机前,或者更换时,都要事先用遥控器进行油门行程编程或调校。

通过遥控器的调校,不是完全量化调校,只是大致的调校,其操作比较繁琐,使其使用带来很多不便。

电调编程器采用占空比可调的PWM信号对电子调速器进行编程。

电调编程器可以按照装机电调的油门行程和转速、转向关系准确的实现对电调的调校,更方便了对电调进行调校,保证装机设备的一致性。

1.2电子调速器的研究概况

市面上常见的飞盈佳乐航模无刷电子调速器,凤凰航模无刷电子调速器等。

它的输入是直流,通常由2-6节锂电池来供电。

输出是三相交流,可以直接驱动电机。

另外航模无刷电子调速器还有三根信号输出线,用于接接收机。

信号线可以引出稳定的5V电压,一般可以带2-4个舵机供电。

航空模型就是通过遥控对航模无刷电子调速器的控制以达到调整飞机的各种飞行姿势和动作。

电调采用双层或者多层合并式电路板,并且MCU分离电源供应,经过大量不同的线路设计、比较、改进后定型,同时电调的重量也达到了超轻量化的水平。

比如5A电调不含线重量在2克以内,10A电调不含线也不超过3克。

超宽的使用电压范围5—16V,非常丰富的低压保护模式选择,最大程度的保护电池,并且保护方式采用降低功率的保护。

还具有过热保护,电调表面温度达到120度时会切断电源,避免烧坏,有效延长电调使用寿命。

电调具备油门信号丢失保护。

在油门信号丢失2秒后会切断动力,等待信号的恢复,这个保护可以在遥控器没电或者超出遥控距离时使模型能停下来不至于丢失,程序设置了2秒的时间监测油门信号,不会由于干扰造成信号丢失而误动作。

电调还具备安全通电功能,电机正反转软件设定等功能。

电调的调教,先确定电调已经连接上电机,遥控器的油门杆在低位,然后接上电源,电调系统会发出“嘀嗒——嘀嗒”提示音,表示电调系统一切正常,等待油门的控制。

系统会监测油门的位置,不合适会发出报警声音。

功能程序设置方法:

先确定电池未接上,将油门杆推至全开位置,将电池接上,电池接上后2秒左右调速器将发出声响“嘀嘀嘀嘀嘀嘀……”。

提示声音:

要选择某项功能,在该项提示音响过后迅速将油门拉到最低处,设置该项功能成功系统会发出“嘀嗒”提示音,如果要继续设置其他功能再把油门推到高位,系统会继续其他功能的设定;如果设定了某项功能后油门持续保持在低位,系统就会推出功能设定回到驱动电机的状态。

功能1、电源低压保护(电源低压保护功能只能选择其中一种)

提示音“嘀”强制保护2个锂电池

提示音“嘀嘀”强制保护3个锂电池

功能2、电机正反转设定

提示音“3声…嘀…”电机正反转设定

功能3、进角特性选择

提示音“4声…嘀…”低进角设置(适用于多级数高速马达)

提示音“5声…嘀…”中进角设置(适用于大部分马达)

提示音“6声…嘀…”高进角设置(适用于大扭矩低速马达)

功能4、锂电单体电压选择

提示音“7声…嘀…”单体锂电保护值3V

提示音“8声…嘀…”单体锂电保护值2.9V

提示音“9声…嘀…”单体锂电保护值2.8V

功能5、电源低压保护(电源低压保护功能只能选择其中一种)

提示音“10声…嘀…”强制保护4个锂电池

提示音“11声…嘀…”强制保护5个锂电池

提示音“12声…嘀…”强制保护6个锂电池

提示音“13声…嘀…”自动检测电池并设置保护值(用于镍镉、镍氢电池)

系统会反复循环功能设置,知道用户选择了某项功能系统才会退出功能设置回到正常驱动电机状态。

功能设定可能因为版本不同略有差别。

1.3课题的研究内容

本文对基于单片机的电调编程器的研制进行了详细的介绍,共分为6章。

第一章:

绪论。

扼要介绍了该课题背景、主要任务和内容。

第二章:

电调编程器总体方案设计。

主要对总体方案进行论述。

第三章:

电调编程器硬件设计。

将整体电路包含的分电路及使用的芯片进行了介绍。

第四章:

电调编程器软件设计。

介绍软件的设计思路及流程图。

第五章:

电调编程器软件仿真。

具体软件的模拟仿真及结果。

第六章:

系统调试与分析。

给出系统部分及整体的运行情况和调试结果。

2电调编程器总体方案设计

2.1电调编程器系统任务分析

根据本次设计的要求,此编程器以单片机为核心,具有完整的显示功能,可以按照装机电调的油门行程和转速、转向关系准确的实现对电调的编程,并能通过键盘或旋钮控制输出量。

编程器主要利用PWM信号驱动电调,通过改变由单片机输出的PWM信号的“占空比”来改变电调对电机的输入信号,实现电机的调速,达到对电调编程的目的。

设电机始终接通电源时,电机转速最大为

,电机的瞬时转速

,占空比为

,则电机瞬时转速

由上式可见,当我们改变占空比

时,就可以得到不同的电机瞬时转速

2.2电调编程器硬件方案设计

对电调进行编程主要是通过单片机产生一个占空比可调的PWM信号来实现的。

本次设计就是采用单片机89C52的内部计数,溢出中断来生成PWM信号,外路加以按键、旋钮输出控制单元和LED显示单元,最终实现对电调进行编程的目的。

硬件框图如图2.1所示。

图2.1硬件框图

2.3电调编程器软件方案设计

电调编程器控制核心为单片机。

程序用C51编写,在keil软件平台上进行开发。

单片机程序包括系统初始化程序、PWM脉宽生成程序、按键控制程序和显示程序。

程序设计流程图如图2.2所示。

图2.2程序设计流程图

3电调编程器硬件设计

3.1单片机最小系统

3.1.1时钟电路

计算机工作时,是在统一的时钟脉冲控制下一拍一拍的进行的,这个脉冲是由单片机控制器中的时序电路发出的。

单片机的时序就是CPU在执行指令时所需控制信号的时间顺序。

为了保证各部件间的同步工作。

单片机内部电路就在惟一的时钟信号控制下严格的按时序进行工作。

要给单片机提供时序要有相关的硬件电路,即振荡器和时钟电路。

常用的时钟电路设计有两种方式,一种是内部时钟方式,另一种是外部时钟方式,在此选择了内部时钟方式。

时钟电路如图3.1所示,C1和C2值选择为30PF。

C1,C2对频率有微调作用。

晶振频率选择11.0592MHZ。

在实际连接中,为了减少寄生电容,更好地保证振荡器稳定,可靠地工作,振荡器和电容应尽可能安装得与单片机芯片靠近。

图3.1时钟电路

3.1.2复位电路

复位是单片机的初始化操作。

单片机在启动运行时,都需要先复位,其作用是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。

因而,复位是一个很重要的操作方式。

但单片机本身是不能自动进行复位的,必须配合相应的外部电路来实现。

当单片机运行时,在其RST引脚及第9引脚加上持续时间大于两个机器周期(24个始终振荡周期)的高电平时,就完成复位操作。

复位电路通常采用上电复位和按键复位两种方式。

在此设计当中同时采用了这两种复位方式。

复位电路如图3.2所示。

上电自动复位是通过外部复位电路的电容充电来实现的。

当电源接通时只要电压上升时间不超过1ms,就可以实现自动上电复位。

按键复位是通过RST端经电阻与电源VCC接通而实现的,RST端的电位为电阻R1的分压,当按键按下时,RST端为高电平,实现了手动按键复位。

图3.2复位电路

3.2PWM信号产生与控制电路

PWM信号产生与控制电路主要由单片机,按键,旋钮和ADC0809组成。

其硬件电路如图3.3所示。

图3.3PWM产生与控制电路

ADC0809的IN0口与滑动变阻器相连,这里用滑动变阻器来表示实物中的旋钮。

当旋转旋钮即滑动变阻器的阻值改变时,向ADC0809的IN0口输入0~5V不同的电压值,经过AD转换,由输出口OUT1~OUT8输出数据给单片机的P1口。

图3.4为ADC0809内部结构图。

图3.4ADC0809内部结构图

ADC0809的工作过程:

首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。

此地址经译码选通8路模拟输入之一到比较器。

START上升沿将逐次逼近寄存器复位。

下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。

直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。

当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。

此外本设计设定三个按键,按键“1”,按键“2”,按键“3”分别与单片机的P2.1,P2.2,P2.3相连。

当通过旋转旋钮到一定位置后,每按一次按键就向单片机发送一次数据。

单片机接收由ADC0809和按键发送的数据,经过数据处理后产生相应占空比的PWM信号。

根据要求,当旋钮旋到最小时,让单片机产生周期为20

,输出高电平时间为0.5

的PWM信号。

当阻值滑动到最大时,单片机产生高电平输出为2.5

的PWM信号。

每按一次按键“1”其PWM信号高电平输出时间就增加1

;每按一次按键“2”,其PWM信号高电平输出时间就减小1

当按下按键“3”时,PWM信号高电平输出时间为1.5

3.3显示电路

显示电路主要由四位8段LED数码管和驱动电路组成。

硬件电路如图3.5所示。

图3.5显示电路

本设计采用四位8段数码管为一组共阴极LED的显示器。

其引脚分配图如图3.6所示。

图3.6八段数码管组引脚分配

跟单个8段数码管的原理和结构一样,它也是根据各个端口的电平信号来使其相应的段发光,只不过它将4个LED集成到了一起。

因此,它们可以共用一组数据端,并有4个位选端。

如图3.6所示,1、2、3、4端分别控制该显示器各个数位的显示,向不同的位选端加入低电平可以控制不同的数据位发光。

如此可见,数码管以组的形式出现,不仅使得电路的结构更为简单,也为单片机节约更多的I/O口资源。

当系统要求多个数码管同时显示时,单片机的带载能力会有所下降,使得数码管的亮度也会变得灰暗,所以应适当加入驱动以弥补这个不足。

当前,用到LED这一类负载上的驱动已有很多,本文用的是74HC573和74HC138。

因为它不仅有驱动LED的能力,还能对数据进行锁存,这在数码管的动态显示中是必不可少的。

74HC573的输入端D0~D7与单片机的P0口相连,接受数据。

输出端Q0~Q7可直接与数码管的a~hp相连。

当三态允许控制端OE为低电平时,Q0~Q7为正常逻辑状态,可用来驱动负载。

当OE为高电平时,Q0~Q7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。

当锁存允许端LE为高电平时,Q随数据D而变。

当LE为低电平时,Q被锁存在已建立的数据电平。

图3.7为74HC573引脚图。

图3.774HC573引脚排列

锁存端LE由高变低时,输出端8位信息被锁存,直到LE端再次有效。

当三态门使能信号OE为低电平时,三态门导通,允许Q0~Q7输出,OE为高电平时,输出悬空。

当74HC573用作地址锁存器时,应使OE为低电平,此时锁存使能端C为高电平时,输出Q0~Q7状态与输入端D1~D7状态相同;当C发生负的跳变时,输入端D0~D7数据锁入Q0~Q7。

74HC138是一款高速CMOS器件,74HC138译码器可接受3位二进制加权地址输入(A0,A1和A3),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。

74HC138特有3个使能输入端:

两个低有效(E1和E2)和一个高有效(E3)。

除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高。

在本设计中74HC138实现的功能是对四位8段LED数码管进行位选。

74HC138的A0,A1,A2分别与单片机的P2.4,P2.5,P2.6相连,输出口Y0~Y3与数码管的公共端相接,由软件对A0,A1,A2进行赋值,分时选通Y0~Y3,从而实现对数码管的位选功能。

4电调编程器软件设计

4.1keil开发平台简介

C语言是一种通用的计算机设计语言,在国际上十分流行,它既可用来编写计算机的系统程序,也可以用来编写一般的应用程序。

以前计算机的系统软件主要是用汇编语言编写的,对于单片机应用系统来说更是如此。

由于汇编语言程序的可读性和可移植性都较差,采用汇编语言编写单片机应用程序的周期长,而且调试和排错也比较困难。

为了提高编制单片机应用程序的效率,改善程序的可读性和可移植性,采用高级语言无疑是一种最好的选择。

C语言既具有一般高级语言的特点,又能直接对计算机的硬件进行操作,表达和运算能力也较强,许多以前只能用汇编语言来解决的问题现在都可以改用C语言来解决。

德国KeilSoftware公司多年来致力于单片机C语言编译器的研究,该公司开发的KeilCx51是一种专门为8051单片机设计的高效率C语言编译器,符合ANSI标准,生成的程序代码运行效率极高,所需要的存储器空间极小,完全可以和汇编语言相媲美。

Keil公司目前已经推出了V7.0以上版本的Cx51编译器,为8051单片机软件开发提供了全新的C语言环境,同时保留了汇编代码高效、快速的特点。

Cx51已被完全集成到一个功能强大的全新集成开发环境μVision2中,其中包括项目(project)管理器、Cx51编译器、Ax51宏汇编器、BL51/Lx51连接定位器、RTX51实时操作系统、Simulator软件模拟器以及Monitor51硬件目标调试器,所有这些功能均可在μVision2提供的单一而又灵活的开发环境中极为简便地进行操作。

μVision2提供了强大的项目管理功能,可以十分方便地进行结构化多模块程序设计。

μVision2内部集成源级浏览器(Browser)利用符号数据库中详细的符号信息,使用户可以快速浏览源文件,并优化用户的变量数据存储器。

μVision2内部集成器件数据库(devicedatabase)储存了多种不同型号单片机的片上资源信息,通过它可以自动设置Cx51编译器、Ax51宏汇编器、BL51/Lx51连接定位器及调试器的默认选项,充分满足用户利用特定单片机片上集成外围功能的要求。

μVision2内部集成源程序编辑器允许用户在编辑源程序文件时(甚至在未经编译和汇编之前)设置程序调试断点,便于在程序调试过程中快速检查和修改程序。

μVision2提供文件查找功能,能对单一文件或全部项目文件进行指定搜索。

此外还提供了用户工具菜单接口,允许在μVision2中直接启动用户功能。

μVision2支持软件模拟仿真(Simulator)和用户目标板调试(Monitor51)两种工作方式,在软件模拟仿真方式下不需要任何8051单片机硬件即可完成用户程序仿真调试,极大地提高了用户程序开发效率,在用户目标板调试方式下,利用硬件目标板中的监控程序可以直接调试目标硬件系统,使用户可以节省购买昂贵硬件仿真器的费用。

4.2电调编程器的主程序设计

在进行系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。

因此,软件设计系统设计中占重要地位。

电调编程器的主要功能包括:

数据采集、单片机产生PWM信号和显示功能。

软件程序设计主要分为系统初始化程序、数据采集子程序、数据处理和显示子程序几部分。

主程序流程图如图4.1所示。

图4.1软件总体设计流程图

4.3定时器初始化子程序

本设计用到两个定时器,定时器T0用于ADC0809的信号控制端,定时器T1则用于单片机的数据处理部分,通过设定定时器T1的初值来产生不同占空比的PWM信号。

这部分程序主要是设定定时器计数器的工作方式,为定时器设定初值,给计数器清零,开中断,启动定时器等。

定时器初始化子程序流程图如图4.2所示。

图4.2定时器初始化子程序流程图

4.4数据采集子程序

数据采集子程序主要是实现来自旋钮和按键的数据采集。

启动ADC0809后,旋钮旋转通过A/D转换将模拟量转换为数字量,与按键发送的数据传输给单片机。

数据采集子程序流程图如图4.3所示。

图4.3数据采集子程序流程图

按键子程序流程图如图4.4所示。

图4.4按键子程序流程图

4.5数据处理子程序

本次设计中,最重要的是产生控制电调的PWM信号,本次设计决定用单片机的内部中断来生成PWM信号。

使用的单片机的晶振频率是11.0592MHz,所以时钟周期是

MHz,12个时钟周期是一个机器周期,所以这次设计的机器周期为

MHz。

设需要装入T1的初值为X,定时时间为t,则有:

本次设计要求PWM波形的周期为20ms,高电平输出时间为0.5~2.5ms。

PWM波形高电平的时间t一旦定下来,就能通过计算知道T1的初值为多少。

例如,输出高电平的时间为tms,则有:

(4.1)

则输出低电平的时间为(20-t)ms,有:

(4.2)

通过

(1),

(2)两式便可计算出输出高低电平时定时器的初值。

计数最大值越大,步距所占PWM周期的百分比越小,精度越高。

本次设计采用16位整型变量,计数最大值为

,则精度为

数据处理子程序流程图如图4.5所示。

图4.5数据处理子程序流程图

4.6显示子程序

本设计采用四位LED显示,显示数据为500~2500

,从左到右依次表示千位、百位、十位、个位。

首先选通锁存器74HC573和译码器74HC138,把要显示的数据所存在74HC573中,通过74HC138依次选通数码管的个位至千位,然后取段码,再把段码送到LED数码管上显示出来。

显示子程序流程图如图4.6所示。

图4.6显示子程序流程图

5电调编程器软件仿真

5.1proteus介绍

Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU 的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。

因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。

对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。

Proteus的工作过程。

运行Proteus的ISIS程序后,进入该仿真软件的主界面。

在工作前,要设置view菜单下的捕捉对齐和system下的颜色、图形界面大小等项目。

通过工具栏中的p(从库中选择元件命令)命令,在pickdevices窗口中选择电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1