《单片机课程设计基于单片机直流电机测速及其控制系统.doc》由会员分享,可在线阅读,更多相关《单片机课程设计基于单片机直流电机测速及其控制系统.doc(31页珍藏版)》请在三一办公上搜索。
1、单片微型机课程设计题 目基于单片机直流电机测速及其控制系统学院名称 电气工程学院 指导教师 赵宇红 职 称 副教授 班 级 电力071班 学 号 20074450142 学生姓名 姚付山 2010年 12月 30日南华大学电气工程学院 单片机课程设计任务书设计题目: 基于单片机直流电机测速及其控制系统 专 业: 电气工程及其自动化 学生姓名: 姚 付 山 学 号: 20074450142 起迄日期: 2010年12月15日2010年12月31日 指导教师: 赵 宇 红 教研室主任: 苏 泽 光 电子技术课程设计任务书1课程设计的内容和要求(包括原始数据、技术要求、工作要求等):基于单片机直流电
2、机测速及控制系统。1.1原始资料:5V直流电机:额定转速6500r/min,电阻6;RPR220 光电传感器:集电极功耗80mW,工作环境温度-25-85,贮藏温度-30-85,电源5V。1.2 技术要求与工作要求a、可进行电机速度检测,测速范围在0-6000r/min;b、可利用4位数码管进行速度显示;c、可在程序中对电机进行速度设定;d、进行转速控制,电机实际速度与设定速度的误差为5r/min;e、利用仿真软件对硬件电路仿真;f、做出实物。 2对课程设计成果的要求包括图表(或实物)等硬件要求:设计电路,编写程序,安装调试或仿真,分析实验结果,并写出设计说明书,语言流畅简洁,文字不得少于50
3、00字。要求图纸布局合理,符合工程要求,使用proteus软件绘出原理图,器件的选择要有计算依据。3主要参考文献:1.何立民.单片机高级教程M.北京:北京航空航天大学出版社,20042.何立民.I2C总线应用系统设计M. 北京:北京航空航天大学出版社,20043.潘琢金,等.C8051F高速SOC单片机原理及应用M.北京:北京航空航天大学出版社,20024.李群芳,等.单片微机计算机与接口技术M.北京:电子工业出版社,20014课程设计工作进度计划:序号起 迄 日 期工 作 内 容12010.12.15布置任务,教师讲解设计方法及要求22010.12.16-2011.12.20学生查找阅读资料
4、,初定方案,小组会议讨论并确定方案32010.12.21-2010.12.27硬件电路设计及程序编写42010.12.28-2010.12.30仿真、实验并写说明书,小组讨论52010.12.31答辩主指导教师赵宇红老师日期: 2010 年 12 月 31 日摘要:在工程实践中,经常会遇到各种需要测量转速的场合,测量转速的方法分为模拟式和数字式两种。模拟式采用测速发电机为检测元件,得到的信号是模拟量。数字式通常采用光电管等为检测元件,得到的信号是脉冲信号。随着微型计算机的广泛应用,特别是高性能价格比的单片机的出现,转速测量普遍采用以单片机为核心的数字式测量方法。AT89C51单片机控制的智能化
5、转速测量仪。电机在运行过程中,需要对其进行监控,转速是一个必不可少的一个参数。本系统就是对电机转速进行测量,显示电机的转速,并观察电机运行的基本状况。本设计主要用AT89C51作为控制核心,由光电管、LED数码显像管、LM393比较器、2N4401三极管构成。通过做出实物对系统进行调试和测试,充分发挥出了单片机的性能。本文重点是测量速度并显示在4位LED数码管上。其优点硬件是电路简单,软件功能完善,测量速度快、精度高、控制系统可靠,性价比较高等特点。关键字:MSC-51(单片机); 转速; 传感器目录1系统功能设计及其分析12 硬件电路12.1 单片机模块12.1.1 单片机22.1.2 时钟
6、电路42.1.3 复位电路52.2 显示电路62.3 光电管模块72.3.1光电管82.3.2 LM393比较器82.3.3 5V直流电机93 程序设计1031转速测量程序设计1032 转速计算1133 单片机程序124 系统调试164.1 电路调试164.1.1电路上电前的调试164.1.2电路上电后的调试164.2 程序调试174.3 整体调试174.4 调试过程故障分析与解决184.5 课程设计经验总结与分析19结束语21参考文献22附 录23附录1 电机图片23附录2 元器件清单24附录3 电路原理图251系统功能设计及其分析系统主要实现功能是:光电管测量电机的转速信号,然后送到LM3
7、93比较器中,LM393比较器把电机转速信号转换成脉冲信号。AT89C51单片机接收LM393比较器传来的脉冲信号,单片机根据外部中断,以及内部定时器进行记数计算出电机转速送到LED显示。从实用的角度看,评价一个系统实用价值的重要标准,就是这个系统对社会生活和科技观念有多大的贡献。转速测量系统具有大范围、高精度等优点、测量速度快,这种系统将会有良好的应用。系统主要完成以下功能:1.设计并制作单片机的转速测量的硬件系统;2.用单片机语言完成转速测量的软件系统;3.要求把转速显示在4位LED上;4.利用仿真软件对硬件电路仿真;5.做出实物。2 硬件电路硬件的功能由总体设计所规定,硬件设计的任务是根
8、据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的电路原理图,必要时做一些部件实验,以确定电路图的正确性,以及工艺结构的设计加工、印制板的制作、样机的组装等。整个单片机测量转速系统为单片机控制模块、显示模块、光电管模块,各个模块都承担着各自的任务。2.1 单片机模块根据系统功能要求以及单片机硬件电路设计思路对单片机模块进行设计,要使单片机准确的测量电机转速,并且使测出的数据能显示出来,所以整个单片机部分分为单片机、时钟电路、复位电路三个部分。2.1.1 单片机单片机我们采用AT89C51(其引脚图如图2.1),相较于INTEL公司的8051它本身带有一定的优点。
9、AT89C51是一种带4K字节闪烁可编程可擦除只读存贮器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器, AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图2.1 AT89C51引脚图主要特性:与MCS-51 兼容4K字节可编程闪烁存储器 寿命:1000写/擦循环
10、数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路管脚说明: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口
11、,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。5.P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读
12、写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。6.P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如表2.1所示。7.RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。8.ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。
13、此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 9./PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。表2.1 P3口的第二功能引 脚第二功能信 号 名 称P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXDTXDINT0INT1T0T1WRRD串行数据接收串行数据发送外部中断0请求外部中断1请求定时器/计数器0计数输入定时器/计数器1计数输入外部RAM写选通外部RAM读选通 1
14、0./EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 11.XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 12.XTAL2:来自反向振荡器的输出。在本次课程设计中,我们选用PO口的八个端口作为数码管的八个段选输出口,选用P2口的四个端口作为数码管的四个位选输出口。而且还选用T0作为信号接收口,T1作为控制电机转速的输出口。2.1.2 时钟电路时钟电路是计算机的
15、心脏,它控制着计算机的工作节奏。MCS-51单片机允许的时钟频率是因型号而异的典型值为12MHZMCS-51内部都有一个反相放大器,XTAL1、XTAL2分别为反相放大器输入和输出端,外接定时反馈元件以后就组成振荡器,产生时钟送至单片机内部的各个部件。AT89C51是属于CMOS8位微处理器,它的时钟电路在结构上有别于NMOS型的单片机。CMOS型单片机内部(如AT89C51)有一个可控的负反馈反相放大器,外接晶振(或陶瓷谐振器)和电容组成振荡器,图2.2为CMOS型单片机时钟电路框图。 图2.2 CMOS型单片机时钟电路框图振荡器工作受/PD端控制,由软件置“1”PD(即特殊功能寄存器PCO
16、N.1)使/PD0,振荡器停止工作,整个单片机也就停止工作,以达到节电目的。清“0”PD,使振荡器工作产生时钟,单片机便正常运行。图中Y1为12MHZ晶振,振荡器产生的时钟频率主要由晶振的频率确定。电容C14和C15的作用有两个:其一是使振荡器起振,其二是对振荡器的频率f起微调作用(C14、C15大,f变小),其典型值为22pF。2.1.3 复位电路计算机在启动运行时都需要复位,使中央处理器CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。MCS-51单片机有一个复位引脚RST,它是史密特触发输入(对于CHMOS单片机,RST引脚的内部有一个拉低电阻),当振荡器起振后该引
17、脚上出现2个机器周期(即24个时钟周期)以上的高电平,使器件复位,只要RST保持高电平,MCS-51保持复位状态。此时ALE、PSEN、P0、P1、P2、P3口都 输出高电平。RST变为低电平后,退出复位,CPU从初始状态开始工作。单片机采用的复位方式是自动复位方式。对于MOS(AT89C51)单片机只要接一个电容至VCC即可(见图2.3)。在加电瞬间,电容通过电阻充电,就在RST端出现一定时间的高电平,只要高电平时间足够长,就可以使MCS-51有效的复位。图2.3 上电复位电路2.2 显示电路显示电路采用LED数码管动态显示,LED(Light-Emitting Diode)是一种外加电压从
18、而渡过电流并发出可见光的器件。LED是属于电流控制器件,使用时必须加限流电阻。LED有单个LED和八段LED之分,也有共阴和共阳两种。在此次课程设计中,我们选用的是共阳极的数码管。数码管结构图如图2.4。图2.4 数码管结构图发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的称为共阴极显示器。在这次设计中我们选用的动态扫描的方式。一个四位数显示器由12个发光二极管组成,其中七个发光二极管ag控制七个笔画(段)的亮或暗,另一个控制一个小数点的亮和暗,还有四个发光二极管控制数码管的位选,就是选择那个数码管点亮。图2.5为八段数码管的管脚图。图25. 八段发光显示器管脚的结构其中ag位接单片
19、机的PO口的八个输出,14位接单片机P2口的P2.0、P2.1、P2.2、P2.3三个输出。在本次课程设计中我们选择采用四个2N4401三级管作为数码管的驱动。三极管的B级接单片机输送过来的信号,E级接数码管的四个位选口,C级接5V电源。当B级有高电平信号时,使得三极管导通,电路选择四个数码管点亮。驱动电路如图2.6。图2.6 数码管的驱动电路为了节省I/O口线,我们采用的动态显示方式。所谓动态显示,就一位一位地轮流点亮各位显示器(扫描),对于每一位显示器来说,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参数,可实现亮度较高较稳定的显示。
20、2.3 光电管模块 在光电管模块中,主要由光电管,LM393比较器,5V直流电机组成。其中光电管是测量元件,LM393比较器是把光电信号转换成脉冲信号,5V直流电机主要是提供被测量的转速。光电管模块的接线图如图2.7。图2.7 光电测速模块接线图2.3.1光电管 光电管(phototube)基于外光电效应的基本光电转换器件。光电管可使光信号转换成电信号。光电管分为真空光电管和充气光电管两种。光电管的典型结构是将球形玻璃壳抽成真空,在内半球面上涂一层光电材料作为阴极,球心放置小球形或小环形金属作为阳极。若球内充低压惰性气体就成为充气光电管。光电子在飞向阳极的过程中与气体分子碰撞而使气体电离,可增
21、加光电管的灵敏度。用作光电阴极的金属有碱金属、汞、金、银等,可适合不同波段的需要。在本次设计中,我们选用的是RPR-200型号的光电管。RPR-220是一种一体化反射型光电探测器。其发射器是一 个砷化镓红外发光二级管,而接收器是一个高度灵敏,硅平面光电三极管。主要应用在游戏机,复印件和办公自动化等设备中。其特点是:1、塑料透镜提高灵敏度;2、内置的可见光过滤器以减小离散光的影响;3、体积小结构紧凑。工作环境温度是-25度到85度,贮藏温度为-30度到85度。2.3.2 LM393比较器LM393 是双电压比较器集成电路。该电路的特点如下:1、工作电源电压范围宽,单电源、双电源均可工作,单电源:
22、236V,双电源:118V;2、消耗电流小,Icc=0.8mA;3、输入失调电压小,VIO=2mV;4、共模输入电压范围宽,Vic=0Vcc-1.5V;5、输出与TTL,DTL,MOS,CMOS 等兼容;6、输出可以用开路集电极连接“或”门;7、采用双列直插8 脚塑料封装(DIP8)和微形的双列8 脚塑料封装(SOP8)LM393 系列可直接与 TTL 及 CMOS 逻辑电路接口。无论时正电源还是负电源操作,当低电耗比标准比较器的优势明显时,LM393 系列便与 MOS 逻辑电路直接接口。各引脚功能:8 脚电源,4 脚电源,1 脚比较器 A 输出,2脚比较器 A 反相输入,3 脚比较器 A 同
23、向输入,5 脚比较器 B 同向输入,6 脚比较器 B 反相输入,7 脚比较器B输出。LM393的内部图如图2.8。图2.8 LM393的内部结构图在此次设计中,我们选用1、2、3、4、8四个脚,其中8脚接电源,4脚接地,2脚接负信号,3脚接光电管测量电机得到的正信号,1脚为比较器输出脚,转换后的脉冲信号由1脚输送到单片机的TO口。2.3.3 5V直流电机 定义输出或输入为直流电能的旋转电机,称为直流电机,它是能实现直流电能和机械能互相转换的电机。当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。 在本次课程设计中,我们选用的是一个5V的直流电动
24、机。它在整个系统中的作用就是提供一个可调节的,可测量的转速。电机的正极接5V的电源,负极接一个控制三极管(2N4401)的C级。三级管的B级接单片机的P3.2口,通过P3.2口的PWM信号控制电机的转速。E级接地。由于电机驱动需要一个比较大的电流,而从单片机P3.2口输出的信号电流很小,驱动不了电机,所以,我们给三极管增加了一条电源支路,使得电机能够驱动起来。电机接线图如图2.9。图2.9 5V直流电机的驱动图3 程序设计在一个系统中,有了硬件后就必须有软件才能正常工作。在这次课程设计中,我们的软件主要是程序。一个用C语言编写的测量转速的程序。31转速测量程序设计 单片机测量转速可以分为若干模
25、块,然后在主程序中调用各个模块, 流程图如图3.1所示。开始初 始 化计算程序BCD码转换非压缩BCD转换显 示 程 序返 回图3.1 主程序流程图32 转速计算计算转速公式: n=N/MTc (r/min)n 转速、单位:转/分钟N 采样时间内所计脉冲个数Tc 采样时间、单位:分钟M 每旋转一周所产生的脉冲数(通常指测速码盘的齿数)如果M=60,那么一秒钟内产生的脉冲个数N就是转速n,即:n= =N通常M为60其中,N是内部定时器的计数值,为三字节,分别由TH0,TL0,VTT构成;Tc为时基,由于采用11.0592M的晶振,所以Tc不在是1um,而是12M/11.0592M约为1.08um
26、,带入上面公式,即可得到转速的精确计算公式: N=60*11059200/12N=55296000/N再将55296000化为二进制存入单片机的内存单元。下面我们将介绍除数是如何获得的:单片机的转速测量完成,定时器T0作为内部定时器,外部中断来的时候读取TH0,TL0,并同时清零TH0、TL0,使定时器再次循环计内部脉冲。此外,对于低速情况下,我们还要设定一个软件计数器VTT,当外部中断还没来而内部定时器已经溢出,产生定时器0中断时,增加VTT,作为三字节中的高字节。三字节组成除数,上面的常数为四字节,所以计算程序实际上就是调用一个四字节除三字节商为两字节(最高转速6000r/min足够)的程
27、序。为数码管能够显示出来,需将二进制转换为十进制,在将十进制转换为非压缩BCD码后,才能调用查表程序,最后送显示。33 单片机程序 根据以上设计思路和各个模块的流程图即可编写出本次课程设计的程序。#include #include #define uchar unsigned char#define uint unsigned intsbit PWM=P32;sbit MP=P34;bit FLAG=0;uchar code dispbit4=0x08,0x04,0x02,0x01;uchar code seg=0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0
28、X80,0X90;/0,1,2,3,4,5,6,7,8,9uchar disbuf6=0,0,0,0,10,10;uint temp6;uint discount=0;uint timecount=0;/定时的次数uint T0count=0;uint hus=0;uint k=60;uint Vc;uint Vs;uint tm=3000;uint x;void t0_serv() interrupt 1 /计数器0中断,T0 T0count+;void t1_serv() interrupt 3 /定时器1中断 ,T1 T1计时,T0计数 PWM=1; TH1=(65536-tm)/256
29、; TL1=(65536-tm)%256; hus+; if(hus=tm) PWM=0; TH1=(25536+tm)/256; TL1=(25536+tm)%256; timecount+; if(timecount=250) /FLAG=1; TR0=0; hus=0; timecount=0; Vc=T0count*65536+TH0*256+TL0; /计算速度 Vs=120; /输入控制的速度 if(abs(Vc-Vs)5) /数值绝对值大小大于5 tm=abs(k*(Vc-Vs); /控制速度 T0count=0; TR0=1; TR1=1; ET0=1; ET1=1; EA=1
30、; FLAG=1; TR0=0; timecount=0; P2=dispbitdiscount; /位选 P1=segdisbufdiscount; /段选 discount+; if(discount=4) discount=0; void main() uint i; TMOD=0x15; TH0=0; /定义计数器初值 TL0=0; TH1=(65536-tm)/256; /定义定时器初值 TL1=(65536-tm)%256; TR0=1; TR1=1; ET0=1; ET1=1; EA=1; while(1) if(FLAG=1) /计算速度标志 FLAG=0; x=T0count
31、*65536+TH0*256+TL0; /计算转速 for(i=0;i4;i+) tempi=0; i=0;while(x/10) tempi=x%10; /数码管显示程序 x=x/10; i+; tempi=x; for(i=0;i4;i+) disbufi=tempi; timecount=0; T0count=0; TH0=0; TL0=0; T0count=0; TR0=1; 4 系统调试电路调试是整个系统功能否实现的关键步骤,我们将整个调试过程分为三大部分:电路板调试、程序调试和整体调试。在此次课程设计中,由于我跟另外一个同学做的是实物,所以我们两个进行了一下分工,我主要做硬件方面的
32、东西,比如说焊电路板;他主要负责软件方面的设计,比如说写程序。4.1 电路调试电路板焊好后,就是一个完整的硬件系统了。对于一个刚做好的系统,肯定有很多不理想的地方,需要经过调试才能使它达到我们需要的理想状态。硬件调试主要是针对我的转速测量系统的单片机硬件电路分别进行调试。这一部分硬件调试主要分成两大块:上电前的调试和上电后的调试。4.1.1电路上电前的调试在上电前,我们必须确保电路中不存在断路或短路情况,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。在这部分调试中主要使用的工具是万用表,用来完成检测电路中是否存在虚焊或者短路情况等。特别是数码管的连接部分,proteus制作的原理图与
33、实际的封装不一样,需要我们注意连线。有些在电路板上没法连接的线路,要用短接线把接好,对照着原理图部分,一部分一部分地用万用表测量,注意焊点之间,确保焊点没有短接在一起,同时注意焊点的美观,确保没有开路以及短路的现象出现。4.1.2电路上电后的调试在确保硬件电路正常,无异常情况(断路或短路)方可上电调试,上电调试的目的是检验电路是否接错,同时还要检验原理是否正确,在本次课程设计中,上电调试主要是转速测量系统的单片机控制部分、数码管点亮部分、光电传感器部分和直流电机转动部分的硬件调试。(1)单片机控制部分硬件调试:这一部分调试主要是检查时钟电路、复位电路是否接对,单片机的电源以及地是否接好,以及其
34、他的一些管脚的接法。看单片机通电后能否可以正常工作等这一系列问题。(2)数码管LED电路调试:由于数码管采用的是动态扫描的方式点亮的。数码管的公共端(COM)接在三极管驱动再接到单片机的P2口作为位选信号,段选是接在P1口。电路上电检查三极管是否接上电源和地让其正常工作。在这一前提下,查看数码管能否点亮。只需要接仿真机上编写一个小程序让4位LED全亮,或者让它们其中的某位点亮,也可以显示不同的数字,根据要求给P1口,P2口分别赋值。即可检查数码管的硬件电路是否正确,即可判断显示驱动电路整个完整,首先排除这里的故障。(3)光电管部分的电路调试:用万用表检测光电管输出端口的电压,分别测光电管被遮盖
35、和未被遮盖的情况。检测这两种的情况下,输出的电压是否存在较大的压差,以排除光电传感器的故障。(4)直流电机的测试:将直流电机直接加在电源的正负极,检测电机是否正常转动,排除电机故障。4.2 程序调试在此次课程设计中,软件方面的设计及其调试主要是由我的搭档完成,我只是参与其中,了解整个设计过程及其看懂程序。在整软件调试过程中单片机部分调试工作的完成主要应用keil c软件来完成,这一部分工作首先将转速测量系统中的各个模块计算程序中的除法程序、双字节的二-十进制数制转换程序,压缩BCD码十进制数转换为非压缩BCD码的程序以及显示部分程序调试好,不断调试,不断修改直到正确为止。keilc软件是一种非
36、常实用的多窗口编辑、调试软件。 keilc软件全面支持汇编语言,C语言。通常一个调试程序应该具备至少四种性能:跟踪、断点、查看变量、更改数值。具体的操作过程由我的搭档完成。4.3 整体调试在硬件和软件单独调试成功后进行软硬件综合调试,它可以分成以下几个步骤:(1)使光电传感器有方波信号输出;(2)使单片机获得中断信号,计算出转速值并存储;(3)通过LED数码管把测量的数据显示出来。(4)单片机输出信号控制电机转动速度。4.4 调试过程故障分析与解决故障出现情况:1、通电后无任何反应;2、数码管亮度太低;3、电机不转;4、数码管显示都是0,没有得到我们需要的结果;5、正常工作一段时间后,数码管又
37、回到全部都显示为零,电机停止转动;6、单片机显示部分无法工作。解决方案(针对上述故障一一对应的解决方案):(1)通电后无任何反应。通过对电路的检查发现,LM393放大器的电源端没有接上,LM393没有工作,没有给单片机提供脉冲信号;且复位电路中的正负极接反,导致复位端口一直保持高电平,单片机一直保持复位状态。解决方法:将LM393放大器的电源端接上,将正负极和电容的顺序连接正确,故障排除。(2)数码管亮度太低。分析原因:段选输出处的限流电阻过大,以前用的是1K的限流电阻。解决办法:将1K的限流电阻换成100。结果:数码管明显变亮了。(3) 电机不转动。检查电机回路是否有电流、电机两端是否有电压
38、差和单片机P3.2脚是否输出高电平。检查结果为驱动三极管导通,但是单片机P3.2脚为低电位;分析原因:单片机输出电流不足以支持电机转动,但是三极管已经导通,使得基极电位和地电位相差只有0.7V左右,使得单片机相应管脚被拉低;解决办法:将电源正极处经限流电阻接至三极管前端电阻之前,增强单片机驱动电机的能力。当P3.2为高时,电机正常转动、当P3.2为低电位的时候,输出为低电平相当于将基极接地,抵消从正极引来的电压。其原理如图2.9。(4) 数码管之所以显示都是零,那么说明放大器输出到单片机里面的信号存在问题。经我们检测光电管电路发现被遮挡和未被遮挡情况下输出电压几乎不变,说明光电管没有正常工作。
39、检测发现原因是光电管实际接线时封装的管脚与原理图上不一致,导致管脚未能正确连接到电路。最后按照封装的顺序将光电管正确连接到电路板,故障排除。(5)数码管之所以显示都为零,是因为电机停止了工作,而且光电管电路工作正常。经检查发现,电机前端的驱动三极管因为额定电流太小,在超负荷工作一段时间后,已经坏损了。解决方法:换一支大功率额定电流为1.5A的三极管;故障排除。(6) 单片机数码管无显示。经检查,单片机未能工作;原因:当我们换了一个大功率的三极管后,经计算发现,电源的供电电流还不够电机正常工作状态下的电流供电。所以当电机工作时,电源的电全都供到了电机上,单片机没有足够的电流供其正常工作;解决方法
40、:将单片机供电与电机供电分离,即双电源;故障部分被排除,显示正常。4.5 课程设计经验总结与分析经过两个星期的努力工作以及老师和同学的热心帮助,本次课程设计任务完成。系统各部分功能均已实现,单片机能够测量出电机的转速并能显示在LED数码管上。各单元能够很好的工作在正常情况下,整个系统达到了比较理想的状态。在本次课程设计中,我们得出了几个小小的经验:由于本系统采用5V直流电源供电,光电传感器要选用工作电压的范围包含5V电压的可以省去再用一个电源的麻烦,单片机等都是工作在TTL电平的,光电传感器输出的波形应为TTL电平,以便单片机能够识别;其次是数码管要采用共阳数码管,因为数码管的灌电流可以大些达
41、到几十毫安,但是P0口拉电流比较小,采用共阳数码管可能因为电流过小而数码管不能点亮数码管,还有就是接在上拉电阻再接5V上,最好采用1K的排阻,因此我们选用P2口作为位选输出口,中间再加上三极管驱动;还有就是5V直流电机启动电流为1A左右,为了保证正常驱动电机转动,因此须选用额定电流为1.5A的三极管,并且在限流电阻之前再从电源处引一电流,增强单片机驱动能力。每个系统都有它的不足之处,此次课程设计也不例外。此次课程设计还存在以下不足:整个系统需要两个电源供电,一个给单片机供电,一个给电机供电,比较麻烦。而且因为电源所能提供的最大电流为0.8A,但是电机启动时的电流有将近1A,电机不能工作在最理想
42、的状态下。由于本人自身的焊接技术有限,焊接次数多了,难免出现些焊接点焊的不是很好的情况,导致了电路在长期工作下会出现一点点的不稳定。结束语课程设计已到了尾声了,通过本次课程设计,使我对单片机的知识部分有了更深刻的了解、掌握,相对于以前来说确实懂得了不少。本文介绍的应用于单片机系统在电机转速这一领域的应用,具有硬件电路简单、成本低廉、编程方便、通信可靠性高的特点,在工程方面具有很高的实用性。关于本次课程设计,感受颇多。有付出就有收获,尽管其中充满了艰辛与困难。但看到自己的成果时,一种成就感在心头油然而生。通过自己的亲身实践,也发现了自己的一些不足的地方,有待进一步提高与改善。在此次课程设计中,由
43、于我主要做的是硬件电路,使得我的动手能力得到了很大的提高,同时能够做到理论联系实际把理论知识用到实践之中去。在本次设计中,我们不但要拥有扎实的专业知识,而且在整个设计与调试过程中要有信心和耐心,对自己有信心,相信自己能够很好的完成本次设计任务。在调试中不断发现问题进而解决问题。通过这次课程设计还培养了自己独立思考,解决问题的能力,从而从各个方面得到提高与完善了自己,使自己的各个方面提高到一个新的台阶,同时为以后的工作打下基础。本次课程设计,特别要感谢赵宇红老师的指导和黄剑鑫、李锦前、袁俊杰等同学的帮助,同时,队友戴小东同学的出色工作以及我们之间默契的配合也是本次设计圆满完成的重要保证,再一次感谢在课程设计中帮助过我们的人。参考文献1.何立民.单片机应用技术选编M.北京:北京航空航天大学出版社,1997,102.李朝青.单片机&DSP外围数字IC技术手册M.北京:北京航空航天大学出版社,1998,43.梁廷贵、王裕琛 .现代集成电路实用手册M.北京:科学技术文献出版社,1999,64.张有德.单片微机原理、应用与实验M.上海:复旦大学出版社,1997,85.于海生.微型计算机控制技术选编M.北京:清华大学出版社,1999.36