51单片机停车场车位管理
文章目录
- 51单片机停车场车位管理
- 前言
- 一、原理图
- 二、仿真电路
- 三、主程序代码
前言
本系统包括:电源模块、传感器模块、显示模块、手动键盘输入模块、车辆车位模拟模块等。它可以实现控制的开启、显示停车场现有车辆数和已停放过车辆数、人工的设置总车位数以及剩余车位数的数值显示等功能。并且拥有16个模拟的停车位,用来显示车辆停放的具体位置。
系统的特点:
(1)由于本系统采用电子元件无需人工管理。
(2)自动显示停车场的车位状态,进出和停放车辆统计。
(3)统计小区当天已停放车辆总数,并且显示停放位置。
(4)本系统适用于任意停车场。
(5)检测小区车位车辆是否已满,报警指示灯闪烁。
一、原理图
二、仿真电路
三、主程序代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145#include <reg52.h> //调用单片机头文件 #define uchar unsigned char //无符号字符型 宏定义 变量范围0~255 #define uint unsigned int //无符号整型 宏定义 变量范围0~65535 #include <intrins.h> sbit K1=P1^0; sbit K2=P1^1; sbit K3=P1^2; sbit K4=P1^3; sbit beep = P1^7; //蜂鸣器IO口定义 sbit SH = P3^5; sbit ST = P3^6; sbit DS = P3^7; uchar num_jin; uchar num_chu; uchar num_car; #include "lcd1602.h" /***********************1ms延时函数*****************************/ void delay_1ms(uint q) { uint i,j; for(i=0;i<q;i++) for(j=0;j<120;j++); } void write_74hc595(unsigned int num) { int i; ST = 0; for(i=0; i<16; i++) { SH = 0; if (num & 0x0001) { DS = 1; } else { DS = 0; } SH = 1; num >>= 1; } ST = 1; } unsigned int num_2_led(unsigned int num) { int i; unsigned int ret=0; if (num > 16) return 0xFFFF; for(i=0;i<num;i++) { ret |= 1<<i; } return ret; } void key() //独立按键程序 { if(!K1) // 汽车进入 { delay_1ms(20); if(!K1) { while(!K1) ; if(num_car==16) { beep=0; delay_1ms(2000); beep=1;} if(num_car<16) { num_car++; if(num_jin<=255) { num_jin++;} } write_sfm2(1,4,num_jin); write_sfm2(1,12,num_chu); write_sfm2(2,4,num_car); write_sfm2(2,12,16-num_car); write_74hc595(num_2_led(num_car)); } } if(!K2) // // 汽车驶出 { delay_1ms(20); if(!K2) { while(!K2); if(num_car>=1) { num_car--; if(num_chu<=255) { num_chu++;} } write_sfm2(1,4,num_jin); write_sfm2(1,12,num_chu); write_sfm2(2,4,num_car); write_sfm2(2,12,16-num_car); write_74hc595(num_2_led(num_car)); } } /***********************手动修改小区内停车位*************************************/ if(!K3) // 人工调节 { delay_1ms(20); if(!K3) { while(!K3); if(num_car<16) { num_car++; } write_sfm2(1,4,num_jin); write_sfm2(1,12,num_chu); write_sfm2(2,4,num_car); write_sfm2(2,12,16-num_car); } } if(!K4) // // 人工调节 { delay_1ms(20); if(!K4) { while(!K4); if(num_car>=1) { num_car--; } write_sfm2(1,4,num_jin); write_sfm2(1,12,num_chu); write_sfm2(2,4,num_car); write_sfm2(2,12,16-num_car); } } } /***************主函数*****************/ void main() { init_1602(); write_string(1,0,"Jin: Chu:"); write_string(2,0,"Car: P:"); write_sfm2(1,4,num_jin); write_sfm2(1,12,num_chu); write_sfm2(2,4,num_car); write_sfm2(2,12,16-num_car); write_74hc595(0); while(1) { key(); //独立按键程序 } }
最后
以上就是仁爱毛豆最近收集整理的关于c51停车场车位管理系统51单片机停车场车位管理前言一、原理图二、仿真电路三、主程序代码的全部内容,更多相关c51停车场车位管理系统51单片机停车场车位管理前言一、原理图二、仿真电路三、主程序代码内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复