地感式车辆检测器及功能扩展
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JN车辆检测及功能扩展
一、系统组成
MCS—51是功能很强的8位高档单片机,由于它自身的特点,很适合用于测控及逻辑控制,JN车辆检测器是以AT89C51单片机为中心配以相关的功能电路组成。见框图1。
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与非门整形后送入A T89C51外部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 ;6M 12sM 实验,减P2差值,置快门后回AAA0 MOV PSW,#00H ;绿灯循环检测到最小值。
START1: JB P1.0,START2
SETB P1.6 ;若红灯则置相机聚焦.
SJMP START3
START2: CLR P1.6
START3: 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
SJMP C2ACALL1
C1ACA1: SETB P1.2
C2ACALL1: ACALL ALCTF0
MOV A, TH1
CJNE A, 33H, C2ACA
MOV A, TL1
CJNE A, 32H, C2ACA
SJMP C1ACALL1
C2ACA: JNC C2ACA1
MOV 32H, TL1
MOV 33H, TH1
SJMP C1ACALL1
C2ACA1: SETB P1.3
AAAA: JB P1.0, C1ACALL1
INC 30H ;加1去除误差
INC 32H
AAA0: JB P1.0, START1 ;若绿灯则回重检C1 C2基值程序. CLR P1.2
CLR P1.3
SETB P1.6
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