




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告设计题目: 遥控小车 基于51单片机的步进电机调速系统学 院: 专 业: 班 级: 学 号: 姓 名: 电子邮件: 时 间: 成 绩: 指导教师: 华 南 农 业 大 学理 学 院 应 用 物 理 系课 程 设 计(报告)任 务 书学生姓名 指导教师 职称 学生学号 专业 电子信息科学与技术 题目 基于51单片机的步进电机调速系统(遥控小车)任务与要求1. 设计并制作电路,利用单片计控制步进电机运转。2. 通过键盘可以不间断地设定改变电机的转速、转向。3. 利用显示器实时显示转速等参数。4. 扩展功能:可设定转动步数。开始日期 2014 年3 月 完成日期 2014 年3 月 1 引言步进电机是一种将电脉冲转化为角位移的执行机构。目前,步进机已经广泛应用于领域,例如工业生产中的机械臂的控制,照明装置和监控摄像机转动等。步进机在装置转动、精确位移方面有很重大的作用。本系统是基于STC89C51 单片机的遥控小车。采用STC89C51单片机作为控制核心,通过ULN2003A驱动步进机(28BYJ-48)转动,由按键和显示屏1602组成人机交互模块,同时通过315M无线发射和接收模块向单片机输入控制信号,将整个系统固定于简易小车上,最终实现小车测试和远程遥控功能。基本达到预定的设计要求以及功能的扩展。2 系统的设计与理论分析2.1 系统总体设计2.2 理论分析本设计分为两种工作模式:测试模式、遥控模式。在电路板上有一个带锁的开关进行设置。测试模式工作时,通过控制小车上的按键进行加速、减速、反转、设置、步数增、步数减等按键,单片机扫描按键,通过软件控制液晶模块显示对应的转速、设置的速度和步数,同时控制步进机模块进行相应的转动。步进机的是由ULN2003A达林顿管驱动,由单片机控制输入脉冲的频率来控制步进机的转速,单片机是通过程序查表对4个I/O口输出脉冲,本次设计采用的是两相四线减速步进机,步进角为5.625,减速比为64:1,程序采用的是8拍查表,具有较好的扭矩。遥控模式工作时,遥控部分五个按键分别输入前、后、左、右、暂停,单片机扫描按键,通过无线发射模块发射串行编码,小车的无线接收模块接收对应的编码,送至单片机进行解码,从而控制液晶模块的显示和步进机模块的工作,进而完成功能。设定单通道无线收发模块通信协议为:下降沿: 1ms的高电平,随后500us的低电平。起始位: 4ms的高电平,随后4ms的低电平。数据1: 2ms的高电平,随后500us的低电平。数据0: 1ms的高电平,随后500us的低电平。结束位:4ms的低电平。发送指令程序为:下降沿,起始位,3个数据位,结束位发送编码为:右转:000前进:001后退:010左转:011接收程序通过触发外部中断1来接受信号,当P3.3口收到下降沿信号是即开始接收数据。3 硬件系统设计3.1 总体电路图3.2 单片机最小系统3.3 步进机模块本次设计采用的是两相四线减速步进电机,步进角为5.625,减速比为64:1 采用ULN2003达林顿管驱动。3.4 液晶显示模块液晶显示模块采用LCD1602显示屏。3.5 测试按键模块3.6 遥控器部分4 软件系统设计 4.1 主函数4.2 遥控模式程序4.3 测试模式程序4.4 键盘扫描程序5 系统运行情况分析打开小车开关后,按下“测试”按键,小车进入测试模式。连续按 “加速”按键时,小车轮子转速明显变快;连续按“减速”按键时,小车轮子转速逐渐变慢;按“反转”按键轮子转速反向。按“设置”按键会看到液晶显示屏关标闪烁,按“设置”键使光标移动,按“+”、“-”设置小车速度和步数,再一次按“设置”键,小车会依照这顶要求行驶。按“测试”按键使其弹起,测试小车进入遥控模式工作时,打开遥控器,分别按下“前”、“后”、“左”、“右”,小车会依照对应的方向行驶,按下“暂停”键时,小车停止。由此,改系统基本达到设计要求及拓展功能的要求。不过因为本设计采用的28BYJ-48步进机为减速步进机,转动的上限值比较下,导致小车的行驶效果较慢,这个问题可以通过课后改用其他型号计算机得以解决。6 总结与讨论经过四个星期的单片机课程设计,终于完成了基于51单片机的步进电机调速系统的设计,基本达到设计要求。同时自己在该系统上扩展无线收发模块,将该系统拓展为遥控小车。在本次设计的过程中,我们组成员进行了热烈讨论及反复的斟酌、修改。首先对需要用到的元器件的参数进行充分的了解,然后在计算机上用Proteus进行了与Keil软件的联动仿真。确认仿真正确看是硬件的焊接与调试。在实验过程中,我们也遇到了许多问题,如步进机转动不起来、液晶屏显示乱码等,但是经过不断的探索、思考、验证,我们最终克服了种种困难,解决了所遇到的问题,成功地完成了这个课程设计。在这个过程中,除了学习到关于本次设计的一些专业知识、电路焊接实践经验外,同时,大家的刻苦耐劳、团队合作的品质也得到了充分的锻炼。附1:实物图:图1 遥控小车图2 遥控器附2:参考文献1 李朝青. 单片机原理及接口技术M.第3版. 北京航空航天大学出版社, 2005.2 杨素行. 模拟电子技术基础简明教程M. 第三版. 高等教育出版社, 2006.附3:组内分工:A.庞明辕:电路焊接、单片机编程、电路调试、辅助完成设计报告。B.杜烁:电路焊接、单片机编程、辅助方案改进、辅助完成设计报告。C.汤安琪:电路焊接、数据采集、完成设计报告。附4:元器件清单表格元件数量STM89C51216022ULN2003A228BYJ-482315M无线收发模块2简易小车1其它(开关、电池)若干评语: 成绩: 附:程序代码:/*单片机课程设计C语言程序*题目:基于步进机的小车成员:汤安琪、庞明辕、杜烁。日期:2014-3-1*/#include #define uchar unsigned char#define uint unsigned intsbit a = P10; /反向sbit b = P11; /减速sbit c = P12; /加速sbit d = P13; /开关sbit f = P14; /设置sbit g = P15; /加sbit h = P16; /减sbit lcden = P37; /1602使能sbit lcdrs = P36; /1602写命令/数据选择端sbit trans = P33; /射频串行输入端bit n,p;uint step,time,flag,flag1,num,snum,setnum,stepnum,count,temp,sum,t,e,j,k,m;uchar v0,v1,v2,count1,num1,temp1;uchar code table1 = 0x11,0x33,0x22,0x66,0x44,0xcc,0x88,0x99;/左uchar code table2 = 0x11,0x99,0x88,0xcc,0x44,0x66,0x22,0x33;/右uchar code table3 = 0x11,0x93,0x82,0xc6,0x44,0x6c,0x28,0x39;/后uchar code table4 = 0x11,0x39,0x28,0x6c,0x44,0xc6,0x82,0x93;/前uchar code table5 = SPEED: 000 r/h;uchar code table6 = SET:000 STEP:000;/*-延时程序 -*/void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=10;y0;y-);void delay1(uint z) /10usuchar a,b,x; for(x=0;x0;b-) for(a=2;a0;a-);/*-LCD1602写命令程序 -*/void write_com(uchar com)lcdrs = 0;P0 = com;delay(5);lcden = 1;delay(5);lcden = 0;/*-LCD1602写数据程序 -*/void write_dat(uchar dat)lcdrs = 1;P0 = dat;delay(5);lcden = 1;delay(5);lcden = 0;/*-基于LCD1602的显示程序-*/void display(uchar add,uchar dat)uint bai,shi,ge;bai = dat/100;shi = (dat-(dat/100)*100)/10;ge = dat%10;write_com(0x80+add);write_dat(0x30+bai);write_dat(0x30+shi);write_dat(0x30+ge);/*-小车速度计算程序-*/void speed_dis()double n;if(b = 0)delay(5);if(b=0)while(!b);time = time+10;if(time=300)time=300; if(c = 0)delay(5);if(c=0)while(!c);time = time-10;if(time=70)time=70; n = 15*time/1024; count = 60*n;/*-步数执行程序:进入设置模式设置步数,确认后执行。-*/void steprun()uint m;m=512*stepnum;while(m-)uchar i;for(i=0;i8;i+)P2 = table4i;delay1(time);speed_dis();display(7,count);if(f=0)break;/*-转速设置程序:进入设置模式设置转速确认后执行。-*/void setrun()while (1)uchar i;time=(setnum*1024/900);for(i=0;i35&t35&t5&t15&t5&t15&t5&t15&t25) /数据1v2=1;while(trans=0);t=0;count1=v0+v1+v2;switch(count1)case 0:e=0;j=1;k=1;m=1;break; /000case 1:e=1;j=0;k=1;m=1;break; /001case 2:e=1;j=1;k=0;m=1;break; /010case 3:e=1;j=1;k=1;m=0;break; /011case 4:e=1;j=1;k=1;m=1;p=0;break; /100 n=0;EX1=1;/*-控制小车运行程序(前后左右),运行时显示小车的实时速度。-*/void run()if(flag=0&flag1=0)if(j=0)uchar i,q;p=1;while(1)if(n=1)break;for(q=0;q128;q+)for(i=0;i8;i+)P2 = table4i;delay1(time); speed_dis();display(7,count);if(m=0)uchar i,q;p=1;while(1)if(n=1)break;for(q=0;q128;q+)for(i=0;i8;i+)P2 = table1i;delay1(time); speed_dis();display(7,count);if(k=0)uchar i,q;p=1;while(1)if(n=1)break;for(q=0;q128;q+)for(i=0;i8;i+)P2 = table3i;delay1(time); speed_dis();display(7,count);if(e=0)uchar i,q;p=1;while(1)if(n=1)break;for(q=0;q128;q+)for(i=0;i8;i+)P2 = table2i;delay1(time); speed_dis();display(7,count); receive();/*-正转程序-*/void forward()uint i,q;for(q=0;q512;q+)if(d=1|a=0)break;for(i=0;i8;i+)P2 = table4i;delay1(time); speed_dis();display(7,count); /*-反转程序-*/void reverse()uint i,q;for(q=0;q512;q+)if(d=1|a=1)break;for(i=0;i8;i+)P2 = table3i;delay1(time); speed_dis();display(7,count); /*-小车停止状态下的测试程序功能:b增加步进机脉冲周期 c减少步进机脉冲周期, d为测试开关, a为反转开关,运行状态实时显示步进机速度。-*/void testcar()if(flag1=0)if(d = 0)flag = 1; /测试状态下,保证方向按键无效if(a=0)reverse();else forward();else display(7,0);flag = 0; /*-键盘扫描程序。功能:f为设置键,g为加键,h为减键,按下g键次数:1:速度设置2:步数设置3:确认按下g键对应数+1按下h键对应数-1-*/void keyscan()if(f=0) delay(5);if(f=0)while(!f);snum+;flag1 = 1;if(snum=1)write_com(0xc6);write_com(0x0f);if(snum=2)write_com(0xc0+15);if(snum=3)write_com(0x0c);snum=0;flag1 = 0;time = setnum+40;display(7,time);write_com(0x0c);if(stepnum!=0)steprun();if(setnum!=0)setrun(); if(snum!=0)if(g=0)delay(5);if(g=0)while(!g);if(snum=1)setnum = setnum+10;if(setnum=99)setnum=0;display(0x40+4,setnum+40);write_com(0xc0+6);if(snum=2)stepnum+;if(stepnum=99)stepnum=0;display(0x40+13,stepnum);write_com(0xc0+15);if(h=0)delay(5);if(h=0)while(!h);if(snum=1)setnum = setnum-10;if(setnum0)setnum=99;display(0x40+4,setnum+40);write_com(0xc0+6);if(snum=2)stepnum-;if(stepnum0)stepnum=99;display(0x40+13,stepn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防汛知识培训工作方案课件
- 防汛救灾知识培训感悟课件
- 防汛抗灾知识培训课件
- 书店行业阅读推广方案
- 防拐防骗培训知识课件
- 雨水收集盖板更换合同4篇
- 男性输精管结扎术后附睾淤积症护理查房
- 医疗数据的可视化与成本控制分析-洞察及研究
- 部门用电安全培训总结课件
- 基于数字孪生的交流软起动装置故障预测与动态参数自校正技术路径探索
- 动物无害化处理场建设项目可行性研究报告建议书
- 2025-2030年中国中高端猪肉市场发展现状及营销策略分析报告
- 全国林业碳汇计量监测技术指南(试行)
- DBJ33T 1289-2022 住宅厨房混合排气道系统应用技术规程
- 低温杜瓦瓶安全操作规程(4篇)
- 2025年中电科太力通信科技限公司招聘高频重点提升(共500题)附带答案详解
- 蕈样肉芽肿的临床特征
- 企业内部管理系统升级改造合同
- 水库白蚁防治施工方案设计
- 《套餐销售技巧培训》课件
- 第一单元 分数乘法(单元测试)(含答案)-2024-2025学年六年级上册人教版数学
评论
0/150
提交评论