




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 题目名称:电动货物搬运车(H题)参赛队员: 卓浩泽 王鹏鹏 杨晨摘要: 本设计以单片机AT89C51作为电动搬运小车的检测和控制核心.电路分为路面黑线检测模块,金属物体探测模块,电机驱动模块,显示及声光指示模块等几部分.利用红外对管对小车的位置和状态进行检测,实现小车位置,速度,运动方向和运动时间等控制,使小车将金属物准确搬入仓库.Abstract: In this design, the controller of this dolly is based on MCU AT89C51. The circuit is composed of the following modules: bl
2、ack thread on the road module, metal detection module, motor drive module, display and sound-light instruction module. The position and the state of the car can be measured by the infrared ray emitting-receiving integrated diodes resultion into the control of the cars position, speed, motive directi
3、on and motive time, which makes the car to detect the metal sheets, enter garage accurately.目 录一、方案论证与比较.31、路线检测部分32、电机的选择部分33、物体探测部分34、显示部分3二、系统的具体设计与实现.3.1、系统硬件的设计4(1)电机驱动模块的电路设计与实现.4(2)路线检测模块的电路设计与实现5(3)声光报警模块的电路设计与实现5(4)物体探测及取放物模块的电路设计与实现6(5)显示和键盘模块的电路设计与实现72、系统的软件设计7三、系统调试101、测试设备102、测试方法103、测试
4、结果 .10四、结束语11参考文献.11附录11附1:元器件名细表.11.附2:仪器设备清单.11.附3:程序清单.11.一 、方案论证与比较1、路线检测部分方案一:采用普通发光二极管及光敏电阻组成的发射接收方案。该方案在实际使用时,容易受到外界光源的干扰,有时甚至检测不到。主要是因为可见光的反射效果跟地表的平坦程度、地表材料的反射情况均对检测效果产生直接影响。虽然可采取超高亮度发光二极管降低一定的干扰,但又增加额外的功率损耗。方案二:采用红外对管组成的反射接收方案。平时小车在行走时,黑线两旁的对管接收到反射信号,单片机控制小车直走,当小车偏离轨道或需要拐弯时,其中一边的对管在黑线上方,对管接
5、收不到反射信号,经过电压比较之后,把采集的信号送入单片机处理,由单片机来控制小车的方向。使用这种方法可以克服外界强光、路面杂物的干扰,增加了探测灵敏度,从而大大减少对地面黑线的误判和漏判。因此,我们选用了抗干扰能力较强的方案二。2电机的选择部分方案一:采用步进电机。步进电机的一个显著特点就是具有快速启停能力,但是由于车身过重,步进电机要避免产生滑步失步现象,控制较复杂。方案二:采用普通直流电机。直流电机具有优良的调速特性,调速平滑、方便,调整范围广;过载能力强,能承受频繁的冲击负载,可实现频繁的快速启动、制动和反转,控制比较方便。因此,我们选用了电路相对简单的直流电机作为动力源。3 物体探测部
6、分方案一:采用电感线圈构成一电感式三点式高频振荡的电路,当有金属物体靠近时由于电感量的改变从而改变振荡频率。该电路的线路简单,但该方案的高Q值的电感不易调试。方案二:采用霍尔集成元件,当小磁钢通过金属物体时,由于金属被磁化,从而使霍尔元件有一信号输出。但该方案受到磁钢的磁力的大小以及铁片的大小影响较大。容易导致误触发。方案三:采用红外对管,当小车行驶到物体前时,红外对管接收反射信号,单片机通过接收的信号控制小车的启停。这种方案实现起来相对简单,而且抗干扰能力也强,因此我们选用了方案三。4显示部分方案一:采用LED数码管显示器。LED数码管亮度高,醒目,但是其电路复杂,占用资源多且信息量少。方案
7、二:采用1602液晶显示器。1602有明显的优点:工作电流比LED小几个数量级,功耗很低;尺寸小;字迹清晰、美观,使人舒服;寿命长,使用方便。因此我们选用了第二种方案。二、系统的具体设计与实现 由上述主要电路的论证与比较可以确定整个电路有以下几部分组成:单片机作为系统的微控制器;1602液晶显示器构成的显示电路以及五组红外对管组成的检测部分。系统设计的总体结构如图1所示。以下分硬件与软件两部分进行具体分析。1602液晶显示声光报警 路程检测AT89C51键盘控制直流电机控制物体、仓库位置检测1、系统硬件的设计(1)电机驱动模块的电路设计与实现为了操作方便以及减少插线的个数,在电机驱动模块经测量
8、与调试后,将直流电机的方向控制端口IN1与IN3接高电平,IN2与IN4接低电平,从而使左右电机按顺时针方向前进,这样我们仅控制左右电机的使能端,既可控制小车的前进方向。经测试,预期设想得到完美实现。直流电机驱动部分电路如下图(1)所示: 图(1)(2)路线检测模块的电路设计与实现 该模块核心器件为红外对管发射元件,在小车底端加左右中三个对管(左右对管间距大于跑道宽度),用黑色胶带在白色板子上自制一个跑道,利用红外对管发射元件的原理,当左右对管都在跑道两侧且中间对管在跑道上时,小车向前直行,当左侧对管在跑道上时,小车向右偏转,当达到直行状态时,继续向前前进。同理,当小车左偏时,按上处理。这样就
9、可以达到正确寻迹的目的。路线检测模块的电路如图(2)所示。 图(2)(3)声光报警模块电路的设计和实现当小车正常寻迹时,通过单片机控制,蜂鸣器和发光二极管关闭,当小车偏离跑道时,蜂鸣器响同时发光二极管发光。生光报警模块电路如图(3)所示。 图(3)(4)物体探测及取放货模块的电路设计与实现 物体探测部分,在跑道固定货物位置,放置白色纸片,利用中间红外对管检测货物位置,当小车到达货物位置时,中间对管接受到反射回来的红外将电平拉低,从而使小车停止。 在取放货物模块,通过中断控制步进电机开启和关闭。当小车到达货物存放和放置的位置时,小车停止步进电机开中断,利用步进电机的正反转使取货杆到达货物位置,然
10、后通过控制单片机一个断口的电平高低来启动继电器的开与闭,从而将货物取到和放回指定位置。电路如图(4)所示。 图(4)该模块同时利用定时器计数并用液晶显示实现。如图(5)所示 图(5)(5)显示和键盘电路的设计与实现2、系统的软件设计 控制电路由单片机实现,主要负责对对路线的检测与纠错,小车状态和位置的改变,电机的驱动,光电报警提示等控制。(1)显示程序流程图 初始化调用时间测试模块显示取货时间及行驶总时间结束任务(2)路线探测及声光报警程序流程图开始是否走偏左偏右偏报警提示右拐并光报讯左拐并光报讯左右(3)时钟程序流程图是否到50ms开始Y调用中断子程序是否到1秒yyyYYN秒计数加一N是否到
11、1分Y分计数加一返回(4)取放货物程序流程图有路障中断子程序开始是否停下取货放货停止取货并光报讯放货返回YN三、系统测试1、测试设备 模拟跑道,卷尺,秒表2、 测试方法 在该过程中,我们遵循循序渐进的方法,逐一对各部分进行调试,对各部分电路错误的地方及时进行修改,从而将错误率减少到最低限度,进而在整个系统调试过程中可以快速方便的找到程序编写错误或者硬件部分的错误。在系统实现上,首先对小车寻迹进行调试以保证小车可以沿着轨道正确行进,然后对小车计数进行调试,使其在指定的货物和仓库位置停下。在此基础上,我们进一步对直流电机和步进电机的开启和中断进行控制,从而达到取货的目的。然后再对液晶显示进行调试。
12、最后将声光报警和无线通信进行调试。3、 测试结果红色货物黄色货物绿色货物仓库A仓库B仓库 C第一次停 走 走 走 走 停第二次 走 停 走 走 停 走第三次 走 走 停 停 走 走四、结束语 本设计综合运用光、机、电技术,实现了对小车状态和位置的控制。从最终的测试结果来看,本系统能很好地完成题目设计要求。参考文献:单片机原理及应用,李全利 仲伟峰 徐军 著,清华大学出版社;模拟电子线路基础,吴运昌著,华南理工大学出版社;数字电子技术基础,阎石著,高等教育出版社;单片机设计实例,楼然苗著,北京航空航天大学出版社;单片机实验与实践,周立功著,北京航空航天大学出版社附录:附1:元器件名细表1、AT8
13、9C512、L2973、L2934、1602液晶显示5、直流电机6、步进电机7、蜂鸣器8、发光二极管附2:仪器设备清单1、 数字万用表2、 稳压电源3、 微型计算机4、 伟福仿真器附3:程序清单加液晶显示程序: ;35h,36h,37h,38h org 0000h ljmp chus org 0003h ljmp zhongduan org 0bh ljmp tim0 org 1bh ljmp tim1 org 0080h COUNT50MS EQU 50H COUNT50MS1 EQU 51H DEFLAG BIT 20H.6 rflag bit 20h.5 yflag bit 20h.4
14、bflag bit 20h.3 RSEQUP1.2;P1.2脚接RS端 R_WEQUP1.1;P1.1脚接R_W端 E EQUP1.0;P1.0脚接E端 D_BUSEQUP2;P2口控制D_BUS输出 fengming equ p1.3 hand equ p2.0 leftenable equ p1.7 rightenable equ p1.6 clock equ p3.5 cw equ p3.4 ; chus: lcall duanstart ;中断初始化 clr hand ;lcall bujinstart ;步进电机初始化 LCALL DINENABLE MOV SP,#70H;堆栈指针
15、指向70H LCALL INITIAL;调用启动LCM子程序进行初始化 LCALLCLS;调用清除LCM子程序 ;MOVA,#80H;向A送立即数80H设定显示地址为第一行第一列LCALLWRITE_COM;调用写指令到LCM子程序MOVDPTR,#LINEA;将第一行第一列字符串的启始地址送入DPTR中LCALLDISP;调用显示字符串到LCM子程序MOVA,#0C0H;向 A送立即数0C0H设定显示地址为第一行第九列LCALLWRITE_COM;调用写指令到LCM子程序MOVDPTR,#LINEB;将第一行第九列字符串的启始地址送入DPTR中LCALLDISP;调用显示字符串到LCM子程序
16、 ;mainp: lcall jumpp ; 主循环 jnb DEFLAG,mainp lcall xiantime ;lcall DEL ljmp mainp ;duanstart: mov 35h,#0 ;中断初始化 setb it0 setb ea setb ex0 ret;DINenable: MOV TMOD,#11H ;设置定时器 MOV TH0,#4ch MOV TL0,#00h mov th1,#4ch mov tl1,#00h SETB EA SETB TR0 SETB ET0 MOV 48H,#0 MOV 49H,#0 MOV 52H,#0 MOV 53H,#0 ret ;
17、 TIM0: push acc ; 时钟 push psw ;定时中断程序 MOV TH0,#04ch MOV TL0, #00h SETB DEFLAG INC COUNT50MS MOV A,COUNT50MS CJNE A,#20,LOPDING MOV COUNT50MS,#0 inc 48h mov a,48h cjne a,#60,lopding MOV 48H,#0 inc 49h MOV A,49H CJNE A,#60,LOPDING MOV 49H,#0 ;lopding: pop psw pop acc RETI ; TIM1: push acc ; 时钟 push ps
18、w ;52秒,53分 ;定时中断程序 MOV TH1,#04ch MOV TL1, #00h SETB DEFLAG INC COUNT50MS1 MOV A,COUNT50MS1 CJNE A,#20,LOPDING MOV COUNT50MS1,#0 inc 52h mov a,52h cjne a,#60,lopding MOV 52H,#0 inc 53h MOV A,53H CJNE A,#60,LOPDING MOV 53H,#0 ;lopding1: pop psw pop acc RETI ;strightp: setb leftenable ;向前走 setb righten
19、able lcall delayp ret;leftp: clr rightenable ;左拐 setb leftenable lcall delayp clr leftenable ret ;rightp: clr leftenable ;右拐 setb rightenable lcall delayp clr rightenable ret;baocuop:setb fengming ; 报警让蜂鸣器响 ret ; ;小车方向调整 jumpp: setb p3.1 ;you setb p3.3 ;zuo mov a,p3 anl a,#0ah ;取后两位 cjne a,#00h,zhua
20、n1 lcall strightp ;等于11111100 朝前走 ljmp fanhui zhuan1: cjne a,#08h,zhuan2 lcall leftp ljmp fanhui ;等于11111110向左转 zhuan2: cjne a,#02h,baocuo lcall rightp ljmp fanhui ;等于11111101向右转 baocuo: lcall strightp fanhui: ret ; zhongduan: mov 55h,#200 lopdelay: lcall delayp djnz 55h,lopdelay jb p3.2,exit ;中断 in
21、c 35h lcall judgepexit: reti ; stop: clr leftenable ;停车 clr rightenable ret go: setb leftenable setb rightenable ret ; judgep: mov a,35h cjne a,#1,tiao2 ;判别停止位置 ; ; lcall stop lcall delayp1 reti tiao2: cjne a,#2,tiao7 lcall stop lcall jishi setb rflag lcall quhuo ;SETB P1.5 ;红货 红灯亮 ;CLR P1.4 reti ti
22、ao7: cjne a,#7,tiao10 lcall stop clr rflag lcall fanghuo reti tiao10: cjne a,#10,tiao13 lcall stop lcall jishi setb yflag lcall quhuo ;CLR P1.5 ;绿货 绿灯亮 ;SETB P1.4 reti tiao13: cjne a,#13,tiao18 lcall stop clr yflag lcall fanghuo reti tiao18: cjne a,#18,tiao19 lcall stop lcall jishi setb bflag lcall
23、quhuo ;SETB P1.5 ; 黄货黄灯亮 ;SETB P1.4 reti tiao19: cjne a,#19,tiao22 lcall stop clr bflag lcall fanghuo reti tiao22: cjne a,#22,tiaoting lcall stop mov 35h,#0 jmp $ tiaoting: reti ; delayp: MOV R5,#4 ;转向延时 D01: MOV R7,#123 NOP D02: DJNZ R7,D02 DJNZ r5,D01 RET ;delayp1: mov r6 ,#30 ;5秒延时 d010 : MOV R3,
24、#200 D011: MOV R4,#123 NOP nop nop D012: DJNZ R4,D012 DJNZ r3,D011 djnz r6,d010 RET ;取货 quhuo: clr cw ;步进电机正转 mov 37h,#2 lop10: mov 36h,#200 loop10: cpl clock lcall delayp djnz 36h, loop10 djnz 37h,lop10 setb hand lcall delayp1 ;延时5s等待取货 setb cw ; 步进电机反转 mov 37h,#2 lop11: mov 36h,#200 loop11: cpl cl
25、ock lcall delayp djnz 36h, loop11 djnz 37h,lop11 ret ;放货fanghuo: clr cw ;步进电机正转 mov 37h,#2 lop20: mov 36h,#200 loop20: cpl clock lcall delayp djnz 36h, loop20 djnz 37h,lop20 clr hand lcall delayp1 ;延时5s等待取货 setb cw ; 步进电机反转 mov 37h,#2 lop21: mov 36h,#200 loop21: cpl clock lcall delayp djnz 36h, loop
26、21 djnz 37h,lop21 ret ret xiantime: ; ;红 jnb rflag ,ylop MOV 38h,#86h ;向A送立即数80H设定显示地址为第一行第一列 mov 39h,52h lcall xian1 mov 38h,#83h mov 39h,53h lcall xian1 ; ; 黄 ylop: jnb yflag,blop mov 38h,#8Fh mov 39h,52h lcall xian1 mov 38h,#8Ch mov 39h,53h lcall xian1 ; ; 绿 blop: jnb bflag,zlop mov 38h,#0c6h mov
27、 39h,52h lcall xian1 mov 38h,#0c3h mov 39h,53h lcall xian1 ;总时 zlop: mov 38h,#0cFh mov 39h,48h lcall xian1 mov 38h,#0cCh mov 39h,49h lcall xian1 ret xian1: mov a,38h LCALL WRITE_COM;调用写指令到LCM子程序 mov a,39h;将第一行第一列字符串的启始地址送入DPTR中 lcall ascchange LCALLWRITE_DATA;调用写数据到LCM子程序;调用显示字符串到LCM子程序 DEC 38H MOV
28、A,38H LCALL WRITE_COM MOV A,B LCALLWRITE_DATA;调用写数据到LCM子程序 ret;显示入口参数LINEA: DB"r.00:00 y.00:00",00HLINEb: DB "b.00:00 t.00:00",00H;INITIAL:;启动LCM子程序MOVA,#38H ;设置显示模式,设置16X2显示,5X7点阵,8位数据接口LCALLWRITE_COMMOVA,#0CH ;设置显示开或关及光标,开显示,不显示光标LCALLWRITE_COMMOVA,#06H ;设置显示开或关及光标,地址指针及光标加一LCA
29、LLWRITE_COMRET;CHECK_BUSY:;查询忙碌信号子程序PUSHACCBUSY_LOOP:CLRESETBR_WCLRRSSETBEMOVA,D_BUSCLREJBACC.7,BUSY_LOOPPOPACCLCALLDELRET;WRITE_COM:;写指令到LCM子程序LCALLCHECK_BUSYCLRECLRRSCLRR_WSETBEMOVD_BUS,ACLRERET;WRITE_DATA:;写数据到LCM子程序LCALLCHECK_BUSYCLRESETBRSCLRR_WSETBEMOVD_BUS,ACLRERET;CLS:;清除LCM子程序MOVA,#01H ;显示清
30、屏LCALLWRITE_COMRET;DEL:MOVR1,#5;2.7ms延时子程序D1:MOVR2,#248DJNZR2,$DJNZR1,D1RET;显示字符串DISP:PUSHACC;将A的内容压栈DISP_LOOP:CLRA;A清零MOVCA,A+DPTR;查表将字符串内容送入AJZEND_DISP;若查到的内容为"00H"则终止查表LCALLWRITE_DATA;调用写数据到LCM子程序INCDPTR;DPTR加1指向下一个对象SJMPDISP_LOOP ;跳转到DISP_LOOP循环执行END_DISP:POPACC;弹出压栈内容至ARET ;入口A,出口高位AS
31、C B,低位ASC Aascchange: mov b,#10 div ab add a,#30h xch a,b add a,#30hRET; jishi: SETB TR1 SETB ET1 mov th1,#4ch mov tl1,#00h MOV 52H,#0 MOV 53H,#0 ret 不加液晶显示程序: ;35h,36h,37h,38h org 0000h ljmp chus org 0003h ljmp zhongduan org 0080h fengming equ p1.3 hand equ p2.0 leftenable equ p1.7 rightenable equ
32、p1.6 clock equ p3.5 cw equ p3.4 ; chus: lcall duanstart ;中断初始化 clr hand ;lcall bujinstart ;步进电机初始化 ;mainp: lcall jumpp ; 主循环 ljmp mainp ;duanstart: mov 35h,#0 ;中断初始化 setb it0 setb ea setb ex0 ret; ;strightp: setb leftenable ;向前走 setb rightenable lcall delayp ret;leftp: clr rightenable ;左拐 setb lefte
33、nable lcall delayp clr leftenable ret ;rightp: clr leftenable ;右拐 setb rightenable lcall delayp clr rightenable ret;baocuop:setb fengming ; 报警让蜂鸣器响 ret ; ;小车方向调整 jumpp: setb p3.1 ;you setb p3.3 ;zuo mov a,p3 anl a,#0ah ;取后两位 cjne a,#00h,zhuan1 lcall strightp ;等于11111100 朝前走 ljmp fanhui zhuan1: cjne a,#08h,zhuan2 lcall leftp ljmp fanhui ;等于11111110向左转 zhuan2: cjne a,#02h,baocuo lcall rightp ljmp fanhui ;等于11111101向右转 baocuo: lcall strightp fa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年荷兰豆项目可行性研究报告
- 2025-2030中国纽扣电池行业发展分析及投资风险预警与发展策略研究报告
- 2025-2030中国篮球行业发展分析及投资前景预测研究报告
- 2025-2030中国等离子移动车行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2025-2030中国空运产品行业市场发展趋势与前景展望战略研究报告
- 2025年胶垫片项目可行性研究报告
- 2025-2030中国硅胶干燥剂转子行业市场现状供需分析及投资评估规划分析研究报告
- 2025年岗前安全培训考试试题答案完整版
- 2025公司三级安全培训考试试题含答案【基础题】
- 2025年耐腐泵阀项目可行性研究报告
- 食品中蜡样芽孢杆菌的检验课件
- 食为天:2024中国食品饮料行业白皮书
- 2025南水北调东线山东干线限责任公司人才招聘30人管理单位笔试遴选500模拟题附带答案详解
- 电力行业电力调度培训
- 2024-2030年中国乳腺疾病预防与治疗行业深度调查及投资价值研究报告版
- 《加强基层工会组织建设 规范基层工会换届选举》课件
- 职工代表提案培训
- 轧钢工技能理论考试题库(含答案)
- 《回归分析》 课件 第1章 绪论
- 2024年资格考试-对外汉语教师资格证考试近5年真题集锦(频考类试题)带答案
- 2024-2025学年上海黄浦区高三下学期第一次考试化学试题含解析
评论
0/150
提交评论