在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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>

            新聞中心

            89C51編程程序

            作者: 時間:2012-12-05 來源:網(wǎng)絡(luò) 收藏

            #include at89x52.h
            #include stdio.h
            #include intrins.h
            #include ctype.h

            本文引用地址:http://www.biyoush.com/article/170668.htm

            sbit rdy=P3^2;
            sbit vpp=P3^3;
            sbit p26=P3^4;
            sbit p27=P3^5;
            sbit p36=P3^6;
            sbit p37=P3^7;
            sbit prog=P2^7;

            void init_serial()
            {
            SCON=0x50; /*mode 1*/
            TMOD=0x20;
            TH1=0xfd;
            PCON=0x80;/*38400bps*/
            TR1=1; /*load tmr1*/
            TI=1;
            ES=1;}

            void init_pro()
            {
            p26=0;
            p27=0;
            p36=0;
            p37=0;
            vpp=1;
            prog=1;
            }

            void sendbyte(unsigned char da) /*send a byte*/
            {
            while(!TI);
            TI=0;
            SBUF=da;}

            unsigned char IntToAscii(unsigned char a) /*change DEC to ASCII HEX code*/
            {
            if(a10) return a+48;
            if(a>9) return a+55;}

            unsigned int getadr() /*get 5 ditiDEC adr*/
            {
            unsigned char i,a[5];
            for(i=0;i5;i++)
            {
            while(!RI);
            RI=0;
            a[i]=SBUF-48;
            }
            return a[0]*10000+a[1]*1000+a[2]*100+a[3]*10+a[4];}

            unsigned char getdata() /*get 2 ditiHEX data*/
            {
            unsigned char d1,d2;
            while(!RI);
            RI=0;
            d1=toint(SBUF);
            while(!RI);
            RI=0;
            d2=toint(SBUF);
            return d1*16+d2;}

            unsigned int detchip(int adr)
            {
            P0=0xff;
            P1=adr%256;P2=adr/256;
            init_pro();
            _nop_();_nop_();_nop_();_nop_();_nop_();/*delay 10 us*/
            _nop_();_nop_();_nop_();_nop_();_nop_();
            return P0;}

            void read()
            {
            unsigned int adr,maxadr;
            unsigned char h,l;
            P0=0xff;
            maxadr=getadr();
            for(adr=0;adrmaxadr;adr++)
            {
            P1=adr%256;P2=adr/256;
            p26=0;
            p27=0;
            p36=1;
            p37=1;
            vpp=1;
            prog=1;
            h=IntToAscii(P0/16);
            sendbyte(h);
            l=IntToAscii(P0%16);
            sendbyte(l);}
            init_pro();}

            unsigned int test(unsigned int nn)
            {
            unsigned int adr,counter=0;
            P0=0xff;
            for(adr=0;adrnn;adr++)
            {
            P1=adr%256;P2=adr/256;
            p26=0;
            p27=0;
            p36=1;
            p37=1;
            vpp=1;
            prog=1;
            _nop_();_nop_();_nop_();_nop_();_nop_();/*delay 10 us*/
            _nop_();_nop_();_nop_();_nop_();_nop_();
            if(P0!=0xff) counter++;}
            init_pro();
            return counter;}

            unsigned char erase(unsigned int nn,unsigned int p)
            {
            unsigned int i;
            P0=0xff;
            p26=1;
            p27=0;
            p36=0;
            p37=0;
            vpp=0;
            prog=1;
            for(i=0;i50000;i++) _nop_();
            switch(p)
            {
            case 0 : prog=0;
            prog=1;
            break;
            case 1 : prog=0;
            _nop_();
            prog=1;
            break;
            case 2 : prog=0;
            _nop_();_nop_();
            prog=1;
            break;
            case 3 : prog=0;
            _nop_();_nop_();_nop_();
            prog=1;
            break;
            case 4 : prog=0;
            _nop_();_nop_();_nop_();_nop_();
            prog=1;
            break;
            case 5 : prog=0;
            _nop_();_nop_();_nop_();_nop_();_nop_();
            prog=1;
            break;
            case 6 : prog=0;
            _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
            prog=1;
            break;
            case 7 : prog=0;
            _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
            prog=1;
            break;
            case 8 : prog=0;
            _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
            prog=1;
            break;
            default: prog=0;
            for(i=0;ip;i++) _nop_();
            prog=1;
            break;}
            _nop_();_nop_();_nop_();_nop_();
            _nop_();_nop_();_nop_();_nop_();
            vpp=1;
            for(i=0;ip;i++) _nop_();
            if(test(nn)==0) return 's';
            else return 'f';}

            unsigned char write()
            {
            unsigned int adr,d,i;
            p26=0;
            p27=1;
            p36=1;
            p37=1;
            vpp=0;
            prog=1;
            for(i=0;i4000;i++) _nop_();
            adr=getadr();
            d=getdata();
            while(1)
            {
            if(adr>50000) break;
            P1=adr%256;P2=(adr/256)|0x80;
            P0=d;
            TI=0;
            SBUF='s';
            prog=0;
            _nop_();_nop_();_nop_();
            prog=1;
            adr=getadr();
            d=getdata();
            while(!rdy);}
            init_pro();
            return 'f';}

            unsigned char lock(unsigned char level)
            {
            unsigned int i;
            vpp=0;
            if(level==1) {p26=1;p27=1;p36=1;p37=1;}
            if(level==2) {p26=1;p27=1;p36=0;p37=0;}
            if(level==3) {p26=1;p27=0;p36=1;p37=0;}
            for(i=0;i4000;i++) _nop_();
            prog=1;
            _nop_();_nop_();_nop_();_nop_();_nop_();/*delay 10 us*/
            _nop_();_nop_();_nop_();_nop_();_nop_();
            prog=0;
            _nop_();_nop_();_nop_();_nop_();_nop_();/*delay 10 us*/
            _nop_();_nop_();_nop_();_nop_();_nop_();
            prog=1;
            _nop_();_nop_();_nop_();_nop_();_nop_();
            while(!rdy);
            init_pro();
            return 'o';}

            void main()
            {
            unsigned char data c;
            unsigned int data adr,l,dx;
            init_pro();
            init_serial();
            while(1)
            {
            init_pro();
            scanf(%c,c);
            switch(c)
            {
            case 'c' : printf(%c,'o');
            break;
            case 'd' : scanf(%x,adr);
            printf(%x,detchip(adr));
            break;
            case 't' : scanf(%u,dx);
            printf(%u,test(dx));
            break;
            case 'r' : read();
            break;
            case 'e' : scanf(%u,%u,adr,dx);
            printf(%c,erase(adr,dx));
            break;
            case 'w' : printf(%c,write());
            break;
            case 'l' : scanf(%u,l);
            printf(%c,lock(l));
            break;
            case 'h' : printf(**********Er6y Programmer Help Window***********n);
            break;
            default : break;}


            }
            }



            關(guān)鍵詞: 程序 編程 89C51

            評論


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

            關(guān)閉