• slider image 442
  • slider image 492
  • slider image 493
  • slider image 494
  • slider image 495
  • slider image 496
  • slider image 488
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






Re: 請問如何將10 bit ADC 轉換成 10進位資料
#6
初級會員
初級會員


查看用戶資訊
Dear RYYu,

1. 您可引用 AN544 的 Appendix B 裡面的 16-bit 轉成 5-digit BCD (也就是 3 bytes, 每個 byte 有兩個 BCD <Dual-digit BCD Byte>) 的程式. 該處提供兩個 16-bit 轉成 5-digit BCD 轉換程式, 您可了解一下異同之處.

http://ww1.microchip.com/downloads/en/appnotes/00544d.pdf

2. 由於 10-bit 只佔 4-digit 的 BCD, 所以可以將 Dual-digit BCD 的 MSByte 丟棄. 剩 2 個 Dual-digit BCD bytes.
3. 取用 Dual-digits BCD 的 LSByte. 轉成兩個 bytes 的 10 進位 ascii code(右第一位數及第二位數).方法如4~7:

4. 該 Dual-digit BCD 以 logic "AND" 0FH, 再 logic "OR" 30H. 這將使得 MSNibble 的 BCD 內容被丟棄, 而將 LSNibble 部分的 BCD 轉成 10 進位 ascii code (30H~39H).
5. 這成為的較低位數的10 進位 ascii code, 將其存入適當的位置.
6. 取回該 Dual-digit BCD byte, 再用 swapf 指令將 BCD 的 nibbles 對調, 使得該 dual-digit BCD byte 中較高的 BCD digit 被調到 LSNibble 的位置.
7. 重複 4. 將被調到 LSNible 的較高位數 BCD digit 轉成 10 進位 ascii code, 並存入適當的位置.

8. 再取用 Dual-digit BCD 的第二個 Byte. 重複 4~7 得到第三及第四位數的 10 進位 ascii code, 並存入適當的位置..

也就是說, 對於 '02FDH' 這個 16-bit 數字, 經過前述處理時的結果如下,
1. 得到 '00H', '07H', '65H' 三個 bytes.
2. 丟掉 '00H', 因為永遠是 '00H'.
3. 取用 '65H', 得到 '36H' 及 '35H' 兩個 bytes 的 ASCII.

4. '65H' AND '0FH' -> '05H', OR '30H' -> '35H'.
5. Store '35H'.
6. '65H' swapf -> '56H'.
7. '56H' AND '0FH' -> '06H', OR '30H' -> '36H'.
Store '36H'.

8. 取用 '07H', 得到 '30H' 及 '37H' 兩個 bytes 的 ASCII.
'07H' AND '0FH' -> '07H', OR '30H' -> '37H'.
Store '37H'
'07H' swapf -> '70H'.
'70H' AND '0FH' -> '00H', OR '30H' -> '30H'.
Store '30H'.

OK啦! 這樣就可以得到 '30H', '37H', '36H', '35H' 等 4 位數的 ASCII CODE 啦!

Any other question?



發表於: 2006/2/4 0:49
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問如何將10 bit ADC 轉換成 10進位資料
#5
新會員
新會員


查看用戶資訊
參照:

abewu 寫道:
Dear RYYu,
將資料透過 rs232 傳送至PC不一定要十進位或多少進位. 你的問題應該是兩個獨立不相關的問題,
問題1. 如何將10-bit ADC的資料透過rs232傳送至電腦:
Binary Code 或 ASCII Code等都能傳. 但是如果你要透過如超級終端機等軟體連線時, 則需以ASCII Code傳比較好, 否則若干數值會被當成特殊碼, 無法讀取.
所以你的題目是否應該是如何要將 Binary Code換成 ASCII Code呢?
至於換成 ASCII Code時若仍保持16進位的話(0~9,A~F), 無論發送端還是接收端都會比較容易處理.

問題2. 將10-bit的16進位訊號轉換10進位的資料:
您可參考AN544 的 Appendix B.

Dear abewu

謝謝您的指教,
我是想將ADC 的資料以ASCII code傳至電腦,
而傳的資料最好已經是十進位的資料,

謝謝

發表於: 2006/2/3 17:48
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問如何將10 bit ADC 轉換成 10進位資料
#4
新會員
新會員


查看用戶資訊
參照:

master 寫道:
資料格式是10進位還是16進位,對uC都是一樣的東西。
您的問題著眼應該是,是要用binary方式傳送資料,還是用ASCII的方式傳送資料。

例如ADC得到的是765(或是0x02FD),您是直接想把0x02、0xFD透過UART傳到PC端,還是把他轉成ASCII碼的"765"或是"0x02FD"?
若是前者,右邊的教材有現成的CODE可參考,因為我是用那裡的CODE來用。




謝謝你的回應,我的問題是
假設我現在得到ADRESH是0x02, ADRESL是0xfd
我希望能將上面的資料改為ASCII code傳送至電腦
也就是電腦收到的信號直接就是”7”,”6”,”5”的資料了
希望各位指點迷津。

發表於: 2006/2/3 17:39
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問如何將10 bit ADC 轉換成 10進位資料
#3
初級會員
初級會員


查看用戶資訊
Dear RYYu,
將資料透過 rs232 傳送至PC不一定要十進位或多少進位. 你的問題應該是兩個獨立不相關的問題,
問題1. 如何將10-bit ADC的資料透過rs232傳送至電腦:
Binary Code 或 ASCII Code等都能傳. 但是如果你要透過如超級終端機等軟體連線時, 則需以ASCII Code傳比較好, 否則若干數值會被當成特殊碼, 無法讀取.
所以你的題目是否應該是如何要將 Binary Code換成 ASCII Code呢?
至於換成 ASCII Code時若仍保持16進位的話(0~9,A~F), 無論發送端還是接收端都會比較容易處理.

問題2. 將10-bit的16進位訊號轉換10進位的資料:
您可參考AN544 的 Appendix B.

發表於: 2006/2/3 17:32
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問如何將10 bit ADC 轉換成 10進位資料
#2
資深會員
資深會員


查看用戶資訊
資料格式是10進位還是16進位,對uC都是一樣的東西。
您的問題著眼應該是,是要用binary方式傳送資料,還是用ASCII的方式傳送資料。

例如ADC得到的是765(或是0x02FD),您是直接想把0x02、0xFD透過UART傳到PC端,還是把他轉成ASCII碼的"765"或是"0x02FD"?
若是前者,右邊的教材有現成的CODE可參考,因為我是用那裡的CODE來用。



發表於: 2006/2/3 17:11
不要問我哪裡來,我只是個流浪天涯的工程師
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


請問如何將10 bit ADC 轉換成 10進位資料
#1
新會員
新會員


查看用戶資訊
請問大家,

我用的事pic16f877
我現在想要將10-bit ADC的資料透過rs232傳送至電腦,
想請教大家如何將10-bit的16進位訊號轉換10進位的資料,
這樣我就可以直接由電腦判讀資料,

謝謝大家

發表於: 2006/2/3 17:00
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------