广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 4385 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
23037392 手机
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x4
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
请懂8051的高手帮个忙。
这是一台红外线自走车的程式,但是我希望有人能够把注解写的再详细些。
以及告诉我每个英文所代表的一为何。
;*************************************************************************
; 程 式 开 始
;*************************************************************************
;宣告区
;*************************************************************************
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 可以看到全部内容




献花 x0 回到顶端 [楼 主] From:台湾中华电信 | Posted:2006-10-13 20:18 |
shadowy 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x27
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

看起来已经很详细了呀~
只是有点太详细了, 逐一解释外没有区块解释很难理解 表情
这程式..应该不是楼主写的吧?


献花 x0 回到顶端 [1 楼] From:台湾 | Posted:2006-10-19 11:21 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.043592 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言