欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    大学毕业论文---基于自由摆的平板控制系统设计论文.doc

    • 资源ID:91611905       资源大小:877.50KB        全文页数:31页
    • 资源格式: DOC        下载积分:9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    大学毕业论文---基于自由摆的平板控制系统设计论文.doc

    设计(论文)报告 基于自由摆的平板控制系统(日 期)2摘 要摘 要:本自由摆的平板控制系统采用STC12C5A60S2单片机作为主控系统,L298N作为电机驱动模块,STC12C5A60S2单片机通过L298N驱动模块驱PK545-NAC-C29步进机,使步进机上的平板随着摆杆的摆动而旋转。硬件部分主要包括STC12C5A60S2单片机最小系统,L298N电机驱动电路,N1000060倾角传感器,电源模块等。本设计主要运用STC12C5A60S2单片机控制4相6线步进电机,由单片机产生脉冲信号精确控制步进机的转速和角度,使步进电机上的平板能够随着摆杆摆动而保持水平平衡。关键词:STC单片机;L298N电机驱动芯片;传感器目 录目 录摘 要1目 录I1设计任务与要求11.1设计任务11.2设计要求12方案比较与论证22.1主控器的选择与论证22.2电机的选择与论证22.3驱动模块的选择与论证33系统硬件设计33.1总体电路框图33.2单元电路设计43.3整体电路图74系统软件设计74.1总体软件框图74.2各模块软件设计84.3总程序105系统调试与测试105.1测试仪器105.2测试指标105.3测试结果分析116设计总结11参考文献11附录12附录A:电路图12附录B:电路板图13附录C:元器件清单13附录D:总程序14i正 文设计题目1 设计任务与要求1.1 设计任务1、设计并制作一个自由摆上的平板系统,其结构如图1-1所示。摆杆的一端通过转轴固定在一支架上,另一端固定安装一台电机,平板固在电机转轴上;当摆杆如图1-2所示摆动时,驱动电机可以控制平板转动。图1-1 图1-21.2 设计要求1、控制电机使平板可以随着摆杆的摆动而旋转(35周) ,摆杆摆一个周期,平板旋转一周(360º) ,偏差绝对值不大于 45°。2、在平板上粘贴一张画有一组间距为1cm平行线的打印纸。用手推动摆杆至一个角度(在 30º45º间) ,调整平板角度,在平板中心稳定放置一枚 1 元硬币(人民币) ;启动后放开摆杆让其自由摆动。在摆杆摆动过程中,要求控制平板状态,使硬币在 5 个摆动周期中不从平板上滑落,并尽量少滑离平板的中心位置。3、用手推动摆杆至一个角度(在 45º60º间) ,调整平板角度,在平板中心稳定叠放 8 枚 1 元硬币,见图 1-2;启动后放开摆杆让其自由摆动。在摆杆摆动过程中,要求控制平板状态使硬币在摆杆的 5 个摆动周期中不从平板上滑落,并保持叠放状态。根据平板上非保持叠放状态及滑落的硬币数计算成绩。2 方案比较与论证2.1 主控器的选择与论证方案一:采用STC12C5A60S2方案二:采用STC89C52方案三:采用AT89C52方案论证:方案一,STC12C5A60S2芯片价格便宜,应用范围广,功能强大,高速运转,低功耗,强抗静电,强抗干扰,内部集成双串口、8路10bitADC和两路八位PWM;方案二,STC89C52芯片价格便宜,应用范围广,运转速度慢,抗静电抗干扰弱,内部无ADC;方案三,AT89C52芯片价格便宜,应用范围广,运转速度慢,抗静电抗干扰弱,内部无ADC。鉴于设计要求,故采用方案一。2.2 电机的选择与论证方案一:采用步进电机方案二:采用直流电机方案三:舵机方案论证:方案一,步进电机价格便宜,容易控制,旋转角度于脉冲成正比,每步的旋转角度精确度高,不会将一步的误差积累到下一步,且具有优秀的起停和反转响应;方案二,直流电机价格低,调速范围广,易于平滑调节,过载、起动、制动转矩大,难于控制转轴的角度和转速;方案三,舵机价格偏高,性能易受电压影响,控制旋转的角度精确度不高。鉴于设计要求,故采用方案一。2.3 驱动模块的选择与论证方案一:采用L298N芯片方案二:采用ULN2803芯片方案三:采用三极管方案论证:方案一,L298N芯片价格便宜,电路设计简单,驱动电流大,足以驱动大功率的步进电机;方案二,ULN2803芯片价格便宜,电路设计简单,驱动电流小,不能驱动大功率的步进电机;方案三,三极管价格便宜,驱动电路设计复杂,不稳定,出问题难于查询。本设计采用PK545-NAC-C29步进电机,故采用方案一。3 系统硬件设计3.1 总体电路框图为了使系统能够实现各种复杂的控制功能,本设计采用一种功能强大的、高速低功耗性价比高的单片机STC12C5A60S2完成对其他部分控制。本设计采用N1000060倾角传感器对摆杆的倾斜角度的采集数据,通过STC12C5A60S2单片机内部自带的A/D转换将数据送给单片机,单片机通过数据分析控制L298N驱动电路,使步进机旋转保持平板的水平平衡,用1602液晶显示A/D的数据。总体框图如图3-1所示。电 源单片机驱动模块步进机液 晶 显 示传感器AD模块图3-1 总体框图3.2 单元电路设计1、 STC12C5A60S2单片机最小系统STC12C5A60S2单片机最小系统P11口、P12口、P13、P14口接L298驱动电流的输入口,单片机通过对L298N的控制,使L298发出脉冲控制步进机;P23口、P24口、P25口接1602液晶,控制液晶显示A/D采集N1000060倾角传感器的数据,A/D转换是用STC12C5A60S2内部自带的A/D。单片机最小系统如图3-2、3-3所示。图3-2 最小系统图3-3 串口部分2、L298N电机驱动L298N是一种二相四相步电机的专用驱动器,内含两个H-Bridge的高电压、大电流双桥式驱动器,接收标准;OUT1、OUT2、OUT3、OUT4之间分别接两个步进机;INPUT1、INPUT2、INPUT3、INPUT4接单片机I/O,接收输入控制电位来控制电机旋转。L298N驱动电路如图3-4所示。图3-4 L298N驱动3、供电电源供电电源采用集成稳压器7805,电路图中,稳压器7805输入端的电容为输入端滤波电容,输出端的电容为输出端滤波电容;家用电220V经过变压器接入供电电源模块,能输出直流电压-12V、-5V、5V、12V。供电电源如图3-5所示。图3-5供电电源3.3 整体电路图见附录A4 系统软件设计4.1 总体软件框图 1、总体软件框图如图4-1所示。 初始化读倾角传感器电压A/D转换单片机处理读到的A/D数据控制驱动电机转动平板是否水平否结束是图4-1 总体软件框图4.2 各模块软件设计1、步进电机右转函数void l_turn(uint i)/步进电机右转函数AA;delay_ms(i);AB;delay_ms(i);BB;delay_ms(i);BC;delay_ms(i);CC;delay_ms(i);CD;delay_ms(i);DD;delay_ms(i);DA;delay_ms(i);2、步进电机左转函数void r_turn(uint i)/步进电机左转函数DA;delay_ms(i);DD;delay_ms(i);CD;delay_ms(i);CC;delay_ms(i);BC;delay_ms(i);BB;delay_ms(i);AB;delay_ms(i);AA;delay_ms(i);3、STC12C5A60S2内部AD BYTE get_ad0()/AD读取传感器1的值ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ch0|ADC_START;_nop_();_nop_();_nop_(); _nop_(); while(!(ADC_CONTR&ADC_FLAG);return ADC_RES;BYTE get_ad5()/AD读取传感器2的值ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ch5|ADC_START;_nop_();_nop_();_nop_(); _nop_(); while(!(ADC_CONTR&ADC_FLAG);return ADC_RES;4.3 总程序 见附录D5 系统调试与测试5.1 测试仪器1、 数字万用表2、 量角器 5.2 测试指标当N100060倾角传感器与水平方向有角度时,N100060倾角传感器会产生一个一压,STC12C5A60S2单片机通过内部自带AD转换采集N100060反馈的电压值。每个电压值对应一个角度,通过量角器测出角度,列出表格。如表格5-1所示。表 5-1 角度-90-60-45-30030456090AD值102.4239.0307.2377.5512648.6716.8784.9921.6倾角传感器0.5V1.167V1.5V1.843V2.5V3.167V3.5V3.833V4.5V5.3 测试结果分析从表格5-1可得:倾角传感器与水平方向平行时,输出电压是2.5V;向左右与水平方向倾斜90度时,其电压的变化量为2V。由此可得(误差允许范围内)倾角传感器与水平方向的角度a与倾角传感器的电压变化量v的数学关系为:v=a(1/45)本设计采用4相5线PK545-NAC-C29步进电机,4相8拍运行方式A-AB-B-BC-C-CD-D-DA-A,对应一个脉冲信号,步距角为=360度/(50*8)=0.9度(俗称半步)。本设计把N100060倾角传感器固定在步进电机上,与水平方向平行,当摆杆有一个角度时,STC12C5A60S2单片机内部自带AD读取N1000060倾角传感器电压值,就能精确控制步进电机的转动角度,使步进电机上的平板保持平衡。如:当STC12C5A60S2单片机内部自带AD读取N1000060倾角传感器电压值为3.5V时,其N1000060倾角传感器电压变化量为v=1V,通过上式计算得N100060倾角传感器与水平方向的角度a为45度,从而就能控制步进电机旋转45度,使步进电机上的平板保持平衡。6 设计总结经过四天三夜的辛勤努力,本设计实现了题目的全部要求。但由于时间紧,任务重,系统还存在许多可以改进的地方,比如电路布局、抗干扰性等方面还有很大的提升空间,经过改进,相信性能还会有进一步的提升。在软件编程方面,成功的通过软件编程消除了步进电机的抖动问题,采用的方法是:通过A/D转换采集倾角传感器的数据,10个数据一组,然后取平均值。本次竞赛极大的锻炼了我们各方面的能力,虽然我们遇到了很多困难和障碍,但总体上成功与挫折交替,困难与希望并存,我们将继续努力争取更大的进步。参考文献1 毛礼锐,沈灌群.中国教育通史M.济南:山东教育出版社,1988.20-22.2 王英杰,高益民.高等教育的国际化J.清华大学教育研究,2000(2):13-16.3 中华人民共和国国务院.计算机软件保护条例J/0L.东方网,2001.12.28附录附录A:电路图附录A-1附录A-2附录B:电路板图附录B-1附录C:元器件清单电阻6个瓷片电容12个电解电容4个键盘6个单片机1个开关2个L298N1个稳压78051个稳压78121个N10000602个步进电机1个MS2321个串口1个电位器1个整流桥1个变压器1个发光二极管4个二极管8个 附录D:总程序#include <reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned chartypedef unsigned char BYTE;typedef unsigned int WORD;sfr ADC_CONTR=0xBC;sfr ADC_RES=0xBD;sfr ADC_RESL=0xBE;sfr ADC_LOW2=0xBE;sfr P1ASF=0x9D;#define ADC_POWER 0x80#defineADC_FLAG 0x10#defineADC_START 0x08#defineADC_SPEEDLL 0x00#defineADC_SPEEDL 0x20#defineADC_SPEEDH 0x40#defineADC_SPEEDHH 0x60sbit en=P25;/使能sbit rs=P23;/数据命令sbit rw=P24;/读写/定义步进电机连接端口sbit A1=P11;/转三周sbit B1=P12;/转四周sbit C1=P13;/转五周sbit D1=P14;/来回摆动/定义要用到按键的管脚sbit k1=P34;sbit k2=P35;sbit k3=P36;sbit k4=P37;/定义全局变量uint su=20;/8最大uint j=0;uint jian_zhi=0;uint temp1=0;uchar shu='0','1','2','3','4','5','6','7','8','9','-',':',' 'uint i=6;uint chong1=0;uint su1=20;/8最大uint su2=20;uint m=0;uint ad=0;uint ad0=0;uint j1=0;uint j2=0;uint ad5=0;BYTE ch0=0; /模拟通道选择BYTE ch5=5;uint er_flag=0;/使用1-2相驱动#define AA A1=1;B1=0;C1=0;D1=0;#define BB A1=0;B1=1;C1=0;D1=0;#define CC A1=0;B1=0;C1=1;D1=0;#define DD A1=0;B1=0;C1=0;D1=1;#define AB A1=1;B1=1;C1=0;D1=0;#define BC A1=0;B1=1;C1=1;D1=0;#define CD A1=0;B1=0;C1=1;D1=1;#define DA A1=1;B1=0;C1=0;D1=1;/函数声明void delay_ms(uint x);void r_turn(uint i);void l_turn(uint i);void delay(WORD n)WORD x;while(n-)x=110;while(x-);void delay_ms(uint x)/延时函数uint y,z;for(y=x;y>0;y-)for(z=130;z>0;z-);void l_turn(uint i)/步进电机右转函数AA;delay_ms(i);AB;delay_ms(i);BB;delay_ms(i);BC;delay_ms(i);CC;delay_ms(i);CD;delay_ms(i);DD;delay_ms(i);DA;delay_ms(i);void r_turn(uint i)/步进电机左转函数DA;delay_ms(i);DD;delay_ms(i);CD;delay_ms(i);CC;delay_ms(i);BC;delay_ms(i);BB;delay_ms(i);AB;delay_ms(i);AA;delay_ms(i);void l_dan()switch(m)case 0:AA;m+;break;case 1:AB;m+;break;case 2:BB;m+;break;case 3:BC;m+;break;case 4:CC;m+;break;case 5:CD;m+;break;case 6:DD;m+;break;case 7:DA;m+;break;case 8:m=0;break;default :break;void r_dan()switch(m)case 0:DA;m+;break;case 1:DD;m+;break;case 2:CD;m+;break;case 3:CC;m+;break;case 4:BC;m+;break;case 5:BB;m+;break;case 6:AB;m+;break;case 7:AA;m+;break;case 8:m=0;break;default :break;void ting_zhi()A1=0;B1=0;C1=0;D1=0;/LCD1602初始化void write_com(uchar com)rs=0;P0=com;delay(1);en=1;delay(1);en=0;void write_data(uchar datae)rs=1;P0=datae;delay(5);en=1;delay(5);en=0;void display_shu(uchar hang,uchar add,uchar num)/在1602显示数据的函数,hang为第几行,add为位置,num为数据uchar shi;shi=num;if(hang=1)write_com(0x80+add);write_data(0x30+shi);if(hang=2)write_com(0x80+0x40+add);write_data(0x30+num);void init_LCD()/初始化en=0;rw=0;write_com(0x38);/显示模式控制write_com(0x0c);/显示开关及光标控制write_com(0x06);/数据指针设置write_com(0x01);/清零write_com(0x80);void InitADC()P1ASF=0x21;/输入通道选择与CH相配合使用,选择P12ADC_RES=0; /转化的数据存储所在,高八位ADC_CONTR=ADC_POWER|ADC_SPEEDLL; /内部AD主要的控制寄存器ADC_CONTR,选择P12;delay(100);BYTE get_ad0()/AD读取传感器1的值ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ch0|ADC_START;_nop_();_nop_();_nop_(); _nop_(); while(!(ADC_CONTR&ADC_FLAG);return ADC_RES;BYTE get_ad5()/AD读取传感器2的值ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ch5|ADC_START;_nop_();_nop_();_nop_(); _nop_(); while(!(ADC_CONTR&ADC_FLAG);return ADC_RES;void keyscan()if(k1=0)delay(5);if(k1=0)while(!k1);display_shu(1,1,1);su=32;j=150;while(j-)r_turn(su);/8最快su=0;if(k2=0)delay(5);if(k2=0)while(!k2);display_shu(1,1,2);su=32;j=200;while(j-)l_turn(su);/8最快su=0;if(k3=0)delay(5);if(k3=0)while(!k3);display_shu(1,1,3);su=32;j=250;while(j-)l_turn(su);/8最快su=0;if(k4=0)delay(5);if(k4=0)while(!k4);display_shu(1,1,4);er_flag=1;void main()uint shu1=0,shu2=0;init_LCD();InitADC();ting_zhi();su=32;su1=32;su2=32;j1=20;j2=30;delay_ms(1000);while(1)keyscan();ad=get_ad0();ad<<=2;ad+=ADC_RESL;delay_ms(1);ad5=get_ad5();ad5<<=2;ad5+=ADC_RESL;/display_shu(1,1,ad/1000);/display_shu(1,2,ad%1000/100);/display_shu(1,3,ad%100/10);/display_shu(1,4,ad%10);/display_shu(2,1,ad5/1000);/display_shu(2,2,ad5%1000/100);/display_shu(2,3,ad5%100/10);/display_shu(2,4,ad5%10);if(er_flag=1)if(ad5<ad)shu1=ad-ad5;if(shu1>30)j1=18;while(j1-)r_dan();delay_ms(60);shu1=0;delay_ms(60);if(ad5>ad)shu2=ad5-ad;if(shu2>30)j1=18;while(j1-)l_dan();delay_ms(60);shu2=0;delay_ms(100);28

    注意事项

    本文(大学毕业论文---基于自由摆的平板控制系统设计论文.doc)为本站会员(知****量)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开