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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于RlTOS和ISP功能數(shù)字儀表系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)

          基于RlTOS和ISP功能數(shù)字儀表系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)

          作者: 時(shí)間:2012-02-09 來源:網(wǎng)絡(luò) 收藏

          void SetPage(unsigned char page0,unsigned char pagel)

          {

          MasterWriteI(0xb8 | pagel);

          SlaveWriteI(0xb8 | page0);

          }

          void SetColumn(unsigned char address0,unsigned char addressl)

          {

          MasterWriteI(0x3f addressl);

          SlaveWfiteI(0x3f address0);

          }

          //在主控制器操作的左邊LCM屏上顯示一列信息(由8個(gè)像素點(diǎn)構(gòu)成)

          void MasterPutChar(unsigned char masterchar)

          {

          ReadState();

          MasterWriteD(masterchar);

          }

          一般說來。AT89S52的RAM存儲空間是有限的,而圖形或字符的點(diǎn)陣代碼(可以下載相關(guān)的應(yīng)用插件,由.bmp文件或字符自動生成)如果太大,放置到RAM區(qū)會出現(xiàn)內(nèi)存不足的告警提示,為此可按如下方式處理:

          unsigned char code Dotn[]=lOxOO,Ox00,0x30,

          0x00,0x30,Ox00,Ox00,0x00};

          即將點(diǎn)陣代碼通過code關(guān)鍵字限定后放于ROM區(qū)域內(nèi)。

          }

          return(midtemp);

          }

          void delay(unsigned char out)

          {

          unsigned char in;

          for(in=out;in>O;in--);

          }

          4 的結(jié)構(gòu)原理

          功能集成到成型的PCB上就可以實(shí)現(xiàn)程序的實(shí)時(shí)更新與升級操作,其結(jié)構(gòu)原理如圖5所示,這對于復(fù)雜工程系統(tǒng)設(shè)計(jì)顯然是很方便的,也是切實(shí)可行的。

          55

          5 結(jié)論

          隨著智能儀器儀表技術(shù)的發(fā)展,顯示模塊的液晶化已成為一種較為流行的趨勢。本文給出的軟硬件設(shè)計(jì)方案已在某武器系統(tǒng)的調(diào)試過程中得到正確、可靠、穩(wěn)定的運(yùn)行。它不僅克NT模似儀表體積大、故障率高的缺陷,而且由于運(yùn)用了技術(shù),使數(shù)據(jù)檢測的敏捷度得到大幅提升。另外,功能的在線集成也為系統(tǒng)功能的擴(kuò)充預(yù)留了空間。


          3.3 DSl8820的1-Wire子程序

          DSl8820的突出優(yōu)點(diǎn)是將現(xiàn)場采集的環(huán)境溫度直接以數(shù)字形式輸出,這樣可以省去后續(xù)的信號放大及模/數(shù)轉(zhuǎn)換部分,構(gòu)建外圍電路的元件少且相對簡單,系統(tǒng)成本低廉;1-Wire接口與AT89S52通信,其結(jié)構(gòu)便于多點(diǎn)測量且易于擴(kuò)展;測溫范圍寬(-550℃~1250℃)且精度高。

          對l-Wire的操作關(guān)鍵是軟件時(shí)序的處理,對于不同的晶體振蕩器其延時(shí)參數(shù)是不同的,本系統(tǒng)以12MHz為例給出如下主要程序代碼:

          bit DallassReset(void)

          {

          unsigned char presence=0;

          DallassDataout=1; //發(fā)出復(fù)位脈沖前先釋

          放總線

          delay(10);

          DallassDataout=0;

          delay(240);//保證延時(shí)在4801μs~9601μs之間

          DaUassDataout=1;

          delay(35);

          Dresence=DallassDataout;

          delay(60);

          return(presence);

          }

          //寫時(shí)序從主控制器把總線拉低時(shí)開始

          void writeCommand(unsigned char command)

          {

          unsigned char count;

          for(count=O;count8;count++)

          {

          DallassDataout=0;

          if(command0x01==1)

          {

          DallassDataout=1;

          //寫“1”時(shí)序在將總線拉低后,AT89S52主控制器必須在15μs內(nèi)釋放總線,所以此語句之前不能有較長時(shí)間的延時(shí)語句

          }

          delay(35);//無論寫“1”還是寫“0”時(shí)序都必須有至少601as的低電平 DallassDataout=1;//總線恢復(fù)的過程

          command=command>>1;

          }

          }

          //讀時(shí)序從主控制器將總線拉低至少1μs后釋放總線的時(shí)刻開始

          unsigned char readdata(void)

          {

          unsigned char value;

          unsigned char midtemp=0;

          for(value=0;value8;Value++)

          {

          I DallassDataout=0;

          midtemp=midtemp>>1;

          -nop_O;

          _nop_O;

          DallassDataout=1;

          //讀時(shí)序時(shí),控制器必須在15μs內(nèi)釋放總線,然后采樣總線狀態(tài),所以此語句之前不能延時(shí)太長的時(shí)間的延時(shí)語句

          if(DallassDataout==1)

          {

          midtemp=midtemp | 0x80;

          //因?yàn)閙idtemp初始被賦值為0,所以如果采樣總線狀態(tài)為0則不必處理,0會自動被返回

          }

          delay(35);

          //延時(shí)70μs完成此次Bit

          位讀時(shí)序過程,為下一次讀作準(zhǔn)備

          電能表相關(guān)文章:電能表原理

          上一頁 1 2 3 下一頁

          評論


          相關(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); })();