|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
摘要
) T9 D$ e& |+ J6 f本设计是基于单片机的立体车库系统,采用两层四列的模式来实现对立体车库的移动和停放。2 y- s6 P2 D8 e. ?" B
它主要以AT89S52 单片机为控制核心,由硬件和软件组成。硬件主要由四个模块组成,包括单片机
( R# k9 r' l: n# \6 O; c控制模块、按键电路、车位显示灯和车位移动显示灯模块。软件部分主要包括程序设计和流程图,
: k) E2 I0 `# X) g1 V/ U. Z程序是以C语言为基础,以KEIL 软件进行编程和调试,流程流程图是整个设计的操作流程。这样由2 J/ Y3 J1 n& I$ ^; y% V/ V
硬件的调试和软件的设计实现了本设计的自动寻位和自动移位功能,解决了在拥挤的城市中停车困
* b: C* N" K3 E; o# a F难的问题。; O6 Y% {+ t! Y: Q
关键词: 立体车库; AT89S52 芯片; 自动移位+ }6 g5 o6 ^$ `! G& h8 V. b j
Abstract
: `% S5 r. w+ t; p: m6 N }The design is based on three-dimensional garage SCM system, using two four-column- p& f- N- O' l9 H& d# y
mode to achieve the three-dimensional movement and parking garage. It mainly A single-chip8 T6 E# h F5 E8 j) r3 |% r
design is based on the three-dimensional garage system that uses two four-dimensional
# D4 X N' K% \8 U! t0 k1 {, ?model to achieve the movement and parking garage. It mainly AT89S52 microcontroller core,& A2 K. x' Y$ P' M% O
consists of hardware and software components. Hardware consists of four modules, including
; e* ~, y1 _1 @/ M4 S, o7 dsingle-chip control module, the key circuits, display lights and parking spaces to move# Q, M. Z8 i1 i+ R
the display module. Software part includes program design and flow chart, the program" v% a& }* I, O
is written in C language-based, KEIL software for programming and debugging, process flow4 k" T! c0 y% ~3 v2 [) a
chart is designed to operate throughout the process. So by the hardware debugging and
: a1 u s; L2 [' ~software design to achieve a bit of the design of automatic search and auto-shift function,
7 H0 L. O& V% `* `- ?: c. Sconvenient parking difficulties in crowded urban problems. T89S52 microcontroller core,
1 D; T2 ~1 j# F6 Pconsists of hardware and software components. Hardware consists of four modules, including; Q. o( P% d% N' B3 y
single-chip control module, the key circuits, display lights and parking spaces to move7 X2 [) F. R& J# ?- [, y4 F$ n; K
the display module. Software part includes program design and flow chart, the program
+ p- e8 T/ r0 \& G9 tis written in C language-based, KEIL software for programming and debugging, process flow( c1 Z; C- k% Y* }; `' g
chart is designed to operate throughout the process. So by the hardware debugging and* h0 ]# @% ^5 h! b+ k
software design to achieve a bit of the design of automatic search and auto-shift function,, A- U3 T6 h$ ?, j+ A; T
convenient parking difficulties in crowded urban problems.7 @; ?& f$ H* A7 U8 E6 P# D
Keywords: Parking garage; AT89S52 chip; automatically shift
! T, m2 k# I O% A) `& n" S; g- Z, g$ b7 g9 W5 v2 V# T6 ]6 u
目录% F$ F$ i- [% S; P$ W* G
第一章绪论............................................................... 1' K# O. X- ?' d, p6 b& X
1.1 研究背景和意义.................................................... 1
/ g/ u* E6 u4 I3 N: U1.2 国内发展状况....................................................... 1
' b; N/ i" i( G% r1.3 立体车库分类....................................................... 25 [" a* J; S6 c
1.4 立体车库的论证方法................................................ 2
/ k, \, a& k2 |6 a q第二章控制系统硬件设计................................................... 3
. c' r# M& A5 t2 G+ _2.1 硬件电路结构组成................................................... 3
% w; H1 x+ D' `6 g; f. `4 C* l4 ~2.2 主芯片的控制模块................................................... 3! F- S+ m2 Y6 I
2.3 复位电路.......................................................... 48 ~: j. W0 c7 [. H7 b: P! b$ J
2.4 晶振电路.......................................................... 57 a9 h) N6 r: M7 M+ J
2.5 按键电路.......................................................... 6
' r) a4 H' j. K. Q% V2.6 停车位显示灯...................................................... 6
. \8 w. d. n; h6 g2.7 车位移动显示灯.................................................... 7/ k7 n# d5 j+ M. v8 y) F
第三章系统软件设计....................................................... 8
6 P& p( g) q! ]+ N3 Q7 B3.1 软件设计流程图..................................................... 8. N1 {5 J6 D1 ?! i9 f @/ M' n
3.2 按键程序设计...................................................... 9
6 W5 b& {# {6 a+ z& M3.3 车位程序显示灯.................................................... 9
% j( M2 Z5 X2 r {( k3.4 车位显示灯程序设计................................................ 10
/ l8 U5 v# r @3 Y3.5 系统调试.......................................................... 11
3 _2 |0 K3 u" J6 V总结..................................................................... 15% N( h7 ~' k. E3 W3 `( d' s$ c# f
参考文献................................................................. 15; p! T0 Q+ \5 t7 c0 ~9 u' W
致谢.................................................................... 16
. o$ o A. c# n% p附录A 总电路图......................................................... 170 B+ a- }9 L) @4 D% A5 K: y6 \
附录B 实物图............................................................ 183 f0 P8 o D" o" G
1
5 j9 g' o2 A( W; m) Q b第一章绪论
2 G# i3 S% g" B- X- j随着汽车行业的快速发展,停车困难问题越来越严峻,道路上到处都是乱停乱放的现象,严重
- }- N. G- G9 L影响了城市的和小区的形象。虽然很多地方都设立了停车场,但停车场是平面的,而且每辆车的占1 A3 j$ {- q) f/ m
地面积是一定的,所以这就造成了土地的严重浪费。因此,为了解决汽车停放的问题,就要设计一
/ Y {2 [* r- k6 f0 g* I种可以更好地存储车辆停放的实物-- 立体车库。立体车库是立体的,它占用土地面积小,而且利用. p# ]9 {( M3 Q: t. ^
率高,在各大商场中很受人们的喜爱。/ ?6 t: ~ }4 ~1 u
1.1 研究背景和意义6 l5 G& D8 ?0 @8 W
我国正处在经济高速发展的的道路上,国家越来越富裕,人们的生活也越来越好。在物质需求9 H) N* C [) c: A% b5 J2 g
得到满足的同时,人们也逐渐学会享受起来。以前大多数人工作和学习都会以公交车作为自己的代
% s7 x3 f# p* o& ?9 Z! I) D: L( H) M步工具,但是现在公交车已经不能满足每个人的需求。随着我国的汽车发展技术的提高,并且和国
! T0 S' q6 C0 V6 h% T2 ^5 q外一些大型的汽车公司一起合作,使得汽车的价格有着大幅度的下降。在城市里坐公交车特别的拥
% B8 a, R0 X2 a3 u- c挤,一辆公交车上甚至连落脚的地方都没有,所以很多人都希望拥有一辆属于自己的车,随之而来# D$ V- e, l5 V x
的带来是停车困难的严重的问题。! J2 \* c' L7 r m8 `% Y ?# g8 O5 j, u
1.2 国内发展状况1 o+ q% a8 P" L- Z" E1 ^* [5 \
台湾从上世纪80 年代初开始研究立体车库, 当时日本的技术已经成熟, 后来台湾从日本引进了
9 ?; K# R( [4 I1 x旧精的技术,生产出第一个垂直循环式立体车库。直到90 年代末,台湾方面的技术逐渐趋于成熟,; T% l9 s! Q5 H! L" q+ R
停车设备也处于稳定发展状态。
4 ^! r. x7 P/ ]5 {$ a2 C9 V大陆想对于台湾起步的较迟一些,开始于90 年代初期。此时国内立体车库还属于空白阶段,迫" f- j3 S+ x& ] W, Q! E; a! J
切需要人才和研究技术。为了发展停车设备行业, 我国颁发了22 家允许研究立体停车设备制造资质
5 g; v3 X9 ]+ O5 C的企业。
1 I2 @8 N/ G+ M, ]; \- b& |国家培养了一大批高端人才, 经过不断的努力他们为立体车库做出了很大的贡献。比如徐格宁、
4 U. J3 _! x- S0 Q$ Z3 \2 L王鹰、王建民和任少云等人,他们是国内第一批研究立体车库的高端技术人才,他们开发的计算软
& _0 i' i( u/ V件FTA 为以后的立体车库发展提供了很大便捷,他们也提出来钢结构立体停车库系统失效树理论的
4 w2 _3 y2 L3 d0 S0 {0 P$ y+ c分析方法。他们刻苦努力,在他们之后又踊跃了大批的技术人才,正是他们的努力才能推到立体车0 m" S6 C# p+ m4 s S. t5 R( s7 i
库的发展和前景。同时,我国也引进了国外的高端技术来弥补自己的不足,从中也涌现出很多优秀
/ o6 k: Y2 T9 |: l: ?7 B的企业。现在国内做的比较好的有40 多家,杭州西子、深圳怡丰算是里面的翘楚了,不管是质量还
2 l5 i! O0 A- z是口碑在业界都是得到认可的。
0 v2 D$ D) @4 l7 I3 V2
% X' ]- F2 A# i n立体车库的种类有很多,但大都是从垂直循环立体车库演变过来的。现在大体上可以分为升降* ^/ A9 X3 [5 f3 e. T7 {
横移式、垂直提升式、垂直循环式、圆形水平循环式、箱型水平循环式、巷道堆垛式等。
% E" i$ j; U2 u" r. p! M垂直循环式立体车库占用土地面积小,可以放在设立地上、也可以地下,停放便捷。其内部安0 A7 H+ [8 @: }, x6 C7 N( B
装了升降机,车辆停在车板时,可通过循环装置实现存取和升降横溢。电机转到快速,运行平稳,
9 t! e4 J' J& \7 ?' S工作过程中无噪音产生,完全实现了自动化控制。在许多小区和大型商场中都设立垂直循环立体车
6 ^5 j. v( [* M! a" T库,它操作方便,基本上熟悉了步骤,一个人就可以适应整个工做环境。在现在的立体车库种类很& {; ^" \' q. L
多,但大部分都是由它演变而来,实现的功能大相径庭。由于它可以分为很多层,每层停放了很多! L M% G& ]/ _1 t1 ~8 q- g
车辆,所以基本上可以满足小区和商场的需求。
0 V, C' |5 i" V1.3 立体车库分类- N5 d6 d5 q+ o3 }. Z: b
立体车库的种类有很多,但大都是从垂直循环立体车库演变过来的。现在大体上可以分为升降$ ~; _) E8 [; I/ ~) R9 C
横移式、垂直提升式、垂直循环式、圆形水平循环式、箱型水平循环式、巷道堆垛式等。
$ x" I5 l G9 h( N3 x9 ^, v垂直循环式立体车库占用土地面积小,可以放在设立地上、也可以地下,停放便捷。其内部安1 {5 h) l! _! {& V* d- E; X X
装了升降机,车辆停在车板时,可通过循环装置实现存取和升降横溢。电机转到快速,运行平稳,6 b9 {8 P6 F: L1 N) Z
工作过程中无噪音产生,完全实现了自动化控制。在许多小区和大型商场中都设立垂直循环立体车
s! S: {1 e$ }% O库,它操作方便,基本上熟悉了步骤,一个人就可以适应整个工做环境。在现在的立体车库种类很
! H) o; S, P, X6 x- L) s1 O. E多,但大部分都是由它演变而来,实现的功能都是很类似的。由于它可以分为很多层,每层停放了$ @3 Z9 V5 A: ]( m
很多车辆,所以基本上可以满足小区和商场的需求。) a r# U3 I+ _! J
1.4 立体车库的论证方法; t/ b, v3 [% v6 ]& P
首先,我们对于实际的立体车库系统进行构思和设计的时候,立体车库的硬件是应该具备有相$ V' f- w$ R/ z
应的按键、二极管和中单片机芯片等等。本次设计主要是采用AT89S52芯片来实现立体车库的功能,! t; N+ Y* {8 q, t$ `4 g
AT89S52 有丰富的引脚和很强的性能,可以实现车位的移位和按键开关等功能。最后,要对硬件和
( f% _, H6 U9 U5 H* k软件进行调试,看看是否可以实现要求的功能。* \/ R( N8 K, o1 a i
其次,为了更好的显示出车位的调度,本系统采用二极管来替代车位,根据二极管的移动状态来显
6 w9 R0 V( C( ^; P( g- u示车位的移动过程。当一楼有车停放时,即可通过按键开关来选择停放,先停满二楼停车场,然后
3 F; C, _; v$ n: e再停放一楼的车位。6 T- T y: m- C2 x6 b
如今,立体车位的使用越来越多,在很多商场和小区都有设立,可见立体车库的前景非常广阔。: T: p# A; [; g( _, | ? c
所以,本课题将以单片机为核心来设计一个立体车库,来实现出立体车库的功能。
# k8 n+ }/ ^/ W- M ~$ L38 ^# v/ g. c4 }& [4 e
第二章控制系统硬件设计+ D1 i( D: g/ n, c
2.1 硬件电路结构组成
! o7 O% X3 I# J) E8 |2 B本系统主要是以AT89S52 芯片为核心进行设计。来实现立体车库的自动寻位和自动移动功能。) Y8 l; }/ q" u% Z3 l" I- R/ S8 b
硬件电路主要由单片机控制模块、按键电路、复位电路、车位显示灯、移动车位显示灯和晶振电路
2 m" q7 T9 ?: T5 {+ M组成,如图2.1 所示,用LED灯替代车位的状态( LED灯亮表示有车停放) ,当电路接通时,系统进
K7 k& }$ U- P5 a行初始化。通过按键电路选择车位移动的位置,单片机会自动地进行控制车位的移动。$ u" @. p" r0 [' P& r4 o
图2.1 硬件结构框图
/ S9 ~0 j& P9 \2.2 主芯片的控制模块& c M( o z9 O- Z& [4 Z
(1) AT89S52 系列单片机芯片
3 b/ l: a. t- F/ m' `本系统采用单片机系统控制设计的立体循环车库。由于微控制器具有控制功能,集成度高,体) l& K3 B6 g9 @' c7 P+ _$ L
积小,可靠性好等优点,更适合于小规模的系统设计。该系统是在为角色起着关键的作用微控制器2 B, }& K. R' x+ }& @
的控制,我选择了一个更高的集成度AT89S52的。
; G% F* c! B! iAT89S52 具有以下标准功能:三个16 位定时器/ 计数器,一个向量2 级数据指针,8k 字节- I& E$ F/ t% [9 `
Flash,256 字节RAM等片内晶振及时钟电路。另外, AT89S52在OHZ静态逻辑时可选择节电模式,在
, {/ V" O% {- A h! d空闲模式下cpu 停止运行, RAM在掉电保护方式下被保存。此时,振荡器也被冻结,单片机停止运# Q# {3 U w: \8 V: U
行,直至硬件复位。
- m O8 O3 m! V+ ~1 k9 ]$ n车位显示灯
2 \: D% ~" V2 |0 Y' U% d* R按键电路" i; u u" W9 _1 g+ A, Z& m6 M
晶振电路
7 Q2 K9 `0 t; [, b4 m车位移动显示灯
+ {6 E' l: D3 X单片机控4 f+ b! u0 s% r$ T+ Q# P9 x
制模块: T: ?) B. n& L( l
复位电路
/ ?! x2 o9 }6 \- z: J4
$ O, f. d+ U6 a, o/ C5 a(2)AT89S52引脚介绍
4 H1 w" g& c$ R' y3 T* z8 m图2.2 AT89S52 引脚图' q! S7 J; o9 Y7 R! @
1、拥有灵巧的8 位CPU和在系统可编程Flash, |& d# K# N, L
2、晶片内部具时钟振荡器(传统最高工作频率可至 12MHz). {: q S& ~" T# W
3、内部程序存储器( ROM)为 8KB
# e5 O8 d5 T) R6 y/ T; N' R2 C4、内部数据存储器( RAM)为 256 字节# s# B# V: `. @; h8 g
5、三个 16 位定时器/ 计数器' j8 N9 ^- R" C, A' t8 z3 d5 p
6、32 个可编程I/O 口线
* k9 e/ B, P) |: V7、三级加密程序存储器7 J' W% E9 D V6 e' s. |
8、全双工UART串行通道7 S& p: g: z4 H' e
9、低功耗空闲和掉电模式;$ T, i1 T" S2 L! q
10、看门狗定时器;
) ?+ }+ U- f; y/ \2.3 复位电路& J1 t7 q' S* C% B
单片机接通电源时产生复位信号,完成单片机启动,确定单片机起始工作状态。手动按键产生& x! ^' M2 a3 I0 h* r
复位信号,完成单片机启动,确定单片机的初始状态。单片机有上电复位和手动上电复位两种,如# y. t% |: k# R9 b* z% Z9 d: R
果想系统复位,必须要让RST引脚保持两个机器周期以上的时间,正脉冲有效,宽度>10ms。; o) `) j. G- B& m# K6 F3 Y4 U
5
2 [. j# Y: Z# m* \$ ^; _(1)上电复位电路工作原理
2 w8 F* d+ _3 p6 y通电时,电容两端相当于是短路,于是RST引脚上为高电平,然后电源通过电阻对电容充电,% s5 w" g& p- G; {
RST端电压慢慢下降,降到一定程度,即为低电平,单片机开始正常工。) B. F8 L: q4 x8 E
图2.4 复位电路: W" c4 t" i/ D0 Q. [2 G# W
2.4 晶振电路
# r3 q1 @' X1 Z: c f, w% s. v晶振电路:单片机工作的时间基准,决定单片机工作速度。晶振电路就是时钟电路,向单片机0 w' N2 [5 g1 Q' ]! X
提供一个正弦波信号作为基准, 决定单片机的执行速度。 AT89S52有XTAL1 和 XTAL2两个引脚,XTAL1
8 B% ]2 h* P+ G3 H是单芯片系统时钟的反相放大器输入端, XTAL2是系统时钟的反相放大器输出端。通常在XTAL1 和4 N9 ~) h& o# w% d/ ^
XTAL2引脚件加一个晶振和两个电容(约20PF 左右),便可作为一个晶振电路。电容单片机晶振频率
2 C0 ]4 P+ k- B范围: 0 — 33MHz。如图2.4 所示" a# s* x+ s ]/ C4 z2 z! |
晶振电路连接方式为:2 l* g6 S' }7 p' K8 ~- n
图2.4 系统晶振电路
5 m6 E! N; e! `' L# Z# V6% c8 t7 t2 [3 f5 E0 u
2.5 按键电路
7 J7 u% f; W! f9 m* i# W(1)按键电路作用' R' h" O5 O6 N" N3 g$ ^
是接受来自人工按键的信号,初始化时所有开关都设置为高电平,当按键按下时,会将高电平, x2 y* R. J% j/ X* [& |, w
置为低电平,然后将低电平信号传输给单片机进行处理。如图2.5 所示:$ q% f$ R. |: h r! N
图2.5 按键电路
3 y1 F8 L; n) r(2)按键电路原理与分析
0 S5 J' N w; R# {. H电路共有16个按键作为单片机的命令输入端口, P2.0~P2.7 端口表示一楼车位上的开关, P3.0 、4 K3 `3 D+ l" V1 g6 B h3 p
P32、P34和P36端口表示二楼的开关。具体工作方式是:当一楼的P2.0 端口开关被按下时,电路会
1 O: X' N/ V& N& N5 {导通,形成一个低电平通向单片机,实物上则显示为第一个灯亮起。若将车位移动到二楼的某个位
5 w4 t3 a% w$ `6 s置时,就按下P3.0 、P32、P34和P36端口的开关,单片机自动寻找二楼的车位位置。
% k4 u; z8 I# F6 W' Q; j. g2.6 停车位显示灯
! w( l* [7 d& J' W! v(1)车位灯显示原理
' r( c+ |- w0 Z4 S& u4 ALED 灯也叫发光二极管,有正向导通反向截止的特点。将二极管的正极接电源端,负极接单片+ i% z1 F- s% D& B
机的引脚。初始状态时将单片机端的引脚设为高电平,此时二极管不发光,当按键按下时,会产生
- h- r* Z: V9 U2 f1 Q一个信号给单片机,将单片机的引脚变为低电平,此时二极管正向导通,二极管发光。
1 k- N0 R( p; U3 | H9 z(2)车位状态的LED灯显示
" j, J2 d' m. y* e! r) i本系统采用了两层四列式的立体车库设计的模型,用发光二极管代替车位的状态。P0.1 、
, k% ?' v) m, X* w, ~5 G6 M5 ]% uP0.3 、P0.5 和P0.7 表示一楼的4 个车位, P1.1 、P1.3 、P1.5 和P1.7 表示二楼4 个的车位。当+ E$ z" V$ R' M* G. v
一楼的按键按下时,向相应的输出口输入低电平,二极管此时被点亮,表示有车停放在车位,& D5 P% A" P) Q5 R+ G8 x( `7 \- y6 f
7
" j1 H3 ~$ E! w7 L% ^( X此时按下二楼的车位按键, 单片机自动将车库移位至二楼停放, 停放好后车位的二极管被点亮,6 E& c$ v# O% G; ^$ }6 k
并且在实物中可以显示出车位的移动路径。如图2.6:5 z0 b& `# @% y3 w
图2.62 [/ q, i! o8 n' _3 o
2.7 车位移动显示灯
( I( z& N: L4 i, `1 H(1)车位移动显示灯原理8 x* w1 Y1 L: f( J
本设计中采用发光二极管代替车位移动的轨迹,使用单片机的P0.0 、P0.2 、P0.4 、P0.6 、P1.0 、$ Z$ M. q+ j# s
P1.2 、P1.4 、P1.6 引脚接二极管,当按键被按下时,车位会沿着LED的方向移动。如图2.7 所示:# j+ @' q2 z0 l8 }
图2.7
( i! ^! s; L) K2 R9 x$ O8
/ j% t5 H* k9 q第三章系统软件设计
r' n3 ?2 x# Q软件设计部分需要实现的功能时当一楼或者二楼的车位按键被按下时,实现车位的移动,
$ \4 h7 g! p' u U并利用发光二极管来表车位的状态和车位移动的位置,并且是同步的。整个软件设计是包括以$ k2 z4 F* g7 Q+ u6 A" y
下几个部分:系统加电初始化后,所有的二极管都不亮,当车辆停放在一楼的某个车位时,一. I: ?/ D0 F! L) x5 P8 o
楼的二极管被点亮,然后用户根据自己的选择将车停放在一楼或二楼的某个车位。# r$ \4 |: _ ] G' H
3.1 软件设计流程图
4 ?: m$ ?. H: B3 g- ^整个软件模块设计包括了按键模块和程序设计,并利用发光二极管显示车位的移动状态。整个
1 {$ R# o/ H. O( u软件模块程序流程图如下图3.1 所示
7 R0 j+ G# A7 O4 P4 L& U图3.1 车辆存放流程图. x$ _5 w# q# [
9# i! b* ~. V# M0 m
3.2 按键程序设计
& E' A3 @& w( D/ q8 n2 V此次按键接口电路采用的是独立式键盘接口,用P3.0 引脚控制一楼的车位, P2.1 、P2.3 、P2.54 Q/ d4 v' E! i- p3 h0 {6 I
和P2.7 引脚控制二楼的车位, 初始化时将I/O 口设为高电平, 当按键按下时, 高电平被置为低电平,: D" C4 z0 d/ i( k$ q: G+ L
然后将低电平传给单片机进行控制。设计程序如下:
9 w* {2 n5 G( T/ o+ L. O! }void key_scan1 ()
4 Q1 y3 z8 V% s! |. \) v1 H{2 P0 ^' g0 R' C2 u7 J- _
if (P2 == 0xFE ) key_number = 0 ;* k/ [0 n% Q) U0 m. k
if (P2 == 0xFD ) key_number = 1 ;& `+ W% a! s, {# p; M* C/ \
if (P2 == 0xFB ) key_number = 2 ;2 g) S8 O) G; c, k: ]
if (P2 == 0xF7 ) key_number = 3 ;0 {! L. Q$ h! X- l# w
if (P2 == 0xEF ) key_number = 4 ;
7 F& h% C1 [& @& aif (P2 == 0xDF ) key_number = 5 ;
* r* E( y* Z6 m: P0 Aif (P2 == 0xBF ) key_number = 6 ; r) s1 f+ K4 a( |$ r
if (P2 == 0x7F ) key_number = 7 ;# f1 ?+ G2 S* b8 _' V
if (P3 == 0xFE ) key_number = 8 ;
6 T3 K4 K( b& R- ~if (P3 == 0xFD ) key_number = 9 ;0 I, n7 L+ |9 N% W
if (P3 == 0xFB ) key_number = 10;
) B, i( ^9 ]% g: Xif (P3 == 0xF7 ) key_number = 11; b. Y, Q: K& r
if (P3 == 0xEF ) key_number = 12;' E" s8 [8 Q1 }6 i/ @
if (P3 == 0xDF ) key_number = 13;
. o& k# t5 G6 L; Iif (P3 == 0xBF ) key_number = 14;
; i+ l3 V; w5 |! W6 Dif (P3 == 0x7F ) key_number = 15;) Q1 t" R" Q7 t/ ]! p" g
}
! `" D+ a- D- U( P" X3 p0 q3.3 车位程序显示灯
4 U! F7 J& j/ M/ V9 t% Y5 w车位主要是通过发光二极管代替的,在设计中用P0.1 、P0.3 、P0.5 和P0.7 引脚来控制- o4 d- W/ {( m
一楼的4 个车位, P1.1 、P1.3 、P1.5 和P1.7 引脚控制二楼4 个的车位。有车停放时,二极管变亮,5 E9 \% x) K) @5 ~$ p$ L
10' U1 ]* ?3 B" z, C
无车停放时,二极管熄灭。设计程序如下:8 o5 p7 L- y7 m+ |
if (key_buf0 == 1)
9 G h- L4 S3 \$ Q6 {" ?5 C{
* a9 |7 J7 U# v4 X8 |9 q' ^P01 = 0;* H+ F$ `4 |2 ~6 j
delay(500);
: }" v6 ]5 h$ K8 m n$ ?P01 = 1;8 X8 {+ N# k2 [
delay(500);
, R) o$ u4 Q+ s- a% W: l! R) mP01 = 0;
3 V: R8 O2 @+ P- G& [- {) v3 W}3 k+ D4 c) k. G- U
if (key_buf0 == 3)
/ ?3 f2 G; }5 `8 {6 X0 m{
; n; n) ~9 Y6 k+ f3 A0 `+ XP03 = 0;
$ e5 L% @! G, L3 `" B7 Ldelay(500);3 ]: L2 p( f3 s- r/ P/ Z# \1 a
P03 = 1;
0 q. C. u( W& E! W& [delay(500);# U& A7 o3 O* B0 Q1 B
P03 = 0;
1 ~2 G9 C6 s6 [; N+ c; Y& n}
% [2 p* r' \! H8 D1 N0 ]9 d. H6 b. @if (key_buf0 == 5)
2 r+ w9 c' e L9 b, W$ a& _1 A{& H0 i; o: P8 B3 [( i# a/ C
P05 = 0;* A5 G1 j+ ?( y3 h/ G/ w$ F
delay(500);' E6 m5 u* |( |1 d4 j' d3 ~
P05 = 1;
, J, V; C5 j8 Edelay(500);
5 J7 ~5 g. a5 r4 Z: u3 ~$ ^P05 = 0;# M/ z7 z7 v9 F
}) ]. J7 S" N( R) y) x$ c& n
3.4 车位显示灯程序设计
3 R3 w% C& y2 F; K用LED的移动来显示车位移动的路径,程序设计中用P0.0 、P0.2 、P0.4 、P0.6 、P1.0 、P1.2 、
+ W( ?! Z! \) I% x6 @P1.4 、P1.6 引脚接二极管,当选择被移车位和移到车位时, LED 灯会沿着设计的路径进行移动。程: Q1 @$ R6 L- M4 g P
11* V: V1 t5 R1 _4 o- B5 S
序设计如下:
+ x c0 E3 }, J6 J9 qif (key_buf0 == 0 && key_buf1 == 2)
2 E: f4 m5 a& J. w) ^* L8 u F{- C3 K) Y7 U( l' I8 i6 ]! l" |
P01 = 0;4 L3 U/ O; V; f
delay(500);
4 t4 |+ F# X" O4 dP01 = 1;2 ~( f% C T0 ^
delay(500);
5 @( o3 ?4 A, a5 S# `! VP01 = 0;- u# q. P$ E6 p# i8 q" o" c7 G
delay(500);+ F0 t3 q0 P$ C* K
P01 = 1;, K4 A' }7 F3 ?$ [7 e" W+ U
P00 = 0;& m A$ z! h5 T% r
delay(1000);
3 [2 ~- ^: i2 R K1 A+ L5 ?P00 = 1;$ N/ C2 f2 w' m" i
P02 = 0;
Z; t T+ a. F* ^5 B5 p8 C: Y0 qdelay(1000);1 m' K; u9 W U$ z: F6 B' _3 _- F U
P02 = 1;
n. P5 V5 Q; q9 m- |$ Tdelay(500);7 T$ f) ?. Y* V) T. [
P03 = 0;
8 h& r& F8 T! _+ r: C1 E: q. O( U! ldelay(500);: M1 t5 A% {3 _2 }0 A5 X
P03 = 1;% R3 k8 L( \: b; [6 K1 X
delay(500);) U- J5 y# u+ U7 }
P03 = 0;
$ }" w/ O7 Y* \- \}1 |5 u3 J! i0 g8 B$ d ~5 U: `
3.5 系统调试
& u. N% _9 H* m) L# b: b(1)立体车库初始状态测试
9 l) e0 R( Z+ n a" G立体车库初始化,开始运行后,所有LED灯均不亮。当按一楼某个车位按键按键时,二极管开( R* @: t- I( J" T5 j
始点亮。若空车位在一楼停车场,想要移动空车位到二楼,此时按下按键开关,单片机会自动移动
1 C( H, S( l8 N5 Y: O车位。如下表显示一楼和二楼的车位状态。
& Y- E$ V& R7 w5 r6 Q/ }' N$ Q
1 u/ ]6 d: y8 i9 G
/ E1 M) `* L# C. r* Q V
2 C0 N* k. Q4 `- z) p/ m: a |
|