自动车库控制系统设计.docx

上传人:b****5 文档编号:11744534 上传时间:2023-03-31 格式:DOCX 页数:14 大小:144.44KB
下载 相关 举报
自动车库控制系统设计.docx_第1页
第1页 / 共14页
自动车库控制系统设计.docx_第2页
第2页 / 共14页
自动车库控制系统设计.docx_第3页
第3页 / 共14页
自动车库控制系统设计.docx_第4页
第4页 / 共14页
自动车库控制系统设计.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

自动车库控制系统设计.docx

《自动车库控制系统设计.docx》由会员分享,可在线阅读,更多相关《自动车库控制系统设计.docx(14页珍藏版)》请在冰豆网上搜索。

自动车库控制系统设计.docx

自动车库控制系统设计

自动车库控制系统设计、组装与调试

1.设计要求

(1)用AT89C51单片机及外围电路组成自动车库控制系统。

车库为6车位,分为A、B两个区,每区3个车位,编号分别为A1、A2、A3和B1、B2、B3。

(2)根据控制台的指令,车库外的车送到指定车位,或从指定车位将车取出。

2.设计方案

整个系统由自动车库和控制系统两大部分组成。

车库部分(如图4-33所示)为A1-A3、B1-B3、C0-C3是送车平台的运送通道。

“驶入”和“驶离”为两个按键,触动“驶入”按键表示有车驶入在C0位置的送车平台。

触动“驶离”按键表示车辆从C0位置的送车平台上开走。

工作流程如下:

送车平台平时在车库外的C0位置,如果有车要存,首先将车开上在C0位置的平台(按“驶入“键),平台将车送到由控制台指定的车位。

例如要将C0处的车送到B2车位,送车平台载车从C0出发经过C1、C2到达B2,将车送入B2车位,然后送车平台原路返回,回到C0。

如果要取车,C0位置的平台先到达指定的车位取车。

然后再原路返回,回到C0,将车取出到C0位置。

在A1-A3、B1-B3、C0-C3的12个位置上各装一个指示灯,以便显示车位占用情况和送车平台运动的情况。

为了降低难度和成本,未使用行程开关作定位信号,采用延时的方法。

送取车的过程中每2s移动一个位置,比如C0指示灯亮到C1指示灯亮要经过2s时间,当然也可修改延时子程序改变动作速度。

图4-33车库示意图

图4-34车库控制台

控制台电路如图4-34所示

(1)车位占用显示

共显示6个车位,编号分别为A1、A2、A3、B1、B2、B3。

每个方格中包含1个按键和1个指示灯。

指示灯亮时表示相对应车位已被占用,即该车位中有车;指示灯灭时表示该车位空闲。

车位按键与控制台左边的存取选择按键配合决定“存”或“取”操作。

(2)存取选择按键

触动IN按键后,“存入”指示灯亮,再触动“车位占用显示”中的车位按键。

若欲存入的车位未被占用,则“选择正确”指示灯亮。

按Enter按键确认后,车库的送车平台开始动作,将车送入指定车位。

若选择存入车位已经被车辆占用,“选择正确”指示灯不亮,Enter按键操作无效。

触动OUT按键后,“取出”指示灯亮,再触动“车位占用显示”中的车位按键。

若欲取出的车位被车辆占用,则“选择正确”指示灯亮。

按Enter按键确认后,车库的送车平台开始动作,将指定车位的车取至C0位置。

若选择取出车位未被车辆占用,“选择正确”指示灯不亮,Enter按键操作无效。

3.电路硬件设计

原理电路如图4-35、图4-36、图4-37所示,电路板如图4-38、图4-39所示。

图4-35车库部分原理图

图4-36控制台部分原理图

图4-37单片机部分原理图

图4-38电路板PCB正面图4-39电路板PCB底面

(1)车库部分

由2个按键和10个发光二极管组成。

按键INTER和LEAVE用以模拟车库外的送车平台上(图4-33中的C0位置)是否有车。

当送车平台上无车时,按INTER键表示有车开上送车平台;当送车平台声有车时,按LEAVE键表示送车平台上的车离开送车平台。

两个按键分别于单片机的端口P3.2和P3.3连接,R30、R31是上拉电阻,其作用是保证按键未按下时,端口P3.2和P3.3为高电位。

当按键按下时,端口P3.2和P3.3通过按键接地,使得P3.2和P3.3变为低电平。

电容C10、C11的作用是消抖动和抗干扰。

每个发光二极管通过一只阻值为470Ω的限流电阻与电源VCC,这样流经发光二极管的电流约为7.5mA,有适当的亮度,同时单片机的端口在不加驱动情况下可以承受。

A1L、A2L、A3L、B1L、B2L、B3L这6只发光二极管分别对应A1~A3、B1~B3共6个车位,并与控制台的A1K、A2K、A3K、B1K、B2K、B3K这6只发光二极管两两并联,与单片机的P0口连接,即A1K和A1L、A2K和A2L、……、B3K和B3L同时动作。

(2)控制台部分

由9个按键和9只发光二极管组成。

A1A、A2A、A3A、B1A、B2A、B3A这6个按键表示要存取的车位号。

按下IN键表示要存车,按下OUT键表示要取车。

确认操作无误后,按下Enter键开始存取动作。

控制部分的上拉电阻、消抖动电容等与车库部分相同。

单片机采用AT89C51,片内Flash容量为4KB。

晶体振荡器频率选择6MHz,CS1、CS2为30pF瓷片电容,与晶体振荡器构成时钟电路。

电容CS3,电阻RS1、RS2以及按键Reset构成上电复位和手动复位电路。

4.程序设计

(1)程序框架

程序分成5大部分:

1初始化,设置定时器工作方式和初值;开放中断;设置堆栈。

2存车操作。

3取车操作。

4定时器中断服务程序,读取按键装填,控制指示灯状态。

5延时子程序。

在初始化程序中设置定时器T0为工作方式1,每10ms中断一次,并且开放T0中断。

设置堆栈底为70H。

在存车操作程序中,判断送车平台C0位置上是否有车,若无车不能执行存车操作。

判断选定的存车车位中是否有车,若有车不能执行存车操作,以免发生碰撞事故。

在取车操作程序中,判断送车平台C0位置上是否有车,若有车不能执行取车操作。

判断选定的取车车位中是否有车,若无车不能执行取车操作。

定时器中断服务每10ms检查一次按键情况,并控制相应的指示灯亮灭,指示灯的状态将作为其他操作的判断依据。

中断服务程序读取IN、OUT、INTER、LEAVE这4个按键的状态,并以INK、OUTK、C0L这3个指示灯来记录。

INTER键按下,C0L亮,表示有车驶入送车平台。

LEAVE键按下,C0L灭,表示送车平台上的驶离送车平台。

按下IN键,指示灯INK亮,OUTK灭,表示已选中存车操作。

按下OUT键,指示灯INK灭、OUTK亮,表示已选中取车操作。

(3)程序流程

程序流程图如图4-40所示

图4-40主程序流程图

图4-41中断程序流程图

(4)参考程序

ORG0000H

AJMPSTART

ORG000BH

AJMPKEY

START:

MOVTMOD,#01H

MOVIE,#82H

MOVTH0,#0ECH;定时10ms

MOVTL0,#78H

SETBTR0

MOVSP,#6FH;存车

IN0:

MOVP2,#0FFH

IN1:

JNBP2.1,IN2;存车灯亮,执行IN2

AJMPOUT1;存车灯不亮,转到取车操作

IN2:

JNBP2.4,IN3;C0位置有车,执行IN3

AJMPOUT1;C0位置无车,转到取车操作

IN3:

MOVP1,#0FFH

MOVA,P1;等待选择车位号

CPLA

ANLA,#3FH

JZIN1

MOVR2,A;核准选定的车位是否空闲

MOVA,P0

CPLA

ANLA,#3FH

ANLA,R2

JNZIN1;若已占用,则返回IN1,重新操作

CLRP2.2;“选择正确”指示灯亮

JBP3.0,$;等待确认执行

MOVA,R2

SETBP2.4;开始存入

ACALLDLY

CLRP2.5;到达C1位置

ACALLDLY

SETBP2.5

CJNEA,#01H,IN4

CLRP0.0;存入A1

ACALLDLY

AJMPIN11

IN4:

CJNEA,#08H,IN5

CLRP0.3:

存入B1

ACALLDLY

AJMPIN1

IN5:

CLRP2.6;到达C2位置

ACALLDLY

SETBP2.6

CJNEA,#02H,IN6

CLRP0.1;存入A2

ACALLDLY

AJMPIN10

IN6:

CJNEA,#10H,IN7

CLRP0.4;存入B2

ACALLDLY

AJMPIN10

IN7:

CLRP2.7;到达C3位置

ACALLDLY

SETBP2.7

CJNEA,#04H,IN8

CLRP0.2;存入A3

ACALLDLY

AJMPIN9

IN8:

CLRP0.5;存入B3

ACALLDLY

IN9:

CLRP2.7;退回C3位置

ACALLDLY

SETBP2.7

IN10:

CLRP2.6;退回C2位置

ACALLDLY

SETBP2.6

IN11:

CLRP2.5;退回C1位置

ACALLDLY

SETBP2.5

CLRP2.4;退回C0位置

ACALLDLY

MOVP2,#0FFH

AJMPIN1;存入完成,到开始位置重新运行取车

OUT0:

MOVP2,#0FFH

OUT1:

NBP2.0,OUT2;取车灯亮,执行OUT2

AJMPIN1;取车灯不亮,转到存车操作

OUT2:

JBP2.4,OUT3;C0位置无车,可以取车操作

AJMPIN1;C0位置有车,执行存车

OUT3:

MOVP1,#0FFH

MOVA,P1;等待选择车位号

CPLA

ANLA,#3FH

JZOUT1

CPLA

MOVR2,A;核准选定的车位是否有车

MOVA,P0

CPLA

ORLA,R2

CJNEA,#0FFH,OUT4

SJMPOUT5

OUT4:

AJMPIN1;空闲,返回IN1,重新操作

OUT5:

CLRP2.2;“选择正确”指示灯亮

JBP3.0,$;等待确认执行

MOVA,R2

CPLA

CLRP2.4;开始取车

ACALLDLY

SETBP2.4

CLRP2.5;到达C1位置

ACALLDLY

CJNEA,#01H,OUT6

SETBP2.5

ACALLDLY

SETBP0.0;取出A1

AJMPOUT13

OUT6:

CJNEA,#08H,OUT7

SETBP2.5

ACALLDLY

SETBP0.3;取出B1

AJMPOUT13

OUT7:

SETBP2.5

CLRP2.6;到达C2位置

ACALLDLY

SETBP2.6

CJNEA,#02H,OUT8

SETBP2.6

ACALLDLY

SETBP0.1;取出A2

AJMPOUT12

OUT8:

CJNEA,#10H,OUT9

SETBP2.6

ACALLDLY

SETBP0.4;取出B2

AJMPOUT12

OUT9:

SETBP2.6

CLRP2.7;到达C3位置

ACALLDLY

SETBP2.7

CJNEA,#04H,OUT10

SETBP2.7

ACALLDLY

SETBP0.2;取出A3

AJMOOUT11

OUT10:

SETBP2.7

ACALLDLY

SETBP0.5;取出B3

OUT11:

CLRP2.7;退回C3位置

ACALLDLY

SETBP2.7

OUT12:

CLRP2.6;退回C2位置

ACALLDLY

SETBP2.6

OUT13:

CLRP2.5;退回C1位置

ACALLDLY

SETBP2.5

CLRP2.4;取车到C0位置

MOVP2,#0EFH

AJMPIN1;存入完成,到开始位置重新运行;T0中断服务程序

KEY:

MOVTH0,#0ECH;每10ms读一次按键的状态

MOVTL0,#78H

JBP3.3,KEY1;驶入按键按下,C0位置有车指示灯亮

CLRP2.4

KEY1:

JBP3.2,KEY2;驶出按键按下,C0位置有车指示灯灭

SETBP2.4

KEY2:

JBP1.6,KEY3;存车键按下,存车指示灯亮,取车灯灭

SETBP2.0

CLRP2.1

KEY3:

JBP1.7,KEY4;存车键按下,取车指示灯亮,存车灯灭

SETBP2.1

CLRP2.0

KEY4:

RETI

;2s延时

DLY:

MOVR5,#20

DLYA:

MOVR6,#100

DLYB:

MOVR7,#250

DJNZR7,$

DJNZR6,DLYB

DJNZR5,DLYA

RET

END

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 水产渔业

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

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