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

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

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

?? 8051單片機刻錄程序徹底公開 用于單片機刻錄器
?? C
?? 第 1 頁 / 共 4 頁
字號:
         if (v!=data)
         { err+=1;
           display_error(n,v,data);
         }
         if (err>=8) break;

        p20_write_byte(0xff);
         avr_oe_low();
         avr_bs_hi();
         data=avr_read_byte();          /* read high byte */
         avr_oe_hi();
         v=read_XDATA(BUFFER+n+1);
         if (v!=data)
         { err+=1;
           display_error(n+1,v,data);
         }
         if (err>=8) break;
         if ((m & 0x007f)==0) display_char('V');
        }
        line_feed();

        p20_write_byte(0xff);
        p20_rst_hi();
        return(err);
}

int display_error(int addr,int right,int wrong)
{
        display_str(" Error at address ",0);
        display_addr((unsigned int)addr);
        display_hex(right); display_str("(SRAM) ",0);
        display_hex(wrong); display_str("(READ)",1);
}

int avr_flash_reading()
{
 int m,n,data;
 int sum;

        avr_8255_mode();
        p20_rst_12v();
        avr_command(AVR_FLASH_READ);

        for (m=0,sum=0,n=0;n<pgm_length;m+=1,n+=2)
        {
         avr_load_addrall(m);
        p20_write_byte(0xff);
         avr_oe_low();  avr_bs_low();
         data=avr_read_byte();          /* read low byte */
         write_XDATA(BUFFER+n,data);
         sum=sum+data;

        p20_write_byte(0xff);
         avr_bs_hi();
         data=avr_read_byte();          /* read high byte */
         avr_oe_hi();
         write_XDATA(BUFFER+n+1,data);
         sum=sum+data;
         if ((m & 0x007f)==0) display_char('R');
        }
        line_feed();
        p20_write_byte(0xff);
        p20_rst_hi();
        return(sum);
}

int avr_erase()
{
/*      avr_8255_mode();        */
        p20_rst_12v();
        avr_command(AVR_ERASE); /* erase FLASH & EEPROM */
        avr_write_mode();
        delay_10ms();
       delay_10ms();
        avr_wr_low();           /* erase lock bit */
        avr_wr_hi();
        p20_rst_hi();
        delay_10ms();
        delay_10ms();
        avr_idle();
}

int avr_flash_programming()
{
 int m,n;
 int dl,dh,data;

        avr_8255_mode();
        p20_rst_12v();
        avr_erase();
        display_str("Erase the whole Flash and EEPROM first",1);
        p20_rst_12v();
        avr_command(AVR_PGM_FLASH);
        data=0;
        for (m=0,n=0;n<pgm_length;m++,n+=2)
        {
          avr_load_addr(m);     /* load addr_low then addr_high */
          dl=read_XDATA(BUFFER+n);
          dh=read_XDATA(BUFFER+n+1);
/*        avr_load_data(m,m);   */
          avr_load_data(dl,dh);   /*   load data 2 byte */
          if ((m & 0x007f)==0) display_char('P');
        }
        line_feed();
        p20_rst_hi();
        avr_idle();
}

int avr_load_data(int data1,int data2)
{
        avr_write_mode();

        avr_xa1_low();
        avr_xa0_hi();
        p20_write_byte(data1); /* data_low output */
        avr_xtal1_pulse();

        avr_bs_low();
        avr_wr_low();
        avr_wr_hi();
        delay_2ms();

        avr_xa1_low();
        avr_xa0_hi();
        p20_write_byte(data2); /* data_high output */
        avr_xtal1_pulse();

        avr_bs_hi();
        avr_wr_low();
        avr_wr_hi();
        delay_2ms();
}

int avr_command(int command)
{
        avr_write_mode();
        p20_xtal1_low();
        avr_xa1_hi();
        avr_xa0_low();
        avr_bs_low();
        p20_write_byte(command);
        avr_xtal1_pulse();
}


int avr_load_lowaddr(int addr)
{
        avr_write_mode();
        avr_xa1_low();
        avr_xa0_low();
        avr_bs_low();
        p20_write_byte(addr & 0xff); /* low address */
        avr_xtal1_pulse();
}

int avr_load_addr(int addr)
{
      avr_write_mode();
        avr_xa1_low();
        avr_xa0_low();
        avr_bs_low();
        p20_write_byte(addr & 0xff); /* low address */
        avr_xtal1_pulse();

       if ((addr & 0xff)==0)
       {
        avr_xa1_low();
        avr_xa0_low();
        avr_bs_hi();
        p20_write_byte(addr >>8);
        avr_xtal1_pulse();
       }

/*      avr_xa1_low();
        avr_xa0_low();
        avr_bs_hi();
        p20_write_byte(addr/256);
        avr_xtal1_pulse();      */
}

int avr_load_addrall(int addr)
{
/*     avr_write_mode();        */
        avr_xa1_low();
        avr_xa0_low();
        avr_bs_low();
        p20_write_byte(addr & 0xff); /* low address */
        avr_xtal1_pulse();

        avr_xa1_low();
        avr_xa0_low();
        avr_bs_hi();
        p20_write_byte(addr/256);
        avr_xtal1_pulse();
}

int avr_idle()
{
        avr_xa1_hi();
       avr_xa0_hi();
        p20_rst_hi();
        p20_xtal1_low();
}

int avr_xa1_low() { p20_p37_low(); }
int avr_xa1_hi()  { p20_p37_hi();  }
int avr_xa0_low() { p20_p35_low(); }
int avr_xa0_hi()  { p20_p35_hi();  }
int avr_bs_low()  { p20_p34_low(); }
int avr_bs_hi()   { p20_p34_hi();  }
int avr_wr_low()  { p20_p33_low(); }
int avr_wr_hi()   { p20_p33_hi();  }
int avr_oe_low()  { prog_low(); }
int avr_oe_hi()   { prog_hi();  }


int avr_xtal1_pulse()
{
        p20_xtal1_low();
        p20_xtal1_hi();
        p20_xtal1_low();
}


/* AT90S1200 programming code above */

int select_SPF(int code)
{
        init_8255(0x80,0x82); /* 1st-PA,PB,PC output */
                              /* 2nd-PA out,PB & PC input */
        rst_hi();
        psen_low();
        prog_hi();
        vpp_5v();

        p26_low();
        p27_hi();
        p36_low();
        p37_hi();

        if (code==0)
      
     { write_byte(0x00); display_str("Enable AT89S8252 Serial Programmable Fuse",1); }
     if (code==1)
     { write_byte(0x01); display_str("Disable AT89S8252 Serial Programmable Fuse",1); }

        vpp_12v();
        prog_hi();
        prog_low();
        delay_10ms();     /* delay 10 mS */
        prog_hi();
        vpp_5v();
}

int program_setting()
{
         beep_start();
         select_pgm_length();
         display_str("Program count : ",0);
         display_addr(pgm_length);
         line_feed();
         display_str("Calculate checksum = ",0);
         checksum=calculate_checksum();
         display_addr_woh((unsigned int)checksum);
         line_feed();
         line_feed();
}
int select_pgm_length()
{
        switch (flash_type)
        {
         case AT2051:
                      pgm_length=2048;
                      break;
         case AT1051:
                      pgm_length=1024;
                      break;
         case AT90S1200:
                      pgm_length=1024;
                      eeprom_length=64;
                      break;
         case AT4051:
         case AT89C51:
                      pgm_length=4096;
                      break;
         case AT89C52:
                      pgm_length=8192;
                      break;
         case AT89S8252:
                      pgm_length=8192;
                      eeprom_length=2048;
                      break;
        }
}

int lock_bit1()
{
        if (flash_type==AT2051 || flash_type==AT4051 || flash_type==AT1051)
           p20_lock_bit1();
        if (flash_type==AT89C51 || flash_type==AT89C52)
           p40_lock_bit1();
        if (flash_type==AT89S8252) at89s8252_lock_bit(1);
}

int lock_bit2()
{
        if (flash_type==AT2051 || flash_type==AT4051 || flash_type==AT1051)
            p20_lock_bit2();
        if (flash_type==AT89C51 || flash_type==AT89C52) p40_lock_bit2();
        if (flash_type==AT89S8252) at89s8252_lock_bit(2);
}

int lock_bit3()
{
        if (flash_type==AT89C51 || flash_type==AT89C52) p40_lock_bit3();
        if (flash_type==AT89S8252) at89s8252_lock_bit(3);
}

int show_signature(int c)
{
        if (flash_type==AT2051 || flash_type==AT4051 || flash_type==AT1051 )
        { p20_show_signature(c); }
        if (flash_type==AT89C51 || flash_type==AT89C52 || flash_type==AT89S8252)
        { p40_show_signature(); }
        if (flash_type==AT90S1200)
        { avr_signature_reading(); }
}

int p20_show_signature(int mode)
{
 int result;

 result=p20_read_signature(0);
 display_str("Chip signatures are :",0);
 display_str(" (000H)=",0);  display_hex(result);
 result=p20_read_signature(1);
 display_str("H,(001H)=",0); display_hex(result);
 display_char('H');
 result=p20_read_signature(2);
 display_str(",(002H)=",0);  display_hex(result);
 display_char('H');
 line_feed();

 if (mode==0) {
 display_str("If (000H)=1EH indicates manufatured by ATMEL",1);
 display_str("If (001H)=41H/21H/11H indicates ATMEL 89C4051/2051/1051",1);
 display_str("If (000H)=FFH indicates 12V programming",1);
 display_str("If lock_bit2 is set to 1,signature reading is then disabled",1);
 }
}

int p40_show_signature()
{
 int result;

 result=read_signature();
 display_str("Chip signature are :",0);
 display_str(" (30H)=",0);  display_hex(result%256);
 display_str("H,(31H)=",0); display_hex(result/256);
 display_char('H');
 result=read_extra_signature();
 display_str(",(32H)=",0);  display_hex(result%256);
 display_char('H');
 line_feed();
/*
 if (mode==0) {
 display_str("If (31H)=1EH indicate manufatured by ATMEL",1);
 display_str("If lock_bit2 or 3 is set to 1,signature reading is then disabled",1);
 } */

 if (flash_type==AT89S8252)
 {
  result=read_at89s8252_SPF();
  if (result==0) display_str("AT89S8252 Serial Programmable Fuse <ENABLE>",1);
  else           display_str("AT89S8252 Serial Programmable Fuse <DISABLE>",1);
  read_at89s8252_lockbit();
 }
}

int read_at89s8252_SPF()
{
 int result;

  read_signature_mode();
  p26_hi();
  p27_hi();
  p36_low();
  p37_hi();
  vpp_12v();
  result=read_byte() & 0x01;
  vpp_5v();
  return(result);
}

int read_at89s8252_lockbit()
{
 int result;

  read_signature_mode();
  p26_hi();
  p27_hi();
  p36_low();
  p37_low();
  vpp_12v();
  result=read_byte() & 0x07;
  vpp_5v();
  if (result & 0x04) display_str("AT89S8252 Lock bit-1 Unprogrammed",1);
  else               display_str("AT89S8252 Lock bit-1 programmed",1);
  if (result & 0x02) display_str("          Lock bit-2 Unprogrammed",1);
  else               display_str("          Lock bit-2 programmed",1);
  if (result & 0x01) display_str("          Lock bit-3 Unprogrammed",1);
  else               display_str("          Lock bit-3 programmed",1);
}

int blank_check(int c)
{
 int result;
        if (flash_type==AT2051 || flash_type==AT4051 || flash_type==AT1051)
          result=p20_blank_check(c);
        if (flash_type==AT89C51 || flash_type==AT89C52 || flash_type==AT89S8252)
          result=p40_blank_check(c);
        return(result);
}

int p20_blank_check(int count) /* test AT89C2051/1051 & BUFFER */
{
 int m,data;
 int err=0;

        p20_read_mode();
        p20_reset_addr();
        for (m=0;(m<count && err==0);m++)
        {
          data=p20_read_byte() & 0xff;
          if (data!=0xff) err=1;
          p20_next_addr();
         if (m%1024==0 && count>1000) display_char('B');  /* 1 page programmed */
        }
        delay(10);
        if (count>1000) line_feed();
        return(err);
}

int p40_blank_check(int count) /* test AT89C51/52 & BUFFER */
{
 int m,data;
 int err=0;

        read_code_mode();
        if (flash_type==AT89S8252) vpp_12v();
        for (m=0;(m<count && err==0);m++)
        {
          addr_out(m);
          data=read_byte() & 0xff;
          if (data!=0xff) err=1;
         if (m%1024==0 && count>1000) display_char('B');  /* 1 page programmed */
        }
        vpp_5v();
        delay(10);
        if (count>1000) line_feed();
        return(err);
}

int chip_read()
{
 int x;
        if (flash_type==AT2051 || flash_type==AT4051 || flash_type==AT1051)
         x=p20_chip_read();
        if (flash_type==AT89C51 || flash_type==AT89C52 || flash_type==AT89S8252)
         x=p40_chip_read();
        return(x);
}

int p20_chip_read()
{
 int m;
 int data,sum;

        sum=0;
        p20_read_mode();
        display_str("read count = ",0);
        display_addr(pgm_length);
        line_feed();
        p20_reset_addr();
        for (m=0;m<pgm_length;m++)
        {
         data=p20_read_byte();
         write_XDATA(BUFFER+m,data);
         sum+=data;
         p20_next_addr();
         if (m%1024==0) display_char('R');  /* 1 page programmed */
        }
        line_feed();
      return(sum);
}

int p40_chip_read()
{
 int m;
 int data,sum;

        sum=0;
        read_code_mode();
        if (flash_type==AT89S8252) vpp_12v();

        for (m=0;m<pgm_length;m++)
        {
         addr_out(m);
         data=read_byte();
         write_XDATA(BUFFER+m,data);
         sum+=data;
         if (m %1024==0) display_char('R');  /* 1 page programmed */
        }
        vpp_5v();
        line_feed();
        return(sum);
}

int p20_read_mode()
{
        init_8255(0x92,0x82);
        p20_rst_hi();
        p20_prog_hi();
        p20_p33_low();
        p20_p34_low();
        p20_p35_hi();
        p20_p37_hi();
}

int p20_read_signature(int addr)
{
 int c1;

        init_8255(0x92,0x82);
        p20_rst_hi();
        p20_prog_hi();
        p20_p33_low();
        p20_p34_low();
        p20_p35_low();
        p20_p37_low();

        p20_reset_addr();
        delay_10ms();     /* delay 10 mS */

        switch(addr)
        {
         case 0:
                c1=p20_read_byte();         /* c1 must be 1EH */
                break;
         case 1:
                p20_next_addr();
                c1=p20_read_byte();         /* c2 must be 21H */
                break;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产色产综合色产在线视频| 天堂成人免费av电影一区| 国产成人精品亚洲午夜麻豆| 久久久青草青青国产亚洲免观| 国产一区二区在线看| 国产精品人成在线观看免费 | 欧美日韩激情一区二区三区| 一区二区三区**美女毛片| 日韩精品一区在线| 一本久久精品一区二区| 免费观看成人av| 亚洲人成网站在线| 久久久久久久久久久久久久久99 | 免费人成黄页网站在线一区二区| 精品播放一区二区| 欧美日韩另类一区| 91麻豆123| 91女厕偷拍女厕偷拍高清| 精品一区二区三区影院在线午夜 | 一区二区高清在线| 久久精品在这里| 日韩一级免费一区| 5566中文字幕一区二区电影| 成人h版在线观看| zzijzzij亚洲日本少妇熟睡| 久久99精品久久只有精品| 香蕉加勒比综合久久| 亚洲欧美日韩久久精品| 1区2区3区精品视频| 国产精品传媒视频| 一色桃子久久精品亚洲| 中文字幕中文字幕一区二区| 国产午夜一区二区三区| 国产精品久久久久久久久动漫 | 制服.丝袜.亚洲.中文.综合| 欧美视频在线观看一区二区| 欧美日韩高清在线| 制服丝袜中文字幕亚洲| 久久亚洲私人国产精品va媚药| 欧美一区二区日韩| 久久综合丝袜日本网| 国产精品拍天天在线| 久久国产精品99精品国产 | 狠狠色狠狠色合久久伊人| 成人激情黄色小说| 岛国精品在线观看| 精品视频免费在线| 久久久久久日产精品| 亚洲精品乱码久久久久久黑人| 日韩电影在线免费| 成人av在线资源| 久久综合九色综合欧美亚洲| 一区二区三区在线影院| 国产乱码精品一区二区三区av | 国产乱子伦一区二区三区国色天香| 国产一区二区三区免费播放| 精品视频1区2区3区| 中文字幕亚洲在| 国产一区二区美女| 欧美一级淫片007| 亚洲第一精品在线| 色噜噜狠狠成人中文综合| 亚洲欧洲av在线| 99这里只有久久精品视频| www国产亚洲精品久久麻豆| 日韩av在线播放中文字幕| 欧美色图免费看| 一区二区视频免费在线观看| 色偷偷成人一区二区三区91| 国产精品传媒视频| 色网站国产精品| 亚洲电影欧美电影有声小说| 欧美日韩中文另类| 日韩1区2区3区| 精品国产三级a在线观看| 国内外精品视频| 中文字幕日韩精品一区| 欧美在线999| 蜜臀av性久久久久蜜臀aⅴ四虎 | 成人av第一页| 亚洲午夜av在线| 精品日本一线二线三线不卡| 国产精品18久久久久久久网站| 国产日韩精品一区二区三区| 一本久久精品一区二区| 免费在线观看一区二区三区| 欧美精品一区视频| 在线日韩一区二区| 狠狠色丁香久久婷婷综合丁香| 国产人久久人人人人爽| 在线观看日韩国产| 成人综合婷婷国产精品久久免费| 亚洲综合色网站| 久久综合久久综合亚洲| 欧美一区二区在线视频| 色综合久久久网| 成人黄色777网| 国内久久婷婷综合| 麻豆精品视频在线观看视频| 亚洲综合在线电影| 亚洲欧美激情一区二区| 国产精品网曝门| 国产欧美日韩卡一| 欧美成人vr18sexvr| 日韩精品资源二区在线| 欧美性大战xxxxx久久久| 欧美探花视频资源| 欧日韩精品视频| 欧美一a一片一级一片| 91久久一区二区| 91国偷自产一区二区使用方法| 色噜噜狠狠成人中文综合| 91精品福利视频| 欧美在线播放高清精品| 91精品国产欧美一区二区18| 欧美一卡2卡三卡4卡5免费| 欧美精品粉嫩高潮一区二区| 91精品在线免费| 久久精品网站免费观看| 最新日韩在线视频| 午夜欧美一区二区三区在线播放| 天天综合网天天综合色| 麻豆精品一二三| 99精品国产99久久久久久白柏| 色成人在线视频| 日韩欧美一二三| 国产精品美日韩| 蜜臀va亚洲va欧美va天堂| 国产精品影视网| 欧美四级电影在线观看| 欧美国产一区视频在线观看| 一区二区高清视频在线观看| 精品中文av资源站在线观看| 99精品视频在线观看| 日韩一区二区三区视频在线观看| 久久综合网色—综合色88| 一区二区三区高清不卡| 国产揄拍国内精品对白| 色婷婷狠狠综合| 国产精品欧美久久久久无广告| 亚洲h精品动漫在线观看| 91在线免费看| 亚洲国产精品传媒在线观看| 久久av老司机精品网站导航| 日本乱人伦一区| 国产精品美日韩| 不卡av电影在线播放| 国产午夜精品福利| 国产91丝袜在线播放| 国产色一区二区| 国产精品911| 国产精品美日韩| 色综合天天做天天爱| 亚洲欧美电影一区二区| 99视频有精品| 亚洲午夜免费视频| 欧美日韩在线综合| 青青草97国产精品免费观看无弹窗版| 91福利在线导航| 午夜精品123| 国产亚洲一本大道中文在线| 国产成人av一区二区三区在线| 久久美女艺术照精彩视频福利播放| 奇米综合一区二区三区精品视频| 欧美精三区欧美精三区| 丝袜美腿一区二区三区| 精品国产乱子伦一区| 成人深夜福利app| 婷婷开心激情综合| 久久先锋影音av| 欧美日韩亚洲不卡| 国产一区视频导航| 午夜视频在线观看一区| 久久久久久久久99精品| 色综合久久精品| 国内精品嫩模私拍在线| 亚洲摸摸操操av| 欧美一区二区三区在线看| 99久久精品99国产精品| 免费观看在线综合色| 一区二区成人在线| 中文字幕巨乱亚洲| 久久夜色精品国产欧美乱极品| 欧美日韩国产影片| a4yy欧美一区二区三区| 国产福利一区二区三区视频在线| 日韩伦理免费电影| 中文字幕五月欧美| 亚洲国产成人私人影院tom | 国产精品久久久久久久第一福利| 欧美一级久久久| 3d动漫精品啪啪| 日韩一级精品视频在线观看| 欧美在线小视频| 欧洲精品一区二区三区在线观看| 在线观看视频一区| 欧美日韩激情一区二区三区| 欧美人体做爰大胆视频| 欧美日韩免费高清一区色橹橹 | 婷婷亚洲久悠悠色悠在线播放 |