新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于C8051F340單片機(jī)的紅外溫度監(jiān)測系統(tǒng)的設(shè)計

基于C8051F340單片機(jī)的紅外溫度監(jiān)測系統(tǒng)的設(shè)計

作者: 時間:2011-09-13 來源:網(wǎng)絡(luò) 收藏


如圖3所示,上電后完成初始化配置,初始化配置語句可以使用Configuration Wizard來進(jìn)行配置,的UART0接口(第二功能)固定在P0^4,P0^5,USB也只能使用特定端口,這里不需要對端口進(jìn)行特別配置,將其端口模式設(shè)置為推拉即可,時鐘設(shè)置為使用內(nèi)部時鐘模式,通過選擇多路開關(guān)和倍頻使USB時鐘工作在48MHz。作為USB中的從設(shè)備,系統(tǒng)初始化設(shè)置完成后,執(zhí)行等待命令DisplayLED(),然后在中斷函數(shù)中根據(jù)USB中對要執(zhí)行的操作進(jìn)行判斷。
UART0使用定時器2作為波特率發(fā)生器,并使能定時器0中斷允許。USB初始化首先要調(diào)用USBXpress提供的API函數(shù)USB_Clock_Start(),然后對其端口初始化,這里使用USBXpress提供的默認(rèn)設(shè)置即可。
由于數(shù)據(jù)為16位數(shù)據(jù),串口每次接收其中8位,這里定義個數(shù)組In_Packet[3]后兩位用來存放MSB,LSP的值,第一位存放傳感器標(biāo)志位。當(dāng)In_Packet[3]數(shù)組數(shù)據(jù)更新后,調(diào)用USBXpress的API函數(shù)Block_Write(In_Packet,3)將數(shù)據(jù)發(fā)送給上位機(jī)。
2.3 上位機(jī)軟件
USBXpress提供VC6.0進(jìn)行USB通信的動態(tài)鏈接庫,這里采取了靜態(tài)方法加載動態(tài)鏈接庫的形式,這樣需要在編譯選項中把USBXpress提供的SiUSBXp.lib路徑添加進(jìn)去,并在需要調(diào)用時添加頭文件siusbxp.h。
程序依照USBXpress提供的API函數(shù)編寫,在程序界面初始化時調(diào)用SI_GetNumDevices()和SI_GetProductString()函數(shù)獲取USB器件信息,由于傳感器工作間隔200ms左右,這里設(shè)定50ms的定時器,在其響應(yīng)函數(shù)中執(zhí)行SI_Read(),當(dāng)Buffer中有數(shù)據(jù)時就會將數(shù)據(jù)讀取到定義好結(jié)構(gòu)體當(dāng)中去,并使用Format命令將其轉(zhuǎn)換為字符串類型且按16進(jìn)制方式將數(shù)據(jù)更新到編輯框中。

d.jpg



3 總結(jié)
系統(tǒng)基本實現(xiàn)了的采集和傳輸功能,并能通過VC6.0將數(shù)據(jù)保存,提供給matlab等數(shù)學(xué)分析軟件進(jìn)行數(shù)據(jù)分析,實驗證明了利用CPLD可以很精確地實現(xiàn)對傳感器的分時控制,利用USBXpress提供的API進(jìn)行USB開發(fā)極大地簡化了開發(fā)流程。
實驗只進(jìn)行了簡單的框架搭建,這里只是對CPLD進(jìn)行時分復(fù)用方法采集傳感器數(shù)據(jù)并且使用利用USB總線與計算機(jī)進(jìn)行通信的可行性進(jìn)行了驗證,完善穩(wěn)定的系統(tǒng)仍需要大量的后期工作去完成。


上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉