伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何將PIC單片機AD轉換數據打包

Wildesbeast ? 來源:21IC ? 作者:21IC ? 2020-07-04 11:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

pic單片機作用寬泛,對于pic單片機,大家已不再像若干年前一樣一無所知。隨著對pic單片機的使用,大家的pic單片機應用技能逐漸增強、熟練度逐步提高。但是,大家仍會碰到一些pic單片機相關問題。本文中,小編將介紹如何將pic單片機A/D轉換數據打包,以達到減少空間、提高效率的目的。如果你對本文內容具有一定興趣,不妨繼續往下閱讀哦。

一、引言

PIC 單片機A/D 轉換后的數據通常需要占用兩個8 位寬的RAM 單元, 而PIC 單片機的存儲單元有限,因此造成了單片機的存儲單元不能被有效利用, 同時通過串口向上位機傳送數據時也需要花費較多的時間。

在由單片機和PC 機構成的檢測系統中, 通常會由多個單片機采集數據并將經過A/D 轉換的數據通過串口送往上位PC 機進行數據處理。PIC 單片機A/D 轉換后的結果大多是8 位或10 位的, 8 位的A/D轉換不涉及該問題。以10 位的數據為例, 在單片機內進行存儲時需要占用2 個8 位的字節, 低8 位和高2位分別存儲在2 個字節中, 但是用于存儲高位數據的8 位寬的RAM 單元中僅有2 位是有效數據。

單片機的存儲空間有限, 以單片機為例, RAM 數據存儲器按功能分為通用寄存器和特殊功能寄存器兩個部分, 除去特殊功能寄存器外, 僅有368 個8 位寬的RAM 單元, 單片機能夠存儲的數據量很有限。假設將每次A/D 轉換的數據直接存儲, 每個數據都要占用2 個字節, 理想狀態下也只能存儲184 個數據; 假設需要存儲100 個A/D 轉換的數據, 就要占用200 個字節的單元, 這樣的存儲方式并未將單片機的存儲空間充分利用, 同時, 如果將A/D 轉換后的數據通過串口直接上傳, 串口就要向上傳送200 幀的數據, 有效傳輸速率比較低, 沒有充分利用數據幀中的數據位。為此,本文提出如下方法將A/D 轉換后的數據先進行處理后再存儲或上傳。

二、程序設計思路

以10 位的A/D 轉換為例, 可以將A/D 轉換的結果暫存在a[size] 中, 然后把數組a 中的數據一位一位地取出, 把低8 位和高8 位拆開分別存放, 低8 位存放在數組b 中, 高8 位存放在數組c 中, 由于高8 位的數據中只有2 位是有效數據, 我們可以把有效數據取出組合成一個新的數據存放, 當上傳數據后再用相反的方法解碼, 把數據恢復到原先的狀態。這樣對于10 位的A/D 轉換來說可以節省3/8 的空間, 需要向上位機傳送的數據也會比較少, 數據傳輸時間僅為原來的5/8。

三、采用C 語言編寫的程序

本文采用PIC16F877 單片機進行試驗。其中定義i、h、j、n、m 為int8, a[size] 為int16 的數組, 用于暫存A/D 轉換的結果; b[number]、c[number]、d[number] 是int8 的數組。程序原文如下:

void convert ()

{

h= j;

for ( i= 0 ; i《 size ; i+ + )

{

b[h+i]= a[i];

c[i] = (a[i]》》 8)&0x03;

j++ ;

}

m= n;

for ( i= 0 ; i《 size/4 ; i+ + )

{

d[m+i]= (c[4*i]《《 2) |c[4*i+ 1 ];

d[m+i]= (d[m+i]《《 4) |(c[4*i+ 2 ]《《 2) ;

d[m+i]= d[m+i]|c[4*i+3];

n++ ;

}

}

程序首先利用一個for 循環將A/D 轉換后的數據拆開, 將低8 位存放在數組b 中, 高2 位暫時存放在數組c 中。由于數組c 中的8 位二進制數據都是僅有低2 位是有效數據, 所以第二個for 循環將c[i]、c[i+1]、c[i+2]、c[i+3]中的2 位有效數據取出, 按照由低到高的順序重新組合成一個8 位的二進制數,放入數組d, 構成一個新的數組。這樣A/D 轉換結果由原來用數組a 表示變成了由數組b 表示低8 位、數組d 表示高2 位的狀態。

程序中的h、j、n、m 用于記錄最后轉換的數據存儲在數組的位置, 在下一次轉換的時候, 數據可以接在上一次的數據后面, n 和j 在主程序中convert ( ) 被調用之前首先被賦值為0。

四、結論

根據以上程序, 我們可以按照類似的方法把12 位的A/D 轉化結果進行組合, 將12 位的A/D 轉換結果拆成低8 位和高4 位, 再將2 個高4 位重新組合成一個8 位的二進制數存儲, 這樣對于12 位的A/D 轉化結果可以節省1/4 存儲空間, 縮短1/4 傳輸時間。

該程序的執行時間僅為990us, 相對于數據的傳輸時間是很小的。在單片機空間小的情況下, 以程序的執行時間來換取單片機的存儲空間是值得的。同時又能有效地縮短數據的上傳時間, 提高有效數據的傳輸速率。但是在數據量較少的時候, 比如只有1 個A/D 轉換的數據, 這樣做反而會耗費時間、降低效率。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6077

    文章

    45525

    瀏覽量

    672028
  • 寄存器
    +關注

    關注

    31

    文章

    5612

    瀏覽量

    130201
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1399

    瀏覽量

    120876
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    深入了解Microchip PIC16C5X系列:8位單片機的卓越之選

    深入了解Microchip PIC16C5X系列:8位單片機的卓越之選 在當今電子設備飛速發展的時代,各類單片機產品層出不窮,為廣大電子工程師提供了豐富多樣的選擇。今天,我們就來深入探討
    的頭像 發表于 02-09 11:25 ?365次閱讀

    單片機多路數據采集系統的設計

    及原理 傳感器裝置按照設定的方式傳遞模擬電量。模擬電量的生成方式較為復雜,可以簡單的按照常規電量轉化的方式加以處置,也可以按照非物理量的應用特征進行設計,使單片機的多路數據采集系統可以完整結合信息資源
    發表于 01-07 06:44

    單片機之間可以進行無線數據傳輸嗎

    三個單片機之間進行無線數據傳輸時,直接通過NB-IoT和4G模塊進行“點對點”通信是不可行的。 替代方案: 1. 使用服務器作為中轉:第一個單片機通過NB-IoT模塊
    發表于 11-28 08:15

    單片機用什么封裝

    單片機封裝是芯片內部電路與外部引腳連接并包裹保護的結構,不僅影響單片機的安裝方式、適用場景,還與電路設計的緊湊性、散熱性能密切相關。不同封裝類型各有特點,適配從簡單電路到復雜系統的多樣化需求
    的頭像 發表于 08-01 13:47 ?1478次閱讀

    什么單片機比較耐用

    ? ? ? ? 在工業控制、戶外設備、醫療儀器等場景中,單片機的耐用性直接決定了設備的穩定運行與維護成本。耐用的單片機通常具備寬溫工作范圍、強抗干擾能力、穩定的電源適應性和長壽命的硬件設計。深圳市安
    的頭像 發表于 07-31 13:48 ?828次閱讀

    單片機的儲存優點是什么

    場景。深圳市安凱星科技有限公司在單片機應用開發中,充分利用這些儲存優點,為拓邦、朗科、安徽龍多等客戶打造了高效穩定的解決方案。 1.集成度高,節省硬件空間 單片機程序存儲器(ROM)、數據
    的頭像 發表于 07-31 10:09 ?736次閱讀

    單片機是由什么組成的

    單片機作為一種集成化的微型計算機,其核心優勢在于多個功能模塊緊湊地集成在一塊芯片上,從而實現數據處理、外設控制等功能。了解單片機的組成部分,能幫助我們更好地理解其工作原理和應用邏輯。
    的頭像 發表于 07-29 11:03 ?1277次閱讀

    PIC18F97J60系列數據手冊

    PIC單片機是Microchip公司生產的一類單片機,和馮-諾依曼結構不同的哈佛結構,中文手冊對于大家來講可以方便開發
    發表于 07-28 16:37 ?0次下載

    怎么測單片機系統頻率

    單片機系統頻率是指單片機工作時的時鐘頻率,它直接影響單片機的運行速度和處理能力,準確測量系統頻率對單片機應用開發、程序調試和性能優化具有重要意義。測量
    的頭像 發表于 07-25 11:39 ?905次閱讀

    單片機怎么驅動電機?

    在各類自動化設備和智能裝置中,電機是重要的執行部件,而單片機作為控制核心,需要通過特定的方式驅動電機運轉。單片機驅動電機并非直接連接即可,而是要根據電機類型和功率,搭配合適的驅動電路,才能實現穩定
    的頭像 發表于 07-25 09:31 ?1074次閱讀

    單片機怎么燒程序

    單片機燒程序是編寫好的程序代碼寫入單片機內部存儲單元,讓單片機按照預設邏輯工作的過程,是單片機應用開發中不可或缺的環節。無論是簡單的燈光控
    的頭像 發表于 07-23 11:47 ?1614次閱讀

    低功耗單片機各型號的對比及選型參考

    不同品牌、不同系列的低功耗單片機在功耗控制、性能表現、外設配置等方面各有特點,通過低功耗單片機各型號的對比,能幫助開發者更精準地匹配應用需求。本文圍繞主流低功耗單片機型號展開對比,并
    的頭像 發表于 07-22 18:25 ?1561次閱讀

    輝芒微單片機FT60E011A-RB兼容PIC12F508/509主控芯片

    在電子設備的核心控制領域,單片機發揮著至關重要的作用。輝芒微單片機 FT60E011A-RB 以其出色的兼容性和豐富的功能,成為了替代微芯 PIC12F508/509 主控芯片的優質之選
    的頭像 發表于 06-30 11:36 ?992次閱讀
    輝芒微<b class='flag-5'>單片機</b>FT60E011A-RB兼容<b class='flag-5'>PIC</b>12F508/509主控芯片

    輝芒微FT61FC23-RB單片機兼容微芯PIC16F676芯片

    在電子技術飛速發展的今天,單片機作為眾多電子設備的核心部件,其性能與適用性直接影響著產品的功能與競爭力。輝芒微推出的 FT61FC23-RB 單片機,憑借與微芯 PIC16F676 芯片的高度兼容性
    的頭像 發表于 06-24 14:47 ?868次閱讀
    輝芒微FT61FC23-RB<b class='flag-5'>單片機</b>兼容微芯<b class='flag-5'>PIC</b>16F676芯片

    Microchip發布PIC16F17576系列單片機

    對需要快速捕捉瞬態模擬信號的器件而言,在盡可能降低功耗的同時實現快速響應至關重要,尤其在電池供電應用中。為滿足這一需求,Microchip Technology Inc.(微芯科技公司)發布PIC16F17576系列單片機(MCU)產品。該系列
    的頭像 發表于 04-30 17:26 ?2148次閱讀