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

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

?? avricp.c

?? AVR ICP 支持AVR器件編程
?? C
?? 第 1 頁 / 共 4 頁
字號:
} 

/*--------------------------------------------------------------------------*/ 
/* turn LED on                                                              */ 
/*--------------------------------------------------------------------------*/ 
inline void Programer_LED_On(void) 
{ 
	PORTA&=_CV(MON_LED); 
} 
inline void Host_LED_On(void) 
{ 
	PORTA&=_CV(HOST_LED); 
} 

/*--------------------------------------------------------------------------*/ 
/* turn LED off                                                              */ 
/*--------------------------------------------------------------------------*/ 
inline void Programer_LED_Off(void) 
{ 
	PORTA|=_BV(MON_LED); 
} 
inline void Host_LED_Off(void) 
{ 
	PORTA|=_BV(HOST_LED); 
} 


/*--------------------------------------------------------------------------*/ 
/* UART initial setting (19200bps,8,1,N)                                    */ 
/*--------------------------------------------------------------------------*/ 
#define VALUE_UBRR (F_CPU/(19200*16L)-1)
void InitUART(void) 
{ 
	UBRRH = (unsigned char)(VALUE_UBRR>>8); 
	UBRRL = (unsigned char)(VALUE_UBRR); 
	//接收使能、發送使能   
	UCSRB=(1<<RXEN)|(1<<TXEN);
	return; 
} 


/*--------------------------------------------------------------------------*/ 
/* delay 128us                                                              */ 
/*--------------------------------------------------------------------------*/ 
void delay(int t) 
{ 
	unsigned int i;
	for(i=0;i<t;i++)
	{
		_delay_loop_2(32 * F_CPU/1000000L);
	} 
} 
/*--------------------------------------------------------------------------*/ 
/* delay 1us          t<=85                                                 */ 
/*--------------------------------------------------------------------------*/ 
#define wait_1us(t) _delay_loop_1(((F_CPU/1000000L)/3+1)*t);

/*--------------------------------------------------------------------------*/ 
/* delay 1ms                                                                */ 
/*--------------------------------------------------------------------------*/ 
void wait_1ms(int t) 
{ 
	unsigned int i;
	for(i=0;i<t;i++)
	{
		_delay_loop_2(250 * F_CPU/1000000L);
	} 
} 
/*--------------------------------------------------------------------------*/ 
/* delay forAT89C51/52                                                      */ 
/*--------------------------------------------------------------------------*/ 
#define F_AT89C51 18432000L
#define Time48Tclcl() wait_1us(48*1000000L/F_AT89C51+1)

void Wait51(unsigned char msecond)
{
    //asm("nop");
    //asm("nop");
    //asm("nop");
    //asm("nop");
	unsigned char m;
	m=msecond;
    do{delay(8);m--;}while(!(PINA & _BV(RDY51)) && m);
    return;
}


/*--------------------------------------------------------------------------*/ 
/* UART send a byte                                                         */ 
/*--------------------------------------------------------------------------*/ 
void putc(uchar c)
{
	while( !(UCSRA & (1<<UDRE)) );
	UDR=c;
}
/*--------------------------------------------------------------------------*/ 
/* UART receive a byte                                                      */ 
/*--------------------------------------------------------------------------*/ 
uchar getc(void)
{
	while( !(UCSRA & (1<<RXC)) );
	return UDR;
}

/*--------------------------------------------------------------------------*/ 
/* UART send a memory block                                                 */ 
/*--------------------------------------------------------------------------*/ 
void putcmem(uchar *mem,uchar length)
{
	uchar *pmem,len;
	pmem=mem,len=length;
	while(len)
	{
		putc(*pmem++);
		len--;
	}
}
/*--------------------------------------------------------------------------*/ 
/* UART send a string                                                       */ 
/*--------------------------------------------------------------------------*/ 
void putcstr(uchar *str)
{
	putcmem(str,strlen(str));
}



/*--------------------------------------------------------------------------*/ 
/*  SPI Clock                                                               */ 
/*--------------------------------------------------------------------------*/ 
void SPIClock(void) 
{ 
	PORTB|=_BV(TARGET_SCK);
	asm("nop");
	asm("nop"); 
	asm("nop");
	PORTB&=_CV(TARGET_SCK); 
	asm("nop");
	asm("nop");
	asm("nop");
	return;
} 

/*--------------------------------------------------------------------------*/ 
/* SPI write                                                               */ 
/*--------------------------------------------------------------------------*/ 
unsigned char SPIWrite(unsigned char c) 
{ 
	unsigned char   i, rx; 
    
	Programer_LED_On(); 
    
	i = 0x80; 
	rx = 0x00; 
	do { 
		if (c & i) 
		{ 
			PORTB|=_BV(TARGET_MOSI); 
		} 
		else 
		{ 
			PORTB&=_CV(TARGET_MOSI); 
		} 
		
		if ((PINB & _BV(TARGET_MISO))!=0) //if (bit_is_set(PINB, TARGET_MISO))
		{ 
			rx |= i; 
		} 
		SPIClock(); 
		i >>= 1; 
	} while (i); 
    
	Programer_LED_Off(); 
    
	return rx; 
} 

/*--------------------------------------------------------------------------*/ 
/* SPI read                                                                 */ 
/*--------------------------------------------------------------------------*/ 
inline unsigned char SPIRead(void) 
{ 
	return SPIWrite(0x00); 
} 


/*--------------------------------------------------------------------------*/ 
/* SPI Init                                                                 */ 
/*--------------------------------------------------------------------------*/ 
void SPIInit(unsigned char device) 
{ 
	
	InitPortForSPI();     
	
	PORTB&=_CV(TARGET_SCK);
	SetReset(); 
	delay(0xff);
	ClrReset(); 
	delay(0xff);
    
	SPIWrite(0xAC); 
	SPIWrite(0x53); 
	if (0x20 <= device && device <= 0x7F) 
	{ 
		unsigned char count;
		count=32;
		do{
			if (SPIRead() == 0x53) 
			{ 
				
				break; 
			} 
			SPIWrite(0x00);
			SPIClock(); 
			SPIWrite(0xAC); 
			SPIWrite(0x53); 
		}while(--count); 
	} 
	else 
	{ 
		SPIWrite(0x00);
	} 
	SPIWrite(0x00);
	delay(0x10); 
	return;
} 
/*--------------------------------------------------------------------------*/ 
/* SPI Init  FOR AT89C51/52                                                 */ 
/*--------------------------------------------------------------------------*/ 
void SPIInitAT89S(unsigned char device) 
{ 
	
	InitPortForSPI();     
	
	PORTB&=_CV(TARGET_SCK);
	SetReset(); 
	delay(0xff);
	//ClrReset(); 
	//delay(0xff);
    
	SPIWrite(0xAC); 
	SPIWrite(0x53); 
	if (G_device == AT89S51 || G_device == AT89S52) 
	{ 
		unsigned char count;
		count=32;
		do{
			if (SPIRead() == 0x69) 
			{ 
				
				break; 
			} 
			SPIWrite(0x00);
			SPIClock(); 
			SPIWrite(0xAC); 
			SPIWrite(0x53); 
		}while(--count); 
	} 
	else 
	{ 
		SPIWrite(0x00);
	} 
	SPIWrite(0x00);
	delay(0x10); 
	return;
} 
/*--------------------------------------------------------------------------*/ 
/* Parallel Init                                                                 */ 
/*--------------------------------------------------------------------------*/ 
void ParallelInit(unsigned char device) 
{ 
	
	InitPortForParallel();     
	if(device == AT89C51)
	{
		OutP2(0x00);
		OutP3(0x00);
		OutCON(0x00);
		SetVPP5V();
	}
	
	//delay(0x10); 
	return;
} 

/*--------------------------------------------------------------------------*/ 
/*                                     +-------------+------------+------+  */ 
/*  Commands                           | Host writes | Host reads |      |  */ 
/*  --------                           +-----+-------+------+-----+      |  */ 
/*                                     | ID  | data  | data |     | Note |  */ 
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
/* | Enter programming mode            | 'P' |       |      | 13d |   1  |  */ 
/* | Report autoincrement address      | 'a' |       |      | 'Y' |      |  */ 
/* | Set address                       | 'A' | ah al |      | 13d |   2  |  */ 
/* | Write program memory, low byte    | 'c' |    dd |      | 13d |   3  |  */ 
/* | Write program memory, high byte   | 'C' |    dd |      | 13d |   3  |  */ 
/* | Issue Page Write                  | 'm' |       |      | 13d |      |  */ 
/* | Read program memory               | 'R' |       |dd(dd)|     |   4  |  */ 
/* | Write data memory                 | 'D' |    dd |      | 13d |      |  */ 
/* | Read data memory                  | 'd' |       |   dd |     |      |  */ 
/* | Chip erase                        | 'e' |       |      | 13d |      |  */ 
/* | Write lock bits                   | 'l' |    dd |      | 13d |      |  */ 
/* | Write fuse bits                   | 'f' |    dd |      | 13d |  11  |  */ 
/* | Read fuse bits                    | 'F' |       |   dd |     |  11  |  */ 
/* | Leave programming mode            | 'L' |       |      | 13d |   5  |  */ 
/* | Select device type                | 'T' |    dd |      | 13d |   6  |  */ 
/* | Read signature bytes              | 's' |       | 3*dd |     |      |  */ 
/* | Return supported device codes     | 't' |       | n*dd | 00d |   7  |  */ 
/* | Return software identifier        | 'S' |       | s[7] |     |   8  |  */ 
/* | Return sofware version            | 'V' |       |dd dd |     |   9  |  */ 
/* | Return hardware version           | 'v' |       |dd dd |     |   9  |  */ 
/* | Return programmer type            | 'p' |       |   dd |     |  10  |  */ 
/* | Set LED                           | 'x' |    dd |      | 13d |  12  |  */ 
/* | Clear LED                         | 'y' |    dd |      | 13d |  12  |  */ 
/* | Universial command                | ':' |  3*dd |   dd | 13d |      |  */ 
/* | New universal command             | '.' |  4*dd |   dd | 13d |      |  */ 
/* | Special test command              | 'Z' |  2*dd |   dd |     |      |  */ 
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
/* | Read lock bits                    | 'r' |       |   dd |     |      |  */ 
/* | Read high fuse bits               | 'N' |       |   dd |     |      |  */ 
/* | Read extended fuse bits           | 'Q' |       |   dd |     |      |  */ 
/* | Write high fuse bits              | '.' |ACA8 2d|      | 13d |      |  */ 
/* | Write extended fuse bits          | '.' |ACA4 2d|      | 13d |      |  */ 
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
/* | Check block support               | 'b' |       |"Y"2*dd     |      |  */ 
/* | Start block flash load            | 'B' |2*dd"F"|      | 13d |      |  */ 
/* |                                   |     | n*dd  |      |     |      |  */ 
/* | Start block eeprom load           | 'B' |2*dd"E"|      | 13d |      |  */ 
/* |                                   |     | n*dd  |      |     |      |  */ 
/* | Start block flash read            | 'g' |2*dd"F"| n*dd | 13d |      |  */ 
/* | Start block eeprom read           | 'g' |2*dd"E"| n*dd | 13d |      |  */ 
/* +-----------------------------------+-----+-------+------+-----+------+  */ 



/* +-----------------------------------+-----+-------+------+-----+------+  */ 
/*                                     | ID  | host  | programer  | Note |  */ 
/* | Enter programming mode            | 'P' |       |      | 13d |   1  |  */ 
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
void Enter_programming_mode(void)
{
    
    if(G_device < 0x80)SPIInit(G_device); 
	else 
	if(G_device == AT89C51 || G_device == AT89C52)ParallelInit(G_device);
	else 
	if(G_device == AT89S51 || G_device == AT89S52)SPIInitAT89S(G_device); 
    G_pgmode = TRUE;
    putc(13); 
	return;
}
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
/* |                                   | ID  | host  | programer  | Note |  */ 
/* | Report autoincrement address      | 'a' |       |      | 'Y' |      |  */ 
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
void Report_autoincrement_address(void)
{
    putc('Y'); 
	return;
}
/* +-----------------------------------+-----+-------+------+-----+------+  */ 
/* |                                   | ID  | host  | programer  | Note |  */ 
/* | Set address                       | 'A' | ah al |      | 13d |   2  |  */ 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩免费成人网| 色诱视频网站一区| 久久一夜天堂av一区二区三区| 天天色综合成人网| 91精品国产综合久久久久久久久久 | 精品欧美一区二区在线观看| 久久精品久久精品| 国产色91在线| 99热在这里有精品免费| 亚洲成人av免费| 日韩美一区二区三区| 夫妻av一区二区| 亚洲精品免费电影| 日韩欧美二区三区| 白白色亚洲国产精品| 亚洲成av人片一区二区| 欧美r级电影在线观看| 国产99精品视频| 亚洲国产人成综合网站| 欧美成人精品二区三区99精品| 成人一级视频在线观看| 一区二区久久久| 精品久久久久一区| 91久久精品日日躁夜夜躁欧美| 石原莉奈在线亚洲二区| 中文字幕精品一区| 欧美日韩国产片| 成人av先锋影音| 日韩激情av在线| 国产精品久久久久久福利一牛影视| 欧美主播一区二区三区| 国产在线不卡一区| 亚洲午夜久久久久久久久久久| 欧美精品一区在线观看| 91福利国产精品| 国产美女精品一区二区三区| 亚洲免费资源在线播放| www一区二区| 欧美日韩精品一区二区天天拍小说| 国产河南妇女毛片精品久久久| 亚洲福利视频导航| 中文字幕中文字幕一区| 日韩视频一区二区在线观看| 91久久精品一区二区| 丁香婷婷综合色啪| 久久精品国产免费| 丝袜国产日韩另类美女| 一区二区在线观看av| 国产婷婷色一区二区三区| 欧美精品三级日韩久久| 色综合一区二区| 成人深夜视频在线观看| 国产在线看一区| 国产成人免费视频网站高清观看视频| 亚洲精品福利视频网站| 国产精品丝袜一区| 2020日本不卡一区二区视频| 欧美精品久久天天躁| 在线免费亚洲电影| av一本久道久久综合久久鬼色| 国产在线不卡视频| 精品一区二区三区免费| 亚州成人在线电影| 亚洲一区在线观看网站| 亚洲九九爱视频| 国产精品美女久久久久高潮| 国产午夜精品一区二区| 久久精品亚洲乱码伦伦中文| 久久综合九色欧美综合狠狠| 日韩欧美123| 欧美大尺度电影在线| 日韩一区二区在线观看视频 | 国产原创一区二区| 蜜桃精品在线观看| 美女mm1313爽爽久久久蜜臀| 性感美女久久精品| 日日夜夜免费精品| 日韩高清在线电影| 久久成人麻豆午夜电影| 九九精品视频在线看| 久久精品国产秦先生| 狠狠色综合色综合网络| 国产主播一区二区三区| 国产成人综合视频| 91亚洲永久精品| 欧美天堂一区二区三区| 91精品欧美久久久久久动漫| 日韩欧美高清一区| 国产婷婷色一区二区三区在线| 久久精品夜夜夜夜久久| 国产精品视频麻豆| 亚洲免费三区一区二区| 天天综合日日夜夜精品| 免费国产亚洲视频| 国产精品99久久久| 色综合久久久久综合体| 欧美日本在线视频| 亚洲精品一线二线三线| 中文一区二区在线观看| 亚洲精品国产无天堂网2021| 五月婷婷久久综合| 精品中文字幕一区二区| 成人h动漫精品| 在线观看日韩一区| 欧美成人艳星乳罩| 中文字幕中文在线不卡住| 日韩精品免费视频人成| 国产一区二区三区免费在线观看| 成人国产精品视频| 欧美日韩午夜影院| 26uuu国产电影一区二区| 亚洲视频一区二区免费在线观看| 精品一区二区三区在线播放| 高清在线成人网| 在线观看日韩电影| 精品成人免费观看| 一区二区成人在线视频 | 精品国产乱码久久久久久夜甘婷婷| 国产网站一区二区| 五月婷婷另类国产| 成人免费av在线| 日韩一区二区在线播放| 国产精品成人一区二区三区夜夜夜| 亚洲成av人影院在线观看网| 国产福利一区二区三区| 欧美亚洲综合色| 欧美激情综合五月色丁香小说| 亚洲一区二区av在线| 国产美女娇喘av呻吟久久| 欧美亚洲精品一区| 国产精品蜜臀av| 日韩激情一二三区| 日本韩国欧美三级| 久久久国际精品| 日本不卡视频在线| 日本伦理一区二区| 国产欧美一二三区| 久久99精品久久久久| 欧美视频精品在线| 日韩毛片精品高清免费| 国产精品99久久久久久久vr | 亚洲一级二级三级| 成人av中文字幕| 欧美精品一区二区三区在线播放| 亚洲在线一区二区三区| 99精品桃花视频在线观看| 久久毛片高清国产| 久热成人在线视频| 欧美日韩国产高清一区二区| 亚洲伦理在线精品| av电影在线观看完整版一区二区| 久久综合视频网| 免费人成网站在线观看欧美高清| 一本一道综合狠狠老| 亚洲国产成人私人影院tom | 国产精品亚洲专一区二区三区| 欧美一区午夜精品| 日韩电影免费一区| 欧美欧美欧美欧美| 亚洲成av人在线观看| 欧美在线观看一区| 亚洲美女在线国产| 99r国产精品| 亚洲欧洲精品成人久久奇米网| 国产不卡视频在线观看| 亚洲精品在线电影| 国产成人精品1024| 国产精品视频线看| 99re66热这里只有精品3直播 | 日韩中文字幕区一区有砖一区| 在线欧美日韩国产| 香蕉加勒比综合久久| 91精品中文字幕一区二区三区| 日本不卡一二三| 亚洲精品一区二区精华| 国内外精品视频| 国产日韩欧美精品电影三级在线| 成人午夜电影网站| 亚洲天天做日日做天天谢日日欢| 91亚洲午夜精品久久久久久| 一区二区三区在线视频观看58| 欧美日韩精品二区第二页| 蜜桃视频在线观看一区二区| 精品日产卡一卡二卡麻豆| 国产成人啪免费观看软件| 亚洲色图制服诱惑| 欧美日韩日日骚| 美女脱光内衣内裤视频久久网站 | 亚洲特级片在线| 欧美三级日韩三级国产三级| 日本网站在线观看一区二区三区| 久久综合色之久久综合| 99久久久久久| 奇米影视在线99精品| 久久久精品中文字幕麻豆发布| 91小视频在线观看| 蜜桃视频在线一区| 中文字幕一区av| 91麻豆精品国产91久久久更新时间| 精品一区在线看|