<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Small RTOS51的光電效應(yīng)實(shí)驗(yàn)系統(tǒng)

          基于Small RTOS51的光電效應(yīng)實(shí)驗(yàn)系統(tǒng)

          作者: 時間:2009-03-25 來源:網(wǎng)絡(luò) 收藏

          的移植主要是配置OS_CPU.H、OS_CFG.H和CONFIG.H三個文件。OS_CFG.H文件主要用于對操作的裁減和時鐘等的相關(guān)配置。根據(jù)實(shí)際需要,可以將以EN_OS_SEM打頭的相關(guān)參數(shù)全部設(shè)為0,禁止對信號量的一切操作。同樣道理可以將EN_OS_Q、EN_OS_Q_PENT和EN_OS_Q_POST以外的以EN_OS_Q打頭的消息隊(duì)列使能參數(shù)設(shè)為0。C8051F005具有2K外部數(shù)據(jù)存儲器,根據(jù)盡量節(jié)約內(nèi)存的原則,將不常用的參數(shù)定義為xdata類型,所以消息隊(duì)列存儲空間選擇外部數(shù)據(jù)存儲器。時鐘周期選擇選擇內(nèi)部2M時鐘,經(jīng)過8倍頻后可達(dá)16M,所以定義N_SYS為3。最后禁止定時中斷調(diào)用用戶函數(shù)UserTickTimer(),允許中斷嵌套管理,允許定時器中斷調(diào)用OSTimeTick(),定義進(jìn)入1次硬件中斷為一次定時器軟中斷和定義任務(wù)數(shù)為4。
          在配置OS_CPU.H文件時,只需注意改定時器使用的中斷為1即可,其它參數(shù)都可使用默認(rèn)值。而CONFIG.H主要任務(wù)是聲明任務(wù)和將操作系統(tǒng)中所有的頭文件集中起來,需要根據(jù)實(shí)際任務(wù)數(shù)及任務(wù)名配置。
          3、 軟件任務(wù)的劃分及具體實(shí)現(xiàn)
          根據(jù)硬件結(jié)構(gòu)及所要求實(shí)現(xiàn)的功能,將軟件系統(tǒng)劃分為5個任務(wù)來完成。按照任務(wù)優(yōu)先級的高低排序,各任務(wù)依次為:液晶顯示任務(wù)、測量與數(shù)字信號處理任務(wù)、單色儀控制任務(wù)、數(shù)據(jù)通訊任務(wù)和鍵盤響應(yīng)及處理任務(wù)。
          3.1 液晶顯示任務(wù)
          液晶顯示任務(wù)主要顯示功能菜單、數(shù)據(jù)表格、狀態(tài)欄、I-U曲線和計(jì)算步驟及結(jié)果。功能菜單顯示數(shù)據(jù)由按鍵任務(wù)中的消息隊(duì)列傳遞。另外,該任務(wù)還承擔(dān)著部分任務(wù)調(diào)配的作用,當(dāng)選中某功能選項(xiàng)時必須啟動相應(yīng)任務(wù)。數(shù)據(jù)表格顯示數(shù)據(jù)由測量與數(shù)字信號處理任務(wù)中的消息隊(duì)列傳遞,主要顯示各種單色光顏色、波長和測量出來的截止電壓。狀態(tài)欄顯示內(nèi)容來源于各個任務(wù),主要顯示該儀器當(dāng)前正在執(zhí)行的任務(wù)和引導(dǎo)操作者下一步如何操作,另外在操作錯誤時,也會給出相應(yīng)的提示。I-U曲線和計(jì)算步驟及結(jié)果顯示數(shù)據(jù)都來源于測量與數(shù)字信號處理任務(wù)。
          3.2 測量與數(shù)字信號處理任務(wù)
          測量與數(shù)字信號處理任務(wù)是本系統(tǒng)的核心部分,它承擔(dān)著反向電壓輸出控制,流信號數(shù)據(jù)采集,數(shù)字濾波和數(shù)據(jù)計(jì)算等任務(wù)。其中反向電壓輸出和流信號數(shù)據(jù)采集分別由C8051F0005中集成的DA和AD轉(zhuǎn)換器完成。為了盡量提高精確度,本系統(tǒng)分別采用了平均值法、中值法和慣性法對采集到的數(shù)字信號進(jìn)行三次數(shù)字濾波。經(jīng)過有效的濾波后,可以得到一條光滑的I-U曲線,再用曲率法判斷出該條曲線的截止電壓。當(dāng)確定已經(jīng)測出兩種以上單色光的截止電壓后就可以用最小二乘法計(jì)算出普朗克常數(shù)。當(dāng)然反過來,也可以通過普朗克常數(shù)計(jì)算輸入單色光波長。
          3.3 單色儀控制任務(wù)
          根據(jù)光柵方程 ,可以求出衍射角與單色光波長之間的關(guān)系,通過查表就可以得到與輸入波長 相對應(yīng)的衍射角 。此任務(wù)就是要通過控制步進(jìn)電機(jī)的轉(zhuǎn)動,帶動光柵轉(zhuǎn)動 ,從而得到波長為單色光。
          3.4 數(shù)據(jù)通訊任務(wù)
          本系統(tǒng)具有將所測得的流隨方向電壓變化的曲線存儲于外部數(shù)據(jù)存儲器XRAM中,或通過串口傳送到PC機(jī)上。該任務(wù)主要完成這項(xiàng)工作。存儲到XRAM中的數(shù)據(jù)通過液晶顯示任務(wù)還原顯示,而傳到PC機(jī)上的數(shù)據(jù)需要配合相應(yīng)的軟件還原顯示。
          3.5 鍵盤響應(yīng)及處理任務(wù)
          按鍵任務(wù)主要起到輸入控制和任務(wù)選擇作用。首先要建立消息隊(duì)列KeyBuff[],用于緩沖按鍵鍵值和與其它任務(wù)進(jìn)行通訊,然后進(jìn)入無限循環(huán)。在無限循環(huán)中逐個掃描按鍵,當(dāng)發(fā)現(xiàn)有按鍵按下,調(diào)用 提供的系統(tǒng)函數(shù)OSQPost(KeyBuff,Value_Key)將按鍵鍵值放在消息隊(duì)列中,并查找有無其它任務(wù)等待按鍵。若有,則將按鍵任務(wù)處于休眠狀態(tài),同時激活等待任務(wù)。
          4、 數(shù)據(jù)及結(jié)果分析
          啟動“測UC”后,本系統(tǒng)會根據(jù)操作者的選擇逐個測量輸入單色光的I-U曲線,并判斷截止電壓。測得的汞燈光源中個各單色光截止電壓如表1所示。

          本文引用地址:http://www.ex-cimer.com/article/173839.htm

          當(dāng)啟動“測 ”功能后,液晶顯示器顯示出以上數(shù)據(jù)及用最小二乘法計(jì)算的普朗克出常數(shù) 為6.703×10-34JS,并給出主要的計(jì)算過程。該值與公認(rèn)值6.626×10-34JS比較,相對誤差為1.16%,在允許誤差內(nèi),與公認(rèn)值符合地很好。
          5、 結(jié)論
          以嵌入式操作系統(tǒng) 為軟件平臺,開發(fā)設(shè)計(jì)各相應(yīng)任務(wù),大大簡化了程序設(shè)計(jì)的難度,增強(qiáng)了系統(tǒng)的可靠性和安全性,滿足系統(tǒng)實(shí)時性要求。同時在維護(hù)和升級時,只要修改或增加相應(yīng)的任務(wù),不需涉及其它部分,降低了難度和成本。
          本文作者創(chuàng)新點(diǎn):①使用實(shí)時嵌入式操作系統(tǒng)實(shí)現(xiàn)光電系統(tǒng)的智能化,避免了人為誤差,有效地減小了系統(tǒng)誤差;②將先進(jìn)的微電子技術(shù)、理論和數(shù)字信號處理知識應(yīng)用于大學(xué)物理中,在確保不改變物理實(shí)驗(yàn)基本原理,滿足物理實(shí)驗(yàn)基本要求的前提下,顯著提高物理實(shí)驗(yàn)的整體質(zhì)量。同時,也很容易轉(zhuǎn)移到其它實(shí)驗(yàn)或工程領(lǐng)域應(yīng)用。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();