亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ch11_at89cxx 刻錄程序徹底公開.c

?? 8051單片機刻錄程序徹底公開 用于單片機刻錄器
?? C
?? 第 1 頁 / 共 4 頁
字號:
{
 int d,ok;
 int result,sum;

        ok=0;

        d=(~read_XDATA(PPIPA1)) & 0x03;
        if (d==0x01) ok++;
        if (ok==0) return(0);

        delay(100);
        d=(~read_XDATA(PPIPA1)) & 0x03;
        if (d==0x01) ok++;

        delay(100);
        d=(~read_XDATA(PPIPA1)) & 0x03;
        if (d==0x01) ok++;

        delay(300);
        d=(~read_XDATA(PPIPA1)) & 0x03;
        if (d==0x01) ok++;    /* verify key */
        if (AUTOLOCK) ok=1;

        switch (ok)
        {
         case 4:        /* verify between SRAM and flash memory */
           beep_start();
           line_feed();
           result=verify(0);
           if (result==0) display_str(msg_verify_ok,1);
           else           display_str(msg_no_match,1);
           if (result==0) beep_ok();
           else           beep_err();
           display_prompt();
           break;
         case 1:        /* read then save at SRAM */
         case 2:
         case 3:
           beep_start();
           line_feed();
           display_str("Read then save into RAM BUFFER",1);
           sum=chip_read();
           display_str("Checksum = ",0);
           display_addr((unsigned int)sum);
           line_feed();
           p20_show_signature(1);
           display_prompt();
           beep_ok();
           break;
         default:
           break;
        }
}

int show_fail_in_programming()
{
        display_str("Something wrong in programming this microcontroller",1);
       display_str("Please check :",1);
        display_str("1.Is AT89CXX/AT90XXXX on the TEXTOOL socket ?",1);
        display_str("2.Did you add +12V power supply ?",1);
        display_str("3.Maybe this chip is bad before programming.",1);
}

int command_list()
{
 int m;
        for (m=0;m<CMD_LINE;m++) display_str(command[m],1);
}

int clear_buffer(int c)
{
 int m;
        for (m=0;m<c;m++) write_XDATA(BUFFER+m,0x00);
        checksum=0;
}

int calculate_checksum()
{
 int sum=0;
 int m;
        for (m=0;m<pgm_length;m++) sum+=read_XDATA(BUFFER+m);
        return(sum);
}

int display(char *s)
{
 int m;
        for (m=0;m<strlen(s);m++) display_char(s[m]);
        line_feed();
}

int display_str(s,lf)
char *s;
int lf;
{
 int m;
        for (m=0;m<strlen(s);m++) display_char(s[m]);
        if (lf !=0) line_feed();
}

int display_mem_block(s_add,e_add)
int s_add,e_add;
{
 int m,n;
 int data;
 int sum;

        display_str("Press any key to escape",1);
        display_str("Display data addr ",0);
        display_addr((unsigned int)s_add);
        display_str(" -- ",0);
        display_addr((unsigned int)e_add);
        line_feed();

      for (m=s_add;m<e_add;m=m+16)
      {
        display_addr((unsigned int)m);
        for (n=0;n<16;n++)
         {
          data=read_XDATA(m+n);
          display_hex(data);   /* hex display mode */
          display_char(' ');
          if (n==7) { display_char('-'); display_char(' '); }
          } /* end of n loop */

          display_char('|');   /* seperator */

       for (n=0;n<16;n++)      /* char display mode */
         {
          data=read_XDATA(m+n);
          if ( (data>=' ') && (data< 0x7f) ) display_char(data);
          else                               display_char('.');
         }
        line_feed();
        if (SFB.RI==1) break;
        write_XDATA(0xfffe,m/256);
        write_XDATA(0xffff,m%256);
      }

        for (sum=0,m=0;m<pgm_length;m++)
        { sum+=read_XDATA(s_add+m); }
       return(sum);
}

int download_file()
{
 int m;
 int l1,l2;
 int sum;
 int data,addr;
 int n,cnt;

        /* Load command receive */
        while (SFB.RI==0) {};
        l1=SBUF;
        SFB.RI=0;
        while (SFB.RI==0) {};
        l2=SBUF;
        SFB.RI=0;
        l2=(l2 & 0x3f)<<8;
        l1=l1 & 0xff;
        cnt=l2+l1;
        write_XDATA(0xfffe,cnt%256);
        write_XDATA(0xffff,cnt/256);

        addr=BUFFER;
        n=0;

        while (n<cnt) {
         while (SFB.RI==0) {};
         data=SBUF;
         SFB.RI=0;
         write_XDATA(addr+n,data); /* save program on RAM */
         n++;
        }
        delay(1000);

        line_feed();
        display_str("Download file count = ",0);
        display_addr((unsigned int)cnt);
        display_str(" (HEX)",1);

        display_str("Calculate checksum...",1);
        for (sum=0,m=0;m<pgm_length;m++)
        { sum+=read_XDATA(BUFFER+m); }
        display_str("RAM BUFFER checksum = ",0);
        display_addr((unsigned int)sum);
        line_feed();
        checksum=sum;
        beep_ok();
}

int display_line(code)
char code;
{
 int m;
        for (m=0;m<75;m++) display_char(code);
        line_feed();
}

int display_addr(addr)
unsigned int addr;
{
 int p,q;
        p=addr/256;
        q=addr%256;
        display_hex(p);
        display_hex(q);
        display_char('H');
        display_char(' ');
}

int display_addr_woh(addr)
unsigned int addr;
{
 int p,q;
        p=addr/256;
        q=addr%256;
        display_hex(p);
        display_hex(q);
}

int display_hex(data)
int data;
{
int l4bit,h4bit;
          h4bit=(data & 0xf0)/16;
          h4bit=hex_table[h4bit];
          display_char((char)h4bit);

          delay(2);
          l4bit=data & 0x0f;
          l4bit=hex_table[l4bit];
          display_char((char)l4bit);
          delay(2);
}

int beep_start()
{
        beep_on();  delay(200);
        beep_off(); delay(50);
        beep_on();  delay(100);
        beep_off(); delay(50);
}

int beep_err()
{
 int m;
        for (m=0;m<3;m++) {
         beep_on();  delay(50);
         beep_off(); delay(50);
        }
}

int beep_ok()
{
        beep_on();  delay(200);
        beep_off(); delay(100);
}

int show_mail_box()
{
        line_feed();
        display_str(title2,1);
        display_str(title3,1);
        display_str(title4,1);

        line_feed();
}
int display_char(data)
char data;
{
        SBUF=data;
        while (SFB.TI==0) {};
        delay(1);
}

int display_char_no_wait(data)
char data;
{
        SBUF=data;
        while (SFB.TI==0) {};
}


int line_feed()
{
        display_char(0x0d); delay(10);
        display_char(0x0a); delay(10);
}

int delay(t)
int t;
{
 int q,m;
        for (m=0;m<t;m++) {
         for (q=0;q<t_of_delay;q++) {}
        }
        return(0);
}
/*
int check_rom()
{
 int m;
        for (m=0x0000;m<0x7fff;m+=0x800)
        { delay_10ms(); }
}
*/
int check_mem()
{
 int m,n,flag;
 char data,chk;

        for (m=0x8000;m<0xffff;m+=0x1000)
        { flag=0;
          for (n=0;n<32;n++)
           {
            data=read_XDATA(m+n);
            write_XDATA(m+n,~data);
            chk=~read_XDATA(m+n);
            write_XDATA(m+n,data); /* write back */
            if (data == chk) flag=1;
           }
          display_str("SRAM Addr ",0);
          display_addr((unsigned int)m);

          if (flag==0) display_str(" X ",1);
          else         display_str("R/W OK!",1);
          if (m >=0xf000) break;
        }
        line_feed();
}

int read_XDATA(int addr)
{
/*
 char *p;
 int r;
        p=(char *)addr;
        r=(int)(*p);
        return(r);
*/
        .asm
        .arg    addr
        push    dpl
        push    dph
        push    acc
        mov     dpl,r6
        mov     dph,r7
        movx    a,@dptr         ;get addr_h
        mov     r0,a
        inc     dptr
        movx    a,@dptr         ;get addr_l
        mov     dph,r0
        mov     dpl,a
        movx    a,@dptr         ;read external data
        mov     r0,a
        mov     r2,#00h
        pop     acc
        pop     dph
        pop     dpl
        .endasm
}

int write_XDATA(int addr,int data)
{
/*
 char *p;
        p=(char *)addr;
        *p=(char)data; */
        .asm
        .arg    addr,data
        push    dpl
        push    dph
        push    acc
        mov     dpl,r6
        mov     dph,r7
        movx    a,@dptr         ;get addr_h
        mov     r0,a
        inc     dptr
        movx    a,@dptr         ;get addr_l
        mov     r2,a
        inc     dptr
        inc     dptr
        movx    a,@dptr         ;get data_l
        mov     dph,r0
        mov     dpl,r2
        movx    @dptr,a         ;write external data
        pop     acc
        pop     dph
        pop     dpl
        .endasm
}

int baud_rate_setting()
{
        SCON=0x50;
        TMOD=0x20;
        TH1=rate;
        TL1=rate;
        SFB.TR1=1;
}

int enable_int0()
{
        TMOD=0x21; /* timer1 as baud rate gen,timer0 16bit count */
        TH0=TmsH;
        TL0=TmsL;
        SFB.TR0=1;  /* timer0 start count */
        SFB.TF0=0;  /* timer 0 overflow flag clear */
/*
        SCON=0x52; /* 8 bit UART */
        TCON=0x54;
        TH1=rate;
        TL1=0;
        SFB.TR1=1;  /* timer1 start count */
*/
/*      SFB.ET0=0;     disable timer0 interrupt */
/*      SFB.PS=1;      serial higher priority */

        SFB.ES=0;   /* disable serial interrupt */
        SFB.EA=0;   /* disable interrupt */
        SFB.RI=0;
        SFB.TI=0;
}

interrupt t0_int()
{
        TH0=TmsH;          /* count reload */
        TL0=TmsL;
        SFB.TF0=0;
}

int upload_file()
{
 int data;
 int addr;
 int m;

        addr=BUFFER; /* addr */

        for (m=0;m<pgm_length;m++) {
        data=read_XDATA(addr+m); /* read RAM data */
        SBUF=data;
        while (SFB.TI==0) {};
        delay(2);
        }
}

int serial_int()
{ }

/* sub-functions for AT89C51/52 only */

int p26_low() {       write_XDATA(PPICTL2,0x08); }
int p26_hi()  {       write_XDATA(PPICTL2,0x09); }

int p27_low() {       write_XDATA(PPICTL2,0x0a); }
int p27_hi()  {       write_XDATA(PPICTL2,0x0b); }

int p36_low() {       write_XDATA(PPICTL2,0x0c); }
int p36_hi()  {       write_XDATA(PPICTL2,0x0d); }

int p37_low() {       write_XDATA(PPICTL2,0x0e); }
int p37_hi()  {       write_XDATA(PPICTL2,0x0f); }


int rst_hi()   {      write_XDATA(PPICTL2,0x07); }
int psen_low() {      write_XDATA(PPICTL2,0x04); }

int vpp_12v() {       write_XDATA(PPICTL2,0x01); }
int vpp_5v()  {       write_XDATA(PPICTL2,0x00); }

int prog_low() {      write_XDATA(PPICTL2,0x02); }
int prog_hi()  {      write_XDATA(PPICTL2,0x03); }

int read_extra_signature()
{
 int c1;
 int code;
        read_signature_mode();
        addr_out(0x0032);
        c1=read_byte();         /* c1 must be 1EH */
        code=c1;
        return(code);
}

int write_byte(int d)
{
        write_XDATA(PPIPB1,d);
}

int read_byte()
{
 int d;
        d=read_XDATA(PPIPB1);
        return(d);
}

int addr_out(int a)
{
 int addr_h,addr_l;

/*      addr_h=(a/256);
        addr_l=a%256; */
        addr_h=a >> 8;
        addr_l=a & 0xff;
        write_XDATA(PPIPA1,addr_l);
        write_XDATA(PPIPA2,addr_h);
}

int read_signature_mode()
{
        init_8255(0x82,0x82);
        rst_hi();
        psen_low();
        prog_hi();
        vpp_5v();
        p26_low();
        p27_low();
        p36_low();
        p37_low();
}

int read_signature()
{
 int c1,c2;
 int code;
        read_signature_mode();
        if (flash_type==AT89S8252) vpp_12v();
        addr_out(0x0030);
        c1=read_byte();         /* c1 must be 1EH */
        addr_out(0x0031);
        c2=read_byte();         /* c2 must be 51H */
        code=c2*256+c1;
        vpp_5v();
        return(code);
}

int read_code_mode()
{
        init_8255(0x82,0x82);
        rst_hi();
        psen_low();
        prog_hi();
        vpp_5v();
        p26_low();
        p27_low();
        p36_hi();
        p37_hi();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91老师国产黑色丝袜在线| 日韩一级片在线观看| 久久影院午夜论| 91一区一区三区| 99精品久久久久久| 国产精品不卡在线| 91视频xxxx| 亚洲综合在线视频| 欧美亚洲禁片免费| 丝袜美腿亚洲一区二区图片| 在线电影欧美成精品| 日韩电影在线观看网站| 91麻豆精品国产91久久久久久久久| 午夜视频在线观看一区| 在线播放国产精品二区一二区四区| 亚洲电影中文字幕在线观看| 91精品国产一区二区三区香蕉| 麻豆精品一区二区综合av| 久久精品无码一区二区三区| jvid福利写真一区二区三区| 一区二区三区免费网站| 欧美伦理电影网| 狠狠色综合播放一区二区| 欧美激情中文字幕| 在线免费视频一区二区| 日本成人超碰在线观看| 久久精品人人做| 欧美亚洲一区二区在线| 国产自产视频一区二区三区| 亚洲乱码日产精品bd| 91在线无精精品入口| 91国在线观看| 日本欧美肥老太交大片| 26uuu亚洲综合色欧美 | 亚洲欧美欧美一区二区三区| 欧美日本不卡视频| 成人禁用看黄a在线| 天涯成人国产亚洲精品一区av| 91精品国产综合久久福利| 不卡欧美aaaaa| 奇米一区二区三区av| 日韩三级精品电影久久久| 成人黄色电影在线 | 亚洲图片一区二区| 精品免费国产二区三区| 91极品视觉盛宴| 国产福利一区在线观看| 亚洲免费伊人电影| 国产日韩亚洲欧美综合| 日韩美一区二区三区| 中文字幕免费观看一区| 韩国精品一区二区| 亚洲一线二线三线视频| 国产欧美一区二区精品秋霞影院| 欧美另类一区二区三区| 91在线观看成人| 国产精品一线二线三线精华| 五月激情综合色| 中文字幕日韩一区二区| 日韩一区二区不卡| 欧美日韩一区二区三区在线看| 国产成+人+日韩+欧美+亚洲| 蜜桃一区二区三区在线| 午夜精品久久久久影视| 亚洲日本丝袜连裤袜办公室| 国产偷国产偷精品高清尤物| 欧美一级二级三级乱码| 欧美日韩不卡视频| 在线欧美小视频| 色一区在线观看| 99精品视频在线播放观看| 国产精品18久久久久久久久久久久 | 国产亚洲一区二区三区四区| 日韩一区二区麻豆国产| 欧美老年两性高潮| 欧美日韩一区在线| 日本高清不卡视频| 99精品1区2区| 一本大道久久a久久综合| 99久久精品免费观看| 成人白浆超碰人人人人| 成人激情动漫在线观看| 成人开心网精品视频| 成人黄色软件下载| 91美女片黄在线观看| 在线免费观看一区| 欧美三级日韩三级国产三级| 欧美精品在线观看播放| 91精品国产全国免费观看| 欧美一区二区三区公司| 日韩欧美国产一区二区在线播放 | 久久男人中文字幕资源站| www国产亚洲精品久久麻豆| 欧美精品一区男女天堂| 久久只精品国产| 国产精品丝袜久久久久久app| 国产精品成人在线观看| 亚洲精品大片www| 日韩精品乱码免费| 加勒比av一区二区| eeuss国产一区二区三区| 一本一本大道香蕉久在线精品| 色吧成人激情小说| 欧美男人的天堂一二区| 久久久另类综合| 亚洲精品久久久久久国产精华液| 亚洲高清免费一级二级三级| 久99久精品视频免费观看| 处破女av一区二区| 精品视频1区2区3区| 欧美zozo另类异族| 国产精品免费丝袜| 亚洲成人免费看| 国产一二精品视频| 日本乱人伦一区| 日韩精品一区二区三区swag | 亚洲综合久久久| 美女mm1313爽爽久久久蜜臀| 成人精品亚洲人成在线| 欧美日韩国产免费一区二区 | 91视视频在线观看入口直接观看www| 色av成人天堂桃色av| 精品国偷自产国产一区| 国产精品麻豆欧美日韩ww| 午夜视频在线观看一区二区三区| 国产精品99久久久| 欧美高清一级片在线| 国产精品免费视频观看| 亚洲va欧美va天堂v国产综合| 国产精品系列在线播放| 欧美电影一区二区三区| 中文字幕一区免费在线观看| 久久国产精品第一页| 色综合久久久网| 精品国产一区二区三区不卡 | 日韩精品成人一区二区在线| 粉嫩嫩av羞羞动漫久久久| 欧美日韩的一区二区| 欧美国产乱子伦 | 老司机精品视频导航| 一本色道久久综合亚洲91| 久久综合色鬼综合色| 午夜视频一区二区三区| 91在线无精精品入口| 精品免费视频.| 亚洲成人精品一区二区| 成人91在线观看| 26uuu亚洲综合色欧美| 日本在线不卡视频一二三区| 色综合色综合色综合| 国产免费成人在线视频| 九九国产精品视频| 欧美男男青年gay1069videost| 亚洲另类中文字| 99riav一区二区三区| 国产亚洲精品久| 韩国av一区二区| 日韩欧美一区电影| 日日夜夜精品视频免费| 欧美午夜一区二区| 亚洲日本在线天堂| 成人97人人超碰人人99| 久久久国产午夜精品| 国产在线看一区| 亚洲精品一区二区精华| 国产资源精品在线观看| 精品国产污污免费网站入口 | 大胆欧美人体老妇| 久久精品一区蜜桃臀影院| 国产一区二区主播在线| 欧美精品一区二区三区蜜桃视频| 男女激情视频一区| 精品欧美一区二区久久| 麻豆精品一区二区| 欧美精品一区二区高清在线观看 | 洋洋av久久久久久久一区| 99久久综合国产精品| 国产精品久久久久三级| 91丨九色丨尤物| 一级特黄大欧美久久久| 欧美日韩亚洲国产综合| 日韩中文字幕区一区有砖一区| 91精品国产91久久久久久最新毛片| 丝袜亚洲另类欧美综合| 精品久久久久久久久久久久久久久久久| 免费的国产精品| 国产日韩精品一区二区三区 | 日本免费新一区视频| 欧美成人乱码一区二区三区| 久草中文综合在线| 国产丝袜美腿一区二区三区| 国产一区二区导航在线播放| 欧美一区永久视频免费观看| 精品一区二区三区在线观看| 久久久国产综合精品女国产盗摄| www.在线欧美| 亚洲高清久久久| 久久免费电影网| 91日韩在线专区| 日韩黄色免费网站|