Discussion:
請問會寫8051程式的高手
(时间太久无法回复)
賣頻寬控制分享器
2006-07-19 04:53:45 UTC
Permalink
※ 引述《***@bbs.wretch.cc (abook)》之銘言:
: 假如我要讓兩組ADC輸入至89C51
: 然後利用89C51做相減運算後
: 要輸出至一組DAC
: 問題來了
: 當大的值減小的值當然沒問題
: 但是當小的值減大的值時
: 我要另DAC輸出為原本的值取絕對值
: 例如我ㄧ組輸入為3V(X)
: 一組輸入為2V(Y)
: 當Y減X
: 我要讓他為1V
: 這樣個程式該怎麼寫
: 我先將我原本相減的程式PO在下面
: ---------------------------------
: mov a,P1
: mov b,P2
: subb a,b
: mov P0,a
: ---------------------------------
: 這是只能做大減小
: 若是小減大時
: 就不是所謂我要的取絕對值了
我忘記8051是不是可以直接比較大小了...
如果可以...
判斷...X>Y...則X-Y
否則Y-X...
然後輸出...

如果不能比較大小...
那以借位旗標或溢位旗標來判斷...
如果X-Y有借位的話...
則再做Y-X...然後輸出結果...

--
▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
國 立 聯 合 大 學
(理工/電資/管理/技術/客家)院所 招生中
National United University
───────────────────────────────────
首頁 http://www.nuu.edu.tw BBS telnet://uun.twbbs.org

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.140.180
唯DVI是圖 ̄▽ ̄
2006-07-19 22:08:02 UTC
Permalink
那在寫8051組合語言時
怎樣去做比較
我只知道C語言可以直接打大於或小於判斷
但是我看了課本
他所附的指令碼好像沒有大於跟小於的指令
8051的指令好像沒有像80X86那麼多
所以又得請教各位高手了
cjne a, b, $+3;
b_equal_a:

jc b_greater_than_a
b_smaller_than_a:

b_greater_than_a:

cjne 會產生一個進位 flag, 這個進位 flag 產生條件跟減法一致, 瞭解了吧?
--
石室詩士施氏,嗜獅,嗜食十獅。氏時時適市視獅,十時,氏適市,適十獅適市。
是時,氏視是十獅,恃十石矢勢,使是十獅逝世。
氏拾是十獅屍,適石室。石室食時,始識是十獅,實十石獅。試釋是事。
原作: 語文學家趙元任 "石室施氏".

--
◤◥ Origin:  幽谷˙反地球聯邦組織  aeug.twbbs.org 
◣◢ Author: dolphinus 從 192.168.2.2 發表
菊花普洱茶
2006-07-23 05:38:11 UTC
Permalink
※ 引述《***@bbs.wretch.cc (abook)》之銘言:
: 假如我要讓兩組ADC輸入至89C51
: 然後利用89C51做相減運算後
: 要輸出至一組DAC
: 問題來了
: 當大的值減小的值當然沒問題
: 但是當小的值減大的值時
: 我要另DAC輸出為原本的值取絕對值
: 例如我ㄧ組輸入為3V(X)
: 一組輸入為2V(Y)
: 當Y減X
: 我要讓他為1V
: 這樣個程式該怎麼寫
: 我先將我原本相減的程式PO在下面
: ---------------------------------
: mov a,P1
: mov b,P2
: subb a,b
: mov P0,a

JC positive

negative:
(將P0轉正數)

positive:


因為A-B時..若為負數...CARRY=0

這樣不知道可不可行...請指教




: ---------------------------------
: 這是只能做大減小
: 若是小減大時
: 就不是所謂我要的取絕對值了

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.23.223.15
andy
2006-07-24 13:51:37 UTC
Permalink
Post by 賣頻寬控制分享器
: 假如我要讓兩組ADC輸入至89C51
: 然後利用89C51做相減運算後
: 要輸出至一組DAC
: 問題來了
: 當大的值減小的值當然沒問題
: 但是當小的值減大的值時
: 我要另DAC輸出為原本的值取絕對值
: 例如我ㄧ組輸入為3V(X)
: 一組輸入為2V(Y)
: 當Y減X
: 我要讓他為1V
: 這樣個程式該怎麼寫
: 我先將我原本相減的程式PO在下面
: ---------------------------------
: mov a,P1
: mov b,P2
: subb a,b
: mov P0,a
JC positive
(將P0轉正數)
因為A-B時..若為負數...CARRY=0
這樣不知道可不可行...請指教
: ---------------------------------
: 這是只能做大減小
: 若是小減大時
: 就不是所謂我要的取絕對值了
先判斷那個大
再去減

如果 小減大 忽略借位
--
* Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>
Loading...