传感器的特点包括:微型游好化、数字化、智能化、多功能化、系统化、网络化猜磨纯。它是实现自动检测和自动控制的首要环节。传感器的存在和发展,让物体有了触觉、味觉和嗅觉等感官,让物体慢慢变得活了起来。通常根据其基本感知功能分为热敏元件、光敏元件、气敏元件、力敏元件、磁敏元件、湿敏元件、声敏元件、放射线敏感元件、色敏元件和味敏元件等十大类。
附件一:总程序源程序
**************说咐型明***************************************************
** P1.1为左边传感器输入 P1.0为右边传感衡隐猜器输入 **
** P1.6检测车身前倾 P1.7检测车身后倾 **
** 秒表端口定义: **
** A(P2.1):启动/停止计时 B(P2.3):各段记录时间回放**
** C(P2.3):分段计时标志/清零(停止状态下) **
*********************************************************************
ORG0000H
************主程序***************************************************
JBGN:
LCALL TC 停车
LCALL CSZT 设置初始状态
*************车身平衡检查******************
CGQ:
LCALL QJ 前进3S,第一次不检查A端黑线
LCALL QL 秒表置零
LCALL QDJS 启动秒表
LCALL DELAY1S
LCALL DELAY1S
LCALL DELAY1S
LCALL TC 停车
LCALL DELAY30消除摆动
JXPD:JNB P1.6,MBXS如果前倾(到达C点附近),转秒表显示AC段行车时间
LCALL QJ前进
LCALL DELAY
LCALL TC
LCALL DELAY30消除摆动
LJMP JXPD继续判断是否到达C点附近
MBXS:
LCALL QDJS
LCALL CDSL5 停车5S,读取AC段行车时间
LCALL QL 秒表清零
LCALL QDJS 启动计时,记录平衡调整时间
CGQJC:
JNB P1.6,JBZHT 如果前倾,转慢速后退
JNB P1.7, JBWW 如果后仰,转慢速前进携世
LCALL DELAY1S延时判断是否真正平衡
LCALL DELAY1S
LCALL DELAY1S
JNB P1.6,CGQJC 如果前倾,转继续调整平衡
JNB P1.7,CGQJC 如果后仰,转继续调整平衡
LCALL TC 停车
LCALL QDJS 停止计时,显示平衡调整所用时间
CLR P2.5 蜂鸣器鸣叫
CLR P2.4 七彩灯亮
LCALL CDSL5 转到车灯闪亮5次,表示5S时间
LCALL CSZT
LJMP CDB 转C到B程序前进
***********转长跳***********
JBZHT:
LJMP JBTPH
JBWW:
LJMP JBWWW
***********调整平衡*********
JBTPH:
LCALL DELAY30消除传感器摆动
JBTP: LCALL HT
lcall delay
LCALL TC
LCALL DELAYTC消除传感器摆动
JNB P1.6,JBTP
LJMP CGQJC
JBWWW:
LCALL DELAY30
JBWG:LCALL QJ
LCALL DELAY
LCALL TC
LCALL DELAYTC消除传感器摆动
JNB P1.7,JBWG
LJMP CGQJC
*********从C点到B端程序**********
CDB:
LCALL QL 秒表置零
LCALL QDJS
LCALL QJ
DT: JB P1.0, DT 如果右边遇到黑线,则检查左边(顺序执行),否则继续检查左边
JB P1.1, DT
LCALL TC
LCALL QDJS 停止计时,显示从C到B的时间
LCALL CDSL5 延时5S
LCALL HT 停车5S时间到,转后退返回
LCALL QL
LCALL QDJS
LCALL DELAY1S
LCALL DELAY1S
LCALL DELAY1S
DDTT:JB P1.0, DDTT 如果右边遇到黑线,则检查左边(顺序执行),否则继续检查左边
JB P1.1, DDTT
INC A
CJNE A,#2H,DDTT 从B端返回A端时,不用检测B端黑线
LCALL TC 已经返回A端,停车
LCALL QDJS停止计时,显示从B返回A所用时间
************************基本功能与发挥部分的程序接口*************************************
LCALL CDSL5 延时5S,等待进入发挥部分程序
LCALL CSZT
CLR P2.4 状态灯亮5S
LCALL DELAY1S
LCALL DELAY1S
CLRP2.5 蜂鸣器叫3S
LCALL DELAY1S
LCALL DELAY1S
LCALL DELAY1S
LCALL CSZT 关状态灯,进入发挥部分程序
**********************发挥部分主程序*********************************************
FHBF:
LCALL QJ
QJXHX:
JNB P1.1,JX1若P1.1为0(黑线),则继续查询P1.0 (左边遇到黑线,则检查右边的状态)
JNB P1.0,JX2若P1.0为0(黑线),则继续查询P1.1 (右边遇到黑线,则检查左边的状态)
LJMP QJXHX
JX1:
JNB P1.0,PHCL
LJMP CZZW 若P1.0也为黑线,则平衡处理,否则左转弯
JX2:
JNB P1.1,PHCL
LJMP CYZW
CZZW:
LCALL ZZW
LCALL ZWSJ 转弯时间
LCALL TC
LCALL DELAY30
LCALL QJ
LJMP QJXHX
CYZW:
LCALL YZW
LCALL ZWSJ 转弯时间
LCALL TC
LCALL DELAY30
LCALL QJ
LJMP QJXHX
*****************平衡调整*******************
PHCL:
LCALL QJ 前进3S
LCALL DELAY1S
LCALL DELAY1S
LCALL DELAY1S
LCALL TC
LCALL DELAY30 消除传感器摆动
FHPHTZ:
JNB P1.6,FHZHT如果前倾,转慢速后退
JNB P1.7,FHZQJ如果后仰,转慢速前进
LCALL DELAY1S 延时判断是否真正平衡
LCALL DELAY1S
LCALL DELAY1S
JNB P1.6,FHPHTZ 如果前倾,转继续调整平衡
JNB P1.7,FHPHTZ 如果后仰,转继续调整平衡
LCALL TC 停车
LCALL QDJS停止计时,显示平衡调整所用时间
CLR P2.5 蜂鸣器鸣叫
CLR P2.4 七彩灯亮
LCALL CDSL5 转到车灯闪亮5次,表示5S时间
LJMP FHPHTZ 转平衡调整
***********转长跳***********
FHZQJ:
LCALL CSZT 初始状态关报警
LJMP FHWWW
FHZHT:
LCALL CSZT 初始状态关报警
LJMP FHTPH
***********调整平衡*********
FHTPH:
LCALL DELAY30 消除传感器摆动
TP: LCALL HT
LCALL DELAY
LCALL TC
LCALL DELAYTC 消除传感器摆动
JNB P1.6,TP
LJMP FHPHTZ
FHWWW:
LCALL DELAY30 消除传感器摆动
DH: LCALL QJ
LCALL DELAY
LCALL TC
LCALL DELAYTC 消除传感器摆动
JNB P1.7,DH
LJMP FHPHTZ
******************子程序****************************************************
*******设置初始状态*************
CSZT:
SETB P2.6 关灯
SETB P2.7
SETB P2.4
SETB P2.5 关蜂鸣器
RET
***********停转*******************
TC:
CLR P1.2
CLR P1.3
CLR P1.4
CLR P1.5
RET
***********前进********************
QJ:
CLR P1.2
SETB P1.3
CLR P1.4
SETB P1.5
RET
**********后退********************
HT:
SETB P1.2
CLR P1.3
SETB P1.4
CLR P1.5
RET
*********左转弯******************
ZZW:
CLR P1.2
CLR P1.3
CLR P1.4
SETB P1.5
RET
*********右转弯******************
YZW:
CLR P1.2
SETB P1.3
CLR P1.4
CLR P1.5
RET
**********秒表控制************************
*******启动/停止计时**********
QDJS:
CLR P2.1
LCALL DELAY10
LCALL DELAY10
LCALL DELAY10
LCALL DELAY10
SETB P2.1
RET
************显示清零*************
QL:
CLR P2.3
LCALL DELAY10
LCALL DELAY10
LCALL DELAY10
LCALL DELAY10
SETB P2.3
RET
************延时程序*********************
*****延时1秒****
DELAY1S:
MOV R3,#02H
DEL1: MOV R2,#0FAH
DEL2: MOV R1,#0FAH
DEL3: DJNZ R1,DEL3
NOP
DJNZ R2,DEL2
DJNZ R3,DEL1
RET
*****延时10毫秒*****
DELAY10:
MOV R2,#20
DB1:MOV R1,#248
DB2:DJNZ R1,DB2
DJNZ R2,DB1
RET
*********前进或后退时间**********
DELAY:
MOV R2,#30
DD1:MOV R1,#200
DD2:DJNZ R1,DD2
DJNZ R2,DD1
RET
***********停车时间****************
DELAYTC:
MOV R2,#100
D11:MOV R1,#200
D22:DJNZ R1,D22
DJNZ R2,D11
RET
*********延时程序****************
*********延时0.5秒****
DELAY30:
MOV R2,#250
DL2: MOV R1,#250
DL1: DJNZ R1,DL1
DJNZ R2,DL2
RET
*********转弯时间32MS**********
ZWSJ:
MOV R2,#50
D1:MOV R1,#100
D2:DJNZ R1,D2
DJNZ R2,D1
RET
****延时约250毫秒(12M晶振)****
DELAY250:
MOV R3,#2
L3: MOV R2,#250
L1: MOV R1,#250
L2: DJNZ R1,L2
DJNZ R2,L1
DJNZ R3,L3
RET
*****用状态灯显示终点停车5S时间(亮5次)*****
CDSL5:
MOV R5,#5H
PY: SETB P2.6
SETB P2.7
LCALL DELAY250
LCALL DELAY250
CLR P2.6
CLR P2.7
LCALL DELAY250
LCALL DELAY250
DJNZ R5,PY
RET
END
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)