电动货物搬运车Word文档格式.docx
《电动货物搬运车Word文档格式.docx》由会员分享,可在线阅读,更多相关《电动货物搬运车Word文档格式.docx(33页珍藏版)》请在冰豆网上搜索。
采用电感线圈构成一电感式三点式高频振荡的电路,当有金属物体靠近时由于电感量的改变从而改变振荡频率。
该电路的线路简单,但该方案的高Q值的电感不易调试。
方案二:
采用霍尔集成元件,当小磁钢通过金属物体时,由于金属被磁化,从而使霍尔元件有一信号输出。
但该方案受到磁钢的磁力的大小以及铁片的大小影响较大。
容易导致误触发。
方案三:
采用红外对管,当小车行驶到物体前时,红外对管接收反射信号,单片机通过接收的信号控制小车的启停。
这种方案实现起来相对简单,而且抗干扰能力也强,因此我们选用了方案三。
4显示部分
采用LED数码管显示器。
LED数码管亮度高,醒目,但是其电路复杂,占用资源多且信息量少。
采用1602液晶显示器。
1602有明显的优点:
工作电流比LED小几个数量级,功耗很低;
尺寸小;
字迹清晰、美观,使人舒服;
寿命长,使用方便。
因此我们选用了第二种方案。
二、系统的具体设计与实现由上述主要电路的论证与比较可以确定整个电路有以下几部分组成:
单片机作为系统的微控制器;
1602液晶显示器构成的显示电路以及五组红外对管组成的检测部分。
系统设计的总体结构如图1所示。
以下分硬件与软件两部分进行具体分析。
1、系统硬件的设计
(1)电机驱动模块的电路设计与实现
为了操作方便以及减少插线的个数,在电机驱动模块经测量与调试后,将直流电机的方向控制端口IN1与IN3接高电平,IN2与IN4接低电平,从而使左右电机按顺时针方向前进,这样我们仅控制左右电机的使能端,既可控制小车的前进方向。
经测试,预期设想得到完美实现。
直流电机驱动部分电路如下图
(1)所示:
+7.2V
VCC
ENABLE1
MG1
ENABLE2
■'
ll
+5V
TORDC
丄1
VSS,一
*IN1
IN4
9UT1
OUT4■-
丄GND
GND-
-GND
L293GNd,
-OUT2
OUT3-
-IN2
IN3(
-VS
E2L
MG2
MOTORDC
电动机驱动
图
(1)
(2)路线检测模块的电路设计与实现
该模块核心器件为红外对管发射元件,在小车底端加左右中三个对管(左右对管间距大于跑道宽度),用黑色胶带在白色板子上自制一个跑道,利用红外对管发射元件的原理,当左右对管都在跑道两侧且中间对管在跑道上时,小车向前直行,当左侧对管在跑道上时,
小车向右偏转,当达到直行状态时,继续向前前进。
同理,当小车左偏时,按上处理。
这样就可以达到正确寻迹的目的。
路线检测模块的电路如图
(2)所示。
输出端
图
(2)
(3)声光报警模块电路的设计和实现
当小车正常寻迹时,通过单片机控制,蜂鸣器和发光二极管关闭,当小车偏离跑道时,蜂鸣器响同时发光二极管发光。
生光报警模块电路如图(3)所示。
■I
图(3)
(4)物体探测及取放货模块的电路设计与实现
物体探测部分,在跑道固定货物位置,放置白色纸片,利用中间红外对管检测货物位置,当小车到达货物位置时,中间对管接受到反射回来的红外将电平拉低,从而使小车停止。
在取放货物模块,通过中断控制步进电机开启和关闭。
当小车到达货物存放和放置的位置时,小车停止步进电机开中断,利用步进电机的正反转使取货杆到达货物位置,然后通过控制单片机一个断口的电平高低来启动继电器的开与闭,从而将货物取到和放回指定位置。
电路如图(4)所示。
5V
36V
■
CLOCK
HAIF
RESET
ENABLE
VREF
CNVY
lorx^oc
SENSEI
SENSE2
U1
1A1
1Y1
1A2
1Y2
2A1
2Y1
2A2
2Y2
1E
2E
1EN
2EN
VCC1VCC2
L298
C2
470uF
C1
100nF
图(4)
该模块同时利用定时器计数并用液晶显示实现。
如图(5)所示
0ZO61
O10Z3456
10Z34O67891111111
39
38
37
36
35
34
33
32
Q2N2907A
1
31
4
■-_5—1~~6-^可D
CRYSTAL
—9
P0.0/AD0
P2.0/A8
P0.1/AD1
P2.1/A9
P0.2/AD2
P2.2/A10
P0.3/AD3
P2.3/A11
P0.4/AD4
P2.4/A12
P0.5/AD5
P2.5/A13
P0.6/AD6
P2.6/A14
P0.7/AD7
P2.7/A15
P1.0
P3.0/RXD
P1.1
P3.1/TXD
P1.2
P3.2/INT0-
P1.3
P3.3/INT1-
P1.4
P3.4/T0
P1.5
P3.5/T1
P1.6
P1.7
P3.6/WR-
P3.7/RD-
XTAL1
ALE/PROG
XTAL2
EA/VPP
PSEN
RST
vcc
vss
10
13
AT89C51
■^5—
30
29-
21
^23—
■-24—-25—
26-
28-
W340
F953-XJ
2
JX-35]
控制端
2、系统的软件设计
控制电路由单片机实现,主要负责对对路线的检测与纠错,小车状态和位置的改变,电机的驱动,光电报警提示等控制。
(1)显示程序流程图
(2)路线探测及声光报警程序流程图
(3)时钟程序流程图
(4)取放货物程序流程图
三、系统测试
1、测试设备
模拟跑道,卷尺,秒表
2、测试方法
在该过程中,我们遵循循序渐进的方法,逐一对各部分进行调试,对各部分电路错误的地方及时进行修改,从而将错误率减少到最低限度,进而在整个系统调试过程中可以快速方便的找到程序编写错误或者硬件部分的错误。
在系统实现上,首先对小车寻迹进行调试以保证小车可以沿着轨道正确行进,然后对小车计数进行调试,使其在指定的货物和仓库位置停下。
在此基础上,我们进一步对直流电机和步进电机的开启和中断进行控制,从而达到取货的目的。
然后再对液晶显示进行调试。
最后将声光报警和无线通信进行调试。
3、测试结果
红色货物
黄色货物
绿色货物
仓库A
仓库B
仓库C
第一次
停
走
第二次
第三次
四、结束语
本设计综合运用光、机、电技术,实现了对小车状态和位置的控制。
从最终的测试结果来看,本系统能很好地完成题目设计要求。
参考文献:
《单片机原理及应用》,李全利仲伟峰徐军著,清华大学出版社;
《模拟电子线路基础》,吴运昌著,华南理工大学出版社;
《数字电子技术基础》,阎石著,高等教育出版社;
《单片机设计实例》,楼然苗著,北京航空航天大学出版社;
《单片机实验与实践》,周立功著,北京航空航天大学出版社
附录:
元器件名细表
1、AT89C51
2、L297
3、L293
4、1602液晶显示
5、直流电机
&
步进电机
7、蜂鸣器
8、发光二极管
仪器设备清单
1、数字万用表
2、稳压电源
3、微型计算机
4、伟福仿真器
附3:
程序清单
加液晶显示程序:
;
35h,36h,37h,38h
org0000h
ljmpchus
org0003h
ljmpzhongduan
org0bh
ljmptim0
org1bh
ljmptim1
org0080h
COUNT50MSEQU50H
COUNT50MS1EQU51H
DEFLAGBIT20H.6rflagbit20h.5
yflagbit20h.4
bflagbit20h.3
RSEQUP1.2
R_WEQUP1.1
EEQUP1.0
D_BUSEQUP2
;
P1.2脚接RS端
P1.1脚接R_W端;
P1.0脚接E端
P2口控希9D_BUS输出
fengmingequp1.3handequp2.0leftenableequp1.7
rightenableclockcw
equp1.6
equp3.5
equp3.4
chus:
lcallduanstart;
中断初始化clrhand
lcallbujinstart;
步进电机初始化LCALLDINENABLE
MOVSP,#70H;
堆栈指针指向70H
LCALLINITIAL;
调用启动LCM子程序进行初始化
LCALLCLS;
调用清除LCM子程序
MOVA,#80H;
向A送立即数80H设定显示地址为第一行第一列
LCALLWRITE_COM;
调用写指令到LCM子程序
MOVDPTR,#LINEA;
将第一行第一列字符串的启始地址送入DPTR中
LCALLDISP;
调用显示字符串到LCM子程序
MOVA,#0C0H;
向A送立即数0C0H设定显示地址为第一行第九列
MOVDPTR,#LINEB;
将第一行第九列字符串的启始地址送入DPTR中LCALLDISP;
mainp:
lcalljumpp;
主循环jnbDEFLAG,mainplcallxiantime;
lcallDELljmpmainp
duanstart:
mov35h,#0;
中断初始化
setbit0
setbea
setbex0ret
JJJJJJJJJJJJJJJJJJJJJJJJJJJ
DINenable:
MOVTMOD,#11H;
设置定时器
MOV
MOVmovmov
SETB
TH0,#4ch
TL0,#00hth1,#4chtl1,#00h
EA
TR0
ET0
48H,#0
49H,#0
52H,#0
53H,#0
ret
TIM0:
pushacc;
时钟pushpsw
定时中断程序
MOVTH0,#04ch
MOVTL0,#00h
SETBDEFLAG
INCCOUNT50MS
MOVA,COUNT50MS
CJNEA,#20,LOPDING
MOVCOUNT50MS,#0
inc48h
mova,48h
cjnea,#60,lopding
MOV48H,#0
inc49h
MOVA,49H
CJNEA,#60,LOPDING
MOV49H,#0
lopding:
poppswpopacc
RETI
TIM1:
时钟
pushpsw;
52秒,53分;
MOVTH1,#04ch
MOVTL1,#00h
INCCOUNT50MS1
MOVA,COUNT50MS1
MOVCOUNT50MS1,#0inc52hmova,52hcjnea,#60,lopding
MOV52H,#0inc53hMOVA,53H
CJNEA,#60,LOPDINGMOV53H,#0
lopding1:
strightp:
setb
leftenable
向前走
setb
rightenable
delayp
lcallret
leftp:
clrrightenable;
左拐setbleftenable
lcalldelayp
clrleftenable
lcall
clrret
;
小车方向调整
jumpp:
setbp3.1
setbp3.3
you
zuo
mova,p3anla,#0ah
取后两位
cjnea,#00h,zhuan1
lcallstrightp;
等于11111100朝前走
ljmpfanhui
等于11111110向左转
等于11111101向右转
zhuan1:
cjnea,#08h,zhuan2lcallleftpljmpfanhui
zhuan2:
cjnea,#02h,baocuolcallrightpljmpfanhui
baocuo:
lcallstrightpfanhui:
ret
zhongduan:
mov55h,#200lopdelay:
lcalldelaypdjnz55h,lopdelay
exit:
jbp3.2,exitinc35hlcalljudgepreti
中断
stop:
go:
clrleftenable;
停车
clrrightenable
setbleftenable
setbrightenableret
judgep:
mova,35h
cjnea,#1,tiao2;
判别停止位置
tiao2:
tiao7:
tiao10:
lcallstop
lcalldelayp1
reti
cjnea,#2,tiao7
lcalljishi
setbrflag
lcallquhuo
SETBP1.5;
红货红灯亮
CLRP1.4
cjnea,#7,tiao10
clrrflag
lcallfanghuo
cjnea,#10,tiao13
setbyflag
CLRP1.5;
绿货绿灯亮
SETBP1.4
tiao13:
cjnea,#13,tiao18
clryflaglcallfanghuo
tiao18:
cjnea,#18,tiao19
setbbflag
黄货黄灯亮
tiao19:
cjnea,#19,tiao22
clrbflaglcallfanghuo
tiao22:
cjnea,#22,tiaoting
lcallstopmov35h,#0jmp$
tiaoting:
NOP
D02:
DJNZR7,D02
DJNZr5,D01
RET
delayp1:
movr6,#30;
5秒延时
d010:
R3,#200
D011:
R4,#123
nop
D012:
DJNZ
R4,D012
DJNZr3,D011djnzr6,d010RET
取货quhuo:
clrcw;
步进电机正转
mov37h,#2
lop10:
mov36h,#200loop10:
cplclocklcalldelaypdjnz36h,loop10djnz37h,lop10setbhandlcalldelayp1;
延时5s等待取货
setbcw;
步进电机反转mov37h,#2
lop11:
mov36h,#200loop11:
cplclocklcalldelaypdjnz36h,loop11djnz37h,lop11ret
放货fanghuo:
lop20:
mov36h,#200
loop20:
cplclocklcalldelaypdjnz36h,loop20djnz37h,lop20clrhandlcalldelayp1;
lop21:
loop21:
cplclocklcalldelaypdjnz36h,loop21djnz37h,lop21retret
xiantime:
jnbrflag,ylop
MOV38h,#86h
向A送立即数80H设定显示地址为第一行第一列
mov39h,52h
lcallxian1
mov38h,#83h
mov39h,53h
lcallxian1;
黄
JJJJJJJJJJJJJJJJJ/、
ylop:
jnbyflag,blopmov38h,#8Fhmov39h,52hlcallxian1mov38h,#8Chmov39h,53hlcallxian1
绿
JJJJJJJJJJJJJJJJJ*"
<
J、
blop:
jnbbflag,zlopmov38h,#0c6h
lcallxian1mov38h,#0c3h
JJJJJJJJJ!
总时
zlop:
mov38h,#0cFhmov39h,48hlcallxian1
mov38h,#0cChmov39h,49hlcallxian1ret
xian1:
mova,38h
调用写指令到LCM子程序mova,39h;
将第一行第一列字符串的启始地址送入DPTR中lcallascchange
LCALLWRITE_DATA;
调用写数据到LCM子程序;
调用显示字符串到LCM子程序
DEC38H
MOVA,38H
LCALLWRITE_COM
MOVA,B
LCALLWRITE_DATA