广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 7610 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
j155002
数位造型
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x1
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[asm][求助] 8051的程式问题?
org 0
sw11: jb p3.0,sw12
call delay
jb p3.0,sw11
setb p2.0
sw12: jnb p3.0,$
call delay
jnb p3.0,sw12
s ..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容



献花 x0 回到顶端 [楼 主] From:台湾中华 | Posted:2007-04-27 22:02 |
philos
数位造型
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x4
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

答案都在 指令集 的说明上
我也只学过,
但没很了解.....

setb p2.1
这行,
要先查 SETB 这指令,
他是将某一个 bit(位元)设定成1

SETB p2.1

8051 有数个 io port
分别是由 Px.0~Px.7 (8 bits)

比较难理解的是 sw12: jnb p3.0,[B]$[/B]

至于JB/JNB/SETB/JMP/CALL 指令,
还是看指令集说明比较好,
了解过后,自然就看的懂一部份了,


学的不多,只能提供一点心得...
仅供参考~~~


[Reference]
SETB :位元设定运算

将位址20H的第0 Bit设定为1,可以写成下面两种方式:
        SETP 00H ;位元定址
        SETB 20H.0;第20H位元组的第0位元


1.AJMP :绝对跳跃 (Absolute jump)

          跳到此 11 bit 位址范围,暨跳跃范围据此指令 2 K byte 的距离


2.LJMP :长程跳跃 (Long jump)

          跳到此 16 bit 位址范围,暨跳跃范围据此指令 64 K byte 的距离


3.SJMP :短程跳跃 (Short jump)

          跳到 相对位址范围,暨跳跃范围据此指令前 128 byte 后127 byte 的距离


4.JMP   :间接跳跃 ( Jump indirect),Ex :JMP @A+DPTR

          PC 值变更为累积器 Acc 内容值与 DPTR 内容值之和


有条件跳跃指令
1.JC   :若 进位旗标 C = 1 就跳至相对位址去执行
2.JNC :若进位旗标 C = 0 就跳至相对位址去执行
3.JB   :若 bit = 1 就跳至相对位址去执行
4.JNB   :若 bit = 0 就跳至相对位址去执行
5.JBC   :若 bit = 1 就跳至相对位址去执行,同时清除此 bit 为 0
6.JZ     :若 累积器 A 等于 0 就跳至相对位址去执行
7.JNZ   :若 累积器 A 不等于 0 就跳至相对位址去执行
8.CJNE :若 累积器 A 不等于 直接定址资料值,就跳至相对位址rel去执行
9.DJNZ :若 暂存器 Rn 不等于 0 ,就跳至相对位址 rel 去执行


[ 此文章被philos在2007-05-02 14:40重新编辑 ]


^^
献花 x0 回到顶端 [1 楼] From:台湾中华HiNet | Posted:2007-05-02 12:57 |

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