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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于51的簡易00-99計數(shù)器的設(shè)計與仿真

          基于51的簡易00-99計數(shù)器的設(shè)計與仿真

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

          1 系統(tǒng)描述

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

          本系統(tǒng)利用 單片機(jī)來制作一個手動,在 單片機(jī)的P3.2 管腳和P3.3 管腳各接一個輕觸開關(guān)K1和K2,作為手動計數(shù)的按鈕,用單片機(jī)的P0.0 - P0.7 接一個兩位綠色共陰極數(shù)碼管(7SEG-COM-CAT-GRN),作為00 - 99 計數(shù)的個位數(shù)和十位數(shù)顯示。系統(tǒng)正常運(yùn)行后顯示00,按一次K1 鍵,數(shù)字加1,當(dāng)計數(shù)到 99 時,再按一次 K1 鍵,又從00 開始計數(shù)。當(dāng)計數(shù)到 99 時,按一次K2,計數(shù)為98,繼續(xù)按K2,直到計數(shù)為00,由此實現(xiàn)正計數(shù)和倒計數(shù)的功能。本系統(tǒng)可用于競技比賽中的計分,或者用于重要事件將要到來的倒計時。

          2 硬件電路設(shè)計

          硬件電路的設(shè)計是本系統(tǒng)能否實現(xiàn)所需功能的關(guān)鍵環(huán)節(jié),在設(shè)計過程中須注意電路的整體布局、元器件的擺放、元器件的參數(shù)選擇及電路的優(yōu)化,具體電路圖如1-1 所示。其中,X1 為12MHZ 的晶體振蕩器,RX8 為排阻。

          圖1-1 電路原理圖:

           

           

          3 軟件設(shè)計

          根據(jù)硬件電路的結(jié)構(gòu)及功能要求,在分析所需算法和功能模塊的基礎(chǔ)上編寫本系統(tǒng)的代碼,要求代碼盡可能的簡潔易懂,并有在必要的地方寫明注釋。具體代碼如下所示:

          #include// 導(dǎo)入頭文件

          unsigned b[10]={0x3f,0×06,0x5b,0x4f,0×66,0x6d,0x7d,0×07,0x7f,0x6f};//0-9 的編碼

          void delay(void)// 延時子程序,延時1 秒

          {

          unsigned char i,j,k;for(i=20;i>0;i- )

          for(j=2;j>0;j-)

          for( k=250; k>0; k-);

          }

          void Inc_CNT ( void )// 按K1 鍵正計數(shù),可從0 計到99

          {

          unsigned char x, y, z;

          for( x=0; x<10; x++){

          for( y=0; y<10; y++){

          if( (P3|0xfb)==0xfb ){

          for( z=0; z<22; z++){

          P2=0xf2;

          P0=b[x];

          delay( );// 調(diào)用延時子程序

          P2=0xf1;

          P0=b[y];

          delay( );

          }

          }

          else{

          P0 = 0x3f;

          P2 = 0×00;

          break;}}}}

          void Dec_CNT( void )// 按k2 鍵倒計數(shù),可從99 計到00

          {

          unsigned char x, y, z;

          for( x=10; x>0; x-){

          for( y=10; y>0; y-){

          if((P3|0xf7)==0xf7){

          for(z=0; z<22;z++){

          P2=0xf2;

          P0=b[x-1];

          delay( );

          P2=0xf1;

          P0=b[y-1];

          delay( );}// 調(diào)用延時子程序

          }

          else {

          P0=0x3f;

          P2=0×00;

          break;}}}}

          void main( void )// 主函數(shù)

          {

          unsigned char key;

          P2=0×00;

          P0=0x3f;

          for(;;){

          P3|=0xf3;

          key=P3;

          if(key==0xfb)Inc_CNT();// 調(diào)用正計數(shù)函數(shù)

          else if(key==0xf7 )Dec_CNT();// 調(diào)用倒計數(shù)函數(shù)

          else{

          P2=0×00;

          P0=0x3f;}}}

          4 軟硬件聯(lián)調(diào)

          單片機(jī)系統(tǒng)的硬件調(diào)試和軟件調(diào)試是不能分開的,許多硬件錯誤是在軟件調(diào)試過程中被發(fā)現(xiàn)和糾正的。但通常是先排除明顯的硬件故障以后,再和軟件結(jié)合起來調(diào)試以進(jìn)一步排除故障。可見硬件的調(diào)試時基礎(chǔ),如果硬件調(diào)試不通過,軟件設(shè)計則無從談起。硬件的調(diào)試主要是把電路各種參數(shù)調(diào)整到符合設(shè)計要求。先排除硬件電路故障,包括設(shè)計性錯誤和公益性故障。一般原則是先靜態(tài)后動態(tài)。利用萬用表或邏輯測試儀器,檢查電路中的各器件以及引腳是否連接正確,是否有短路故障。運(yùn)行正確的仿真電路圖如下所示。

           

           

          5 結(jié)語

          本系統(tǒng)利用 單片機(jī)來制作一個手動,在AT89C51 單片機(jī)的P3.2 管腳和P3.3 管腳各接一個輕觸開關(guān)K1和K2,作為手動計數(shù)的按鈕, 通過使用專業(yè)繪制電路圖的軟件和程序編譯軟件,不斷進(jìn)行測試和調(diào)試,從而證明了本系統(tǒng)可用于競技比賽中的計分,或者用于重要事件將要到來的倒計時。

          塵埃粒子計數(shù)器相關(guān)文章:塵埃粒子計數(shù)器原理


          關(guān)鍵詞: AT89C51 計數(shù)器

          評論


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