引言
随着人民生活水平的提高,产品质量、性能、自动化程度等已经是人们选择产品的主要因素。其中,直流电动机正反转自动控制在生活中起了很大的作用,比如洗衣机的工作、遥控汽车的操作、DVD的应用等等,它在实际生活中给人们需求上提供了很大的方便与乐趣。不只是生活,它还在工业、农业、交通运输等各方面得到了广泛的应用,实现电动机正反转的控制是很多产品设计的核心问题。直流电动机显示出交流电动机不能比拟的良好启动性能和调速性能,比较广泛应用于速度调节要求过高,正反转频繁或多元同步协调运转的机械生产。因此,学会电动机正反转控制的原理是极其重要的。然而,在本直流电动机正反转仿真设计中,要借助Proteus软件、Keil软件和C语言的辅助进行仿真设计,通过仿真设计,让我们更清楚了解电动机正反转的原理和电路图,增强对直流电动机的认知。
在Proteus绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在Proteus的原理图中看到模拟的实物运行状态和过程,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。在本设计中,Proteus软件采用了电容、电阻、晶振、电动机、LED、开关、电动机等多种元件进行绘图,并基于80C51和ULN2003A进行电路图设计,充分展示Proteus软件元件库量大,掌握它的基本绘图操作。而对于Keil软件,采取创建工程,创建执行文件,利用C语言编写程序,生成hex文件,为Proteus仿真提供驱动控制,实现直流电动机正反转的设计。
在本论文设计中,主要介绍直流电动机正反转原理,Proteus软件功能绘图、仿真调试,以及Keil软件功能、程序编写和仿真程序文件生成。让大家更清楚了解Proteus软件、Keil软件、C语言在直流电动机正反转仿真设计的应用。
1
目录
第一章、直流电动机正反转原理 ............................. 3 第二章、Proteus软件介绍 .................................. 4 2.1、基本知识与功能概述................................ 4 2.2、基本操作概述 ..................................... 7 2.3、模拟调试 ........................................ 10 第三章、Keil软件介绍 .................................... 11 3.1、基本知识与功能概述............................... 12 3.2、基本操作概述 .................................... 12 第四章、直流电动机正反转Proteus仿真设计过程 ............ 14 4.1、Proteus电路图设计 ............................... 15 4.2、Keil程序编写说明 ................................ 16 4.3、仿真调试情况记录 ................................ 19 第五章、设计总结 ........................................ 20 附录1 80C51引脚功能介绍 ............................... 21 附录2 Proteus操作指令中英文对照表 ..................... 23 参考文献 ................................................ 25 致谢 .................................................... 26
2
第一章、直流电动机正反转原理
由直流电动机和发电机工作原理示意图可以看到,直流电机的结构应由定子和转子两大部分组成。直流电机运行时静止不动的部分称为定子,定子的主要作用是产生磁场,由机座、主磁极、换向极、端盖、轴承和电刷装置等组成。运行时转动的部分称为转子,其主要作用是产生电磁转矩和感应电动势,是直流电机进行能量转换的枢纽,所以通常又称为电枢,由转轴、电枢铁心、电枢绕组、换向器和风扇等组成。
直流电机的结构:电机要实现机电能量变换,电路和磁路之间必须有相对运动。所以旋转电机具备静止的和旋转的两大部分。静止和旋转部分之间有一定大小的间隙,称为气隙。静止的部分称为定子,作用是产生磁场和作为电机的机械支撑。包括主磁极、换向极、机座、端盖、轴承、电刷装置等。旋转部分称为转子或电枢,作用是感应电势实现能量转换。包括电枢铁心,电枢绕组,换向器、轴和风扇等。
定子部分:1、主磁极:也称为主极。作用是产生气隙磁场。2、换向极:也称为附加极或间极。作用是改善换向。装在主极之间。3、机座:由铸钢或厚钢板焊成。是电机的机械支撑。4、电刷装置:将直流电压、电流引入或引出的装置。其组数与主极极数相等。
转动部分:(转子部分)1、电枢铁心:主磁路的主要部分及嵌放电枢绕组,
3
由硅钢片迭压而成。2、电枢绕组:由许多按一定规律联接的线圈组成。用来感应电势和通过电流,是电路的主要部分。3、换向器:由许多彼此绝缘的换向片构成。
第二章、Proteus软件介绍
PROTEUS是英国Labcenter electronics公司研发的多功能EDA软件,它具有功能很强的ISIS智能原理图输入系统,有非常友好的人机互动窗口界面;有丰富的操作菜单与工具。在ISIS编辑区中,能方便地完成单片机系统的硬件设计、软件设计、单片机源代码级调试与仿真。
PROTEUS有三十多个元器件库,拥有数千种元器件仿真模型;有形象生动的动态器件库、外设库。特别是有从8051系列8位单片机直至ARM7 32位单片机的多种单片机类型库。支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。它们是单片机系统设计与仿真的基础。
PROTEUS有多达十余种的信号激励源,十余种虚拟仪器(如示波器、逻辑分析仪、信号发生器等);可提供软件调试功能,即具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;还有用来精确测量与分析的PROTEUS高级图表仿真(ASF)。它们构成了单片机系统设计与仿真的完整的虚拟实验室。PROTEUS同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。
PROTEUS还有使用极方便的印刷电路板高级布线编辑软件(PCB)。特别指出,PROTEUS库中数千种仿真模型是依据生产企业提供的数据来建模的。因此,PROTEUS设计与仿真极其接近实际。 目前,PROTEUS已成为流行的单片机系统设计与仿真平台,应用于各种领域。
实践证明:PROTEUS是单片机应用产品研发的灵活、高效、正确的设计与仿真平台,它明显提高了研发效率、缩短了研发周期,节约了研发成本。
2.1、基本知识与功能概述
Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是:(1)原理布图
(2)PCB自动或人工布线
4
(3)SPICE电路仿真 性的特点 (1)互动的电路仿真
用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。 (2)仿真处理器及其外围电路
可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型
上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。 功能模块
(1)智能原理图设计(ISIS)
丰富的器件库:超过27000种元器件,可方便地创建新元件; 智能的器件搜索:通过模糊搜索可以快速定位所需要的器件;
智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时间; 支持总线结构:使用总线器件和总线布线使电路设计简明清晰; 可输出高质量图纸:通过个性化设置,可以生成印刷质量的BMP图纸,可以方便地供WORD、POWERPOINT等多种文档使用。 (2)完善的电路仿真功能(Prospice)
ProSPICE混合仿真:基于工业标准SPICE3F5,实现数字/模拟电路的混合仿真;
超过27000个仿真器件:可以通过内部原型或使用厂家的SPICE文件自行设计仿真器件,Labcenter也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件;
多样的激励源:包括直流、正弦、脉冲、分段线性脉冲、音频(使用wav文件)、指数信号、单频FM、数字时钟和码流,还支持文件形式的信号输入; 丰富的虚拟仪器:13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI调试器、I2C调试器等;
5
生动的仿真显示:用色点显示引脚的数字电平,导线以不同颜色表示其对地电压大小,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真更加直观、生动;
高级图形仿真功能(ASF):基于图标的分析可以精确分析电路的多项指标,包括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等,还可以进行一致性分析;
(3)独特的单片机协同仿真功能(VSM)
支持主流的CPU类型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU类型随着版本升级还在继续增加,如即将支持CORTEX、DSP处理器;
支持通用外设模型:如字符LCD模块、图形LCD模块、LED点阵、LED七段显示模块、键盘/按键、直流/步进/伺服电机、RS232虚拟终端、电子温度计等等,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通信;
实时仿真:支持UART/USART/EUSARTs仿真、中断仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真;
编译及调试:支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、AVR、PIC的汇编编译器,也可以与第三方集成编译环境(如IAR、Keil和Hitech)结合,进行高级语言的源码级仿真和调试; (4)实用的PCB设计平台
原理图到PCB的快速通道: 原理图设计完成后,一键便可进入ARES的PCB设计环境,实现从概念到产品的完整设计;
先进的自动布局/布线功能:支持器件的自动/人工布局;支持无网格自动布线或人工布线;支持引脚交换/门交换功能使PCB设计更为合理;
完整的PCB设计功能:最多可设计16个铜箔层,2个丝印层,4个机械层(含板边),灵活的布线策略供用户设置,自动设计规则检查,3D 可视化预览;
多种输出格式的支持:可以输出多种格式文件,包括Gerber文件的导入或导出,便利与其它PCB设计工具的互转(如protel)和PCB板的设计和加工。
6
2.2、基本操作概述
Proteus ISIS的工作界面是一种标准的Windows界面,如下图所示,包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。
2.2.1、图形编辑窗口
(1)坐标系统(CO-ORDINATE SYSTEM)
(2)点状栅格(The Dot Grid)与捕捉到栅格(Snapping to a Grid):编辑窗口内有点状的栅格,可以通过View菜单的Grid命令在打开和关闭间切换。点与点之间的间距由当前捕捉的设置决定。
(3)实时捕捉(Real Time Snap):当鼠标指针指向管脚末端或者导线时,鼠标指针将会被捕捉到这些物体,这种功能被称为实时捕捉,该功能可以方便地实
7
现导线和管脚的连接。
(4)视图的缩放与移动:用鼠标左键点击预览窗口中想要显示的位置,这将使编辑窗口显示以鼠标点击处为中心的内容。或者用鼠标指向编辑窗口并按键或者操作鼠标的滚动键,会以鼠标指针位置为中心重新显示。
2.2.2、预览窗口(The Overview Window):该窗口通常显示整个电路图的缩略图。在预览窗口上点击鼠标左键,将会有一个矩形蓝绿框标示出在编辑窗口中显示的区域。 其他情况下,预览窗口显示将要放置的对象的预览。
2.2.3、对象选择器窗口:通过对象选择按钮,从元件库中选择对象,并置入对象选择器窗口,供今后绘图时使用。显示对象的类型包括:设备,终端,管脚,图形符号,标注和图形。 2.2.4、 图形编辑的基本操作 (1)对象放置(Object Placement) (2)选中对象(Tagging an Object)
(3)删除对象(Deleting an Object):用鼠标指向选中的对象并点击右键可以删除该对象,同时删除该对象的所有连线。
(4)拖动对象(Dragging an Object):用鼠标指向选中的对象并用左键拖曳可以拖动该对象。
(5)拖动对象标签(Dragging an Object Label):①选中对象;②用鼠标指向标签,按下鼠标左键;③拖动标签到所需要的位置。如果想要定位的更精确的话,可以在拖动时改变捕捉的精度(使用F4、F3、F2、CTRL+F1键);④释放鼠标。
(6)调整对象大小(Resizing an Object):当选中对象时,对象周围会出现黑色小方块叫做“手柄”,可以通过拖动这些“手柄”来调整对象的大小。 调整对象大小的步骤如下(To resize an object): ①选中对象
②如果对象可以调整大小,对象周围会出现黑色小方块,叫做“手柄”。 ③用鼠标左键拖动这些“手柄”到新的位置,可以改变对象的大小。在拖动的过程中手柄会消失以便不和对象的显示混叠。
(7)调整对象的朝向(Reorienting an Object):①选中对象;②用鼠标左
缩放
8
键点击Rotation图标可以使对象逆时针旋转,用鼠标右键点击Rotation图标可以使对象顺时针旋转;③用鼠标左键点击Mirror图标可以使对象按x轴镜象,用鼠标右键点击Mirror图标可以使对象按y轴镜象。
(8)编辑对象(Editing an Object):①编辑单个对象的步骤是(To edit a single object using the mouse)a.选中对象b.用鼠标左键点击对象;②连续编辑多个对象的步骤是(To edit a succession of objects using the mouse)a. 选择Main Mode图标,再选择Instant Edit图标b. 依次用鼠标左键点击各个对象;③以特定的编辑模式编辑对象的步骤是(To edit an object and access special edit modes)a. 指向对象b. 使用键盘CTRL+'E'
(9)画线(WIRING UP)PROTEUS ISIS没有画线的图标按钮,因为ISIS的智能化足以在画线时能自动检测,在画错的时候可以按ESC来放弃画线。 2.2.5、 对象的放置和编辑
(1) 对象的添加和放置:点击工具箱的元器件按钮,使其选中,再点击IsIs对象选择器左边中间的置P按钮,出现“Pick Devices” 对话框,如下图所示,然后选择相应的元器件,在本设计中将在附录中展示元器件中英文对照表,以便快速查阅。
9
(2) 放置电源及接地符号:单击工具箱的终端按钮,对象选择器中将出现一些接线端,如图所示,在器件选择器里分别点击下图左侧的“TERMNALS”栏下的“POWER”与“ GROUND”,再将鼠标移到原理图编辑区,左键点击一下即可放置电源符号;同样也可以把接地符号放到原理图编辑区。
2.3、模拟调试
2.3.1、一般电路的模拟调试
绘好线路图后,点击菜单栏“Debug(调试)”下的按钮或者点击模拟调试按钮的运行按钮,也可以按下快捷键“Ctrl+F12”进入模拟调试状态。 2.3.2、单片机电路的模拟调试
该软件有自带编译器,有ASM的、PIC的、AVR的汇编器等。在ISIS添加上编写好的程序,方法如下.点击菜单栏“Source”,在下拉菜单点击“Add/Remove Source Files(添加或删除源程序)”弹出一个对话框,点击对话框的“NEW”按钮,在出现的对话框找到设计好的huayang.Asm 文件,点击打开;在“Code Generation Tool”的下面找到“ASEM51”,然后点击“OK” 按钮,设置完毕后就可以编译了。点击菜单栏的“Source”,在下拉菜单点击“Build All”,过一会,编译结果的对话框就会出现。如果有错误,对话框会指明:哪一行出现了问题,点击出错的提示,就能显示出错的行号。
模拟调试按钮(位于软件左下角)
选中单片机并双击,在出现的对话框里点击Program File按钮,装入经过
10
编译得到的HEX文件,然后点击“OK”按钮;点击模拟调试按钮的运行按钮,进人调试状态;在单步模拟调试状态下,点击菜单栏的“Debug”,在下拉菜单的最下面可以看到语句运行的情形。点击Simulation Log会出现和模拟调试有关的信息;点击8051 CPU SFR Memory会出现特殊功能寄存器(SFR)窗口;点击8051 CPU Internal (IDATA) Memory会出现数据寄存器窗口;点击Watch Window窗口,会出现一个下拉窗口,在这里可以添加常用的寄存器。在Watch Window窗口里点击右键,并在出现的菜单中点击Add Item (By name)就会出现常用的寄存器,如选择P1,则可双击P1, 这时,P1就会出现在W a t ch Window窗口。无论在单步调试状态还是在全速调试状态,Watch Window的内容都会随着寄存器的变化而变化。
第三章、Keil软件介绍
Keil是德国知名软件公司Keil(现已并入ARM 公司)开发的微控制器软件开发平台,是目前ARM内核单片机开发的主流工具。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器在内的完整开发方案,通过一个集成开发环境(uVision)将这些功能组合在一起。uVision当前最高版本是uVision3,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为 CPU 可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工 汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于 MCS-51 单片机的汇编 软件有早期的 A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级 语言开发,单片机的开发软件也在不断发展,Keil 软件是目前最流行开发 MCS-51 系列单片 机的软件,这从近年来各仿真机厂商纷纷宣布全面支持 Keil 即可看出。Keil 提供了包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通 过一个集成开发环境(uVision)将这些部份组合在一起。运行 Keil 软件需要 Pentium 或以 上的 CPU,16MB 或更多 RAM、20M 以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP 等操作系统。
11
3.1、基本知识与功能概述
Keil软件工具包的整体结构,如图(1)所示,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。 使用的Keil仿真器时,注意事项:
仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。
仿真器上的复位按钮只复位仿真芯片,不复位目标系统。
仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。
本设计主要针对它的调试功能进行程序分析,通过调试程序找出问题并解决,是本设计仿真成功关键所在。
3.2、基本操作概述
应用Keil进行软件仿真开发的主要步骤为:编写源程序并保存—建立工程并添加源文件—设置工程—编译/汇编、连接,产生目标文件—程序调试。Keil使用“工程”(Project)的概念,对工程(而不能对单一的源程序)进行编译/汇编、连接等操作。工程的建立、设置、编译/汇编及连接产生目标文件的方法非常易于掌握。首先选择菜单File-New…,在源程序编辑器中输入汇编语言或C语言源程序(或选择File-Open…,直接打开已用其它编辑器编辑好的源程序文档)并保存,注意保存时必须在文件名后加上扩展名.asm(.a51)或.c;然后选
12
择菜单Project-New Project…,建立新工程并保存(保存时无需加扩展名,也可加上扩展名.uv2);工程保存后会立即弹出一个设备选择对话框,选择CPU后点确定返回主界面。这时工程管理窗口的文件页(Files)会出现“Target1”,将其前面+号展开,接着选择Source Group1,右击鼠标弹出快捷菜单,选择“Add File to Group ‘Source Group1’”,出现一个对话框,要求寻找并加入源文件(在加入一个源文件后,该对话框不会消失,而是等待继续加入其它文件)。加入文件后点close返回主界面,展开“Source Group1”前面+号,就会看到所加入的文件,双击文件名,即可打开该源程序文件。紧接着对工程进行设置,选择工程管理窗口的Target1,再选择Project-Option for Target‘Target1’(或点右键弹出快捷菜单再选择该选项),打开工程属性设置对话框,共有8个选项卡,主要设置工作包括在Target选项卡中设置晶振频率、在Debug选项卡中设置实验仿真板等,如要写片,还必须在Output选项卡中选中“Creat Hex Fi”;其它选项卡内容一般可取默认值。工程设置后按F7键(或点击编译工具栏上相应图标)进行编译/汇编、连接以及产生目标文件。
成功编译/汇编、连接后,选择菜单Debug-Start/Stop Debug Session(或按Ctrl+F5键)进入程序调试状态,Keil提供对程序的模拟调试功能,内建一个功能强大的仿真CPU以模拟执行程序。Keil能以单步执行(按F11或选择Debug-Step)、过程单步执行(按F10或选择Debug-Step Over)、全速执行等多种运行方式进行程序调试。如果发现程序有错,可采用在线汇编功能对程序进行在线修改(Debug-Inline Assambly…),不必执行先退出调试环境、修改源程序、对工程重新进行编译/汇编和连接、然后再次进入调试状态的步骤。对于一些必须满足一定条件(如按键被按下等)才能被执行的、难以用单步执行方式进行调试的程序行,可采用断点设置的方法处理(Debug-Insert/Remove Breakpoint或Debug-Breakpoints…等)。在模拟调试程序后,还须通过编程器将.hex目标文件烧写入单片机中才能观察目标样机真实的运行状况。
这里要生成.hex目标文件,可通过下图进行设置。Hex文件在Proteus仿真时起到关键作用,因此一定要检查好程序调试正确情况。
13
第四章、直流电动机正反转Proteus仿真设计过程
设计方案提出 Proteus绘图
Keil的C程序编写 程序调试 程序仿真 师生讨论 完善论文 结语
14
4.1、Proteus电路图设计
通过采取80C51单片机和ULN2003A,来对直流电动机正反转进行设计。其中,ULN2003A是一个7路反向器电路,即当输入端为高电平时ULN2003A输出端为低电平,当输入端为低电平时ULN2003A输出端为高电平。下图的设计目的是:当直流电动机停止时LED3就亮;当按下K1时,直流电动机就会正转3圈,同时LED1发亮;当按下K2时,直流电动机就会反转3圈,同时LED2发亮,可以随时按K3进行制动。
15
4.2、Keil程序编写说明
#include #define uint unsigned int #define uchar unsigned char //------8拍----- uchar code zz[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; uchar code fz[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; void delay(uint ms) { } void motor_zz(uint n) { } 16 //正转 //反转 uint t; while(ms--) 延迟120ms for(t=0;t<120;t++); uint i,j; for(i=0;i<5*n;i++) { } for(j=0;j<8;j++) 直流电动机正转3圈 { } if(P3==0xfb) break; P1=zz[j]; delay(20); void motor_fz(uint n) { uint i,j; for(i=0;i<5*n;i++) { for(j=0;j<8;j++) { if(P3==0xfb) break; P1=fz[j]; delay(20); } } } void main() { uint N=3; while(1) { P3=0xff; if(P3==0xfe) { while(P3==0xfe); P0=0xfe; motor_zz(N); if(P3==0xfb) break; 直流电动机反转3圈 主程序,设置引脚P0、P1、P3 17 } else if(P3==0xfd) { while(P3==0xfd); P0=0xfd; motor_fz(N); if(P3==0xfb) break; } else { P0=0xfb; P1=0x03; } } } 18 4.3、仿真调试情况记录 (1)按下开关K1时,直流电动机正转3圈,同时LED1亮: (2)按下开关K2时,直流电动机反转3圈,同时LED2亮: 19 (2)按下开关K3时,直流电动机停止,同时LED3亮: 第五章、设计总结 本设计主要应用单片机80C51控制,通过七路反相器件ULN2003A进行搭桥,进行仿真设计,利用晶振进行变换,通过LED灯来显示直流电动机正反转的情况,利用点动开关进行控制,实现直流电动机正反转的Proteus仿真,在利用Keil软件编写控制程序时,要灵活调用其库函数,掌握C语言编程的细节,在程序调试过程中善于发现错误并快速改正,通过一系列严谨措施之后,快速把该程序生成Hex代码,以便进行仿真,在这过程熟悉keil软件程序设计过程。从中悟出简便的方法。而由于本设计采取C语言编程,还需掌握一些C程序控制指令。 当遇到比较大的问题时,及时与指导老师交流讨论,进行快速检测出问题所在并予以解决。在利用Proteus软件调用Hex代码程序进行仿真时,要注意记录直流电动机正反转,并与设计方案目的是否一致,这是最关键的一步。 通过这一系列仿真设计流程,成功的达到了设计的目的,主要以软件设计模型来展现直流电动机正反转的原理,并了解到在这个信息高速发展的时代里,学会直流电动机正反转原理是进一步了解大型转动机械的最基础最基本的,所以本软件仿真设计就是为了让大家熟悉直流电动机正反转而存在。 20 附录1 80C51引脚功能介绍 单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。 ⒈ 电源: ⑴ VCC - 芯片电源,接+5V; ⑵ VSS - 接地端; ⒉ 时钟: XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 ⒊ 控制线:控制线共有4根, ⑴ ALE/PROG:地址锁存允许/片内EPROM编程脉冲 ① ALE功能:用来锁存P0口送出的低8位地址 ② PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。 21 ⑵ PSEN:外ROM读选通信号。 ⑶ RST/VPD:复位/备用电源。 ① RST(Reset)功能:复位信号输入端。 ② VPD功能:在Vcc掉电情况下,接备用电源。 ⑷ EA/Vpp:内外ROM选择/片内EPROM编程电源。 ① EA功能:内外ROM选择端。 ② Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。 ⒋ I/O线 80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。 P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。 P0口:置1时,被定义为高阻输入; P1口:写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流; P2口:被写“1”时,其管脚被内部上拉电阻拉高,且作为输入; P3口:写入“1”后,它们被内部上拉为高电平,并用作输入; 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(外部数据存储器读选通) 22 附录2 Proteus操作指令中英文对照表 元件名称 中文名 7407 驱动门 1N914 二极管 74Ls00 与非门 74LS04 非门 74LS08 OR 74LS390 TTL 7SEG 47SEG 3-8ALTERNATOR AMMETER-MILLI mAAND BATTERY BUS CAP CAPACITOR CLOCK CRYSTAL D-FLIPFLOP DFUSE GROUND LAMP LED-RED LOGIC ANALYSER LOGICPROBE LOGICPROBE[BIG] LOGICSTATE 与门 或门 双十进制计数器 针BCD-LED 输出从0-9 对应于4根线的BCD码 译码器电路BCD-7SEG[size=+0]转换电路 交流发电机 安培计 与门 电池/电池组 总线 电容 电容器 时钟信号源 晶振 触发器 保险丝 地 灯 红色发光二极管 逻辑分析器 逻辑探针 逻辑探针 用来显示连接位置的逻辑状态 逻辑状态 用鼠标点击,可改变方框连接位置的逻辑状态 23 LOGICTOGGLE 逻辑触发 MASTERSWITCH 按钮 手动闭合,立即自动打开 MOTOR 马达 POT-LIN 三引线可变电阻器 POWER 电源 RES 电阻 RESISTOR 电阻器 SWITCH 按钮 手动按一下一个状态 SWITCH-SPDT 二选通一按钮 VOLTMETER 伏特计 VOLTMETER-MILLI mV伏特计 VTERM 串行口终端 Electromechanical 电机 Inductors 变压器 CRYSTAL 晶振 Optoelectronics 各种发光器件 发光二极管,LED,液晶等等Resistors 各种电阻 Simulator Primitives 常用的器件 Switches & Relays 开关,继电器,键盘 Switching Devices 晶阊管 Transistors 晶体管(三极管,场效应管) Analog Ics 模拟电路集成芯片 Capacitors 电容集合 Connectors 排座,排插 Debugging Tools 调试工具 24 参考文献 【1】李广弟 朱月秀 冷祖祈编著《单片机基础第三版》 北京航空航天大学出版社 2007年 【2】邓星钟[等]编著 《机电传动控制第四版》 华中科技大学出版社 2007年 【3】江世明编著 《基于Proteus的单片机应用技术》北京电子工业出版社2009年 【4】彭伟编著《单片机C语言程序设计实训100例:基于AVR+Proteus仿真》北京航空航天大学出版社 2010年 【5】林立[等]编著《单片机原理及应用:基于Proteus和Keil C》北京电子工业出版社 2009年 25 致谢 首先诚挚的感谢我的论文指导老师郑国权老师,从选题的确定、论文的写作、修改到最后定稿过程中,自始至终都倾注着老师的心血。特别是指导老师多次询问写作进程,并为我指点迷津,帮助我开拓思路,老师以严谨的治学之道、宽厚仁慈的胸怀、积极乐观的生活态度,兢兢业业、孜孜以求的工作作风和大胆创新的进取精神为我树立了一辈子学习的典范,他的教诲与鞭策将激励我在学习和生活的道路上励精图治,开拓创新。她渊博的知识、开阔的视野和敏锐的思维给了我深深的启迪。我以最诚挚的心意感谢郑国权老师。 在毕业设计期间,我要感谢许多让我分享他们宝贵经验和知识的老师,教会我正确的思考方式。同时,也要感谢在论文写作过程中,帮助过我、并且共同奋斗四年的大学同学们,能够顺利完成论文,离不开他们的帮助,在此表示最深的谢意。 26
因篇幅问题不能全部显示,请点此查看更多更全内容