参考文献
[1]郭天祥.新概念51单片机C语言教程:入门、提高、开发、拓展全攻略. 2009 [2]韩孝义.高速公路车辆检测器的应用与发展.趋势发展工程.2009年11期 [3]姜紫峰.车辆检测器的进展.北京:公路交通科技.1996
[4]王春波、张冬.计算机视觉技术在智能交通系统中的应用.测控技术.2000
[5]潘晓东,詹嘉,杨轸.智能停车诱导系统的设计应用研究 华东交通大学学报 2007 年2月 [6]董加敏.停车场管理系统的设计与优化 河南师范大学学报 2007年2月 [7]于光华. 非接触式IC卡停车场管理系统 长春:吉林大学 2004
[8]李丽萍,盛琳阳.大型室内停车场车辆出入计算机自动识别与管理系统 1995年 [9]马锋.智能停车场及其停车诱导系统的研究[D].哈尔滨:哈尔滨工业大学,2003 [10]杨景常.停车场收费系统自动吐卡设备的设计[J].四川工业学院学报,2001 [11]王卓人.IC卡的技术与应用[M].北京:电子工业出版社,1999,2
[12]张敬东.发展中的停车场收费管理系统及其工作原理[J].公路交通科技,1998 [13]梁颖,刘劲夫.城市停车问题对策研究[J].道路交通与安全,2004
[14]蔡文沁.我国智能交通系统发展的战略构想[J].交通运输系统工程与信息,2003,3 [15]宁秋平.非接触IC卡停车场管理系统设计 [D].大连:大连理工大学,2005 [16]李传军.计算机视觉技术在智能停车场中的应用研究[D].北京:北京理工大学,2003 [17]李剑中.停车场汽车泊位红外巡检系统的设计[J].自动化与仪表,2001,16
22
附录1:程序清单
SETB P3.1;
LOOP0: SETB P1.7 ;定时器初始化。 MOV TMOD,#01H CLR TF0
CLR ET0 ;数据存储区30H~3AH清0。
MOV A,#00H MOV R1,#30H MOV R3,#11
ZERO: MOV @R1,A INC R1
DJNZ R3,ZERO ;等待一个稳定的上跳沿,并假定为数据“0”翻转。
LOOP: JB P1.7,LOOP ;等待稳定的低电平
JB P1.7,LOOP JB P1.7,LOOP
LOOP1: JNB P1.7,LOOP1;等待稳定的高电平。
JNB P1.7,LOOP1;如此得到上跳沿。 JNB P1.7,LOOP1 ;定时器清0,开始定时。
OK1: MOV R2,#01H
MOV R7,#09H;起始信息流计数器 OK: MOV TL0,#00H MOV TH0,#00H
SETB TR0 ;等待一个稳定的低电平(下跳沿)。
LOOP2: JB P1.7,LOOP2 JB P1.7,LOOP2
JB P1.7,LOOP2 ;得到下跳沿后,停止定时,检查时间。 LOOP3: CLR TR0 MOV A,TH0 CLR C
SUBB A,#01H;时间是否大于300us JZ RIGHT ;若时间小于300us一定不是数据的头部。
WRONG: LJMP LOOP0;T<300us重新开始。
RIGHT: MOV A,#152 CLR C
23
SUBB A,TL0
JNC WRONG;T<460us,不是全周期翻转,重新开始。 DJNZ R7,LOOP41;找到数据头部的第一特征,数据“1”计数不满9个继续监测。 SJMP REAL_DA;读到9个“1”后,转到读实际数据。
LOOP41: MOV TH0,#00H;重新定时,开始等待下一个翻转(上跳沿)。 MOV TL0,#00H SETB TR0
LOOP4: JNB P1.7,LOOP4 JNB P1.7,LOOP4
JNB P1.7,LOOP4 ;等到上跳沿,验证时间。
MOV A,TH0 CLR C
SUBB A,#01H
JZ OK1;若大于300us,则此上跳是数据“0”。把该数据假定为数据尾。 SJMP LOOP2;T<300us,此翻转是空翻转,继续监测下一个翻转(下跳沿)。 ;找到正确的头部,开始读数据信息。 REAL_DA: MOV R2,#00H MOV R7,#11;还有11行数据。 MOV R0,#30H;数据起址。
ONEBYT :MOV R3,#05;每5为数据存在一个字节,
MOV R4,#00H;便于检查校验位。 YIWEI: MOV TH0,#00H MOV TL0,#00H
SETB TR0;定时器清0,计时开始 BUBIAN: MOV A,R2 JZ HIGH;R2为0表示当前是低电平,应等待高电平。 LOW: JB P1.7,LOW;R2=1,等待稳定的低电平(下跳沿) JB P1.7,LOW JB P1.7,LOW
BIAN: MOV R2,#00H;当前电平为低电平。 ;等到翻转,计算时间。 READ: MOV A,TH0 CLR C
SUBB A,#01H
JNZ BUBIAN ;A=01H表示是全周期翻转,为数据翻转。 ;A=00H表示是空翻转。
;将数据存入当前数据字节最低位。 ;R2=00H,数据为”1”,R2=01H,数据为”0” CLR TR0 MOV A,@R0 RL A INC A CLR C SUBB A,R2 MOV @R0,A DJNZ R3,YIWEI
INC R0;满5位,地址加1。 DJNZ R7,ONEBYT ;开始检查校验位。并将校验位从数据中去除。 MOV R2,#10 MOV R0,#30H
MOV R1,#60H;卡号的存储起址。 FIX: MOV A,@R0 RRC A;校验位移入C。 MOV @R1,A MOV 10H,C ANL C,/P MOV 11H,C MOV C,P ANL C,/10H ORL C,11H
JC WRONG;校验出错。 INC R0 INC R1
DJNZ R2,FIX ;行校验完成,进行列校验。 MOV R2,#09
24
MOV R1,#60H CLR A
MOV A,3AH;列校验字节送入A。 RR A MOV 3AH,A MOV A,@R1 CHECK: INC R1 XRL A,@R1 DJNZ R2,CHECK CLR C SUBB A,3AH
JNZ WRONG ;将每个字节中的4位有效数据取出, ;每两个字节压缩成一个字节。 MOV R0,#60H MOV R1,#60H MOV R2,#05H COLLAT: MOV A,@R0 SWAP A INC R0 ORL A,@R0 MOV @R1,A INC R1 INC R0
DJNZ R2,COLLAT CLR P1.6 RET
HIGH: JNB P1.7,HIGH JNB P1.7,HIGH JNB P1.7,HIGH
MOV R2,#01H;当前电平为高电平。 SJMP RE