《单片机-电机调速-1602显示(12页).doc》由会员分享,可在线阅读,更多相关《单片机-电机调速-1602显示(12页).doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-单片机-电机调速-1602显示-第 12 页滨江学院课程设计题目基于单片机的电机转速控制院系信息与控制专业自动化班级三负责人尤崇森指导教师周旺平二一年十二月二十八日目录一、 系统设计要求及思路 1.1 设计要求- 31.2 设计思路- 3 二、 硬件系统2.1 稳压电路- 32.2 89c51简介- 42.3 晶振,复位电路设计- 52.4 电机驱动电路- 62.5 电机测速电路- 82.6 LCD显示- 9三、 软件系统3.1 PWM波形产生- 113.2 程序流程图- 13四、 系统调试4.1 软件调试- 174.2 硬件连线- 18五、 设计总结参考文献附录一 设计人员分布清单- 19
2、附录二 元器件清单- 20第一章 系统设计要求及思路1.1 设计要求运用单片机的控制原理,设计一个采用闭环反馈控制的电机转速调节系统。用闭环控制原理快速调节电机转速,从而实现电机的正转,反转,停止,加速,减速,并通过LCD显示屏显示电机的实际转速,设定转速。1.2 设计思路首先将单片机作为控制中枢,从按钮源接收到电机各种动作的信号,接着由单片机调制PWM信号发出指令,经过H桥电机驱动电路,控制电机执行相应的动作,之后采用光电元件组成的测速电路检测出电机转速,输送到单片机进行误差计算,进而再调制PWM的信号控制电机加速减速等动作,如此反复,直到电机达到设定的电机转速。第二章 硬件系统2.1 稳压
3、电路电子产品中,常见的三端稳压集成电路有正电压输出的78 系列和负电压输出的79系列。顾名思义,三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端。它的样子像是普通的三极管,TO- 220 的标准封装,也有9013样子的TO-92封装。用78/79系列三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。该系列集成稳压IC型号中的78或79后面的数字代表该三端集成稳压电路的输出电压,如7806表示输出电压为正6V,7909表示输出电压为负9V。因为使用方便,故经常采用。图1 稳压电路2.2 AT8
4、9C51简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。外形及引脚排列如图
5、所示图2 AT89C51管脚说明: (1) VCC:供电电压。 (2)GND:接地。 (3)P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 (4)P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在F
6、LASH编程和校验时,P1口作为第八位地址接收。 (5)P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 (6)P3口:P3口管脚是8个带内部上拉电阻的双向
7、I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下所示: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 (7)RST:复位输入。
8、当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 (8)ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 (9)/PSEN:外部程序存储器
9、的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 (10)/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 (11)XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 (12)XTAL2:来自反向振荡器的输出。2.3 晶振,复位电路的设计晶振电路 单片机是一种时序电路,必须提供脉冲
10、信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚。只要买来晶振,电容,连上就可以了,其电路图如图4所示。XTAL1和XTAL2分别为反向放大器的输入和输出,该反向放大器可以配置为片内振荡器2。图3 晶振电路复位电路 在上电或复位过程中,控制CPU的复位状态:这段时间内让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执行错误操作,也可以提高电磁兼容性能。 无论用户使用哪种类型的单片机,总要涉及到单片机复位电路的设计。而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现
11、了“死机”、“程序走飞”等现象3,这主要是单片机的复位电路设计不可靠引起的。电路如图5所示。图4 复位电路2.3 电机驱动电路L298是SGS的产品,比较常见的是MuLtiwatt封装的L298N,内部同样包含4道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。L298可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压,可以直接用单片机的IO口来提供信号,而且电路简单,实用方便。L298N可接受标准的TTL逻辑电平信号VSS,VSS可接4.57V电压。4脚VS接电源电压,输出电流为2.5A,可驱动电感性负载。1脚和15脚下管的发射
12、极分别单独引出以便接入电源采样电阻,形成电流传感信号。L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机。本实验我们选用驱动一台电动机。5,7,10,12脚接输入控制电平,控制电机正反转,ENA,ENB接控制使能端,控制电机的停转。L298芯片 管脚说明:(1) SENSA:电流监测端,H桥的电流反馈脚,不用时可直接接地。(2) OUT1:输出端,与M1对应。(3) OUT2:输出端,与M2对应。(4) VS:电源,用来给电动机供电。(5) IN1:输入端。(6) ENA:使能端,和M1、M2配合使用。(7) IN2:输入端。(8) GND:接地。(9) VCC
13、:电源,用来给芯片供电。(10) IN3:输入端(11) ENB:使能端,和M3、M4配合使用。(12) IN2:输入端。(13) OUT3:输出端,与M3对应。(14) OUT4:输出端,与M4对应。(15) SENSB:电流监测端,H桥的电流反馈脚,不用时可直接接地。2.5 电机测速电路本设计采用的是红外传感器(由红外线发射管、红外线接收管构成的红外计数电路)红外线发射管简介:红外线发射管也称红外线发射二极管,属于二极管类。它是可以将电能直接转换成近红外光(不可见光)并能辐射出去的发光器件,主要应用于各种光电开关及遥控发射电路中。红外线发射管的结构、原理与普通发光二极管相近,只是使用的半导
14、体材料不同。红外发光二极管通常使用砷化镓(GaAs)、砷铝化镓(GaAlAs)等材料,采用全透明或浅蓝色、黑色的树脂封装。 产品参数:发射距离、发射角度(15度、30度、45度、60度、90度、120度、180度)、发射的光强度、波长。以上决定红外线发射管产品的主要性能及使用范围。红外线接收管特征与原理:红外线接收管是将红外线光信号变成电信号的半导体器件,它的核心部件是一个特殊材料的PN结,和普通二极管相比,在结构上采取了大的改变,红外线接收管为了更多更大面积的接受入射光线,PN结面积尽量做的比较大,电极面积尽量减小,而且PN结的结深很浅,一般小于1微米。红外线接收二极管是在反向电压作用之下工
15、作的。没有光照时,反向电流很小(一般小于0.1微安),称为暗电流。当有红外线光照时,携带能量的红外线光子进入PN结后,把能量传给共价键上的束缚电子,使部分电子挣脱共价键,从而产生电子-空穴对(简称:光生载流子)。它们在反向电压作用下参加漂移运动,使反向电流明显变大,光的强度越大,反向电流也越大。这种特性称为“光电导”。红外线接收二极管在一般照度的光线照射下,所产生的电流叫光电流。如果在外电路上接上负载,负载上就获得了电信号,而且这个电信号随着光的变化而相应变化。 分类: 红外线接收管有两种,一种是光电二极管,另一种是光电三极管。光电二极管就是将光信号转化为电信号,光电三极管在将光信号转化为电信
16、号的同时,也把电流放大了。因此,光电三极管也分为两种,分别别是NPN型和PNP型。 作用: 红外接收管的作用是进行光电转换,在光控、红外线遥控、光探测、光纤通信、光电耦合等方面有广泛的应用。 如何选择红外线接收管:红外线最重要的参数就是光电信号的放大倍率,一般的有1000-1300 1300-1800 1800-2500,这些对灵敏度有决定作用。红外计数电路图6 计数测速电路红外计数电路主要由红外发射和接收电路组成. 红外发射和接收电路: 在电动机上安装一对红外发射和接收管, 当电动机转动时,对红外光反射、散射和折射,穿过红外光的光强瞬间减少, 红外接收管导通程度也在瞬间减小, 因而产生一个脉
17、冲信号; 信号放大比较电路: 电容拾取脉冲信号后由运放LM324进行放大, 放大倍数为10倍, 再将放大的信号由运放LM324比较后输出标准的低电平脉冲信号(undershoot), 其中C1=0. 01F, R1=11K, R2=500, R3=10K, R4=100K, R5=100K, R6=5K, R7=100K, R6 和R7 起着抗干扰作用1. 然后将获得的脉冲信号送到单片机的计数器引脚进行计数, 这样就可以达到计数的目的. 图7 转速检测示意2.6 LCD显示液晶显示原理液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示
18、器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。根据要求选用1602LCD:图8 1602LCD尺寸图1602LCD主要技术参数: 显示容量:162个字符芯片工作电压:4.55.5V 工作电流:2.0mA(5.0V) 模块最佳工作电压:5.0V 字符尺寸:2.954.35(WH)mm图9 1602内部结构图10 接口图1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号等,每个字符都有一个固定的代码,比如大写英文
19、字母A的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如A。1602采用标准的16脚接口,其中第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W
20、共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。第三章 软件系统#include #include#define uchar unsigned char#define uint unsigned intsbit add=P00;sbit dec=P01;sbit en1=P30; /* L298的Enable A */sbit s1=P31; /* L298的Inp
21、ut 1 */sbit s2=P32; /* L298的Input 2 */uchar t=0; /* 中断计数器 */uchar m1=0; /* 电机速度值 */uchar tmp1; /* 电机当前速度值 */sbit E=P37 ;sbit RW=P36;sbit RS =P35 ;sbit test =P34;int time = 0 ;int num_medium=0;int num_display = 0;int count_speed=0;uchar wword=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39;/* 电机控制函
22、数 index-电机端口号; speed-电机速度 */void motor(uchar index, char speed)if(speed=0 & speed0)s1=1;s2=0;void delay1(uint j) /* 简易延时函数 */for(j;j0;j-);/延时t毫秒void delay(uchar t) uint i ;while(t) for(i=0;i125;i+);t-;void wc51r(uchar j)RS=0;RW=0;P1=j;E=1;E=0;delay(3);/写数据函数LCD void wc51ddr(uchar j)RS=1;RW=0;P1=j;E=
23、1;E=0;delay(2);/初始化函数LCD void init () wc51r(0x01); /清屏 wc51r(0x38); /使用8位数据,显示两行,使用5*7的字型 wc51r(0x0c); /显示器件,光标开,字符不闪烁 wc51r(0x06); /字符不动,光标自动右移一格/*T1中断服务程序*单位时间(S)方波的个数*/ void time1_int(void) interrupt 3 count_speed+; if(count_speed=20) count_speed = 0; num_display = num_medium; num_medium = 0;/*速度
24、显示的数据处理*/void datamade() uint data MM,NN; wc51r(0xc2); wc51ddr(S); wc51ddr(p); wc51ddr(e); wc51ddr(e); wc51ddr(d); wc51ddr(0x3a); NN = num_display%100; MM = num_display/100; wc51ddr(wwordMM); MM = NN/10; NN = NN%10; wc51ddr(wwordMM); wc51ddr(wwordNN);/*主函数*/ void main() unsigned char i; P2 = 0x00; E
25、T0 = 1; ET1 = 1; TMOD = 0x12; TH0=0x9B; TL0=0x9B; TH1 =0x3c; TL1 =0xb0; EA=1; TR0 = 1; TR1 = 1;init(); /液晶显示初始化程序 while(1) while(add=0&i=0) motor(1,i); i-; delay1(3000); wc51r(0x84); wc51ddr(M); wc51ddr(O); wc51ddr(T); wc51ddr(O); wc51ddr(R); if(test=0 ) num_medium+; datamade();void timer0() interru
26、pt 1 /* T0中断服务程序 */if(t=0) /* 1个PWM周期完成后才会接受新数值 */tmp1=m1;if(t=100) t=0; /* 1个PWM信号由100次中断产生 */3.2 软件流程图图11 软件流程图第四章 系统调试4.1 软件调试4.1.1 整体图图12 软件仿真4.1.2 驱动电路图图13 驱动电路图第五章 设计总结基于单片机的电机控制系统,具有硬件电路的设计简单,C语言编程简洁,控制电机动作快速,控制范围大特点。同时采用单片机来实现电机转速的测量,可以提高转速的精确性,同时加快采样周期,可以增加控制的实时性,因此可以大范围的应用场合和具有广阔的应用前景。参考文献
27、1谢自美.电子线路设计.实验.测试. 华中理工大学出版社.2张鑫.单片机原理与应用. 电子工业出版社.3陆子明.单片机设计与应用教程. 电子工业出版社.4周立功.增强型80c51单片机速成与实战. 北京航天航空出版社.5潘永雄.新编单片机原理与应用. 西安电子科技大学出版社.6孙育才.MCS-51系列单片微型计算机及其应用第四版. 东南大学出版社.附录一设计人员任务清单任务分配人员晶振,复位电路林 森 邹 浩 杨 光驱动电路万昌立 丁金卉测速电路瞿晓东 王仁智 徐 浩稳压电路刘如俊 周兆基LCD显示电路徐龙成 倪永康 袁 泉软件编程徐龙成 梅 满 面包板接线徐龙成报告编写尤崇森附录二元器件清单元器件数量备注At89c511L7805稳压1按钮2IN4007二极管4S9014三极管4NPN型LM 358N放大器1含两个运放红外发射管1红外接收管1晶振112MHZ电容若干电阻若干导线若干