版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、汽车单片机技术课程结课设计报告题目:单片机控制直流电动机专业汽车服务工程班级2013学号201301503018姓名曾祥金指导教师张 琦11.1 设计要求 :(1)通过改变 A/D 输入端可变电阻来改变 A/D 的输入电压, D/A 输入检测量大小, 进而改变直流电机的转速。(2)手动控制。在键盘上设置两个按键直流电动机加速键和直流电机减速键。在手动状态下,每按一次键,电机的转速按照约定的速率改变。1.2设计原理直流电机是通过两个磁场的互作用产生旋转。 其结构如下页图所示, 固定部分(定子)上,装设了一对直流励磁的静止的主磁极 N 和 S,在旋转部分(转子)上装设电枢铁心。定子与转子之间有一气
2、隙。 在电枢铁心上放置了由 A 和 X 两根导体连成的电枢线圈, 线圈的首端和末端分别连到两个圆弧形的铜片上,此铜片称为换向片。换向片之间互相绝缘,由换向片构成的整体称为换向器。换向器固定在转轴上,换向片与转轴之间亦互相绝缘。在换向片上放置着一对固定不动的电刷 B1 和 B2,当电枢旋转时,电枢线圈通过换向片和电刷与外电路接通。定子通过永磁体或受激励电磁铁产生一个固定磁场,由于转子由一系列电磁体构成,当电流通过其中一个绕组时会产生一个磁场。对有刷直流电机而言,转子上的换向器和定子的电刷在电机旋转时为每个绕组供给电能。通电转子绕组与定子磁体有相反极性,因而相互吸引,使转子转动至与定子磁场对准的位
3、置。当转子到达对准位置时,电刷通过换向器为下一组绕组供电,从而使转子维持旋转运动。直流电机的速度与施加的电压成正比,输出转矩则与电流成正比。由于必须在工作期间改变直流电机的速度,直流电机的控制是一个较困难的问题。直流电机高效运行的最常见方法是施加一个 PWM(脉宽调制)方波,其占空比对应于所需速度。电机起到一个低通滤波器作用,将 PWM信号转换为有效直流电平。特别是对于微处理器驱动的直流电机,由于 PWM信号相对容易产生,这种驱动方式使用的更为广泛。1.3整体设计为了使用单片机对电动机进行控制,对单片机的基本要求应有足够快点速度;有捕捉功能。总体设计方案如图所示2数码管显示按键控制单片机DAC
4、0832ADC0808信号放大电压信号驱动电机图 1.1 总体设计方案键盘向单片机输入相应控制指令,由单片机通过P1 口输出与转速相应的8 位 BCD编码,该编码通过DAC0832译成相应的模拟电压,经过信号放大实现电动机转向与转速的控制。可变电阻接 ADC0808转变成相应电压的数字信号,单片机通过P2 口读取,再由 P1 口输出与转速相应的8 位 BCD编码。电动机的运转状态则通过四位数码管显示出来。电动机所处速度级以速度档级数显示。正转时最高位显示“三”,其它三位为电机转速;反转时最高位显示“ F”,其它三位为电机转速。每次电动机启动后开始显示,停止时数码管显示出“ 0000”。3第二章
5、系统硬件设计根据总设计方案可知硬件电路是以单片机为核心辅以适当的电路以完成要求功能。主要包括显示模块, A/D 转换模块, D/A 转换模块等模块。2.1按键电路2.1.1AT89C51AT89C51 是一种带 4K 字节 FLASH 存储器( FPEROMFlash Programmable and Erasable Read Only Memory )的低电压、高性能 CMOS 8 位微处理器,俗称单片机。AT89C2051 是一种带 2K 字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工
6、业标准的 MCS-51 指令集和输出管脚相兼容。 由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中, ATMEL 的 AT89C51 是一种高效微控制器, AT89C2051 是它的一种精简版本。 AT89C51 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图 2.1按键电路的设计AT89C51 提供以下标准功能: 4k 字节 Flash 闪速存储器, 128 字节内部 RAM ,32 个4I/O 口线,两个 16 位定时 /计数器,一个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时, AT89C51 可降至 0Hz 的静态逻辑操作,并支持两种
7、软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许 RAM ,定时 /计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。2.1.2按键电路如图 2.1 所示,单片机的 P2.1 和 P2.2 口分别接一个按键用于控制电机。当按下S1 键时,电机转速提高,进入加速状态;当按下S2 键时,电机转速减慢,进入减速状态。通过 S1, S2 两个按键可以达到键盘控制电机的作用。2.2显示电路2.2.1MAX7219MAX7219/MAX7221是一种集成化的串行输入/输出共阴极显示驱动器 ,它连接微处理器与 8 位数
8、字的 7 段数字 LED 显示,也可以连接条线图显示器或者64 个独立的 LED 。其上包括一个片上的B 型 BCD 编码器、多路扫描回路,段字驱动器,而且还有一个8*8 的静态 RAM用来存储每一个数据。只有一个外部寄存器用来设置各个LED 的段电流。MAX7221 与 SPI? 、 QSPI? 以及 MICROWIRE?相兼容,同时它有限制回转电流的段驱动来减少 EMI(电磁干扰)。 一个方便的四线串行接口可以联接所有通用的微处理器。每个数据可以寻址在更新时不需要改写所有的显示。MAX7219/MAX7221同样允许用户对每一个数据选择编码或者不编码。整个设备包含一个150A的低功耗关闭模
9、式,模拟和数字亮度控制, 一个扫描限制寄存器允许用户显示1-8 位数据,还有一个让所有 LED 发光的检测模式。功能特点:1、 10MHz 连续串行口52、独立的 LED 段控制3、数字的译码与非译码选择4、 150A的低功耗关闭模式5、亮度的数字和模拟控制6、高电压中断显示7、共阴极 LED 显示驱动8、限制回转电流的段驱动来减少EMI (MAX7221 )9、 SPI, QSPI, MICROWIRE 串行接口( MAX7221 )10、24 脚的 DIP 和 SO 封装2.2.2工作原理图 2.2显示电路的设计6如图 2.2 所示,可变电阻接 ADC0808 转变成相应电压的数字信号,单
10、片机通过 P0 口读取,再由 P1 口输出与转速相应的 8 位 BCD 编码到 MAX7219 。经由 MAX7219 处理后通过四位数码管显示出来。电动机所处速度级以速度档级数显示。正转时最高位显示“三” ,其它三位为电机转速;反转时最高位显示“ F”,其它三位为电机转速。每次电动机启动后开始显示,停止时数码管显示出“ 0000”。2.3A/D 转换模块2.3.1ADC0808ADC0808 是美国国家半导体公司生产的CMOS 工艺 8 通道, 8 位逐次逼近式 A/D 模数转换器。其内部有一个8 通道多路开关,它可以根据地址码锁存译码后的信号,只选通8 路模拟输入信号中的一个进行A/D 转
11、换。是目前国内应用最广泛的8 位通用 A/D 芯片。主要特性1) 8 路输入通道, 8 位 A/D 转换器,即分辨率为8 位。2)具有转换起停控制端。3)转换时间为 100 s(时钟为 640kHz 时),130s(时钟为 500kHz 时)4)单个 +5V 电源供电。5)模拟输入电压范围0 +5V,不需零点和满刻度校准。6)工作温度范围为 -40+85 摄氏度。7)低功耗,约 15mW。ADC0809 的工作过程首先输入 3 位地址,并使 ALE=1 ,将地址存入地址锁存器中。此地址经译码选通8 路模拟输入之一到比较器。START 上升沿将逐次逼近寄存器复位。下降沿启动A/D 转换,之后 E
12、OC 输出信号变低,指示转换正在进行。直到A/D 转换完成, EOC 变为高电平,指示 A/D 转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE 输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。7转换数据的传送A/D 转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D 转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式。(1)定时传送方式对于一种A/D 转换器来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809 转换时间为 128s,相当于 6MHz 的 MCS-51 单片机共 64 个机器周期。可据此设
13、计一个延时子程序, A/D 转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。(2)查询方式A/D 转换芯片由表明转换完成的状态信号,例如ADC0808 的 EOC 端。因此可以用查询方式,测试 EOC 的状态,即可确认转换是否完成,并接着进行数据传送。(3)中断方式把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以信号有效时,OE 信号即有效,把转换数据送上数据总线,供单片机接受。图 2.3AD 转换电路的设计82.3.2工作原理如图 2.3 所示
14、,外部电源通过滑动变阻器向ADC0808 输入控制电压信号,经A/D 处理后,输入到 AT89C51 中,交由 AT89C51 处理,进行下一步动作。2.4D/A 转换模块2.4.1DAC0832DAC0832 是 8 分辨率的 D/A 转换集成芯片。与微处理器完全兼容。这个DA 芯片以其价格低廉、接口简单、转换控制容易等优点, 在单片机应用系统中得到广泛的应用。 D/A 转换器由 8 位输入锁存器、 8 位 DAC 寄存器、 8 位 D/A 转换电路及转换控制电路构成。主要特性参数1.分辨率为 8 位;2.电流稳定时间 1us;3.可单缓冲、双缓冲或直接数字输入;4.只需在满量程下调整其线性
15、度;5.单一电源供电( +5V +15V );6.低功耗, 20mW 。DAC0832 的工作方式DAC0832 进行 D/A 转换,可以采用两种方法对数据进行锁存。第一种方法是使输入寄存器工作在锁存状态,而DAC 寄存器工作在直通状态。具体地说,就是使和 都为低电平, DAC 寄存器的锁存选通端得不到有效电平而直通;此外,使输入寄存器的控制信号ILE 处于高电平、处于低电平,这样,当端来一个负脉冲时,就可以完成 1 次转换。第二种方法是使输入寄存器工作在直通状态,而DAC 寄存器工作在锁存状态。就是使和为低电平, LE 为高电平,这样, 输入寄存器的锁存选通信号处于无效状态而直通;当9和端输
16、入 1 个负脉冲时,使得DAC 寄存器工作在锁存状态,提供锁存数据进行转换。图 2.4DA 转换电路的设计2.4.2工作原理如上图 2.4 所示,电压信号输入后经过 AD 转换输入到 AT89C51,由单片机通过 P1 口输出与转速相应的 8 位 BCD 编码,该编码通过 DAC0832 译成相应的模拟电压,经过信号放大实现电动机转向与转速的控制。2.5总电路图由各子模块设计给得出总硬件电路设计如下图2.5 所示10图 2.5 硬件总电路图11第三章系统软件设计本系统编程部分工作采用 KELI-C51 语言完成,采用模块化的设计方法,与各子程序做为实现各部分功能和过程的入口, 完成键盘输入、
17、按键识别、ADC0809 读取和 DAC0832 输出以及数码管显示等部分的设计。3.1系统主程序设计开始系统初始化N按键是否按下Y读取键值加速减速电机加速电机减速将模拟电压转变为数字信号调用显示子程序显示速度返回图 3.1主程序流程图12主程序流程图如上图 3.1 所示。系统初始化后, 主程序通过调用各子程序完成预定动作,达到控制电机正反转及转速的目的。4.1按键扫描程序按键扫描程序采用中断方式,按下键,完成延时去抖动、键码识别、按键功能执行。要实现按住加 /减速键不放时恒加或恒减速直到放开停止, 就需在判断是否松开该按键时,每进行一次增加 /减少一定的占空比。 按键扫描程序 流程图如下图
18、3.2 所示开始N按键是否释放、Y延时去抖动键码识别按键功能执行加 /减占空比返回图 3.2按键扫描程序流程图由流程图设计程序如下:13/*按键扫描 */key()if(P12=0)/如果按下,while(!P12)/去抖动display();k=k;if(P16=0)/启动while(P16=0);IE=0x8a;if(P13=0)/加速while (P13=0);t+;if(t>=5)t=5;if(P14=0)/ 减速while(P14=0);t-;14if(t<1)t=1;if(P15=0)/停止while(P15=0);EA=0;P10=0;P11=0;4.2显示子程序显示
19、子程序用于处理DAC0832 处理出来的 8 位 BCD ,利用数组方式定义显示缓存区,缓存区有 8 位,分别存放各个数码管要显示的值。流程图如下图3.3 所示开始求各位数值,并送入各位对应的缓冲区显示各位数值延时显示正反转返回图 3.3显示程序流程图15由流程图设计程序如下:/*数码管显示 */display()uchar i;gw=x%10;/ 求速度个位值,送到个位显示缓冲区sw=(x/10)%10;/ 求速度十位值,送到十位显示缓冲区bw=(x/100)%10;/ 求速度百位值,送到百位显示缓冲区qw=x/1000;/求速度千位值,送到千位显示缓冲区for(i=0;i<4;)P2
20、=ledi;if(i=0)/显示个位P0=smggw;delays();else if(i=1)/显示十位P0=smgsw;delays();else if(i=2)/显示百位P0=smgbw;16delays();else if(i=3)/ 显示千位if(k=0)/正转时显示 "三 "P0=0x49;delays();elseP0=0x71;/反转时显示 "F"i+;4.3定时中断处理程序定时中断处理程序:采用定时方式 1,因为单片机使用 12M 晶振,可产生最高约为 65.5ms 的延时。对定时器置初值 B1E0H 可定时 20ms,即系统时钟精度可
21、达 0.02s。当 20ms定时时间到,定时器溢出则响应该定时中断处理程序,完成对定时器的再次赋值,并对全局变量 time 加 1,这样,通过变量time 可计算出系统的运行时间。174.4A/D 转换程序首先判断 A/D 转换是否允许进行, 当 WR 又低变高时 AD 开始转换,再读取转换数据结果,把数据存到 ad_data中,完成 A/D 转换。流程图如下图 4.4 所示开始Nacds=0、Y允许 A/D 转换读取转换数据结果把数据存到 ad_data中停止 A/D 转换图 3.4A/D 转换程序流程图由流程图设计程序如下:ADC0809 :/启动 AD 转换子程序 /void start
22、_adc0809(void)/adcs=0;/允许进行 A/D 转换adwr=0;delay_50us(2);adwr=1; /WR 由低变高时 ,AD 开始转换/adcs=1;/停止 AD 转换18delay_50us(10);/读 A/D 数据子程序 /read_ad()uint ad_data;ad1_7=0xff;/adcs=0;/允许读/adrd=0;/读取转换数据结果delay_50us(5);ad_data=ad1_7;/把数据存到 ad_data中/adrd=1;adcs=1;/停止 A/D 读取return(ad_data);19第四章系统仿真4.1仿真步骤加载目标代码文件
23、打开元器件单片机属性窗口,在“ Program File”栏中添加上面编译好的目标代码文件“ keil-12.hex”;在“ Clock Frequency”栏中输入晶振频率为 12MHz 。ADC0809 的时钟信号设置为640kHz。启动仿真如下页图所示,各按键功能如图中所注,LED 中显示的为当前电压的数字信号值,即当前转速的档位(0-256),通过调整从滑动变阻器输出的电压值,可以观察到直流电机不同的转速。通过按键加减速,改变电机转速,数码管显示的数字也相应改变。结果如图 4.1 所示:图 4.1仿真结果20按下加速键后,电机转速加快,数码管显示的数值增大。结果如图4.2 所示:图 4
24、.2 仿真结果4.2仿真结果分析通过键盘向单片机输入相应控制指令,数码管显示出不同的数值。当按下加速键时,数码管显示数值增大,说明电机转速增快;当按下减速键时,数码管显示数值减小,说明电机转速减慢。键盘通过单片机实现了控制电机转速的功能。当改变可变电阻阻值时,电机两端改变,数码管显示的数值也改变。说明电阻改变可改变电机两端的电压,从而达到控制直流电机的目的,且当电压越大时,数码管显示数值越大,电机转速越快;电压越小时,数码管显示数值越小,电机转速越慢。21附录附录一电路原理图及 PCB 板附图 1电路原理图22附图2PCB板附录二系统程序#include<reg52.h>#incl
25、ude"lcd1602.h"#include"fonction.h"uchar count=0,count2=1;uchar key_num=0;uintspeed5;/bitdirect_flag=1,run_flag=0;/方向标志运行标志uchar pwmdata=50;sbit right=P27;sbit left=P26;/=void dsp()23if(run_flag) gotoxy(1,0);display_string("running");/显示电机的转动去停止情况else gotoxy(1,0);display
26、_string(" stop ");/if(direct_flag) gotoxy(12,0);display_string("->"); /显示电机的转动方向 箭头方向else gotoxy(12,0);display_string("<-");/ gotoxy(2,1);display_data(0,speed/300);display_data(1,speed/3%100);/ 显示当前速度 转速gotoxy(10,1);display_data(0,pwmdata/100);display_data(1,pwmda
27、ta%100);/ pwmdata占空比/=void key_set()if(key_num!=0)switch(key_num)case 1:run_flag=run_flag;break;case 2:direct_flag=1;break;case 3:direct_flag=0;break;case 4:pwmdata+;if(pwmdata>=100)pwmdata=100;24break;case 5:pwmdata-;if(pwmdata>=100)pwmdata=0;break;key_num=0;/清零/=void main()/-硬件初始化 -EA=1;ET0=
28、1;TMOD=0X51;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;/-TH1=0;TL1=0;TR1=1;/.-25EX0=1;IT0=1;/-控制端口初始化 -right=0;left=0;init_lcd();gotoxy(0,0);display_string(" stopdt:-> ");/stop 2 running 1gotoxy(0,1);display_string(" 000r/s 050% ");/211/-for(;)count2+;if(count>100)co
29、unt2=1;if(run_flag=0)right=0;left=0;else if(count2<=pwmdata)if(direct_flag)right=1;left=0;else right=0;left=1;else right=0;left=0;26/*void init_lcd(void)/初始化 lcd1602delay(15);write_com(lcd_mode);delay(20);write_com(undisplay_cursor);delay(20);write_com(0x06); /let cursor movedelay(20);write_com(0x01); /clear lcddelay(20);/*void gotoxy(uchar x,uchar y)if(y=0)write_com(0x80+x);elsewrite_com(0xc0+x);/*void display_data(bit kuandu,char number)uchar x,y;27if(kuandu=0)write_date(int_to_charnumber);elsex=n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 超市生鲜区奖惩制度
- 部门合规奖惩制度
- 餐饮业奖惩制度
- 车辆使用管理制度
- 《青蒿素 人类征服疾病的一小步》青蒿素研究的知识产权保护课件
- 技术实物试题及答案
- ISO 9001-2026《质量管理体系-要求》培训师、咨询师和审核员工作手册之9-1:“9绩效评价-9.1监视、测量、分析和评价-9.1.1总则”雷泽佳编制-2026A0
- 药品不良反应监测培训试题及答案
- 广东省广州市增城区2026年中考一模英语试题附答案
- 药品价格管理试题及答案
- 2025年月嫂考试题及答案
- 药品管理追溯管理制度
- 媒介融合抵抗形态-洞察及研究
- 光伏运维管理制度
- 村文书考试题及答案甘肃
- 河南省郑州市建筑职业技术学院2024年4月单招考试职测试题
- 高职应用语文教程(第二版)教案 上篇 文学鉴赏
- 征地补偿申请书范文
- 甲方业主项目管理手册
- 冶炼过程数值模拟技术-洞察分析
- 踝泵运动健康宣教课件
评论
0/150
提交评论