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

          新聞中心

          咱們的ADC0809電壓表

          作者: 時間:2016-11-28 來源:網(wǎng)絡(luò) 收藏
          第一次和同學(xué)合作的學(xué)校課題:表,以實物失敗,仿真成功告終。相信以后回頭看,會發(fā)現(xiàn)許多地方非常的不專業(yè),特發(fā)此博文,以后當(dāng)笑話看。不過因為是第一次接觸AD相關(guān)知識,也學(xué)到了挺多。
          系統(tǒng)軟件設(shè)計要求:
          (1) 鍵盤管理程序(包括鍵掃描、鍵處理程序)。
          (2) LED動態(tài)顯示程序,包括:
          (3) 各通道輪流顯示,共顯示2個通道,每通道顯示1s;
          (4) 單通道顯示,僅顯示指定通道電壓,并保持到其他功能鍵按下。
          先上原理圖:
          原理圖連線比較亂,主要是為了滿足盡量少外圍元件的要求,有一個明顯奇怪的地方就是38譯碼器輸出口沒用完,但是單片機口接得滿滿的,因為當(dāng)時想用38譯碼器的其中三個輸出口來控制ADC0809的ABC,結(jié)果發(fā)現(xiàn)38譯碼器輸出口一次只能有一個低電,從而導(dǎo)致ADC的選址ABC兩個以上低電的情況無法實現(xiàn),測量電壓輸入口切換的功能也無法實現(xiàn)。這個原理圖的錯誤直到編程時才發(fā)現(xiàn),結(jié)果只能大膽參考網(wǎng)絡(luò)言論,把ADC0809的STARTALE共接,OEEOC共接,雖然總感覺會帶來潛在問題,還好,仿真成功了。
          看到網(wǎng)上一些仿真圖,有模有樣,比如紅綠交通燈,還真畫出紅綠燈外形,還有馬路斑馬線等等,而不是只用LED燈,真佩服,不過覺得把心思都用在表面的東西,還不如優(yōu)化一下方案和程序。(注意:如參考此程序AD0809和C52的兩個OUT網(wǎng)絡(luò)標(biāo)號高低位順序是相反的)
          說到程序,原本是本著dont share your code的原則(來自最近剛看了斯坦福的公開課,真是重視知識產(chǎn)權(quán)),不打算公開,不過想想,自己編得這么幼稚低級,就當(dāng)做交流和以后借鑒吧:
          ///12MHZ/////
          //////頭文件及宏定義////////
          #include
          #define uint unsigned int
          #define uchar unsigned char
          ///////相關(guān)變量定義///////
          static uchar keynum;
          bit shift;
          float temp;
          uchar val_int;
          uchar val_decimal;
          ///////I/O口定義/////////
          sbit STA_ALE = P3^0;
          sbit OE_EOC = P3^1;
          sbit CLK = P3^2;
          sbit ADD_A = P3^3;
          sbit ADD_B = P3^4;
          sbit ADD_C = P3^5;
          sbit ADC_B = P3^6;
          sbit ADC_A = P3^7;
          ////////帶小數(shù)點數(shù)碼管顯示編碼///////////
          uchar data numtable_DE[] =
          {
          0xbf,0x86,0xdb,0xcf,
          0xe6,0xed,0xfd,0x87,
          0xff,0xef
          };
          ////////不帶小數(shù)點數(shù)碼管顯示編碼///////////
          uchar data numtable[] =
          {
          0x3f,0x06,0x5b,0x4f,
          0x66,0x6d,0x7d,0x07,
          0x7f,0x6f
          };
          ///////數(shù)碼管動態(tài)顯示函數(shù)聲明///////
          void disp();
          ///////延時函數(shù)///////
          void delay(uint x)
          {
          uint a,b;
          for ( a = x; a > 0; a--)
          for ( b = 125; b > 0; b--);
          }
          ///////矩陣鍵盤掃描及賦值函數(shù)///////(這個部分自己改造得比較喜歡,想記下來,作為自己的風(fēng)格)
          int keyscan()
          {
          uchar temp1,temp2,keycod;
          P1 = 0xf0;
          if ( (P1 & 0xf0) != 0xf0 )
          {
          temp1 = P1;
          }
          P1 = 0x0f;
          temp2 = P1;
          keycod = temp1 | temp2;
          switch(keycod)
          {
          case 0x7e:
          keynum = 1;
          break;
          case 0xbe:
          keynum = 2;
          break;
          case 0xde:
          keynum = 3;
          break;
          default :
          keynum = keynum;
          break;
          }
          }
          ///////數(shù)碼管動態(tài)顯示函數(shù)///////
          void disp()
          {
          ADD_A = 1;
          ADD_B = 0;
          ADD_C = 0;
          P0 = numtable_DE[val_int];
          delay(1);
          ADD_A = 0;
          ADD_B = 1;
          ADD_C = 0;
          P0 = numtable[(val_decimal/10)];
          delay(1);
          ADD_A = 1;
          ADD_B = 1;
          ADD_C = 0;
          P0 = numtable[(val_decimal)];
          delay(1);
          }
          上一頁 1 2 下一頁

          關(guān)鍵詞: ADC0809電壓

          評論


          技術(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); })();