《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > PIC單片機AD轉換數據存儲及串口效率
PIC單片機AD轉換數據存儲及串口效率
摘要: PIC單片機A/D轉換后的數據通常需要占用兩個8位寬的RAM單元,而PIC單片機的存儲單元有限,因此造成了單片機的存儲單元不能被有效利用,同時通過串口向上位機傳送數據時也需要花費較多的時間。為此提出一種數據打包
Abstract:
Key words :

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 轉換后的數據先進行處理后再存儲或上傳。

1 程序設計思路

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

2 采用C 語言編寫的程序

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

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 循環將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。

3 結論

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

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

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美激情1区2区3区| 国产免费成人av| 亚洲欧美日韩中文视频| 亚洲国产综合在线看不卡| 欧美一级免费视频| 亚洲尤物在线| 亚洲天堂网站在线观看视频| 亚洲精品国精品久久99热| 亚洲国产你懂的| 在线观看日韩专区| 精品二区久久| 在线精品亚洲| 亚洲国产精品一区二区第一页| 樱桃国产成人精品视频| 一区久久精品| 136国产福利精品导航| 亚洲国产高潮在线观看| 亚洲国产欧美一区二区三区丁香婷 | 欧美一区二区成人6969| 一区二区高清在线| 亚洲色图制服丝袜| 亚洲一区3d动漫同人无遮挡| 亚洲一区国产一区| 亚洲欧美日韩国产中文在线| 欧美一区二区免费| 亚洲欧美日韩中文在线制服| 亚洲欧美日韩天堂| 久久爱www久久做| 亚洲国产毛片完整版| 亚洲啪啪91| 一区二区三区欧美在线| 亚洲免费影视| 久久国产成人| 免费影视亚洲| 欧美日本网站| 国产精品一区二区久久久久| 国产日韩视频| 影音先锋亚洲电影| 亚洲久久在线| 亚洲欧美色一区| 久久精品av麻豆的观看方式| 亚洲人成在线观看| 亚洲视频一区在线| 久久精品毛片| 欧美黄网免费在线观看| 国产精品成人一区二区三区夜夜夜| 国产精品欧美久久| 精品96久久久久久中文字幕无| 在线成人h网| 99在线观看免费视频精品观看| 亚洲免费一区二区| 91久久精品网| 亚洲制服丝袜在线| 狂野欧美激情性xxxx| 欧美日韩一视频区二区| 国产婷婷成人久久av免费高清| 亚洲高清免费视频| 亚洲视频电影图片偷拍一区| 久久国产精品亚洲77777| 一区二区三区高清| 久久久亚洲高清| 欧美人与禽性xxxxx杂性| 国产精品自拍一区| 亚洲人被黑人高潮完整版| 亚洲一区精品视频| 亚洲欧洲综合另类在线| 性色av一区二区三区在线观看| 久久综合五月天婷婷伊人| 欧美性大战久久久久| 有坂深雪在线一区| 亚洲手机在线| 亚洲九九九在线观看| 欧美中文字幕| 欧美日韩一区不卡| 尤妮丝一区二区裸体视频| 亚洲午夜av在线| 亚洲激情在线激情| 久久国产精品久久久久久| 欧美日产国产成人免费图片| 国产在线观看精品一区二区三区| 99riav1国产精品视频| 久久精品一区二区三区中文字幕| 亚洲一区免费视频| 欧美激情一区二区三区成人| 国产性做久久久久久| 一区二区av在线| 亚洲美女毛片| 久久香蕉精品| 国产日本精品| 亚洲视频一二区| 99re这里只有精品6| 麻豆精品视频在线| 国产日韩综合| 亚洲天天影视| 亚洲特色特黄| 欧美国产一区二区三区激情无套| 国产欧美视频一区二区| 一区二区三区 在线观看视频| 最新日韩在线视频| 久久久综合精品| 国产欧美日韩伦理| 亚洲在线免费| 亚洲一区区二区| 欧美日韩视频在线第一区| 亚洲经典自拍| 亚洲精品日韩在线| 免费短视频成人日韩| 狠狠久久亚洲欧美| 久久国产精品99久久久久久老狼| 久久精品盗摄| 国产日产高清欧美一区二区三区| 在线一区二区三区做爰视频网站| 99热这里只有精品8| 欧美成年网站| 亚洲国产成人porn| 亚洲啪啪91| 欧美激情性爽国产精品17p| 在线观看国产一区二区| 亚洲国产欧美日韩另类综合| 久久亚洲高清| 激情另类综合| 亚洲国产精品一区二区三区| 久久免费黄色| 精品999网站| 亚洲国产日韩一区二区| 美女视频黄 久久| 亚洲电影网站| 99视频有精品| 欧美日韩亚洲天堂| 亚洲深夜福利网站| 先锋影音久久久| 国产农村妇女精品| 欧美在线观看一区| 蜜臀av一级做a爰片久久| 亚洲第一网站| av成人手机在线| 欧美午夜视频网站| 亚洲欧美精品在线| 久久久久久91香蕉国产| 黄色精品免费| 亚洲久久成人| 国产精品mv在线观看| 亚洲宅男天堂在线观看无病毒| 欧美一区二区三区另类| 国产亚洲aⅴaaaaaa毛片| 亚洲国产美女| 欧美日韩精品一区二区| 亚洲天堂成人| 久久久999| 亚洲高清视频的网址| 中国成人在线视频| 国产精品一二三四| 亚洲经典自拍| 欧美日韩在线视频观看| 亚洲伊人一本大道中文字幕| 久久婷婷蜜乳一本欲蜜臀| 亚洲观看高清完整版在线观看| 一区二区三区久久精品| 国产精品夜夜夜一区二区三区尤| 欧美在线亚洲在线| 欧美激情视频一区二区三区免费| 这里只有精品电影| 久久精品视频在线看| 亚洲激情电影在线| 性欧美1819性猛交| 在线观看成人一级片| 亚洲一区二区欧美日韩| 国产综合久久久久久| 一本色道久久综合亚洲精品小说| 国产精品一区二区你懂得 | 国产精品免费一区豆花| 久久不见久久见免费视频1| 欧美国产日韩免费| 亚洲在线视频| 欧美国产先锋| 性欧美大战久久久久久久久| 欧美成在线视频| 亚洲一区观看| 欧美激情精品久久久久| 亚洲欧美成aⅴ人在线观看| 欧美国产91| 亚洲欧美视频| 欧美男人的天堂| 欧美一区二区三区在线观看| 欧美日本亚洲| 亚洲国产精品精华液2区45| 国产精品白丝av嫩草影院| 亚洲欧洲日韩在线| 国产女优一区| 一本色道**综合亚洲精品蜜桃冫| 国产亚洲aⅴaaaaaa毛片| 亚洲性xxxx| 在线不卡中文字幕| 欧美一区不卡| 亚洲精品视频免费观看| 久久先锋资源| 亚洲欧美韩国| 欧美午夜激情小视频| 亚洲欧洲三级| 国产亚洲一本大道中文在线|