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

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

?? avricp.c

?? AVR ICP 支持AVR器件編程
?? C
?? 第 1 頁 / 共 4 頁
字號:
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
void Set_address(void)
{
    //if(G_pgmode != TRUE)return;
    G_pgaddrh = getc(); 
    G_pgaddrl = getc(); 
    putc(13); 
	return;
}
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
/* |                                   | ID  | host  | programer  | Note |  */ 
/* | Write program memory, low byte    | 'c' |    dd |      | 13d |   3  |  */ 
/* | Write program memory, high byte   | 'C' |    dd |      | 13d |   3  |  */ 
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
/* | Write program memory  byte   ,command=40 or 48                      |  */ 
/* +---------------------------------------------------------------------+  */ 
//多功能函數1=======寫入========
void Write_program_memory_byte(unsigned char command)
{
    //if(G_pgmode != TRUE)return;
	unsigned char data;
	data = getc();
	if(G_device == AT89C51 || G_device == AT89C52)
	{
		
		VPP(1);
		SetVPP5V();
		PORTA|= _BV(PA6);   //RST=H
		OutCONBit(PSEN,0);  //PSEN=L
		
		OutP2Bit(P26,0);
		OutP3Bit(P36,1);
		OutP3Bit(P37,1);
		OutP2Bit(P27,1);

		Time48Tclcl();

		unsigned int  addr;
		
		addr = G_pgaddrh;
		addr <<= 8;
		addr |= G_pgaddrl;
		addr <<= 1;
		
		if(command == 0x48)	addr++;
		OutAddress(addr >> 8,addr & 0xff);

		OutP0(data);

		SetVPP12V();
		wait_1us(10);
		
		OutCONBit(PROG,0);
		wait_1us(10);
		OutCONBit(PROG,1);
		//Wait51(g_deviceSupported[G_index].twd_flash);
		wait_1ms(g_deviceSupported[G_index].twd_flash);
		SetVPP5V();

	}
	else
	{
		SPIWrite(command); 
		SPIWrite(G_pgaddrh); 
		SPIWrite(G_pgaddrl); 
		SPIWrite(data); 
		//no delay if m103,m83,m603,m161,m163
		if (g_deviceSupported[G_index].wPageSize == 0)
		{ 
			unsigned char waittime = g_deviceSupported[G_index].twd_flash;
			do
			{
				wait_1ms(1);
				SPIWrite((command & 0x0f) | 0x20); 
				SPIWrite(G_pgaddrh); 
				SPIWrite(G_pgaddrl);
				if(data == SPIRead())break;
			}while(waittime--); 
			
		} 
	}
	return;
}
/* +---------------------------------------------------------------------+  */ 
void Write_program_memory_low_byte(void)
{
	Write_program_memory_byte(0x40);
	putc(13); 
	return;
}
/* +---------------------------------------------------------------------+  */ 
void Write_program_memory_high_byte(void)
{
	Write_program_memory_byte(0x48);
	if(!(++G_pgaddrl))G_pgaddrh++;
	putc(13); 
	return;
}


/* +-----------------------------------+-----+-------+------+-----+------+  */ 
/* |                                   | ID  | host  | programer  | Note |  */ 
/* | Issue Page Write                  | 'm' |       |      | 13d |      |  */ 
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
void Issue_Page_Write(void)
{
    SPIWrite(0x4c); 
    SPIWrite(G_pgaddrh); 
    SPIWrite(G_pgaddrl); 
    SPIWrite(0x00); 
	wait_1ms(g_deviceSupported[G_index].twd_flash);

    putc(13); 
	return;
}
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
/* |                                   | ID  | host  | programer  | Note |  */ 
/* | Read program memory               | 'R' |       |dd(dd)|     |   4  |  */ 
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
//多功能函數2
unsigned char ParaReadByte(unsigned char ah,unsigned char al)
{
	DDRC = 0;
	OutAddress(ah,al);
	Time48Tclcl();
	return PINC;
}
void Read_program_memory(void)
{
	if(G_device == AT89C51 || G_device == AT89C52)
	{
		SetVPP5V();
		VPP(1);
		PORTA|= _BV(PA6);   //RST=H
		OutCONBit(PSEN,0);  //PSEN=L
		OutCONBit(PROG,1);
		
		//OutP2Bit(P27,0);
		OutP3Bit(P36,1);
		OutP3Bit(P37,1);

		OutP2Bit(P26,0);
		OutP2Bit(P27,0);
		//Time48Tclcl();


		unsigned int  addr;
		char highbyte,lowbyte;
		addr = G_pgaddrh;
		addr <<= 8;
		addr |= G_pgaddrl;
		addr <<= 1;
		
		//寫程序后校驗時第一個字節出錯,但是單獨校驗時不出錯,
		//所以加入下面這行。
		if(addr == 0) ParaReadByte(0,0);


		lowbyte = ParaReadByte(addr >> 8,addr & 0xff);
		addr++;
		highbyte = ParaReadByte(addr >> 8,addr & 0xff);
		putc(highbyte);
		putc(lowbyte);
	}
	else
	{
		SPIWrite(0x28); 
		SPIWrite(G_pgaddrh); 
		SPIWrite(G_pgaddrl); 
		putc(SPIRead()); 
		SPIWrite(0x20); 
		SPIWrite(G_pgaddrh); 
		SPIWrite(G_pgaddrl); 
		putc(SPIRead()); 
	}
	if(!(++G_pgaddrl))G_pgaddrh++;
	return;
}



/* +-----------------------------------+-----+-------+------+-----+------+  */ 
/* |                                   | ID  | host  | programer  | Note |  */ 
/* | Write data memory                 | 'D' |    dd |      | 13d |      |  */ 
/* | Read data memory                  | 'd' |       |   dd |     |      |  */ 
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
/* | Read data memory byte                                               |  */ 
/* +---------------------------------------------------------------------+  */ 
unsigned char Read_data_memory_byte(void)
{
    SPIWrite(0xA0); 
    SPIWrite(G_pgaddrh); 
    SPIWrite(G_pgaddrl); 
    return(SPIRead()); 
}
/* +---------------------------------------------------------------------+  */ 
void Write_data_memory(void)
{
	unsigned char data;
    data = getc(); 
    SPIWrite(0xC0); 
    SPIWrite(G_pgaddrh); 
    SPIWrite(G_pgaddrl); 
    SPIWrite(data); 
	unsigned char waittime = g_deviceSupported[G_index].twd_eeprom;
	do
	{
		wait_1ms(1);
		if(data != 0xff)if(data == Read_data_memory_byte())break;
    }while(waittime--); 
    if(!(++G_pgaddrl))G_pgaddrh++; 
    putc(0x0D); 
	return;
}
/* +---------------------------------------------------------------------+  */ 
void Read_data_memory(void)
{
    putc(Read_data_memory_byte()); 
    if(!(++G_pgaddrl))G_pgaddrh++; 
	return;
}
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
/* |                                   | ID  | host  | programer  | Note |  */ 
/* | Chip erase                        | 'e' |       |      | 13d |      |  */ 
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
//多功能函數3
void Chip_erase(void)
{
	if(G_device == AT89C51 || G_device == AT89C52)
	{
		OutCONBit(PROG,0);  //PROG=L

		VPP(1);
		PORTA|= _BV(PA6);   //RST=H
		OutCONBit(PSEN,0);  //PSEN=L
		
		OutP2Bit(P26,1);
		OutP3Bit(P36,0);
		OutP3Bit(P37,0);
		OutP2Bit(P27,0);
		
		Time48Tclcl();
		
		SetVPP12V();
		OutCONBit(PROG,0);  
		
		wait_1ms(g_deviceSupported[G_index].twd_erase);
		OutCONBit(PROG,1);
		SetVPP5V();



	}
	else
	{
		SPIWrite(0xAC); 
		SPIWrite(0x80); 
		SPIWrite(0x04); 
		SPIWrite(0x00); 
		wait_1ms(g_deviceSupported[G_index].twd_erase);  
		if(G_device == AT89S51 || G_device == AT89S52)
			wait_1ms(g_deviceSupported[G_index].twd_erase);
	}
	putc(0x0D); 
	return;
}
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
/* |                                   | ID  | host  | programer  | Note |  */ 
/* | Write lock bits                   | 'l' |    dd |      | 13d |      |  */ 
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
//多功能函數4======鎖位=======
void Write_lock_bits(void)
{
	unsigned char data;
    data = getc(); 
	if(G_device == AT89C51 || G_device == AT89C52)
	{
		//SetVPP12V();
		VPP(1);
		PORTA|= _BV(PA6);   //RST=H
		OutCONBit(PSEN,0);  //PSEN=L
		if(data & _BV(0))
		{
			OutP2Bit(P26,1);
			OutP3Bit(P36,1);
			OutP3Bit(P37,1);
			OutP2Bit(P27,1);
			SetVPP12V();
			OutCONBit(PROG,0);
			delay(1);  
			OutCONBit(PROG,1);
			SetVPP5V();
		}
		if(data & _BV(1))
		{
			OutP2Bit(P26,1);
			OutP3Bit(P36,0);
			OutP3Bit(P37,0);
			OutP2Bit(P27,1);
			SetVPP12V();
			OutCONBit(PROG,0);
			delay(1);  
			OutCONBit(PROG,1);
			SetVPP5V();
		}
		if(data & _BV(2))
		{
			OutP2Bit(P26,1);
			OutP3Bit(P36,1);
			OutP3Bit(P37,0);
			OutP2Bit(P27,0);
			SetVPP12V();
			OutCONBit(PROG,0);
			delay(1);  
			OutCONBit(PROG,1);
			SetVPP5V();
		}
	}
	else
	if(G_device == AT89S51 || G_device == AT89S52)
	{
		SPIWrite(0xAC); 
		SPIWrite(0xe0 | (data & 0x03)); 
		SPIWrite(0x00); 
		SPIWrite(0x00); 
		wait_1ms(g_deviceSupported[G_index].twd_fuse); 
	}
	else
	{
		SPIWrite(0xAC); 
		SPIWrite(0xe0); 
		SPIWrite(0x00); 
		SPIWrite(data |0xc0); 
		wait_1ms(g_deviceSupported[G_index].twd_fuse); 
	}
	putc(0x0D); 
	return;
}
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
/* |                                   | ID  | host  | programer  | Note |  */ 
/* | Write fuse bits                   | 'f' |    dd |      | 13d |  11  |  */ 
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
void Write_fuse_bits(void)
{
    //G_pgmode == TRUE;
	
	unsigned char data;
    data = getc(); 
    SPIWrite(0xAC); 
    SPIWrite(0xA0); 
    SPIWrite(0x00); 
    SPIWrite(data); //atmega16
    wait_1ms(g_deviceSupported[G_index].twd_fuse);   
    putc(0x0D); 
	return;
}
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
/* |                                   | ID  | host  | programer  | Note |  */ 
/* | Read fuse bits                    | 'F' |       |   dd |     |  11  |  */ 
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
void Read_fuse_bits(void)
{
    //G_pgmode == TRUE;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月婷婷久久丁香| 日本午夜精品视频在线观看| 国产成人精品综合在线观看| 国产日韩欧美精品在线| 91黄视频在线| 精品一区二区三区在线播放视频 | 国产亚洲欧洲一区高清在线观看| 国产精品1区2区3区| 一区2区3区在线看| 久久人人超碰精品| 欧美视频中文字幕| 成人av影院在线| 精品在线观看视频| 精品一区二区影视| 粉嫩一区二区三区在线看| 日韩国产高清影视| 久久精品国产在热久久| 亚洲一级不卡视频| 国产精品三级电影| 日韩欧美在线网站| 欧美婷婷六月丁香综合色| 在线免费精品视频| 91丨porny丨首页| 国产美女一区二区三区| 亚洲国产精品久久艾草纯爱| 国产精品久久久久一区二区三区 | 91在线看国产| 国产91在线|亚洲| 91小宝寻花一区二区三区| 欧美体内she精视频| 337p日本欧洲亚洲大胆精品| 日韩精品一区二区三区老鸭窝 | 日韩一区二区免费视频| 久久久久久久久久久电影| 中文字幕亚洲一区二区av在线 | 欧美日韩成人在线一区| 91亚洲永久精品| 91精品视频网| 欧美日韩精品免费| 久久久99免费| 日韩1区2区3区| 99久久99久久免费精品蜜臀| 91精品国产综合久久久久| 国产精品女同互慰在线看| 日本不卡一二三| 裸体健美xxxx欧美裸体表演| 日韩精品91亚洲二区在线观看 | 欧美一区二区三区小说| 欧美一区二区视频免费观看| 国产精品毛片久久久久久| 日韩av一区二区在线影视| 成人动漫视频在线| 欧美大胆一级视频| 亚洲成a人片在线不卡一二三区| 天天亚洲美女在线视频| 波多野结衣中文一区| 国产福利91精品一区二区三区| 欧美色国产精品| 日韩免费高清av| 亚洲1区2区3区视频| 91一区一区三区| 亚洲欧美自拍偷拍色图| 国产精品一卡二卡在线观看| 日韩一区二区三| 日本美女视频一区二区| 91麻豆精品国产无毒不卡在线观看 | 日本成人在线网站| 欧美性受极品xxxx喷水| 国产精品福利影院| 成人网页在线观看| 欧美亚洲国产一区在线观看网站 | 午夜伦理一区二区| 日本久久一区二区| 亚洲女人的天堂| 免费观看一级特黄欧美大片| 欧美在线观看一二区| 亚洲精品ww久久久久久p站| 日韩高清一区在线| 欧美女孩性生活视频| 亚洲国产精品影院| 欧美日本国产视频| 日韩av电影免费观看高清完整版在线观看| 欧美午夜理伦三级在线观看| 亚洲一区二区偷拍精品| 欧美日韩国产首页在线观看| 日韩国产高清影视| 久久综合狠狠综合久久激情| 久久精品99国产精品| 26uuu国产一区二区三区| 国产一区二区女| 中文字幕中文字幕一区| 色偷偷一区二区三区| 精品久久国产字幕高潮| 一区二区三区在线视频免费| 在线观看日韩一区| 日本色综合中文字幕| 精品美女一区二区三区| 成人深夜福利app| 亚洲免费观看在线视频| 欧美日韩第一区日日骚| 国产一区二区在线观看视频| 亚洲欧美在线高清| 欧美三级韩国三级日本一级| 狠狠色丁香婷婷综合久久片| 欧美日韩在线电影| 激情另类小说区图片区视频区| 国产日韩欧美a| 欧美午夜理伦三级在线观看| 国模套图日韩精品一区二区 | 日韩欧美在线1卡| 国产iv一区二区三区| 亚洲综合视频在线| 精品日韩成人av| 欧美在线你懂的| 国产成人亚洲综合a∨婷婷| 亚洲一二三级电影| 久久精品一区二区三区不卡 | 亚瑟在线精品视频| 久久久噜噜噜久久中文字幕色伊伊 | 欧美人与禽zozo性伦| 国产精品99久久久久久宅男| 亚洲高清免费视频| 国产精品天天看| 日韩三级视频在线观看| 欧美日产在线观看| www.爱久久.com| 精一区二区三区| 视频一区二区不卡| 亚洲国产一区二区a毛片| 欧美极品美女视频| 成人免费视频app| 蜜桃视频第一区免费观看| 亚洲天堂成人网| 欧美日韩在线播放三区四区| 丁香激情综合五月| 黄网站免费久久| 奇米一区二区三区| 午夜精品久久久久影视| 亚洲美女视频一区| 中文无字幕一区二区三区| 精品少妇一区二区三区日产乱码 | 精品一区二区三区久久久| 亚洲成人一区二区| 一区二区国产视频| 亚洲日本电影在线| 亚洲男人的天堂在线观看| 国产精品网站在线| 国产精品视频麻豆| 国产网红主播福利一区二区| 久久久久久毛片| 亚洲精品在线三区| 色婷婷狠狠综合| 色欧美日韩亚洲| 91玉足脚交白嫩脚丫在线播放| jlzzjlzz亚洲女人18| 91在线国内视频| 日本精品一区二区三区四区的功能| 成人三级伦理片| 99久久久精品| 色综合中文字幕| 国产一区二区在线影院| 国产美女精品人人做人人爽| 狠狠色丁香婷婷综合久久片| 国产成人一区在线| 波多野结衣的一区二区三区| 99re热视频精品| 欧美亚洲动漫制服丝袜| 91麻豆精品国产91久久久久久| 日韩一卡二卡三卡| 久久久精品国产免费观看同学| 欧美高清一级片在线观看| 成人欧美一区二区三区黑人麻豆 | 欧美极品aⅴ影院| 最新国产の精品合集bt伙计| 亚洲成av人在线观看| 免费三级欧美电影| 不卡视频一二三| 欧美综合欧美视频| 欧美xxxxx裸体时装秀| 日本不卡在线视频| 精品亚洲成av人在线观看| 成人黄色一级视频| 欧美日韩的一区二区| 久久精品一区二区三区不卡| 亚洲男人天堂一区| 久久99精品久久久久久久久久久久| 国产suv一区二区三区88区| 色国产综合视频| 精品久久久久一区二区国产| 最近日韩中文字幕| 美脚の诱脚舐め脚责91| 91丨国产丨九色丨pron| 日韩欧美高清dvd碟片| 国产精品国产精品国产专区不片| 亚洲一级二级在线| 从欧美一区二区三区| 日韩免费一区二区三区在线播放| 中文字幕二三区不卡| 免费成人av资源网| 日本韩国一区二区|