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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 8位共陰數(shù)碼管動態(tài)掃描自增自減

          8位共陰數(shù)碼管動態(tài)掃描自增自減

          作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
          #include//包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
          sbit duan=P2^2;//定義P2.2為段操作,愛設(shè)置哪個都行
          sbit wei=P2^3;//定義P2.3為位操作
          /*------------------------------------------------
          程序主要作用于動態(tài)掃描,沒什么實際應(yīng)用
          ----------------------查表表格--------------------------*/
          unsigned char code shuzhi[]={
          0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71
          };//數(shù)字表0123456789abcdef定義進RAM
          unsigned char code weizhi[]={
          0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f
          };//共陰數(shù)碼管位置表01234567定義進RAM
          unsigned char huanchong[8];//定義一個一維數(shù)組做為緩沖區(qū)
          /*---------------------------定義進入ROM
          函數(shù)聲明
          ------------------------------------------------*/
          void yeishi(unsigned int t);//函數(shù)聲明
          /*------------------------------------------------
          主函數(shù)
          ------------------------------------------------*/
          main ()
          {

          unsigned char i,j;
          //定義一個char型變量 i 取值范圍 0~255,如果定義j為unsigned long int就可以實現(xiàn)0~4294967295
          while (1)//主循環(huán)
          {
          j=0;
          j++;//j不斷加1,直到255溢出,如果改成--j就是自減

          for(i=0;i<8;i++)//for循環(huán),i初始為0自加小于8,0-7
          {
          ///////////////拆分數(shù)j//////////////////////////
          huanchong[0]=shuzhi[j/100];
          huanchong[1]=shuzhi[(j/10)%10];
          huanchong[2]=shuzhi[j%10];
          ////////通過數(shù)學(xué)運算得到每個位的數(shù)值并賦值給緩沖區(qū)因為只有255三位
          只定義三位
          別問我為什么要這樣算,我數(shù)理化英都不好,沒看見我的變量定義全是拼音么?而且我都不能保證
          拼音是對的
          有一定規(guī)律:
          huanchong[0]=shuzhi[j/10000000];
          huanchong[1]=shuzhi[(j/1000000)%10];
          huanchong[2]=shuzhi[(j/100000)%10];
          huanchong[3]=shuzhi[(j/10000)%10];
          huanchong[4]=shuzhi[(j/1000)%10];
          huanchong[5]=shuzhi[(j/100)%10];
          huanchong[6]=shuzhi[(j/10)%10];
          huanchong[7]=shuzhi[j%10];
          ////////////////////只用P0口,P0的定義已經(jīng)在頭文件里面了////////////*/
          P0=weizhi[i];
          wei=1;//位開關(guān),1為開,0為關(guān)
          wei=0;
          P0=huanchong[i];//通過前面的運算,調(diào)用緩沖區(qū)數(shù)值
          duan=1;//段開關(guān),1為開,0為關(guān)
          duan=0;
          yeishi(300);//延時函數(shù)調(diào)用設(shè)置為300,按情況定,越大沒效果,越小有重影
          }
          }
          }
          /*------------------------------------------------
          含有輸入?yún)?shù) unsigned int t,無返回值 unsigned int 是定義無符號整形變量,其值的范圍是
          0~65535
          ------------------------------------------------*/
          void yeishi(unsigned int t)
          {
          while(--t);
          }


          評論


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