www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 電源 > 電源
[導(dǎo)讀]PIC 單片機A/D 轉(zhuǎn)換后的數(shù)據(jù)通常需要占用兩個8 位寬的RAM 單元, 而PIC 單片機的存儲單元有限,因此造成了單片機的存儲單元不能被有效利用, 同時通過串口向上位機傳送數(shù)據(jù)時也

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

為此提出一種數(shù)據(jù)打包的方法, 使得相同的數(shù)據(jù)量占用較少的存儲空間, 并可提高傳輸效率。

引言

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

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

1 程序設(shè)計思路

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

2 采用C 語言編寫的程序

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

vo idconvert ()
{
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 循環(huán)將A/D 轉(zhuǎn)換后的數(shù)據(jù)拆開, 將低8 位存放在數(shù)組b 中, 高2 位暫時存放在數(shù)組c 中。由于數(shù)組c 中的8 位二進制數(shù)據(jù)都是僅有低2 位是有效數(shù)據(jù), 所以第二個for 循環(huán)將c[i]、c[i+1]、c[i+2]、c[i+3]中的2 位有效數(shù)據(jù)取出, 按照由低到高的順序重新組合成一個8 位的二進制數(shù),放入數(shù)組d, 構(gòu)成一個新的數(shù)組。這樣A/D 轉(zhuǎn)換結(jié)果由原來用數(shù)組a 表示變成了由數(shù)組b 表示低8 位、數(shù)組d 表示高2 位的狀態(tài)。

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

3 結(jié)論

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

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

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

8位單片機在嵌入式設(shè)計領(lǐng)域已經(jīng)成為半個多世紀(jì)以來的主流選擇。盡管嵌入式系統(tǒng)市場日益復(fù)雜,8位單片機依然不斷發(fā)展,積極應(yīng)對新的挑戰(zhàn)和系統(tǒng)需求。如今,Microchip推出的8位PIC?和AVR?單片機系列,配備了先進的獨立...

關(guān)鍵字: 單片機 嵌入式 CPU

在嵌入式系統(tǒng)開發(fā)中,程序燒錄是連接軟件設(shè)計與硬件實現(xiàn)的關(guān)鍵環(huán)節(jié)。當(dāng)前主流的單片機燒錄技術(shù)已形成ICP(在電路編程)、ISP(在系統(tǒng)編程)、IAP(在應(yīng)用編程)三大技術(shù)體系,分別對應(yīng)開發(fā)調(diào)試、量產(chǎn)燒錄、遠程升級等不同場景。...

關(guān)鍵字: 單片機 ISP ICP IAP 嵌入式系統(tǒng)開發(fā)

在嵌入式系統(tǒng)開發(fā)中,看門狗(Watchdog Timer, WDT)是保障系統(tǒng)可靠性的核心組件,其初始化時機的選擇直接影響系統(tǒng)抗干擾能力和穩(wěn)定性。本文從硬件架構(gòu)、軟件流程、安全規(guī)范三個維度,系統(tǒng)分析看門狗初始化的最佳實踐...

關(guān)鍵字: 單片機 看門狗 嵌入式系統(tǒng)

本文中,小編將對單片機予以介紹,如果你想對它的詳細情況有所認(rèn)識,或者想要增進對它的了解程度,不妨請看以下內(nèi)容哦。

關(guān)鍵字: 單片機 開發(fā)板 Keil

隨著單片機系統(tǒng)越來越廣泛地應(yīng)用于消費類電子、醫(yī)療、工業(yè)自動化、智能化儀器儀表、航空航天等各領(lǐng)域,單片機系統(tǒng)面臨著電磁干擾(EMI)日益嚴(yán)重的威脅。電磁兼容性(EMC)包含系統(tǒng)的發(fā)射和敏感度兩方面的問題。

關(guān)鍵字: 單片機 電磁兼容

以下內(nèi)容中,小編將對單片機的相關(guān)內(nèi)容進行著重介紹和闡述,希望本文能幫您增進對單片機的了解,和小編一起來看看吧。

關(guān)鍵字: 單片機 復(fù)位電路

在這篇文章中,小編將為大家?guī)韱纹瑱C的相關(guān)報道。如果你對本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。

關(guān)鍵字: 單片機 異常復(fù)位

今天,小編將在這篇文章中為大家?guī)韱纹瑱C的有關(guān)報道,通過閱讀這篇文章,大家可以對它具備清晰的認(rèn)識,主要內(nèi)容如下。

關(guān)鍵字: 單片機 仿真器

單片機將是下述內(nèi)容的主要介紹對象,通過這篇文章,小編希望大家可以對它的相關(guān)情況以及信息有所認(rèn)識和了解,詳細內(nèi)容如下。

關(guān)鍵字: 單片機 中斷 boot

一直以來,單片機都是大家的關(guān)注焦點之一。因此針對大家的興趣點所在,小編將為大家?guī)韱纹瑱C的相關(guān)介紹,詳細內(nèi)容請看下文。

關(guān)鍵字: 單片機 數(shù)字信號 模擬信號
關(guān)閉