东北石油大学单片机控制直流电动机课程设计资料文档格式.docx
《东北石油大学单片机控制直流电动机课程设计资料文档格式.docx》由会员分享,可在线阅读,更多相关《东北石油大学单片机控制直流电动机课程设计资料文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
主要内容:
采用单片机设计一个控制直流电机并测量转速的装置。
单片机扩展有A/D转换芯片ADC0809和D/A转换芯片DAC0832。
基本要求:
(1)通过改变A/D输入端可变电阻来改变A/D的输入电压,D/A输入检测量大小,进而改变直流电机的转速。
(2)手动控制。
在键盘上设置两个按键—直流电动机加速键和直流电机减速键。
在手动状态下,每按一次键,电机的转速按照约定的速率改变。
(3)键盘列扫描(4
6)。
主要参考资料:
[1]马淑华.单片机原理与接口技术[M].北京:
北京邮电大学出版社,2005.
[2]方建军.智能机器人[M].北京:
化学工业出版社,2004.
[3]刘复华.单片机及其应用系统[M].北京:
清华大学出版社,1992.
[4]周万珍.单片机分析与设计应用[M].北京:
电子工业出版社,2004.
[5]陈元杰.串级控制的PID参数自整定算法[M].北京:
电子工业出版社,1996.
完成期限2014.6.30-2014.7.4
指导教师李艳辉邵克勇
专业负责人
第1章概述1
1.1设计目的1
1.2设计任务和要求1
1.3设计原理1
第2章系统结构及主要元器件2
2.1AT89C51单片机2
2.2LCD显示器2
第3章硬件设计3
3.1按键电路3
3.2显示电路4
3.3A/D转换模块5
3.4D/A转换模块6
第4章软件设计8
4.1程序框图8
4.2程序源代码8
第5章系统仿真及调试13
5.1仿真步骤13
5.2仿真结果分析14
结论15
参考文献16
第1章概述
1.1设计目的
1、通过单片机课程设计,熟练掌握C语言的编程方法,将理论联系到实践中,提高我们的动脑和动手的能力。
2、通过对单片机控制直流电动机控制系统的设计,掌握A/D转换、D/A转换的有关原理,加深对PWM波的理解和使用,同时对单片机的使用更加熟练,通过对简单程序的编写提高我们的逻辑抽象能力。
1.2设计任务和要求
任务:
采用单片机设计一个控制直流电动机并测量转速的装置。
要求:
1、通过改变A/D输入端的可变电阻来改变A/D输入电压,D/A输入检测量大小,进而改变直流电机的转速。
2、手动控制。
在键盘上设置两个按键——直流电动机加速键和直流电机减速键。
3、键盘列扫描(4*6)。
1.3设计原理
直流电机是通过两个磁场的互作用产生旋转。
其结构如下页图所示,固定部分(定子)上,装设了一对直流励磁的静止的主磁极N和S,在旋转部分(转子)上装设电枢铁心。
定子与转子之间有一气隙。
在电枢铁心上放置了由A和X两根导体连成的电枢线圈,线圈的首端和末端分别连到两个圆弧形的铜片上,此铜片称为换向片。
直流电机的速度与施加的电压成正比,输出转矩则与电流成正比。
由于必须在工作期间改变直流电机的速度,直流电机的控制是一个较困难的问题。
直流电机高效运行的最常见方法是施加一个PWM(脉宽调制)方波,其占空比对应于所需速度。
电机起到一个低通滤波器作用,将PWM信号转换为有效直流电平。
特别是对于微处理器驱动的直流电机,由于PWM信号相对容易产生,这种驱动方式使用的更为广泛。
本项目的示例程序为了能够演示DAC0832的使用,未使用PWM驱动方式。
而是利用直流电机的速度与施加电压成正比的原理,通过滑动变阻器向ADC0809输入控制电压信号,经AD后,输入到AT89C51中,AT89C51将此信号转发给DAC0832,通过功放电路放大后,驱动直流电机。
需要注意的是,本题目使用的Proteus版本,未提供ADC0809的仿真模型,这里以引脚、功能与之相同的ADC0808代替。
同时,DAC0832也可以用引脚、功能相同的DAC0830代替。
第2章系统结构及主要元器件
2.1AT89C51单片机
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
图
图2-1AT89C51单片机引脚
2.2LCD显示器
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它由若干个5×
7或者5×
11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。
图2-2LCD1602引脚图
第3章硬件设计
根据总设计方案可知硬件电路是以单片机为核心辅以适当的电路以完成要求功能。
主要包括显示模块,A/D转换模块,D/A转换模块等模块。
3.1按键电路
3.1.1AT89C51
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
图3-1按键电路的设计
AT89C51提供以下标准功能:
4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
3.1.2按键电路
如图2.1所示,单片机的P2.1和P2.2口分别接一个按键用于控制电机。
当按下S1键时,电机转速提高,进入加速状态;
当按下S2键时,电机转速减慢,进入减速状态。
通过S1,S2两个按键可以达到键盘控制电机的作用。
3.2显示电路
3.2.1MAX7219
MAX7219/MAX7221是一种集成化的串行输入/输出共阴极显示驱动器,它连接微处理器与8位数字的7段数字LED显示,也可以连接条线图显示器或者64个独立的LED。
其上包括一个片上的B型BCD编码器、多路扫描回路,段字驱动器,而且还有一个8*8的静态RAM用来存储每一个数据。
只有一个外部寄存器用来设置各个LED的段电流。
MAX7221与SPI™、QSPI™以及MICROWIRE™相兼容,同时它有限制回转电流的段驱动来减少EMI(电磁干扰)。
一个方便的四线串行接口可以联接所有通用的微处理器。
每个数据可以寻址在更新时不需要改写所有的显示。
MAX7219/MAX7221同样允许用户对每一个数据选择编码或者不编码。
整个设备包含一个150μA的低功耗关闭模式,模拟和数字亮度控制,一个扫描限制寄存器允许用户显示1-8位数据,还有一个让所有LED发光的检测模式。
3.2.2工作原理
图3-2显示电路的设计
如图2.2所示,可变电阻接ADC0808转变成相应电压的数字信号,单片机通过P0口读取,再由P1口输出与转速相应的8位BCD编码到MAX7219。
经由MAX7219处理后通过四位数码管显示出来。
电动机所处速度级以速度档级数显示。
正转时最高位显示“三”,其它三位为电机转速;
反转时最高位显示“F”,其它三位为电机转速。
每次电动机启动后开始显示,停止时数码管显示出“0000”。
3.3A/D转换模块
3.3.1ADC0808
ADC0808是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
是目前国内应用最广泛的8位通用A/D芯片。
主要特性
1)8路输入通道,8位A/D转换器,即分辨率为8位。
2)具有转换起停控制端。
3)转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时)
4)单个+5V电源供电。
5)模拟输入电压范围0~+5V,不需零点和满刻度校准。
6)工作温度范围为-40~+85摄氏度。
7)低功耗,约15mW。
ADC0809的工作过程
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
转换数据的传送A/D转换后得到的数据应及时传送给单片机进行处理。
数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。
为此可采用下述三种方式。
(1)定时传送方式
对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。
例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。
可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。
(2)查询方式
A/D转换芯片由表明转换完成的状态信号,例如ADC0808的EOC端。
因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。
(3)中断方式
把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。
不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。
首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。
图3-3AD转换电路的设计
3.3.2工作原理
如图2.3所示,外部电源通过滑动变阻器向ADC0808输入控制电压信号,经A/D处理后,输入到AT89C51中,交由AT89C5