JN 车辆检测及功能扩展
一、系统组成
MCS—51 是功能很强的 8 位高档单片机,由于它自身的特点,很适合用于测控及
逻辑控制,JN 车辆检测器是以 AT89C51 单片机为中心配以相关的功能电路组成。见框
图 1。
C1、C2
地感线圈
B1、 B2
基准频率发生器 F0
AT89C51
检测控制
整形
框图 1
执行器件
CPU 对车辆途经地感线圈 C1、C2 所产生的电感变化与基准频率 fo 进行比较运算,当
变化频率大于或等于某一差值时,CPU 输出控制信号。
二、工作原理与程序
由电感器件 B1、BG1、C1、C2、R1 等组成低频振荡电路,外接地感线圈 C1 就构成了
车辆感应电路,见图 1。当加电瞬间电流经 R2 向 C1、L2 充电,a 点为高电位,由于 C2 作
用使 BG1 基极电位上升,集电极电位下降,当 BG1 的 C 极电位低于 a 点时,电源不再向
C1 充电,此时 B1 上所聚集的磁能将以电能的形式释放出来,并改变原来充电电流的方向
继续向 C1 充电,BG1 的 b 极仍然保持较高的电位,集电极 c 电位继续下降,当 B1 释放完
毕后,BG1 的 b 极失去高电位的支撑,集电极电位开始回升,当回升高于 a 点电位后又开
始向 C1 充电,周而复始。
改变选频电路 C1、L2 的值可改变其电路的振荡频率,经实验在不加地感线圈 C1 时振荡频
率应控制在 16—20KHz,加 C1 后频率应提升到 40—50KHz。当车辆途经地感线圈瞬间时使
C1 的电感增大,这等效于 B1 的初级线圈 L1 部分线匝短路,使得 B1 的电感降低,振荡频
率从原 fo 上升至 f i 。频差等于 fi—fo,从频率变化上就能反映出车辆是否通过 C1。不同类
型的车辆由于底盘距地面的高度不同,所以频差也不尽相同,在 CPU 处理过程中我们可以
设定不同的阀值用于分类不同的车辆。Uo 经 C3 由 4069 与非门整形后送入 AT89C51 外部
P3.4、P3.5 进行计数。整图见图 2
CPU 检测控制流程框图见图 2。初始化后基本上是以判断为主的顺序结构,在编程时将检测
C1、C2 线圈的语句定为子程序以便反复调用, 汇编程序全文如下:
ORG 0000H
LJMP START
ORG 000BH
LJMP TF0INT
ORG 001BH
LJMP TF1INT
ORG 0100H
START: MOV SP,#60H
MOV PSW,#00H
;6M 12sM 实验,减 P2 差值,置快门后回 AAA0
;绿灯循环检测到最小值。
START1: JB P1.0,START2
SETB P1.6
SJMP START3
;若红灯则置相机聚焦.
START2:
START3:
CLR P1.6
CLR A
MOV R0,A
MOV R1,A
MOV R2,A
MOV R3,A
MOV R4,A
MOV R5,A
MOV R6,A
MOV R7,A
MOV 30H,A
MOV 31H,A
MOV 32H,A
MOV 33H,A
MOV P1,#01H
MOV P2,#0FFH
C1ACALL: ACALL ALCTF1
;调用 C1 检测子程序,取最小 C1 基值
MOV 30H,TL0
MOV 31H,TH0
C2ACALL: ACALL ALCTF0
;调用 C2 检测子程序,取最小 C2 基值
MOV 32H,TL1
MOV 33H,TH1
C1ACALL1: CLR P1.6
JNB P1.0, AAAA
ACALL ALCTF1
MOV A, TH0
CJNE A, 31H, C1ACA
MOV A, TL0
CJNE A, 30H, C1ACA
SJMP C2ACALL1
C1ACA: JNC C1ACA1
MOV 30H, TL0
MOV 31H, TH0
SJMP C2ACALL1
C1ACA1:
C2ACALL1:
SETB P1.2
ACALL ALCTF0
MOV A, TH1
CJNE A, 33H, C2ACA
MOV A, TL1
CJNE A, 32H, C2ACA
SJMP C1ACALL1
C2ACA: JNC C2ACA1
C2ACA1:
AAAA:
AAA0:
MOV 32H, TL1
MOV 33H, TH1
SJMP C1ACALL1
SETB P1.3
JB P1.0, C1ACALL1
INC 30H
INC 32H
JB P1.0, START1
CLR P1.2
CLR P1.3
SETB P1.6
;加 1 去除误差
;若绿灯则回重检 C1 C2 基值程序.
C1_CHER: ACALL ALCTF1
;检测 C1 并进行比较.
MOV A, TH0
CJNE A, 31H, C1_CHE1
MOV A, TL0
CJNE A, 30H, C1_CHE
SJMP AAA0
C1_CHE: JC AAA0
MOV B,P2
CLR C
SUBB A, 30H
CJNE A, B, C1_CHE1
SETB P1.2
SJMP C1_CHE2
C1_CHE1: JC AAA0
MOV A, #0FFH
CLR C
SUBB A, 30H
ADD A, TL0
MOV B,P2
CJNE A,B,C1_CHE6
SETB P1.2
SJMP C1_CHE2
C1_CHE6: JC AAA0
SETB P1.2
C1_CHE2: JNB P1.0, C1_CHE3
CLR P1.6
CLR P1.2
CLR P1.3
AJMP START1
C1_CHE3: ACALL ALCTF1
MOV A, TH0
CJNE A, 31H, C1_CHE4
MOV A, TL0
CJNE A, 30H, C1_CHE4
SJMP C1_CHE5
C1_CHE4: JNC C1_CHE2
C1_CHE5: INC R6
C2_CHER: JNB P1.0, C2_CHE
CLR P1.6
CLR P1.2
CLR P1.3
MOV R6,#00H
AJMP START1
C2_CHE: ACALL ALCTF0
MOV A, TH1
CJNE A, 33H, C2_CHE1
MOV A, TL1
CJNE A, 32H, C2_CHE1
SJMP C2_CHER
C2_CHE1: JNC AAA
SJMP C2_CHER
AAA: SETB P1.3
C2_CHE2: JNB P1.0, C2_CHE3
CLR P1.6
CLR P1.2
CLR P1.3
MOV R6,#00H
BBB:
AJMP START1
C2_CHE3: ACALL ALCTF0
MOV A, TH1
CJNE A, 33H, C2_CHE4
MOV A, TL1
CJNE A, 32H, C2_CHE4
SJMP C2_CHE5
C2_CHE4: JB P1.0, BBB
C2_CHE5:
YNN500:
JNC C2_CHE3
MOV A, R6
JZ C2_CHER
JB P1.0,BBB
SETB P1.1
MOV R5, #00H
;置快门.
;相片存储延时.
INC R5
ACALL ALCTF1
CJNE R5, #38H, YNN500
MOV R4, #00H
MOV R5, #00H
MOV R6, #00H
MOV R7, #00H
CLR P1.1
CLR P1.6
YNN501: INC R5
;相机状态恢复延时.
ACALL ALCTF1
CJNE R5, #0CFH, YNN501
MOV R5, #00H
JB P1.0,AABB2
CLR P1.1
SETB P1.6
YNN502: INC R5
;红灯期间相机聚焦延时.
ACALL ALCTF0
CJNE R5,#3FH,YNN502
MOV R5,#00H
AJMP AAA0
AABB2:
ALCTF0: MOV TMOD, #51H
;设置中断计数方式
MOV TL0, #90H
MOV TH0, #0E8H
MOV TL1, #00H
MOV TH1, #00H
SETB TR0
SETB ET0
SETB EA
SETB TR1
T0HERE: CJNE R7, #01H, T0HERE
CLR TR0
CLR ET0
CLR EA
MOV R7,#00H
RET
ALCTF1: MOV TMOD, #15H
MOV TL1, #90H
MOV TH1, #0E8H
MOV TL0, #00H
MOV TH0, #00H
SETB TR1
SETB ET1
SETB EA
SETB TR0
T1HERE: CJNE R7, #01H, T1HERE
CLR TR1
CLR ET1
CLR EA
MOV R7,#00H
RET
TF0INT: INC R7
CLR TR1
CPL P1.3
RETI
AA:
TF1INT: INC R7
BB:
CLR TR0
CPL P1.2
RETI
END
INC 30H 是为消除软件计数本身以及环境变化所来的误差,在低字节上加 1,也
可连用两条,这样更可靠。
阀值由拔码开关设置,由 CPU 读入至数据寄存器内,C1 检测的值大于前一次的
值,肯定有车辆通过,若它的差值大于或等于阀值就可以捕获到我们所希望的车辆,
阀值的大小与车辆检测的灵敏度有关,一般在现场进行设定。
三、制做与调试
B1、B2 选直经 18mm 的磁杯用线经 0.22mm 在 L1 绕 21 圈,L2 绒 14 圈。振荡三
极管应选择高放大倍数的。地感线圈长度在一个车道以内,宽度可计算:设车速为
80Km,计数定时为 15ms,宽=80Km/T*15ms=0.333m , 可选定为 0.50m ,在地面上开
漕绕 5 圈即可,室内制做时可在 400mm 的空骨架上绕制 50 圈,线经无要求。焊接好电
路后应仔细检查,在确定电路各点电位准确无误后方可插入以灌好程序的单片机,连接
好外围器件。加电进入调试状态,此时 P1.1、P1.6 相连的 LED 会交替闪烁,用一带有
铁器的物件如摄子等靠近 C1,LED1 点亮,离开后靠近 C2,LED1 灭 LED2 点亮,离
开 C2 后 LED2 灭。只要元器件标值正确,焊接无误,一般均可正常运行。
笔者利用上述车辆检测器设计了一台数码电子警察,近一年的使用性能可靠,未出
现绿灯期间拍摄,连续拍摄等故障。现大概介绍一下扩展方法,电路见图 2,图中由 B3、
BG5、BG2、SK2 等组成红灯信号检测电路,SK2 为模拟红灯按纽,BG3、BG4 等组成
数码相机控制电路,BG3 为相机的聚焦控制,BG4 为相机的快门控制,J2 接数码相机
的聚焦与快门,J3 接红灯信号。现场试调时可置 SK2 为红灯模拟状态,D5 被点亮,此
时数码相机处于聚焦状态,当车辆通过地感线圈并离开 C2 后 D6 被点亮,相机按下快
门。调整拔码开关以合适的阀值(即检测灵敏度),滤除不需要的车辆,如二轮摩托车
等,复位 SK2 为正常红灯状态,此时电路就可以工作了。
地感式车辆检测器由于成本低后期维护费用小,受环境影响不大,工作性能
稳定可靠等优点,所以目前仍然在广泛使用,利用车辆检测器不仅可开发电子警察,
还可开发出如:自动显示泊车数的停车场,实时配时的路口信号机系统,自动车库,
交通车流量计数器等。
框图 2
初始化
N
不起振,指示灯
测 C1、C2 的 Fo 基值
Y
存入寄存器 R0、R1
N
N
测 C1—R0 大于或等于阀值?
Y
置 P1.1 高电平
测 C2—R1 大于或等于阀值?
Y
置 P1.6 高电平
N
测 C1—R0 小于阀值?
Y
置 P1.1 低电平
N
测 C2—R1 小于阀值?
Y
置 P1.6 低电平
结束结束