廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 7307 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為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.012633 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言