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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AT89C2051利用中斷產(chǎn)生PWM

          AT89C2051利用中斷產(chǎn)生PWM

          作者: 時(shí)間:2016-11-25 來源:網(wǎng)絡(luò) 收藏

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

          產(chǎn)生的波形

          1200ms為1

          600us為




          根據(jù)NEC協(xié)議制作的波形圖

          #include "REG2051.H"

          #define uint unsigned int
          #define uchar unsigned char


          sbit PWM=P3^7;
          uchar code Pcode[]={0x16,0x0C,0x18,0x5E,0x08,0x1C,0x5A,0x42,0x52,0x4A,0x47,0x44,0x40};

          void onKeyDown(uchar,uchar);
          void write_data(uchar);
          void start();
          void delay_560(void);
          void delay_1690(void);
          void delay_4500(void);

          void main(){
          uint r,c;
          PWM=0;
          while(1){
          P1=0x0f;
          if(P1!=0x0f){
          r=~P1-0xf0;
          P1=0xf0;
          c=~(P1>>4)-0xf0;
          onKeyDown(r,c);
          }
          }
          }

          void onKeyDown(uchar row,uchar column){
          uchar cmd,addr;
          cmd=Pcode[row*4+column];
          addr=0xaa;
          start();
          write_data(addr);
          write_data(~addr);
          write_data(cmd);
          write_data(~cmd);
          }

          void start(){
          PWM=1;
          delay_4500();
          delay_4500();
          PWM=0;
          delay_4500();
          }

          void write_data(uchar d){
          uchar i;
          for(i=0;i<8;i++){
          d<<=1;
          if(CY){
          PWM=1;
          delay_560();
          PWM=0;
          delay_1690();
          }else{
          PWM=1;
          delay_560();
          PWM=0;
          delay_560();
          }
          }
          }

          void delay_560(void)
          {
          unsigned char i,j,k;
          for(i=31;i>0;i--)
          for(j=3;j>0;j--)
          for(k=1;k>0;k--);
          }

          void delay_1690(void)
          {
          unsigned char i,j,k;
          for(i=211;i>0;i--)
          for(j=1;j>0;j--)
          for(k=1;k>0;k--);
          }

          void delay_4500(void)
          {
          unsigned char i,j,k;
          for(i=26;i>0;i--)
          for(j=34;j>0;j--)
          for(k=1;k>0;k--);
          }




          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: AT89C2051中斷PW

          評(píng)論


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