ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:261.46KB ,
资源ID:26480499      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26480499.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于proteus的步进电机电机仿真.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于proteus的步进电机电机仿真.docx

1、基于proteus的步进电机电机仿真基于roteus的步进电机电机仿真摘要:步进电机广泛应用在生产实践的各个领域。它最大的应用是在数控机床的制造中,因为步进电机不需要A/D转换,能够直接将数字脉冲信号转化成为角位移,所以被认为是理想的数控机床的执行元件。本设计利用proteus仿真软件进行电路仿真,系统通过设置四个按键分别控制不进电机的起止、圈数、方向、不进速度,使用1602液晶显示以上参数。整个系统具有稳定性好,实用性强,操作界面友好等优点。关键词:prteus 仿真 不进电机 拍数一、 rote简介roeus 是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于inos操作系

2、统上,可以仿真、分析(SPIC)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SCE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:600系列、051系列、AVR系列、PC12系列、I1系列、PC1系列、8系列、HC1系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,

3、也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPIE分析于一身的仿真软件,功能极其强大。二、整体电路分析如下图,整个设计以STC895单片机为中心,由复位电路,时钟电路,电机驱动,步进电机,显示电路等组成,硬件模块如图21所示:图1 硬件模块图通过按键进行相应的参数设定,单片机接收到信号后经过判断驱动电机驱动模块,然后由驱动电路驱动步进电机运转,并用02显示设置的参数。三、系统硬件电路选择与设计1、主控器的选择按照题目要求本次主控单元使用C单片机对整个系统进行控制。SC9C51RC包含51

4、2字节AM 、3条口线、3个16位定时/计数器、输入4优先级嵌套中断结构、1个串行I/O口(可用于多机通信、I/O扩展或全双工ART)以及片内振荡器和时钟电路。此外,由于器件采用了静态设计,可提供很宽的操作频率范围(频率可降至0)。可实现两个由软件选择的节电模式、空闲模式和掉电模式。空闲模式冻结CPU,但RAM、定时器、串口和中断系统仍然工作。掉电模式保存RAM的内容,但是冻结振荡器,导致所有其它的片内功能停止工作。由于设计是静态的,时钟可停止而不会丢失用户数据。运行可从时钟停止处恢复。所以该单片机可以满足系统要求,电路图如下:图 单片机最小系统电路图2、步进电机选择步进电机是一种能够将电脉冲

5、信号转换成角位移或线位移的机电元件,它实际上是一种单相或多相同步电动机。单相步进电动机有单路电脉冲驱动,输出功率一般很小,其用途为微小功率驱动。多相步进电动机有多相方波脉冲驱动,用途很广。本设计使用的是四相三拍步进电机,连接图如下:图3 步进电机接线图3、驱动电路的选择驱动模块我们使用集成驱动芯片ULN203,给芯片是高耐压、大电流达林顿管由七个硅NPN 达林顿管组成。该电路的特点如下:ULN2003 的每一对达林顿都串联一个27K 的基极电阻,在V 的工作电压下它能与TT 和MOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN203 工作电压高,工作电流大,灌电流可达

6、50mA,并且能够在关态时承受5V的电压,输出还可以在高负载电流并行运行。1脚输入,16脚输出,你的负载接在VCC与16脚之间,不用脚。 图4 N2003内部结构图 图5 N2003管脚图ULN00是大电流驱动阵列,多用于单片机、智能仪表、LC、数字量输出卡等控制电路中。可直接驱动继电器等负载。所以足以满足驱动步进电机的要求,连接图如下:图6 ul203接线图、显示电路的LCD显示模块是把LCD显示屏、背景光源、线路 板和驱动集成电路等部件构造成1个整体作为1个独立部件使用,只留1个接口与外部通信。显示模块通 过这个接口接收显示的命令和数据,并按指令和数据的要求进行显示,外部电路通过这个接口读

7、出显示模 块的工作状态和显示数据。102液晶模块内部的字 符发生存储器(CGM)已经存储了16个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大 小写、常用的符号和日文假名等,每1个字符都有个 固定的代码。用户对模块写入适当的控制命令,即可 完成清屏、显示、地址设置等操作。设计采用并行方式控制,LCD与单片机的通讯接口电路如图3所示采用直连的方法。图7 1602显示电路接线图键盘输入模块电路 设计中,键盘采用非编码键盘系统中的独立式按 键结构。键盘工作方式采用定时扫描方式。采用定时 器O定时,通过输出数据,识别按键的工作状态。键 盘主要用来提供人机接口,电路如图3所示,采用独立 式按键

8、电路,各按键开关均采用了上拉电阻,保证在按 键断开时,各IO有确定的高电平。按键功定义如 下:当P2按下时,步进电机开始加速;当P.3按下 时,步进电机开始减速;当P.4按下时,步进电机开始 正转;当3.按下时,步进电机开始反转。按键抖动的消除采用软件消抖实现。连接图如下:图 按键接连接图四、系统软件设计1、软件流程图图9 系统流程图2程序代码见附件。五、总结采用模块程序设计,逐个模块调好以后,再进行系统程序总调试。利用仿真软件Poteu及eilC进 行调试。 系统实现了可程序设定和显示步进角、步进方向 和步进速度,支持用开关量单独控制步进电机的转向, 转速。电路简单可靠,结构紧凑,控制灵活,

9、成本低,可移植性强。经实验验证,本系统对步进电机的各项控 制都能达到比较理想的效果,具有较高的实用价值。通过此次课程设计,我不仅将知识融会贯通,而且在查找资料的过程中也了解了许多课外知识,开拓了视野,使自己在专业知识方面和动手能力方面有了很大的提高,让我学会了理论到实践的转化,即如何将自己学到的运用到以后的生活和工作中,同时,也让我意识到团队精神的重要性。此外,感谢丁老师的悉心教导以及同学的帮助,正是王老师细心的辅导和提供的一些参考资料还有同学们的互相帮助,让我顺利的完成了毕业设计,相信这对我以后的生活和工作都会有很大的帮助。六参考文献1徐薇莉,曹柱中.控制理论与设计M.上海:上海交通大学出版

10、 社.00 2黄 坚自动控制原理及其应用M北京:高等教育出版社,04 3先锋工作室单片机程序设计实例M北京:清华大学出版社,23 4王幸之,钟爱琴AT89系列单片机原理及接口技术.北京:北京航天大学出版社,200 5康华光,陈大钦.模拟电子电路M北京:高教育出版社,2004. 七附录(1)整体电路图(2)程序代码incld #incue define uha uigedhar#deine nt unsiged int#defie delyP();_nop();p();_nop_();_op_();usnd char oe FFW=xe,0xfc,0f,0xf9,b,xf3,0xf,0f6;/反

11、转usned char code RV8=06,xf,0xf3,0xf,f,f,0xc,0e; /正转/unsgned char cd FFW=x01,3,0x2,0x06,0x04,0x0c,0x08,0x09;/反转/uninedhar code EV8=009,00,x0c,0x04,x06,0x02,003,00; /正转bit 1 32; /运行与停止i 2 = P3; /设定圈数bt P34; /方向转换biK = P35; /速率调整bit LCD_RS P2; bit CD_RW = P21;i LCDEN=P;bit on_o=0; /运行与停止标志bi dretion=1;

12、 /方向标志itrate_=1; /速率标志t snum_d1; /圈数标志cha code cdis1 =O07820126 ;ucharcode cis2 /5/24;uchrcod cdis3 = TP ;croecdis =NUM: RT: ;cr ode cs = UNING ;uchr ,v0,q=0;uchar nur=0,uber1=0; uchar nu=20,snum1=20; /预设定圈数ca rat=3; /预设定速率char ta_ep,daeP0,daatmp2; /*/* * 延时t毫秒 /* 11.0592MH时钟,延时约1ms /* /*void dely(u

13、int t) cha k; ile(t-) o(k=0; k12; ) /*vi delay(ucar x) /x*14M uchai; while(x-) fo (i0; i13; i+) /*/ /*检查LC忙状态 /*lcdbusy为时,忙,等待。为0时,闲,可写指令与数据。 /* */bt lcdby() bt sul; LC_S =; LCDRW = ; LCD_EN = 1; laOP(); reu = (bit)(0&0x8); D_EN = 0; urn(reut); /*/* *写指令数据到LCD *S=,,=高脉冲,D-D指令码。 * /*/voidd_cmd(uchar

14、md) whle(lcdbu()); LCD_R = ; D_ = 0; L_EN= 0; nop_(); _nop(); P0md; delNP(); CN 1; delayNOP(); C_EN = 0; /*/ /*写显示数据到LD /*RS,W=,=高脉冲,0D7数据。 /*void lcdwdat(uhar da) whe(lcdbsy(); LCDRS = 1; CD_RW 0; LD_EN = 0; P0 at; delayNOP(); LCD_EN= 1; delNOP(); CD_EN = 0; /*/* /* CD初始化设定 /* /*/vod lcdnit() dey(3

15、0); cd_cd(x3); /16*显示,5*7点阵,8位数据 dla(5); dcmd(0x); deay(5); cd_wcmd(0x38); delay(5); _wcm(0c); /显示开,关光标 deay(5); lcd_wmd(x6); /移动光标 ay(5); lcd_wcd(0x01); /清除LCD的显示内容 dela(5);/*/* * 设定显示位置 / */o lcs(uchar os) lcd_wmd(p |0x0); /数据指针80+地址变量/*/* /* LC1602初始显示子程序 * *oid LCD_int_DIS() deay(10); /延时 lcd_ni

16、t(); /初始化LCD lcd_p(0); /设置显示位置为第一行的第1个字符 m ; whe(cs1m ! 0) /显示字符 cddat(cd1); +; lcd_ps(0x40); /设置显示位置为第二行第1个字符 m = 0; wile(dism ! 0) _at(cdi); /显示字符 m+; delay(300); 延时 lcd_os(); /设置显示位置为第一行的第1个字符 = 0; hle(dis3m != ) /显示字符 lcd_wdat(cdim); +; d_po(x4); /设置显示位置为第二行第1个字符 m = 0; while(cdis4 != 0) cdt(cds

17、4); /显示字符 m+; f(m=0;m;+) lc_po(x0c); /显示方向符号 ld_wat(x3e); /*/*/*数据转换子程序/*/*/vd dta_conv() data_tP0=a_tem/0; /高位if(dat_tem0=0) datatemP0=0x20; /高位为0不显示 ese data_teP=dtatemP0+0x30; daa_temp2=dta_temp%10; /低位 dat_tmp2=daatep2+0x3; /*/*数据显示子程序/*/*vd data_dis() dta_emp = su; /显示圈数 data_onv(); lcd_pos(x44

18、); lcd_wda(tem0); lc_po(0x45); lcdat(a_emp2); daa_ep = rat; /显示速率 t_on(); lcd_p(0x4d); d_wdt(data_tm); l_pos(0x4); cdwat(atatm2);*/* 显示运行方向符号/*/void otor_DR() i(iecton=1) /正转方向标志 for(=0;m2;m+) ld_pos(0x0c+m); /显示方向符号 lc_(0x3); es for(=0;2;m+) /反转方向标志 lcd_os(00+m); /显示方向符号 dwat(0x3c); /*/*/* 显示运行状态*/*/vi mot_RUN() if(on_off=1) 0=1; lcd_p(0); /设置显示位置为第一行的第个字符 m 0; while(cdi5m != ) c_wdt(cdi5); /RUNIG m+; mo_DR(); / le TR0=0; P0=0x0f; lcd_pos(0); 设置显示位置为第一行的第1个字符 m 0; wil(cdis3m !0) lcd_wdat(ci3m); /STOP m+; motor_DR(); / num=sum1; / numer10; /清圈数计数器 /* * 主程序 * *

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1