線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2498
推到 Plurk!
推到 Facebook!

8051運算相關

答題得分者是:暗黑破壞神
謎樣
一般會員


發表:3
回覆:3
積分:0
註冊:2007-03-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-03-28 16:56:59 IP:59.127.xxx.xxx 訂閱
熱感元件使用AD590
A裡面的數值(H)必須要乘以0.39才會是真正溫度值
然後再經過16轉10
請問這個0.39我要怎麼去寫
因為8051好像沒有小數

謝謝
johnpage
初階會員


發表:0
回覆:79
積分:40
註冊:2004-08-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-03-28 18:09:05 IP:220.137.xxx.xxx 訂閱
如果記憶體夠大   用查表法
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-03-28 18:17:47 IP:220.131.xxx.xxx 訂閱
沒有就把它當做整數來運算呀。
算完再把小數點打上去就好了。
小學不是都這樣教嗎?

===================引 用 文 章===================
熱感元件使用AD590
A裡面的數值(H)必須要乘以0.39才會是真正溫度值
然後再經過16轉10
請問這個0.39我要怎麼去寫
因為8051好像沒有小數
極光空
一般會員


發表:4
回覆:15
積分:3
註冊:2006-07-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-03-28 23:23:27 IP:218.211.xxx.xxx 訂閱
不用想太多,你可以先把0.39*100=39
在將轉換(數值*39)/100
這不就變成你要的溫度值嗎!但小數部份這麼辦呢
再把上式的(餘數*10)/100,就得到小數點第一位啦!
往後以此類推。用小學的方式就可以啦!
謎樣
一般會員


發表:3
回覆:3
積分:0
註冊:2007-03-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-03-29 07:30:08 IP:59.127.xxx.xxx 訂閱

===================引 用 文 章===================
沒有就把它當做整數來運算呀。
算完再把小數點打上去就好了。
小學不是都這樣教嗎?

===================引 用 文 章===================

因為我是要把溫度顯示於LCD上面
所以只有0~100度
並沒有小數點

也就是A裡面的數值為01H
我的溫度就會是0.39度

請問一下
除法運算的話
8051只會除一次還是說會除到更後面

例如111/10=10....11
還是111/10=11.....1
謎樣
一般會員


發表:3
回覆:3
積分:0
註冊:2007-03-24

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-03-29 07:32:41 IP:59.127.xxx.xxx 訂閱

===================引 用 文 章===================
不用想太多,你可以先把0.39*100=39
在將轉換(數值*39)/100
這不就變成你要的溫度值嗎!但小數部份這麼辦呢
再把上式的(餘數*10)/100,就得到小數點第一位啦!
往後以此類推。用小學的方式就可以啦!

===================引 用 文 章===================

也就是說把它都乘到百位數在/100就對了?
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-03-29 09:19:34 IP:220.131.xxx.xxx 訂閱
既然你只有整數 0.39 變成 39 下去做乘法。這樣會不會?
做完後記得你要退兩位就是了。
johnpage
初階會員


發表:0
回覆:79
積分:40
註冊:2004-08-07

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-03-29 09:54:30 IP:220.137.xxx.xxx 訂閱
小心溢位 造成資料錯誤

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-03-29 15:02:28 IP:59.125.xxx.xxx 未訂閱
暗黑大大說的方式是可行的,也蠻常用的.

不考慮負且無計算錯誤的話, 要造成溢位不容易. 一般乘法擺乘積的位置至少都有16bit (8051也有,A&B), 16 bit 就65535了.
一般量測範圍內頂多400~500度, 差個 100 倍不過50000.

FYI

===================引 用 文 章===================
小心溢位? 造成資料錯誤
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
系統時間:2024-05-20 22:48:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!