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

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]PIC 單片機(jī)A/D 轉(zhuǎn)換后的數(shù)據(jù)通常需要占用兩個(gè)8 位寬的RAM 單元, 而PIC 單片機(jī)的存儲(chǔ)單元有限,因此造成了單片機(jī)的存儲(chǔ)單元不能被有效利用, 同時(shí)通過串口向上位機(jī)傳送數(shù)據(jù)時(shí)也需要花費(fèi)較多的時(shí)間。為此提出一種數(shù)據(jù)打包

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

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

引言

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

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

1 程序設(shè)計(jì)思路

以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ù)取出組合成一個(gè)新的數(shù)據(jù)存放, 當(dāng)上傳數(shù)據(jù)后再用相反的方法解碼, 把數(shù)據(jù)恢復(fù)到原先的狀態(tài)。這樣對(duì)于10 位的A/D 轉(zhuǎn)換來說可以節(jié)省3/8 的空間, 需要向上位機(jī)傳送的數(shù)據(jù)也會(huì)比較少, 數(shù)據(jù)傳輸時(shí)間僅為原來的5/8。

2 采用C 語言編寫的程序

本文采用PIC16F877 單片機(jī)進(jìn)行試驗(yàn)。其中定義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++ ;
}
}

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

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

3 結(jié)論

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

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

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

傳統(tǒng)數(shù)據(jù)庫架構(gòu)已無法應(yīng)對(duì)設(shè)備數(shù)據(jù)的高并發(fā)寫入、低價(jià)值密度與長周期存儲(chǔ)需求。M2M數(shù)據(jù)湖架構(gòu)通過分布式存儲(chǔ)、智能索引與彈性查詢引擎的深度整合,構(gòu)建起支撐萬億級(jí)設(shè)備數(shù)據(jù)管理的技術(shù)底座。本文從架構(gòu)設(shè)計(jì)、核心技術(shù)、工程實(shí)踐及典型...

關(guān)鍵字: M2M 數(shù)據(jù)存儲(chǔ)

上海2025年8月13日 /美通社/ -- 8月12日,富士膠片(中國)投資有限公司(以下簡稱"富士膠片(中國)")在北京舉行FUJIFILM LTO Ultrium 10(以下簡稱"LTO...

關(guān)鍵字: 富士 數(shù)據(jù)流 數(shù)據(jù)存儲(chǔ) AI

德國慕尼黑 2025年4月30日 /美通社/ -- 第四屆創(chuàng)新數(shù)據(jù)基礎(chǔ)設(shè)施論壇(IDI Forum)在德國慕尼黑舉行。華為公司副總裁、數(shù)據(jù)存儲(chǔ)產(chǎn)品線總裁周躍峰發(fā)表題為"數(shù)據(jù)覺醒,AI-Ready數(shù)據(jù)基礎(chǔ)設(shè)施加...

關(guān)鍵字: 華為 智能化 AI 數(shù)據(jù)存儲(chǔ)

當(dāng)下,大數(shù)據(jù)已成為推動(dòng)各行業(yè)創(chuàng)新發(fā)展的核心驅(qū)動(dòng)力。從互聯(lián)網(wǎng)電商的精準(zhǔn)營銷到醫(yī)療健康領(lǐng)域的疾病預(yù)測(cè),從金融行業(yè)的風(fēng)險(xiǎn)評(píng)估到城市交通的智能調(diào)度,大數(shù)據(jù)的身影無處不在。然而,大數(shù)據(jù)的爆炸式增長也帶來了前所未有的挑戰(zhàn),其中高效的...

關(guān)鍵字: 數(shù)據(jù)采集 數(shù)據(jù)存儲(chǔ)

為增進(jìn)大家對(duì)PIC單片機(jī)的認(rèn)識(shí),本文將對(duì)PIC單片機(jī)的技術(shù)特性、主流系列PIC單片機(jī)和PIC單片機(jī)在智能家居系統(tǒng)的應(yīng)用予以介紹。

關(guān)鍵字: 單片機(jī) 指數(shù) PIC單片機(jī)

為增進(jìn)大家對(duì)PIC單片機(jī)的認(rèn)識(shí),本文將對(duì)PIC單片機(jī)的優(yōu)勢(shì)以及在PIC單片機(jī)振蕩電路中選擇晶體的方法予以介紹。

關(guān)鍵字: 單片機(jī) 指數(shù) PIC單片機(jī)

為增進(jìn)大家對(duì)PIC單片機(jī)的認(rèn)識(shí),本文將對(duì)PIC單片機(jī)的優(yōu)勢(shì)和不足以及PIC單片機(jī)的端口設(shè)置方法予以介紹。

關(guān)鍵字: 單片機(jī) 指數(shù) PIC單片機(jī)

在現(xiàn)代電子設(shè)備中,電可擦可編程只讀存儲(chǔ)器(EEPROM)憑借其獨(dú)特的存儲(chǔ)特性,被廣泛應(yīng)用于各類需要非易失性數(shù)據(jù)存儲(chǔ)的場(chǎng)景。從智能電表、工業(yè)控制系統(tǒng)到消費(fèi)電子產(chǎn)品,EEPROM 承擔(dān)著存儲(chǔ)關(guān)鍵配置信息、校準(zhǔn)數(shù)據(jù)以及用戶個(gè)性...

關(guān)鍵字: 只讀存儲(chǔ)器 數(shù)據(jù)存儲(chǔ) EEPROM

北京2025年1月23日 /美通社/ -- 在全球數(shù)字化轉(zhuǎn)型的浪潮中,數(shù)據(jù)已成為驅(qū)動(dòng)社會(huì)進(jìn)步和創(chuàng)新的核心動(dòng)力。隨著互聯(lián)網(wǎng)、人工智能、大數(shù)據(jù)等技術(shù)的飛速發(fā)展,全球數(shù)據(jù)量呈現(xiàn)爆炸式增長。企業(yè)數(shù)據(jù)中心、云計(jì)算平臺(tái)以及個(gè)人用戶的...

關(guān)鍵字: SATA SSD 數(shù)據(jù)存儲(chǔ) 信息存儲(chǔ)

串口全稱是串行接口(Serial Interface),串口通訊指僅用一對(duì)傳輸線就能將數(shù)據(jù)以比特位進(jìn)行傳輸?shù)囊环N通訊方式。盡管串口通訊必按字節(jié)傳輸?shù)牟⑿型ㄐ怕?,但是串口可以在僅用兩根線的情況下完成數(shù)據(jù)傳輸,大大降低了成本...

關(guān)鍵字: 串口 UART
關(guān)閉