直流电机单片机调速系统毕业设计说明书.doc_第1页
直流电机单片机调速系统毕业设计说明书.doc_第2页
直流电机单片机调速系统毕业设计说明书.doc_第3页
直流电机单片机调速系统毕业设计说明书.doc_第4页
直流电机单片机调速系统毕业设计说明书.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

广西工学院毕业设计直流电机单片机调速系统1 设计说明1.1 直流电机概述18在电气时代的今天,电动机一直在现代化的生产和生活中起着十分重要的作用。无论是在工农业生产、交通运输、国防、航空航天中,还是日常生活的家用电器中,都大量地使用着各种各样的电动机。据资料统计,现在有90%以上的动力源来自于电动机,我国生产的电能大约有60%用于电动机。电动机与人们的生活息息相关,密不可分。而直流电动机是最早出现的电动机,也是最早能实现调速的电动机。长期以来,直流电动机一直占据着调速控制的统治地位。由于它具有良好的线性调速特性,简单的控制性能,较高的效率,优异的动态特性;尽管近年来不断受到其他电动机(如交流变频电动机、步进电动机等)的挑战,但到目前为止,它仍然是大多数调速控制电动机的最优先选择。近年来,直流电动机的结构和控制方式都发生了很大变化。随着计算机进入控制领域,以及新型的电力电子功率元器件的不断出现,使采用全控型的开关功率元件进行脉冲调制(pwm)控制方式已成为绝对主流。这种控制方式很容易在单片机控制中实现,从而为直流电动机控制数字化提供了契机。图1是一个最简单的直流电动机模型。在一对静止的磁极n和s之间,装设一个可以绕z-z轴而转动的圆柱形铁芯,在它上面装有矩形的线圈abcd。这个转动的部分通常叫做电枢。线圈的两端a和d分别接到叫做换向片的两个半圆形铜环1和2上。换向片1和2之间是彼此绝缘的,它们和电枢装在同一根轴上,可随电枢一起转动。a和b是两个固定不动的碳质电刷,它们和换向片之间是滑动接触的。来自直流电源的电流就是通过电刷和换向片流到电枢的线圈里。 图1:直流电动机模型 当电刷a和b分别与直流电源的正极和负极接通时,电流从电刷a流入,而从电刷b流出。这时线圈中的电流方向是从a流向b,再从c流向d。我们知道,载流导体在磁场中要受到电磁力,其方向由左手定则来决定。 当电枢转到使线圈的ab边从n极下面进入s极,而cd边从s极下面进入n极时,与线圈a端联接的换向片1跟电刷b接触,而与线圈d端联接的换向片2跟电刷a接触,如图2(b)所示。这样,线圈内的电流方向变为从d流向c,再从b流向a,从而保持在n极下面的导体中的电流方向不变。因此转矩的方向也不改变,电枢仍然按照原来的反时针方向继续旋转。由此可以看出,换向片和电刷在直流电机中起着改换电枢线圈中电流方向的作用。图2:换向器在直流电机中的作用1.2 系统工作过程图3为系统原理总框图,总体方案确定后,经过一段时间的设计流程,流程图如图4所示:搜索资料原理分析应用protel制作原理图将原理图转换成pcb装配元件,进行焊接,完成实物应用keil c51编写程序,进行调试完成设计目标图3:系统设计流程系统的连接情况:st89c52单片机的p0口连接数码管的a-h、p1.0-p1.3连接数码管的四个位选端,p1.4,p1.5连接h桥pwm功率放大电路的两端、系统的工作工作:(1)按加速控制键,电机转速加快。(2)按减速控制键,电机转速减慢。1.3 系统资源 单片机直流电机调速系统资源主要包括硬件资源和软件资源,分别介绍如下。 1.硬件部分: (1)pwm波形整形电路。 (2)lcd1602显示电路。 (3)pwm功率放大电路。 2.软件部分: (1)主程序。 (2)2个中断子程序。 (3)显示子程序。2 系统芯片选择2.1 st89c52单片机2.1.1 单片机的现状及发展趋势14单片机诞生于20世纪70年代,所谓单片机是利用大规模集成电路技术把中央处理单元(center processing unit,也即常称的cpu)和数据存储器(ram)、程序存储器(rom)及其他i/o通信口集成在一块芯片上,构成一个最小的计算机系统,而现代的单片机则加上了中断单元,定时单元及a/d转换等更复杂、更完善的电路,使得单片机的功能越来越强大,应用更广泛。纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据 处理,以及我们生活中广泛使用的各种智能ic卡、电子宠物等,这些都离不开单片机。以前没有单片机时,这些 东西也能做,但是只能使用复杂的模拟电路,然而这样做出来的产品不仅体积大,而且成本高,并且由于长期使用,元器件不断老化,控制的精度自然也会达不到标准。在单片机产生后,我们就将控制这些东西变为智能化了,我们只需要在单片机外围接一点简单的接口电路,核心部分只是由人为的写入程序来完成。这样产品的体积变小了,成本也降低了,长期使用也不会担心精度达不到了。 所以,它的魔力不仅是在现在,在将来将会有更多人来接受它、使用它。据统计,我国的单片机年容量已达 13 亿片,且每年以大约16%的速度增长,但相对于 世界市场我国的占有率还不到1%。特别是沿海地区的玩 具厂等生产产品多数用到单片机,并不断地辐射向内地。 所以,学习单片机在我国是有着广阔前景的。目前,单片机外围电路正朝着单片集成化、数字化、智能化、多功能、微功耗、高可靠性的方向发展。2.1.2 单片机选型 只要是mcs51系列兼容单片机都符合本设计的要求。本设计选用at89s52。由atmel公司生产的at89s52是一种低功耗、高性能cmos8位微控制器,具有8k在系统可编程flash存储器。使用atmel公司高密度非易失性存储器技术制造,与工业80c51 产品指令和引脚完全兼容。在单芯片上,拥有灵巧的8位cpu 和在线系统可编程flash,使得st89c52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。st89c52具有以下标准功能:8k字节flash,256字节ram,32位i/o口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。空闲模式下,cpu停止工作,允许ram、定时器/计数器、串口、中断继续工作。掉电保护方式下,ram内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。而且,它还具有一个看门狗(wdt)定时/计数器,如果程序没有正常工作,就会强制整个系统复位,还可以在程序陷入死循环的时候,让单片机复位而不用整个系统断电,从而保护你的硬件电路。st89c52有40个引脚,32个外部双向输入/输出(i/o)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,片上flash允许程序存储器在系统可编程,亦适于常规编程器。其将通用的微处理器和flash存储器结合在一起,特别是可反复擦写的flash存储器可有效地降低开发成本。2.1.3 st89c52管脚说明19其芯片引脚图如下:图4:st89c52引脚图2.1.4 st89c52功能特性11 它的功能特性主要包括: 增强型6时钟/机器周期,12时钟/机器周期8051 cpu。 工作电压:5.5v 3.4v(5v单片机) / 3.8v 2.0v(3v单片机)。 工作频率范围:0 4 mhz,相当于普通8051的 0 80mhz。实际工作频率可达48mhz。 用户应用程序空间 4k / 8k 13k / 16k / 20k / 32k / 64k 字节。 片上集成 1280 字节 / 512字节ram。 通用i/o口(32/36个),复位后为: p1/p2/p3/p4是准双向口/弱上拉(普通8051传统i/o口)p0口是开漏输出,作为总线扩展用时,不用加上拉电阻,作为i/o口用时,需加上拉电阻。 isp(在系统可编程)/iap(在应用可编程),无需专用编程器/仿真器,可通过串口(p3.0/p3.1)直接下载用户程序,8ki程序3秒即可完成一片。 eeprom功能。 内部集成max810专用复位电路(d版本才有),外部晶体20m以下时,可省外部复位电路。 共3个16位定时器/计数器,其中定时器0还可以当成2个8位定时器使用。 看门狗定时器。 外部中断4路,下降沿中断或低电平触发中断,power down模式可由外部中断低电平触发中断方式唤醒。 通用异步串行口(uart),还可用定时器软件实现多个uart。工作温度范围: 0 75 / -40 - +85。 isp在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。是一个强大易用的功能。 具有双工uart串行通道。 内部集成看门狗计时器,不再需要像89c51那样外接看门狗计时器单元电路。 双数据指示器。 电源关闭标识。 全新的加密算法,这使得对于89s52的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。 兼容性方面:向下完全兼容51全部字系列产品。比如8051、89c51等等早期mcs-51兼容产品。也就是说所有教科书、网络教程上的程序(不论教科书上采用的单片机是8051还是89c51还是mcs-51等等),在89s52上一样可以照常运行,这就是所谓的向下兼容。st89s52的功能完全满足本设计的要求,而且它支持isp在线编程功能,方便调试程序。2.2 l297和l298电机驱动2.2.1工作原理电机控制图如下所示: 图5硬件组成:它由st89c52单片机、光电耦合器、集成芯片l297和l298组成。l297是步进电动机控制器(包括环形分配器),l298是双h桥式驱动器。它们所组成的微处理器至双桥式步进电动机的接口如图6所示。 图6:步进电机控制驱动器部分原理图这种方式结合的优点是,需要的元件很少。从而使得装配成本低,可靠性高和占空间少。并且通过软件开发,可以简化和减轻微型计算机的负担。另外,l297和l298都是独立的芯片,所以应该是十分灵活的。2.2.2 芯片软件组成该电路中,将p1.0口设为电机开始按钮,p1.1,p1.2,p1.3为速度按钮,速度由低到高,p1.4为电机停止按钮,并设三档速度的最高速度依次为500pps、1000pps、2000pps。rxd,txd已由max232电平转换接出串口。此外,步进电机其启动,停止的频率较低,一般在100250hz之间,而最高运行频率要求较高,通常为13khz,为使其在启动、运行和停止整个过程中,既不会失步,又能够尽快精确地达到目标位置,运行速度都要有一根加速恒速减速的工程。这里采用常用的离散方法来逼近理想的近似梯形的降速曲线,如图5所示。即利用定时器中断方式来不断改变定时器装载值的大小。本设计中,为计算方便,把各离散点的所需的装载值用公式转化为各自所需的定时时间固化在系统的rom中,这里用th0=(65536-time)/256,tl0=(65536-time)%256来计算装载值,time表示各阶梯所需定时时间。系统在运行过程中用查表法查出所需的时间,从而大幅度减少占有cpu的时间,提高系统的相应速度。因此,该程序主要由控制主程序,加减速子程序组成,主程序框图如图7所示:图7:主程序框图2.2.3 芯片特点l297另一个重要组成是由两个pwm斩波器来控制相绕组电流,实现恒流斩波控制以获得良好的矩频特性。每个斩波器由一个比较器、一个rs触发器和外接采样电阻组成,并设有一根公用振荡器,向两个斩波器提供触发脉冲信号。图6中,频率f是由外接16脚的rc网络决定的,当r大于10k欧时,f=1/0.69rc。当时钟振荡器脉冲使触发器置1,电机绕组相电流上升,采样电阻的rs上电压上升到基准电压uref时,比较器翻转,使触发器复位,功率晶体管关断,电流下降,等待一下振荡脉冲的到来。这样,触发器输出的是恒频pwm信号,调制l297的输出信号,绕组相电流峰值由uref确定。l297的control端的出入决定斩波器对相位线a、b、c、d或抑制线inh1和inh2起作用。control为高电平时,对a、b、c、d有控制作用;而为低电平时,则对inh1和inh2起控制作用,从而可对电动机转向和转矩进行控制。l298芯片是一种高压、大电流双全桥式驱动器,其设计是为接受标准ttl逻辑电平信号和驱动电感负载的,例如继电器、圆筒形线圈、直流电动机和步进电动机。具有两抑制输入来使器件不受输入信号影响。每桥的三级管的射极是连接在一起的,相应外接线端可用来连接外设传感电阻。可安置另一输入电源,使逻辑能在低电压下工作。l298芯片是具有15个引出脚的多瓦数直插式封装的集成芯片。2.3 lcd16022.3.1主要技术参数主要技术参数:显示容量:16*2个字符芯片工作电压:4.5 5.5v工作电流:2.0ma(5.0)模块最佳工作电压:5.0v字符尺寸:2.95*4.35(wxh)mm2.3.2 ram地址映射图控制器内部带有80*8位(80字节)的ram缓冲区,对应关系图如图8所示: 图8 2.3.3 指令说明首先,初始化设置。然后,显示模式设置:指令码:00111000功能:设置16*2显示,5*7点阵,8位数据接口。最后,显示开/关及光标设置:指令码:00001dcb功能:d=1开显示; d=0关显示; c=1显示光标; c=0不显示光标; b=1光标闪烁; b=0光标不显示。指令码:000001ns功能:n=1当读或写一个字符后地址指针加一,且光标加一; n=0当读或写一个字符后地址指针减一,且光标减一; s=1当写一个字符,整屏幕显示左移(n=1)或右移(n=0),以得到光标不移动而屏幕移动的效果s=0当写一个字符,整屏显示不移动。2.3.4 数据指针设置和其他设置控制器内部设有一个数据地址指针,用户可以通过它们来访问内部全部80字节ram。数据指令设置:指令码:80h+地址码(0-27h,40h-67h)功能:设置数据地址指针。其他设置:指令码:01h功能:显示清屏:1.数据指针清零 2.所有显示清零指令码:02h功能:显示回车:1.数据指针清零2.3.5 初始化过程延时15ms写指令38h(不检测忙信号)延时5ms写指令38h(不检测忙信号)延时5ms写指令38h(不检测忙信号)以后每次写指令、读/写数据操作之前均需检测忙信号写指令38h:显示模式设置写指令08h:显示关闭写指令01h:显示清屏写指令:06h:显示光标移动设置写指令:0ch:显示开及光标设置2.4 max232max232芯片是美信公司专门为电脑的rs-232标准串口设计的接口电路,使用+5v单电源供电。其引脚图如下图所示:图9:max232引脚图内部结构基本可分三个部分:第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给rs-232串口电平的需要。第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(r1in)、12脚(r1out)、11脚(t1in)、14脚(t1out)为第一数据通道。8脚(r2in)、9脚(r2out)、10脚(t2in)、7脚(t2out)为第二数据通道。ttl/cmos数据从t1in、t2in输入转换成rs-232数据从t1out、t2out送到电脑db9插头;db9插头的rs-232数据从r1in、r2in输入转换成ttl/cmos数据后从r1out、r2out输出。第三部分是供电。15脚gnd、16脚vcc(+5v)。2.5 芯片选择总结在实际应用中,芯片的选择非常重要,有时候能决定电路能不能正常工作?本设计系统中用到的集成芯片相对比较少,相应的有很多小元器件(例如二极管1n4007、pnp三极管8550、npn三极管8050、电容、电阻、遥控器等),在这里就不一一介绍。但所有的元件都是组成一个系统的基础,必须慎重选择。芯片已经选择好了,下面将在第三章一一介绍系统的各个组成部分及功能说明!3 系统硬件设计 本系统由一块主板与一块箱体检测控制板组成。主板上集成有主机控制器at89s52,两块8255a端口扩展芯片,3*4键盘,液晶,rs-232串口通信模块和24c02数据存储模块;而箱体检测控制电路上集成有继电器开锁控制电路,红外检测电路和限位开关电路。箱体监测控制板通过排线接入8255a的a、b、c三个端口。主板通过读取8255a端口信息来控制箱体监测控制板以达到存包、取包的功能。以下将详细解析各个模块的线路设计原理。3.1 单片机最小系统单片机最小系统主要包括复位电路和时钟电路。3.1.1 复位电路设计当mcs-51系列单片机的复位引脚rst(全称reset)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果rst持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。复位电路如图10所示。电阻r1和c1构成上电复位电路。按下s1可实现手动复位。单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器pc0000h,这表明程序从0000h地址单元开始执行。单片机冷启动后,片内ram为随机值,运行中的复位操作不改变片内ram区中的内容,21个特殊功能寄存器复位后的状态为确定值。图10:单片机复位电路系统实现复位:控制isp_contr特殊功能寄存器的其中两位swbs/swrst就可以系统复位了。isp_contr:isp/iap功能允许位。0:禁止isp/iap编程改变flash,1:允许编程改变flashswbs:软件选择从用户应用程序区启动(0),还是从isp程序区启动(1)。要与swrst直接配合才可现实swrst:0:不操作;1:产生软件系统复位,硬件自动清零。isp_contr:isp/iap控制寄存器,地址在0e7h单元b7b6b65b4b3b2b1b0reservalueispenswbsswrst wt2wt1wt0000x,x000 表格1从用户应用程序区(ap区)软件复位并切换到用户应用程序区(ap区)开始执行程序mov isp_contr,#00100000b;swbs=0(选择 ap区),swrst=1(软复位)从系统isp监控程序区软件复位并切换到用户应用程序区(ap区)开始执行程序mov isp_contr,#00100000b;swbs=0(选择 ap区),swrst=1(软复位) 从用户应用程序区(ap区)软件复位并切换到系统isp监控程序区开始执行程序mov isp_contr,#01100000b;swbs=1(选择 ap区),swrst=1(软复位)从系统isp监控程序区软件复位并切换到系统isp监控程序区开始执行程序mov isp_contr,#01100000b;swbs=1(选择 ap区),swrst=1(软复位)3.1.2 时钟电路设计单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。在引脚xtal1和xtal2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。我采用的是内部振荡方式,时钟电路如图15所示。为了获得精确的波特率,晶体振荡器选用12mhz的型号,两个30pf的c01,c02电容起到辅助振荡作用。图13:单片机时钟电路3.1.3 单片机最小系统 电路连接图如下: 图14:单片机最小系统3.2 lcd1602显示电路3.2.1 lcd简介1602液晶显示模块是128*64点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16*16点阵)、128个字符(8*16点阵)及64*256点阵显示ram(gdram)。可与cpu直接接口,提供两种界面来连接微型处理机:8-位并行及串行两种连接方式。具有多种功能:光标显示、画面移动、睡眠模式等。外观尺寸:93*70*12.5mm;视域尺寸:73*39mm。3.2.2 lcd显示工作过程(1)开始时,屏幕显示stop,档数显示0档,电动机不工作。(2)用遥控器进行加速控制后,屏幕显work,档数显示1,电动机开始缓慢转动;接着用遥控器再继续加速控制后,档数显示2,3,4,电动机转速逐渐加快。当然也可以进行减速控制。(3)当遥控控制到电动机转速最大时,屏幕显示,work full 档数显示7;这时无法再进行加速控制。3.2.3 lcd显示电路设计图图14:lcd显示电路设计图3.3 电动机驱动电路步进电机功率驱动级电路可分为电压和电流两种驱动方式。电流驱动方式最常用的是pwm恒流斩波驱动电路,也是最常用的高性能驱动方式图15:电动机驱动电路3.4 pwm功率放大电路5直流电动机驱动电路主要用来控制直流电动机的转动方向和转动速度。改变直流电动机两端的电压可以控制电动机的转动方向。控制直流电动机的转速,有不同的方案。我采用的是小功率三极管8050和8550组成的h桥pwm电路。原理图如下:图16:直流电动机pwm驱动电路图电路采用功率三极管8050和8550,以满足电动机启动瞬时的大电流要求。当a输入为低电平,b输入为高电平时,晶体管功率放大器vt2、vt3导通,vt1、vt4截止。vt2、vt3与直流电动机一起形成一个回路,驱动电动机正转。当a输入为高电平,b输入为低电平时,晶体管功率放大器vt2、vt3截止,vt1、vt4导通,vt1、vt4与直流电机形成回路,驱动电动机反转。4个二极管起到保护晶体管的作用。功率晶体管采用tp521光藕器驱动,将控制部分与电动机驱动部分隔离。光藕器的电源为+5v,h桥驱动电路中晶体管功率放大器vt3、vt4的发射极所加的电源为5v。3.5 系统硬件设计总结到此,本系统硬件电路部分已经全部完成。在接下来的第四章将讲述系统软件的设计,只有软件设计也完成后,将程序的.hex文件烧录到单片机上才能验证本系统的设计是否满足要求。4 系统软件设计系统软件包括一个主程序,2个中断子程序。下面分别给出它们的流程图,具体程序见附录2。系统初始化yes关闭所有外部中断红外控制nopwm调速档数显示图17:主程序流程图5 软硬件调试结果图18:系统调试图硬件已基本上通过调试,程序运行基本稳定,基本功能基本实现,具体如下:(1)单片机控制电路正常工作;(2)lcd1602显示电路正常工作;(3)直流电动机驱动电路正常工作;(4)红外遥控接收电路正常工作;(5)程序烧写模块电路正常工作。结束语通过本次单片机直流电机系统的设计,我大有收获,在制作过程中,一定要注意的每个工作步骤的检查,确保制作成功。比如在合理布线,检查装配无误的情况下,如果还出现电路无输出的情况,那么可以肯定是原理图错误,这时就要回到原理图进行检查。总体的检查顺序应该是原理图、pcb图、装配情况、焊接工艺。从整体来说这是一个复杂的过程,要细心谨慎,沉着冷静,反复检查,直到找到原因为止。这次毕业设计历时至少3个月,从一开始的确定课题,到后来的资料查找、理论学习,再有就是近来的调试和测试过程,这一切都使我的理论知识和动手能力进一步得到巩固和提高。调速电路课题中包含了h桥电路和单片机部分知识,h桥电路可以说是对模拟电路知识的一次全面综合。在画原理图、pcb布线、安装和调试过程中不可避免地遇到各种问题,这要求保持沉着冷静,联系书本理论知识积极地思考,实在解决不了可以请教同学或指导老师。虽然在制作过程中不可避免地遇到很多问题,但是最后还是在老师以及同学的帮助下圆满解决了这些问题,实现了整个系统设计与最后调试,相关指标达到期望的要求,很好地完成了本次设计任务。经过四年学习的积累,在已经掌握相关专业方面知识及其它各方面知识的情况下,我认真严肃的完成了我的毕业设计。从得到题目到查找资料,从对题目的研究设定到pcb电路板的制作,从电路板的调试到失败后再一次全部重新开始在这一个充满挑战伴随挫折,充满热情伴随打击的过程中,我感触颇深,它已不仅是一个对我四年学习知识情况和我的应用动手能力的检验,而且还是对我的钻研精神,面对困难的心态,做事的毅力和耐心的考验。我在这个过程中深刻的感受到了做毕业设计的意义所在,和我一样真正投入了身心去做的人也一定会有同样的感触。本课题的重点、难点是: 1.使用lcd1602显示能够让人直观可见。2.没有采用外电路产生pwm加大了软件设计的任务; .准确采用定时器的定时功能对pwm进行调速。通过做本课题,我了解并掌握了模拟电路的基本理论知识,更深入的掌握单片机的开发应用和pc编程控制。为以后从事单片机软硬件产品的设计开发、pc软件开发打下了良好的基础,树立独立从事产品研发的信心,并在这种能力上得到了比较充分的锻炼。致谢在本次毕业设计中,我得到了指导老师李东的热心指导。自始至终关心督促毕业设计进程和进度。帮助解决毕业设计中遇到的许多问题。还不断向我们传授分析问题和解决问题的办法,并指出了正确的设计方向,使我在毕设过程中少走很多弯路。同时,他还提供给我们专门的各种设备及场所,在调试过程中能够有充足的时间。在这里非常感谢李老师的指导和帮助,并致以诚挚的谢意!同时,身边的同学给了我许多的帮助。在此,我向身边关心我的同学致以诚挚的谢意!另外,系里的领导和老师也给了我们必要的指导,我也向系和年级的领导们表示衷心的感谢!最后感谢学院对我这几年的培养。参考文献1 付家才.单片机控制工程实践技术.北京:化学工业出版社.2004.52 赫建国.单片机在电子电路设计中的应用.北京:清华大学出版社.2006.53 胡汉才.单片机原理及其接口技术(第2版).北京:清华大学出版社.2005.94 王新贤.通用集成电路速查手册.山东:山东科学技术出版社.2005.25 黄智伟.全国大学生电子设计竞赛技能训练.北京.北京航空航天大学出版社.20076 沈任元.常用电子元器件简明手册.北京:机械工业出版社.2005.17 求是科技.8051系列单片机c程序设计完全手册.北京:人民邮电出版社.2006.108 清源计算机工作室.protel99se原理图与pcb及仿真.北京:机械工业出版社.2005.3 9 童诗白.模拟电子技术基础.北京:高等教育出版社.1998.510 阎石.数字电子技术基础(第四版).北京:高等教育出版社.1997.1211 杨素行.模拟电子技术基础简明教程.北京:高等教育出版社.1997.512 何立民.单片机应用系统设计系统配置与接口技术m.北京:北京航空航天大学.1990.413 李晓荃.单片机原理与应用m. 北京:电子工业出版社.2000.314 刘和平.单片机原理及应用m.重庆:重庆大学出版社.2002.715 徐爱钧.单片机高级语言 c51 应用程序设计m. 北京:电子工业出版社.2002.416 谢自美.电子线路设计.实验.测试(第二版) m.武汉:华中科技大学出版社.2000.517 张勇.protel99se电路设计技术入门与应用(第一版).北京:电子工业出版社.200218 王晓明.电动机的单片机控制.北京:北京航空航天大学出版社.2003.219 郁文工作室.嵌入式c语言程序设计.北京.人民邮电出版社.2006.720 richard c.dorf.modern conctrol systermm.beijing:science publishing house.2002.521 donald a. neamen. electronic circuit analysis and designm.tsinghuauniversity press and springer verlag.2002.5附录:系统硬件总原理图及pcb图图19: 电机转速控制模块pcb图 图20:电机转速控制模块原理图图21:电机驱动模块pcb图图22:电机驱动模块原理图图23:程序下载模块pcb图图24:程序下载模块原理图附录:系统源程序#include #include #include .incconstant.h#include .incvar.h#include .inclcd1602-4or8line.h#include .incir.h#include .incdelaytime.h/*-修改 按键 - */#define up 0x12#define down 0x13void init_hardware(void);void init_var(void);void main(void) init_hardware();init_var(); while(true) /* 函数 */*/*名称: init_hardware*/*用途: 硬件初始化函数 */*说明: 初始化所有相关的硬件状态*/*/void init_hardware(void)/* lcd初始化 */lcd_init();/* 定时器0 初始化 */ tmod = 0x11;th0 = time10msh_c;tl0 = time10msl_c;tr0 = true;ie = ent0_c|enint0_c;/ 允许 timer0、int0 中断/*红外接收 外部中断0 */ir_init();/*/*名称:init_var*/*用途: 变量初始化 */*说明:初始化全局变量*/*/void init_var(void)pwm_out = 0; lcd_write_string(line1,0, pwm set & out);lcd_write_string(line2,0, step : 0 stop!);/ - 中断处理程序 -/*/* 定时器 0 中断服务 */ /* 说明: 10ms 中断一次, */*/void timer0_int(void) interrupt 1 using 1th0 = time10msh_c;tl0 = time10msl_c;if (g_ucstep = 0)pwm_out = 0;elseif (g_ucstep = 7)pwm_out = 1;elseif (g_uctimecnt = (g_ucstep+2) pwm_out = 1;else pwm_out = 0;g_uctimecnt +;if (g_uctimecnt = 11)g_uctimecnt = 1;/红外按键延时if (ex0 = 0)if (g_ucirkeydelay+ = 6)ex0 = 1;g_ucirkeydelay = 0;/*/* 外部中断 0 中断服务 */ /* 说明: 红外解码 */*/void ir(void) interrupt 0 ex0 = 0;ir_code();/* - 红外按键处理 - */switch(ircom2)case up: / +ircom2 = 0xff;if (g_ucstep != 7)lcd_write_char(1,8,ascii+g_ucstep); break;case down: / -ircom2 = 0xff;if (g_ucstep != 0)lcd_write_char(1,8,ascii-g_ucstep); break;default:break;if (g_ucstep = 7)lcd_write_string(line2,10,full!); elseif (g_ucstep = 0)lcd_write_string(line2,10,stop!);elselcd_write_string(line2,10,run );#include #include #include .inclcd1602-4or8line.h#include .incdelaytime.hvoid lcd_read_bf(void)unsigned char read=0; lcd1602_rw = high;/rw 1lcd1602_rs = low;/rs 0lcd1602_en = high;/en 1read bf#if _linemode_ = 8/八线端口定义lcdio = 0xff;while(lcdio&msb);#endif#if _linemode_ = 4/四线端口定义 lcd_db7 = 1; while(lcd_db7);#endiflcd1602_en = low;void lcd_en_write(void) /en端产生一个高电平脉冲,写lcd lcd1602_en = high; _nop_();_nop_();_nop_(); lcd1602_en = low; void lcd_en_com(unsigned char command)lcd_read_bf(); lcd1602_rs = low; /rs 0 lcd1602_rw = low;/rw 0 #if _linemode_ = 4 /四线 command=1; lcd_db7=cy; command=1; lcd_db6=cy; command=1; lcd_db5=cy; command=1; lcd_db4=cy; lcd_en_write(); command=1; lcd_db7=cy; command=1; lcd_db6=cy; command=1; lcd_db5=cy; command=1; lcd_db4=cy;#endif#if _linemode_ = 8 /八线lcdio = command;#endiflcd_en_write();void lcd_en_dat(unsigned char dat)lcd_read_bf();lcd1602_rs = high;/rs 1 lcd1602_rw = low;/rw 0 #if _linemode_ = 4 /四线dat=1; lcd_db7=cy; dat=1; lcd_db6=cy; dat=1; lcd_db5=cy; dat=1; lcd_db4=cy; lcd_en_write(); dat=1; lcd_db7=cy; dat=1; lcd_db6=cy; dat=1; lcd_db5=cy; dat=1; lcd_db4=cy;#endif#if _linemode_ = 8 /八线lcdio = dat;#endiflcd_en_write();

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论