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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 電動車充電控制器制作

          電動車充電控制器制作

          作者: 時間:2016-12-01 來源:網(wǎng)絡 收藏

          ///////////////////////////////////////////////////
          void P_HC_weihu(void)
          {
          //顯示緩存顯示數(shù)據(jù)元素維護函數(shù),負責維護和更新各組定時器的顯示數(shù)據(jù)
          int y,z;
          for(z=0;z<4;z++)
          {
          y=0;
          if(TIME[z]>=1000)
          {
          if(TIME[z]%10000==0)
          P_HC_fuzhi(z,y,0); //如此位為0則直接填0避免造成除0錯誤
          else
          P_HC_fuzhi(z,y,(TIME[z]%10000/1000)); //更新千位值
          }else
          {
          P_HC_fuzhi(z,y,10);//如無此位則填空
          }
          y++;
          if(TIME[z]>=100)
          {
          if(TIME[z]%1000==0)
          P_HC_fuzhi(z,y,0); //如此位為0則直接填0避免造成除0錯誤
          else
          P_HC_fuzhi(z,y,(TIME[z]%1000/100)); //更新百位值
          }else
          {
          P_HC_fuzhi(z,y,10); //如無此位則填空
          }
          y++;
          if(TIME[z]>=10)
          {

          if(TIME[z]%100==0)
          P_HC_fuzhi(z,y,0); //如此位為0則直接填0避免造成除0錯誤
          else
          P_HC_fuzhi(z,y,(TIME[z]%100/10));//更新十位值
          }else
          {
          P_HC_fuzhi(z,y,10); //如無此位則填空
          }
          y++;
          if(TIME[z]>0)
          {
          P_HC_fuzhi(z,y,(TIME[z]%10)); //更新個位值
          }else
          {
          P_HC_fuzhi(z,y,0);
          }
          }
          }

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

          ///////////////////////////////////////////////////
          void key(void)
          {
          //按鍵選擇控制函數(shù)
          TB=1;shu1=1;shu2=1;shu3=1;shu4=1;
          if(shu4!=1||shu3!=1||shu2!=1||shu1!=1||TB!=1)
          {
          delay(20);
          TB=1;shu1=1;shu2=1;shu3=1;shu4=1;
          if(shu4!=1||shu3!=1||shu2!=1||shu1!=1||TB!=1)
          {
          if(TB!=1)//投幣鍵按下彈起一次后TOUBI變量加1,1投幣值可轉(zhuǎn)為240定時器值
          {
          for(;TB!=1;){_nop_();} //取上升沿,避免出現(xiàn)多次掃描的現(xiàn)象
          TOUBI+=1;
          }else if(shu1!=1) //選通第一組充電接口,定時器值加240
          {
          for(;shu1!=1;){_nop_();} //取上升沿,避免出現(xiàn)多次掃描的現(xiàn)象
          if(TOUBI>0&&TIME[0]<2400)
          {
          TIME[0]+=240;
          TOUBI-=1;
          }
          }else if(shu2!=1) //選通第二組充電接口,定時器值加240
          {
          for(;shu2!=1;){_nop_();} //取上升沿,避免出現(xiàn)多次掃描的現(xiàn)象
          if(TOUBI>0&&TIME[1]<2400)
          {
          TIME[1]+=240;
          TOUBI-=1;
          }
          }else if(shu3!=1) //選通第三組充電接口,定時器值加240
          {
          for(;shu3!=1;){_nop_();} //取上升沿,避免出現(xiàn)多次掃描的現(xiàn)象
          if(TOUBI>0&&TIME[2]<2400)
          {
          TIME[2]+=240;
          TOUBI-=1;
          }
          }else if(shu4!=1) //選通第四組充電接口,定時器值加240
          {
          for(;shu4!=1;){_nop_();} //取上升沿,避免出現(xiàn)多次掃描的現(xiàn)象
          if(TOUBI>0&&TIME[3]<2400)
          {
          TIME[3]+=240;
          TOUBI-=1;
          }
          }
          }
          }
          }
          ///////////////////////////////////////////////////
          void out(void)
          {
          //更新輸出狀態(tài)
          if(TIME[0]>0)out1=1; else out1=0;
          if(TIME[1]>0)out2=1; else out2=0;
          if(TIME[2]>0)out3=1; else out3=0;
          if(TIME[3]>0)out4=1; else out4=0;
          }
          ///////////////////////////////////////////////////
          void init (void)
          {
          //上電初始化
          TMOD = 0x11; // 定時/計數(shù)器0,1工作于方式1
          TH0 = 0x3c; // 預置產(chǎn)生50ms時基信號
          TL0 = 0xb0;
          EA = 1; // 開總中斷
          ET0 = 1; // 定時/計數(shù)器0允許中斷
          TR0 = 1; // 開閉定時/計數(shù)器0
          //TIME_HH=22;時
          //TIME_MM=13; 分
          //TIME_SS=40; 秒
          }
          ///////////////////////////////////////////////////
          void tiem0(void) interrupt 1
          { // T/C0中斷服務程序(產(chǎn)生50ms時基信號)
          cou++; // 軟計數(shù)器加1
          if(cou > 19){ // 計數(shù)值到100(1s)
          cou = 0; // 軟計數(shù)器清零
          TIME_SS++; // 秒計數(shù)器加1(進位10ms*100=1s)
          /////////////////////////////////////////////////////////
          //按秒扣除定時器值
          if(TIME[0]>0)TIME[0]-=1;
          if(TIME[1]>0)TIME[1]-=1;
          if(TIME[2]>0)TIME[2]-=1;
          if(TIME[3]>0)TIME[3]-=1;
          /////////////////////////////////////////////////////////
          if(TIME_SS > 59){ // 秒計數(shù)值到60
          TIME_SS = 0; // 秒計數(shù)器清零
          TIME_MM++; // 分計數(shù)器加1(進位60s=1m)
          if(TIME_MM > 59){ // 分計數(shù)到60
          TIME_MM = 0; // 分計數(shù)器清零
          TIME_HH++; // 時計數(shù)器加1(進位60m=1h)
          if(TIME_HH > 23){ // 時計數(shù)到23
          TIME_HH = 0; // 時計數(shù)器清零
          }
          }
          }
          }
          TH0 = 0x3c; // 重置定時常數(shù)
          TL0 = 0xb0;
          }
          ///////////////////////////////////////////////////
          void main(void) //主函數(shù)
          {
          /////////////////////////////////
          //初始化
          out1=0;
          out2=0;
          out3=0;
          out4=0;
          /////////////////////////////////
          init();
          //主循環(huán)
          while(1)
          {
          key();
          P_HC_weihu();
          print();
          out();
          }
          }


          上一頁 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); })();