国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

PIC單片機A/D轉(zhuǎn)換數(shù)據(jù)存儲及串口效率

發(fā)布時間:2010-9-21 20:50    發(fā)布者:eetech
在由單片機和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ù)。

單片機的存儲空間有限, 以PIC16F877 單片機為例, 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。

A/D 轉(zhuǎn)換后的數(shù)據(jù)暫存在數(shù)組a[size] 中, 程序框圖見圖1。



圖1 A/D 轉(zhuǎn)換數(shù)據(jù)存儲程序框圖

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ù), 這樣做反而會耗費時間、降低效率。
本文地址:http://m.qingdxww.cn/thread-28587-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)在線工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 天天色天天综合 | 青青青青在线成人视99 | 免费毛片儿| 2021国产精品视频 | 欧美日韩一区二区在线观看视频 | 久草资源在线 | 久久久免费视频观看 | h网站免费看 | 恋爱综合症电视剧泰剧在线观看 | 青青草国产免费久久久91 | 亚洲欧美在线视频观看 | 国产高清精品自在线看 | 成zzzwww日本免费 | 国产精品成人观看视频网站 | 国产美女福利在线 | 国内精品91最新在线观看 | 四虎网站在线 | 青青青国产依人精品视频 | 亚洲免费网址 | 国产麻豆精品 | 国内精品久久久久久久久 | 日本精品久久久久中文字幕8 | 国内露脸自拍 | 欧美一级日韩一级亚洲一级 | 成人午夜精品久久久久久久小说 | 好男人官网在线手机免费观看 | 天天噜日日噜夜夜噜 | 91网站视频在线观看 | 一级毛片免费全部播放 | 99re综合| 日本精品视频四虎在线观看 | 亚洲天堂在线视频播放 | 国产国拍亚洲精品永久不卡 | 国产高清国内精品福利色噜噜 | 家庭教师| 亚洲精品手机在线 | 四虎影视永久在线 | 精品中文字幕一区二区三区四区 | 佳佳黑高跟极致调教 | 操操操干干干 | 国产激情视频在线播放 |