电光源跟踪系统软件设计_第1页
电光源跟踪系统软件设计_第2页
电光源跟踪系统软件设计_第3页
电光源跟踪系统软件设计_第4页
电光源跟踪系统软件设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

本文格式为Word版,下载可任意编辑——电光源跟踪系统软件设计

基于单片机msp430的点光源跟踪系统软件设计

设计总说明

随着太阳能技术的不断成熟,太阳能在人们的生活中扮演越来越重要的角色。点光源跟踪技术正源于对太阳跟踪的需要。本设计采用TI公司的MSP430F149单片机作为控制核心。利用4路光敏三极管(3DU33)来检测点光源的位置并将检测到的信号经过放大传给控制器MSP430F149单片机,经过单片机的运算和处理来确定点光源的运动趋势,并将运算的控制信号传给两台步进电机,使其跟随点光源运动。当水平方向上的2路光敏三极管测量数值相对接近,同时竖直方向上的2路光敏三极管测量数值也相对接近时,位于竖直传感器中间的激光笔将确切的指向点光源。同时将光敏三极管检测的信号显示在LCD液晶屏幕上。

该系统主要包含3个模块分别是AD转换模块,LCD显示模块,步进电机控制模块。其中步进电机的控制是核心,正是通过对步进电机的控制实现对点光源的跟踪,最终会通过proteus进行仿真。

2硬件组成

本系统采用TI公司的MSP430F149单片机作为发送部分和接受部分的控制核心,完成信号发送和接收!电流检测!控制电机!键盘输人及液晶显示等功能MsP430F149单片机内部资源丰富,集成了A/D模块,无需扩展引脚,电路设计和制作简单,功耗低。主要电路为电流检测电路,电机驱动电路,液晶显示电路,复位电路和晶振电路。

光敏三极管MSP430F149单片机L298N芯片步进电机控制实现跟踪功能

图2-1系统总体框图

2.1MSP430F149简介

MSP430是德州公司新开发的一类具有16位总线的带FLASH的单片机,由于其性价比和集成度高,受到广大技术开发人员的青睐.它采用16位的总线,外设和内存统一编址,寻址范围可达64K,还可以外扩展存储器.具有统一的中断管理,具有丰富的片上外围模块,片内有缜密硬件乘法器、两个16位定时器、一个14路的12位的模数转换器、一个看门狗、6路P口、两路USART通信端口、一个比较器、一个DCO内部振荡器和两个外部时钟,支持8M的时钟.由于为FLASH型,则可以在线对单片机进行调试和下载,且JTAG口直接和FET(FLASHEMULATIONTOOL)的相连,不须另外的仿真工具,便利实用,而且,可以在超低功耗模式下工作,对环境和人体的辐射小,测量结果为100mw左右的功耗(电流为14mA左右),可靠性能好,加强电干扰运行不受影响,适应工业级的运行环境,适合与做手柄之类的自动控制的设备.我们相信MSP430单片机将会在工程技术应用中得以广泛应用,而且,它是通向DSP系列的桥梁,随着自动控制的高速化和低功耗化,MSP430系列将会得到越来越多人的爱好.通过两过多月的毕业设计,我对MSP430有了初步了解,对内部的硬件资源和自身的汇编语法进行了试验,并开发了一个应用板,并进行了调试.鉴于时间和能力有限,没能对所有的应用一一试验.

中断在MSP430中得以广泛的应用,它可以快速进入中断程序,之后返回中断前的状态,其时序为:PC执行程序中断允许置位SR中的GIE置位EINT第2页

(中断开)中断到,中断标志位(IFG)置位从中断向量表中读取中断程序的入口地址,进入中断程序执行中断程序中断允许位复位RETI中断返回回到原来地址。

硬件乘法器不集成在CPU内,是独立于CPU运行的,运算时只需将两个操作数放进相应的地址中,就可以直接在结果寄放器中取数据,CPU可以工作在低功耗模式,假使用间接寻址模式,可以超低工耗的乘法计算大量的表数据。

MSP430F149有6个8位的P口,其中P1、P2口占两个中断向量,共可以接16个中断源,还可以直接利用P口的输入输出寄放器,直接对外进行通信。由于所有的P口都是和其他外设复用的,因此在用端口之前都要用功能选择寄放器选定所用的功能是外设还是P口,选定之后还要在方向寄放器中确定是是输出还是输入,我试验了一个程序,前部分是实现中断功能的程序,后部分为中断程序是实现直接用P口对外提供一个短脉冲的程序,专门利用了P口的输入输出功能对外存24WCXX和实时时钟芯片8563的数据通过的存取I2C总线的读取和写入。还利用了P口向电池充电的开启电路。

MSP430中有两个16位定时器,还可以利用看门狗定时器。由于定时器的是16位的,则可以在秒数量级上定时,且具有2个中断向量,便于处理各种定时中断。定时器的应用在F149中具有举足轻重的作用,可以利用MSP430F149中的定时器的比较模式产生PWM(数字脉冲调制)波形,再经过低通滤波器产生任意函数的波形,也就是说,可以通过定时器的比较模式实现数模转换功能。另外,定时器还具有捕获模式,我们可以通过定时器的捕获功能实现各种测量,譬如脉冲宽度测量,假使和比较器结合,还可以测量电阻、电容、电压、电流、温度等,可以这样说,只要能通过传感转换为时间长度的,都可以通过定时器的捕获定时功能实现值的测量。在开发板中,利用定时器,我们设计了一个PWM滤波输出的函数发生器。

2.2步进电机简介

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的状况下,电机的转速、中止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角〞,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到确凿定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。下面以5相步进电机为例简单的介绍下步进电机。第3页

2.2.1步进电机的构造

步进电动机构造上大致分为定子与转子两部分。转子由转子1、转子2、永久磁钢等3部分构成。而且转子朝轴方向已经磁化,转子1为N极时,转子2则为S极。

图2-2电机构造图

2.2.2步进电机的运转原理

实际上经过磁化后的转子及定子的小齿的位置关系,在此说明如下。首先解释励磁,励磁就是指电动机线圈通电时的状态。将A相励磁,会使得磁极磁化成S极,而其将与带N极磁性的转子1的小齿相互吸引,并与带有S极磁性的转2的小齿相斥,于平衡后中止。此时,没有励磁的B相磁极的小齿和带有S极磁性的转子2的小齿相互偏离0.72°。以上是A相励磁时的定子和转子小齿的位置关系。其次由A相励磁转为B相励磁时,B相磁极磁化成N极,与拥有S极磁性的转子2相互吸引而与拥有N极磁性的转子1相斥。也就是说,从A相励磁转换至B相励磁时,转子转动0.72°。由此可知,励磁相位随A相→B相→C相→D相→E相→A相依次转换,则步进电动机以每次0.72°做正确的转动。同样的,希望作反方向转动时,只需将励磁顺序倒转,依照A相→E相→D相→C相→B相→A相励磁即可。

2.2.3步进电动机的特征

控制器、驱动器、步进电动机以下三部分是步进电机运转必不可少的三部分。控制器又叫脉冲产生器,目前主要有PLC、单片机、运动板卡等等。

第4页

图2-3步进电机运转要素

2.3主要电路

图2-4系统电路图

2.3.1电流检测电路

检测光源电路的主要原理是通过检测到光敏电阻的电阻变化,从而引起电压的变化,单片机通过识别不同的电压信号来控制电机的转动。检测光敏电阻主要是通过信号放大电路实现。光敏三极管受到不同光照射时阻值不同。通过与一个固定阻值的电阻串联分压,将阻值变化转化为电压变化。当光照强度变化时,电压值变化。,通过反向比例放大电路将电压值放大,放大后送入MSP430单片机自带的8路12位A/D转换模块中的A0到A3,分别对四路光敏三极管输第5页

出电压进行采集。

2.3.2电机驱动电路

本系统中步进电机的驱动采用LM298实现,LM298的控制信号IN1到IN4由单片机的I/O口输出,LM298的四个输出OUT1到OUT4分别接步进电机的两相绕组。要满足高精度跟踪要求,必需提高电机步进角度的分辩率,因此选用高性能步进电机细分驱动器作为控制电路。驱动器选用原装驱动模块,纯净弦波电流细分控制方式,具有很强的抗干扰能力。控制信号与内部线路实现光电隔离,并具有精度高,可靠性好,电机噪音极低等特点。

2.3.3液晶显示电路

12864液晶显示器采用ST7920作驱动。12864液晶接口是一个2.54mm间距的20脚单排插针座,可以连接任何以ST7920为驱动器的12864液晶模块。12864液晶接口各位的定义,接口左起是第1位。第3位V0为调整液晶偏压输入端,寻常不用连接,考虑到通用性我们将V0连接到了一个3296标准封装的电位器(R16)的中间抽头处,并焊接上一个电位器进行调整。第15位是液晶数据传输模式的选择位,假使PSB接高电平则液晶工作在并行数据传输模式,假使PSB接低电平则液晶工作在串行数据传输模式。此位连接到了跳线座P13的第2脚,P13的第1脚与VCC连接,第3脚与GND连接,可以使用短路帽来决定PSB连接到那一种电平。第17位是液晶的复位端,此端口直接与VCC相连,电后液晶模块自动完成复位功能。在对液晶进行操作之前,首先设置好正确的数据传输模式。液晶控制端口使用3.3V的规律电平,而背光驱动则使用+5V。

2.3.4复位电路

复位是单片机的初始化操作。单片机启动运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必需协同相应的外部电路才能实现。

当MSP430系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平日,单片机就执行复位操作。假使RST持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位操作采用上电复位。上电复位要求接通电源后,自动实现复位操作。电容和电阻对电源十5V来说构成微分电路,上电复位电路是利用RC充电原理实现的,初始上电,电容两端等电位,则RESET为高电平,随着对电容的充电,RESET端电位逐渐降低,直至低电平,复位过程终止.RC的选取应使RESET端保持10ms的高电平,才能实现可靠复位.第6页

2.3.5晶振电路

MSP430系列单片机时钟模块包括数控振荡器(DCO)、高速晶体振荡器和低速晶体振荡器等3个时钟源。这是为了解决系统的快速处理数据要求和低功耗要求的矛盾,通过设计多个时钟源或为时钟设计各种不同工作模式,才能解决某些外围部件实时应用的时钟要求,如低频通信、LCD显示、定时器、计数器等。数字控制振荡器DCO已经集成在MSP430内部,在系统中只需设计高速晶体振荡器和低速晶体振荡器两部分电路。

高速晶振也称为其次振荡器XT2,它为MSP430F149工作在高频模式时提供时钟,XT2最高可达8MHz。在系统中XT2采用4MHz的晶体,XT2外接2个22pF的电容经过XT2IN和XT2OUT连接到MCU。

低速晶体振荡器(LFXTl)满足了低功耗及使用32.768kHz晶振的要求。LFXTl振荡器默认工作在低频模式,即32.768kHz,也可以通过外接450kHz~8MHz的高速晶体振荡器或陶瓷谐振器工作在高频模式,在本电路中我们使用低频模式,经过XIN和XOUT连接到MCU。第7页

3软件总体方案设计

MSP430单片机进行编程时可以采用C语言和汇编语言,本设计采用IARC/C++编译器提供的C语言编程环境。采用模块化的设计,在进行软件设计时,寻常把整个过程分成若干个部分,每一部分叫做一个模块。模块程序设计法的主要优点是:模块化编程使程序更有效,小块程序更简单理解和调试,当知道模块的输入和所要求的输出时,就可直接测试小模块;当同类的需求较多时,可把程序放入库中以备以后使用,若要再使用,则由库中把它取出,而不要全部重新编写;模块化编程使得要解决的问题与特定模块分开,很简单找出出错的模块,大大简化了调试。本系统由主程序,信号采集程序,LCD显示子程序和步进电机控制程序构成。

3.1C语言基础

从程序流程的角度来看,程序可以分为三种基本结构,即顺序结构、分支结构、循环结构。这三种基本结构可以组成所有的各种繁杂程序。C语言提供了多种语句来实现这些程序结构。程序中执行部分最基本的单位是语句。C语言的语句可分为五类:表达式语句任何表达式末尾加上分号即可构成表达式语句,常用的表达式语句为赋值语句;函数调用语句函数调用加上分号即组成函数调用语句;控制语句用于控制程序流程,由专门的语句定义符及所需的表达式组成。主要有条件判断执行语句,循环执行语句,转向语句等;复合语句由{}把多个语句括起来组成一个语句。复合语句被认为是单条语句,它可出现在所有允许出现语句的地方,如循环体等,空语句仅由分号组成,无实际功能。

C语言中没有提供专门的输入输出语句,所有的输入输出都是由调用标准库函数中的输入输出函数来实现的。scanf和getchar函数是输入函数,接收来自键盘的输入数据。scanf是格式输入函数,可按指定的格式输入任意类型数据。getchar函数是字符输入函数,只能接收单个字符。printf和putchar函数是输出函数,向显示器屏幕输出数据。printf是格式输出函数,可按指定的格式显示任意类型的数据。putchar是字符显示函数,只能显示单个字符。

关系表达式和规律表达式是两种重要的表达式,主要用于条件执行的判断和循环执行的判断。C语言提供了多种形式的条件语句以构成分支结构:if语句主要用于单向选择;if-else语句主要用于双向选择;if-else-if语和switch语句用于多向选择。这几种形式的条件语句一般来说是可以相互替代的。

C语言提供了三种循环语句。for语句主要用于给定循环变量初值,步长增第8页

量以及循环次数的循环结构。循环次数及控制条件要在循环过程中才能确定的循环可用while或do-while语句。三种循环语句可以相互嵌套组成多重循环。循环之间可以并列但不能交织。可用转移语句把流程转出循环体外,但不能从外面转向循环体内。在循环程序中应避免出现死循环,即应保证循环变量的值在运行过程中可以得到修改,并使循环条件逐步变为假,从而终止循环。

3.2软件开发平台3.2.1IAR简介

嵌入式IAREmbeddedWorkbench是一个十分有效的集成开发环境(IDE),它使用户充分有效地开发并管理嵌入式应用工程。作为一个开发平台,它具备任何在用户每天的工作地方所想要的特性。

嵌入式IAREmbeddedWorkbenchIDE提供一个框架,任何可用的工具都可以完整地嵌入其中,这些工具包括:高度优化的IARAVRC/C++编译器;AVRIAR汇编器;通用IARXLINKLinker;IARXAR库创立器和IARXLIBLibrarian;一个强大的编辑器;一个工程管理器;IARC-SPYTM调试器,一个具有世界先进水平的高级语言调试器。嵌入式IAREmbeddedWorkbench适用于大量8位、位以及32位的微处理器和微控制器,16使用户在开发新的项目时也能在所熟悉的开发环境中进行。它为用户提供一个易学和具有最大量代码继承能力的开发环境,以及对大多数和特别目标的支持。嵌入式IAREmbeddedWorkbench有效提高用户的工作效率,通过IAR工具,用户可以大大节省工作时间。

3.2.2IAR应用

创立工程前先要创立一个新目录,在AVR\\tutor目录下找到projects。第一步先创立一个工作区,选择File>New>Workspae,创立一个新工程并放入工作区。

创立一个新工程,选择project->createnewproject。弹出createnewproject对话框,可以让用户依照模板创立新工程。第9页

图3-1创立目录界面

确认toolchain选项已经设置AVR,然后点击OK。弹出一个标准的SaveAs对话框,确认用户想放置工程文件的地方,在Filename对话框中输入project1,然后点击Save创立新工程。

图3-2创立工程界面第10页

图3-3添加文件界面

设置工程选项在工作区窗口中选择工程文件夹project1->Debug,然后选择project1->options选项。General选项中Target选项页被显示

第11页

图3-4工程显示界面

工程创立完毕后就能加载程序,直接按F7编译程序,程序出现的错误会显示出来,修改至无误后将程序现在到单片机中连接好仿真器和开发板。开启电源后就能进行程序调试了。

3.3主程序模块

程序开始工作之后,首先系统进行参数设置,然后系统分别扫描四路A/D输入,把采样数据寄放在单片机RAM中,然后进行判断。假使矩形面板沿X轴方向两对边的光电传感器采样数据不相等,说明这两对边与光入射方向不垂直,此时驱动电机使面板绕X轴方向朝光强较强的一侧旋转:假使矩形面板沿Y轴方向两对边的光电传感器采样数据不相等,则驱动电机使面板绕Y轴方向朝光强较强的一侧旋转,直到面板的四条边都与光入射方向垂直。

沿X两侧采样值是否相等?进行AD转换N参数设置开始采集四个方向光信号Y调整X轴方向步进电机沿Y两侧采样值是否相等?N调整Y轴方向步进电机Y终止

图3-5主程序流程图第12页

#includevoidmain

WDTCTL=WDTPW+WDTHOLD;

P2SEL=0x00//P2口所有引脚设置为一般的IO口P2DIR=0x0f//pP2.0,P2.1,P2.2,P2.3为输出方向P2OUT=0X00//P2口先输出低电平P2IE=0xf0//p2.4,p2.5,p2.6,p2.7允许中断P2IES=0xf0//p2.4,p2.5.p2.6,p2.7下降沿触发中断

P6OUT|=BIT3=aP6OUT|=BIT4=bP6OUT|=BIT5=cP6OUT|=BIT6=d{Ifa>belse

P2OUT|=BIT0P2OUT

for(j=0;j0;i--)

{for(count=0;count

_NOP();}}

//**************************************************voidprl0(ucharcom1)//写指令代码子程序(左){

P4DIR|=0X7F;//P4为输出口P4OUT|=CS1;//csa=1P4OUT//csb=0P4OUT

P4OUT|=RW;//RS=0,R/W=1,以便读液晶状态P3DIR=0x00;//P3口为输入口do{

P4OUT|=E;//E=1cradd1=P4IN;P4OUT//E=0}

while((cradd1P4OUT//rw=0P3DIR=0xff;//P3口为输出口P3OUT=com1;第17页

P4OUT|=E;//E=1P4OUT//E=0}

//**************************************************voidprl1(uchardat1)//写显示数据子程序{

P4DIR|=0X7F;//P4为输出口P4OUT|=CS1;//csa=1P4OUT//csb=0P4OUT

P4OUT|=RW;//RS=0,R/W=1,以便读液晶状态P3DIR=0x00;//P3口为输入口do{

P4OUT|=E;//E=1cradd1=P4IN;P4OUT//E=0}

while((cradd1P4OUT|=RS;//rs=1P4OUT//rw=0P3DIR=0xff;//P3口为输出口第18页

P3OUT=dat1;P3OUT|=E;//E=1P3OUT//E=0}

voidprr0(ucharcom2)//写指令代码子程序{

P4DIR|=0X7F;//P4为输出口P4OUT//csa=0P4OUT|=CS2;//csb=1P4OUT

P4OUT|=RW;//RS=0,R/W=1,以便读液晶状态P3DIR=0x00;//P3口为输入口do{

P4OUT|=E;//E=1cradd1=P3IN;P4OUT//E=0}

while((cradd1P4OUT//rw=0P3DIR=0xff;//P3口为输出口P3OUT=com2;第19页

P4OUT|=E;//E=1P4OUT//E=0}

//*************************************************voidprr1(uchardat2)//写显示数据子程序(右){

P4DIR|=0X7F;//P4为输出口P4OUT//csa=0P4OUT|=CS2;//csb=1P4OUT

P4OUT|=RW;//RS=0,R/W=1,以便读液晶状态P3DIR=0x00;//P4口为输入口do{

P4OUT|=E;//E=1cradd1=P4IN;P4OUT//E=0}

while((cradd1P4OUT|=RS;//rs=1P4OUT//rw=0P3DIR=0xff;//P4口为输出口第20页

P3OUT=dat2;P4OUT|=E;//E=1P4OUT//E=0ucharReadDatal(void){

ucharRdata;

P4DIR|=0X7F;//P4为输出口P4OUT|=CS1;//csa=1P4OUT//csb=0P4OUT

P4OUT|=RW;//RS=0,R/W=1,以便读液晶状态P3DIR=0x00;//P3口为输入口do{

P4OUT|=E;//E=1cradd1=P4IN;P4OUT//E=0}

while((cradd1

P4OUT|=RS;//RS=1//P4OUT|=RW;//R/W=1第21页

P4OUT|=E;//E=1Rdata=P4IN;P4OUT//E=0returnRdata;}

ucharReadDatar(void){

ucharRdata;

P4DIR|=0X7F;//P4为输出口P4OUT//csa=0P4OUT|=CS2;//csb=1P4OUT

P4OUT|=RW;//RS=0,R/W=1,以便读液晶状态P3DIR=0x00;//P4口为输入口do{

P4OUT|=E;//E=1cradd1=P3IN;P4OUT//E=0}

while((cradd1第22页

P4OUT|=RS;//RS=1//P4OUT|=RW;//R/W=1P4OUT|=E;//E=1Rdata=P4IN;P4OUT//E=0returnRdata;

3.6步进电机控制模块

本设计控制步进电机是核心正是通过对步进电机的控制实现对点光源的追踪。

终止调整步进电机位置采集结果输入至L298芯片光信号采集设置中断设置端口及初始化开始图3-8步进电机控制流程图

第23页

voiddelay(unsignedint);//函数声明voidIint_Port1(void)

unsignedintSpeed=4//设置速度为七档,默认为4档unsignedintm//延时参数声明voidSpeed_Update()//更新速度值voidmain(void)

{WDTCTL=WDTPW+WDTHOLD//关闭看门狗Iint_Port1()

P3DIR=BIT0;//时钟输出口,速度调整控制口//P1DIR=~BIT3;

P2DIR|=(BIT0+BIT1+BIT2+Bit3);//p2.0-P2.4为控制信号输出口P2OUT|=(BIT0+BIT1+BIT2+BIT3);_EINT();//开总中断允许while(1)

{P3OUT=~BIT0;Speed_Update();delay(m);P3OUT=BIT0;Speed_Update();delay(m);}}

#pragmavector=PORT1_VECTOR__interruptvoidP1_ISR(void){chari;i=P1IFG;switch(i0xfc)第24页

{case0x04:if(Speed1)Speed--;break;case0x10:P2OUT^=BIT4;break;case0x20:P2OUT^=BIT5;break;case0x40:P2OUT^=BIT6;break;}P1IFG=0;

voidIint_Port1(void)

{P1DIR=~(BIT2+BIT3+BIT4+BIT5+BIT6);P1IES=~(BIT2+BIT3+BIT4+BIT5+BIT6);P1IE=(BIT2+BIT3+BIT4+BIT5+BIT6);P1IFG=0;}

voiddelay(unsignedinttim){while(tim--);}

voidSpeed_Update(void){switch(Speed){case1:m=1500;break;case2:m=1000;break;case3:m=800;break;case4:m=500;break;case5:m=400;break;defaultbreak第25页

4仿真

4.1Proteus简介

Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2023年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是:(1)原理布图(2)PCB自动或人工布线(3)SPICE电路仿真革命性的特点1)互动的电路仿真用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。(2)仿真处理器及其外围电路可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再协同显示及输出,能看到运行后输入输出的效果。协同系统配置的虚拟规律分析仪、示波器等,Proteus建立了完备的电子设计开发环境。

Proteus具有十分多的功能模块

智能原理图设计(ISIS):丰富的器件库:超过27000种元器件,可便利地创立新元件;智能的器件探寻:通过模糊探寻可以快速定位所需要的器件;智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时间;支持总线结构:使用总线器件和总线布线使电路设计简明明了;可输出高质量图纸:通过特性化设置,可以生成印刷质量的BMP图纸,可以便利地供WORD、POWERPOINT等多种文档使用。

完善的电路仿真功能(Prospice):ProSPICE混合仿真:基于工业标准SPICE3F5,实现数字/模拟电路的混合仿真;超过27000个仿真器件:可以通过内部原型或使用厂家的SPICE文件自行设计仿真器件,Labcenter也在不断地第26页

发布新的仿真器件,还可导入第三方发布的仿真器件;多样的鼓舞源:包括直流、正弦、脉冲、分段线性脉冲、音频(使用wav文件)、指数信号、单频FM、数字时钟和码流,还支持文件形式的信号输入;丰富的虚拟仪器:13种虚拟仪器,面板操作逼真,如示波器、规律分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、规律探头、虚拟终端、SPI调试器、I2C调试器等;生动的仿真显示:用色点显示引脚的数字电平,导线以不同颜色表示其对地电压大小,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真更加直观、生动;高级图形仿真功能(ASF):基于图标的分析可以确切分析电路的多项指标,包括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等,还可以进行一致性分析。

独特的单片机协同仿真功能(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)结合,进行高级语言的源码级仿真和调试。

实用的PCB设计平台:原理图到PCB的快速通道:原理图设计完成后,一键便可进入ARES的PCB设计环境,实现从概念到产品的完整设计;先进的自动布局/布线功能:支持器件的自动/人工布局;支持无网格自动布线或人工布线;支持引脚交换/门交换功能使PCB设计更为合理;完整的PCB设计功能:最多可设计16个铜箔层,2个丝印层,4个机械层(含板边),灵活的布线策略供用户设置,自动设计规则检查,3D可视化预览;多种输出格式的支持:可以输出多种格式文件,包括Gerber文件的导入或导出,便利与其它PCB设计工具的互转(如protel)和PCB板的设计和加工。

Proteus可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。Proteus可提供的仿真仪表资源:示波器、规律分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流第27页

电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用。除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相像,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。Proteus可提供的调试手段Proteus提供了比较丰富的测试信号用于电路的测试。

4.2电路仿真

在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。PROTEUS是单片机课堂教学的先进助手。PROTEUS不仅可将大量单片机实例功能形象化,也可将大量单片机实例运行过程形象化。前者可在相当程度上得到实物演示试验的效果,后者则是实物演示试验难以达到的效果。它的元器件、连接线路等却和传统的单片机试验硬件高度对应。这在相当程度上替代了传统的单片机试验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。

4.3系统调试结果

4-1电机加速第28页

图4-2电机减速

图4-3电机正转

第29页

图4-4电机反转

本设计采用51单片机AT89C51对两相四线制步进电机进行控制。通过I/O口输出的具有时序的方波作为步进电机的控制信号,信号经过芯片L298驱动步进电机。可以通过按键来对步进电机进行加速,减速,正转和反转的控制。本次设计基本实现了预期目标。第30页

5总结

本次设计以MSP430F149单片机作为整个系统的核心,主要由电机驱动模块,点光源检测模块,电源转换模块等模块组成。利用4路光敏三极管(3DU33)来检测点光源的位置并将检测到的信号经过放大传给控制器MSP430F149单片机,经过单片机的运算和处理来确定点光源的运动趋势,并将运算的控制信号传给两台步进电机,使其跟随点光源运动。当水平方向上的2路光敏三极管测量数值相对接近,同时竖直方向上的2路光敏三极管测量数值也相对接近时,位于竖直传感器中间的激光笔将确切的指向点光源。同时将光敏三极管检测的信号显示在LCD液晶屏幕上。由于对单片机与C语言比较生疏,本次毕设中遇到了不小的阻力。经过老师的耐心解答和同学的帮助战胜了好多困难。总体上讲收获还是不小的,了解了MSP430单片机的构造和功能熟悉了步进电机的构造和原理,也对C语言有了更深刻的认识。

第31页

开始初始化开始采集发送通道地址ADC是否忙?NY启动AD转换

信号采集流程图

第37页

NAD转换完成?Y终止

开始LCD初始化设置LCD设置为基本指令动作设置显示数据地址Y读状态忙?

温馨提示

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

评论

0/150

提交评论