小区智能车库系统的软件设计
出处:电子爱好者博客 发布于:2013-07-25 16:00:39
摘要:RFID射频识别是一种非接触式的自动识别技术,单片机结合RFID技术的应用将给智能车库系统带来革命性变革。本文基于现实生活中进入出库的不便和延误,对车库控制系统进行可行性智能化设计,使车库达到智能化、无人化管理的目的,减少进出车库的时间,提高车库的效率。
1.引言
智能车库是近年来快速发展的一种先进的停车方式,为日益严重的城市停车难提供了一个有效的解决办法。通过软件控制车库,加快了车辆进出车库的速度,提高了车库利用效率,降低了劳动力成本,使车主的时间和车库的利用效率大幅度提高。
本文设计的智能车库在软件控制下使用STC11F32单片机接收通过RFID传回的磁卡信号并做出处理,对车库的运行和管理做出控制总体上的软件设计方案。软件以STC公司生产的STC 11F32XE单片机作为硬件平台,对软件系统中各个功能模块的具体设计进行了详细介绍。控制系统以C语言作为主要编程语言,对系统的监控程序以及主要软件功能模块子程序进行了具体设计。此方案在模型车库中已经通过验证和实际的信息采集并做出修改,为实际运用。
2.整个智能车库程序控制器部分
2.1 智能车库程序软件流程
整个智能车库程序除了智能小车控制部分的程序以外,还包括硬件控制部分的程序、射频识别部分的程序,其软件流程框图如图1所示。

2.2 硬件控制模块STC 11F32XE芯片
S T C 1 1 F 3 2 X E单片机是一种独特的微处理器,具有高可靠性、功能强、高速度、低功耗和低价位等优点。将S T C11F32 XE在系统程序中进行寄存器的初始化程序设置,经过这样的初始化操作后,对芯片的使用,就可以和其他的普通51单片机相同了,便于提高系统的移植性和通用部署,其设置程序如下:
void InitPort(void) / / 寄存器初
始化,便于后面对芯片的操作
{
P0M1=0×00; //I/O口0模式控制器1
P0M0=0xff; //I/O口0模式控制器0
//整个P0口为推挽输出模式,强上拉
输出,可达20mA,硬件电路需要加限流电
阻
P1M1=0×00; //I/O口1模式控制器1
P1M0=0×00; //I/O口1模式控制器0
//整个P1口选择准双向口,传统8051
I/O口模式,灌电流可达20mA,拉电流为
230mA
P24=1;
//接按键硬件模式选择接口,系统不同服
务场景使用
P2M1=0×10; //I/O口2模式控制器1
0001 0000
P2M0=0×88; //I/O口2模式控制器
1000 1000
//P2^3和P2^7为推挽输出;P2^4仅为
输入,空闲为高阻状态;其余位全为准双
向口
P30=1; //接max232电平转换芯。
片,从输入串口获得需要电位
P36=1; //接按键1、2,和P24一
起选择控制权限、模式
P3M1=0×41; //I/O口3模式控制器1
1000 0001
P3M0=0xa2; //I/O口3模式控制器0 1010 0010
//P3^7为开漏(Open Drain)状态,
内部使用上拉电阻断开,要外加上拉电阻
P41=1; //接磁卡控制端
P4M1=0×02; //I/O口4模式控制器1
0000 0010
P4M0=0×04; //I/O口4模式控制器0
0000 0100
}
对I/O口工作模式在同一个函数中的设置,减少了相同代码的反复编写,优化了程序结构,便于更加灵活的使用芯片内部的寄存器和存储器。
2.3 射频识别部分RC522芯片
射频识别部分采用解读器RC522读取信息并解码后,通过M-MFMOSI、M-MFMISO和M-MFRST送至STC 11F32芯片,通过信号相互传递,程序在进行有关的数据处理。
MF RC522在13.56MHz下的被动非接触式通信方式和协议。
系统软件设计中,STC 11F32XE通过M-MFMOSI、M-MFMISO和M-MFRST连接中选取串行UART(类似RS232)模式,数据传输速率高达424kbit/s,有利于减少连线,缩小PCB板体积,降低成本,便于大规模推广。其设置程序如下:
//功能:读取M1卡一块数据
//参数说明: addr[IN]:块地址
//pData[OUT]:读出的数据,16字节
//返回:成功返回MI_OK
char PcdRead(unsigned char data
addr,unsigned char *pData)
{
char data status;
unsigned int data unLen;
unsigned char data i,ucComMF
522Buf[MAXRLEN];
ucComMF522Buf[0] = PICC_READ;
ucComMF522Buf[1] = addr;
CalulateCRC(ucComMF522Buf,2,
&ucComMF522Buf[2]);
status=PcdComMF522(PCD_TRANSCEIVE,u
cComMF522Buf,4,ucComMF522Buf,&unLen);
if ((status == MI_OK) && (unLen
== 0×90))
{
for (i=0; i<16; i++)
{ *(pData+i) =
ucComMF522Buf[i]; }
}
else
{ status = MI_ERR; }
return status;
}
3.总结
整个智能车库程序设计过程中,考虑了现有正在使用的车库,根据对磁卡的不同操作,设置成多个工作模式,通过外部硬件进行选择,尽可能的降低程序间的相互影响,达到系统的通用性和易于操作。
版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
- 8 位和 32 位 MCU 的对比与应用2026/5/15 16:35:34
- MCU中的8位和32位指的是什么2026/5/15 15:32:23
- 10BASE-T1S芯片深度解析2026/5/14 15:15:01
- 一个时钟芯片Floor Plan分析2026/5/12 14:54:59
- 深度剖析 DC - DC降压开关芯片 BST 引脚电容的关键作用2026/5/12 14:15:29









