在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

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

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

            本文引用地址:http://www.biyoush.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--);
            }




            上一頁 1 2 下一頁

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

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉