这是一台红外线自走车的程式,但是我希望有人能够把注解写的再详细些。
以及告诉我每个英文所代表的一为何。
;*************************************************************************
; 程 式 开 始
;*************************************************************************
;宣告区
;*************************************************************************
TIMETEMP0 EQU 30H
TIMETEMP1 EQU 31H
RUN_FLAG REG 32H.0
GOFORWARD EQU 3 ;伺服马达使之前转的时间常数
GOBACK EQU 25 ;伺服马达使之后转的时间常数
MOTOR1 REG P2.6 ;伺服马达1使用8051的P2.6来控制
MOTOR2 REG P2.7 ;伺服马达2使用8051的P2.7来控制
;*************************************************************************
;程式开始
;*************************************************************************
ORG 00H ;程式开始进入点
JMP START ;跳到START初始化
ORG 0BH ;计时中断0进入点
JMP TIMER0_INT ;跳到TIMER0_INT执行程式
;----------------------------------------------------------
START:
CLR RUN_FLAG ;将自动走胶带状态清除
CLR MOTOR1 ;将伺服马达1号的输出清为LOW电位
CLR MOTOR2 ;将伺服马达2号的输出清为LOW电位
CALL INIT_TIMER ;呼叫INIT_TIMER初始化计时器
;----------------------------------------------------------
MAIN:
CALL BOTTOM_CHECK ;呼叫BOTTOM_CHECK执行启动按键判断
CALL AUTO_RUN ;呼叫AUTO_RUN执行胶带路线判断
JMP MAIN ;跳到MAIN重新前面程序
;----------------------------------------------------------
BOTTOM_CHECK:
JB P3.0,EXIT_BOTTOM_CHECK ;如果P2.0按钮没被按下,跳离开
MOV R5,#2 ;将R5设定为2
CALL DELAY ;呼叫DELAY副程式
JB P3.0,EXIT_BOTTOM_CHECK ;如果P2.0按钮没被按下,跳离开
SETB RUN_FLAG ;将启动旗标设为1
EXIT_BOTTOM_CHECK:
JNB P3.0,EXIT_BOTTOM_CHECK ;如果按键还在按下的状态,在原地跳跃
RET ;离开副程式
;----------------------------------------------------------
AUTO_RUN:
JNB RUN_FLAG,JMP_POINT ;如果目前不为自动走胶带状态,跳离开
MOV A,P1 ;将P1的资料送到A(感测器状态)
ANL A,#00011111B ;只保留下五位元的资料
CJNE A,#0,CHECK1 ;如果A的资料为0(全压到线状态),执行下面程式
MOV R5,#200 ;将R5设定为200
CALL DELAY ;呼叫DELAY副程式
WAIT_LOOP:
MOV R0,#1 ;将R0设定为1(马达移动1单位)
CALL MOTORGOF ;呼叫MOTORGOF执行车体前进副程式
MOV A,P1 ;将P1的资料送到A(感测器状态)
ANL A,#00011111B ;只保留下五位元的资料
CJNE A,#0,WAIT_LOOP2 ;如果A的资料为0(全压到线状态),执行下面程式
JMP WAIT_LOOP ;跳到WAIT_LOOP
WAIT_LOOP2:
MOV R0,#1 ;将R0设定为1(马达移动1单位)
CALL MOTORGOF ;呼叫MOTORGOF执行车体前进副程式
JNB P1.0,CHECK2 ;如果P1.0为压到线状态,跳到CHECK2
JNB P1.4,CHECK2 ;如果P1.4为压到线状态,跳到CHECK2
JMP EXIT_AUTO_MODE ;跳到EXIT_AUTO_MODE离开
WAIT_LOOP3:
JMP EXIT_AUTO_MODE ;跳到EXIT_AUTO_MODE离开
CHECK1:
JNB P1.0,CHECK2 ;如果P1.0为压到线状态,跳到CHECK2
JNB P1.1,CHECK2 ;如果P1.1为压到线状态,跳到CHECK2
JNB P1.2,CHECK2 ;如果P1.2为压到线状态,跳到CHECK2
JNB P1.3,CHECK2 ;如果P1.3为压到线状态,跳到CHECK2
JNB P1.4,CHECK2 ;如果P1.4为压到线状 ..
访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容