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

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

?? main.c

?? ISP 2051 download PIC
?? C
字號:
#include <REG2051.H>
#include <intrins.H>

//#define SL_BOARD  /*雙龍ISP板*/
//#define SOME_CHIP /*只支持少數幾種芯片*/

	sbit LED_RED1  = P3^3;
	sbit LED_RED2  = P3^4;
	sbit LED_GREEN = P3^5;

	sbit MOSI  = P1^6;
	sbit MISO  = P1^5;
	sbit SCK   = P1^7;
	sbit RESET = P1^4;


#ifdef SOME_CHIP  /*  只支持生產所用的芯片,避免太多的芯片選擇導至出錯!!!  */
	code DeviceType[][2]=
	{
	//AT90S8515
		0x38,0,
	//ATmega8515
		0x3A,'P',
	//ATmega8515 BOOT
		0x3B,'P',
	//ATmega8
		0x76,'P',
	//ATmega8 BOOT
		0x77,'P',
	};
#else 	
	code DeviceType[][2]=
	{
	//AT90S1200 rev. A
		0x10,0,
	//AT90S1200 rev. B	
		0x11,0,
	//AT90S1200 rev. C
		0x12,0,
	//AT90S1200
		0x13,0,
	//AT90S2313
		0x20,0,
	//AT90S4414
		0x28,0,
	//AT90S4433
		0x30,0,
	//AT90S2333
		0x34,0,
	//AT90S8515
		0x38,0,
	//ATmega8515
		0x3A,'P',
	//ATmega8515 BOOT
		0x3B,'P',
	//ATmega103
		0x41,'P',
	//ATmega603
		0x42,'P',
	//ATmega128
		0x43,'P',
	//ATmega128 BOOT
		0x44,'P',
	//AT90S2323
		0x48,0,
	//AT90S2343
		0x4C,0,
	//ATtiny11
		0x50,0,
	//ATtiny10
		0x51,0,
	//ATtiny12
		0x55,0,
	//ATtiny15
		0x56,0,
	//ATtiny19
		0x58,0,
	//ATtiny28
		0x5C,0,
	//ATtiny26
		0x5E,'P',
	//ATmega161
		0x60,'P',
	//ATmega161 BOOT
		0x61,'P',
	//ATmega163
		0x64,'P',
	//ATmega83
		0x65,'P',
	//ATmega163 BOOT
		0x66,'P',
	//ATmega83 BOOT
		0x67,'P',
	//AT90S8535
		0x68,0,
	//ATmega8535??
		0x6A,'P',
	//ATmega8535 BOOT??
		0x6B,'P',
	//AT90S4434
		0x6C,0,
	//AT90C8534
		0x70,0,
	//AT90C8544
		0x71,0,
	//ATmega32
		0x72,'P',
	//ATmega32 BOOT
		0x73,'P',
	//ATmega16
		0x74,'P',
	//ATmega16 BOOT
		0x75,'P',
	//ATmega8
		0x76,'P',
	//ATmega8 BOOT
		0x77,'P',
	//AT89C1051
	//	0x80,0
	//AT89C2051
	//	0x81,0
	//AT89S8252
		0x86,0,
	//AT89S53
		0x87,0
	};
#endif

#define	SW_MAJOR '3'		/*Major SW revision number*/
#define	SW_MINOR '0'		/*Minor SW revision number*/
#define	HW_MAJOR '1'		/*Major HW revision number*/
#define	HW_MINOR '0'		/*Minor HW revision number*/

unsigned char loop,device,pgm_mode;
unsigned char Addr_H,Addr_L ;
unsigned char command;


void Delay(unsigned int time)
{
	while(time) time--;
}

void pulse_sck(void)
{
	SCK = 1;
	_nop_();
	_nop_();
	_nop_();
	SCK = 0;
}

void IncAddrAuto()
{
	Addr_L++;

	if(Addr_L == 0 )
		Addr_H++;
}

void init_serial(void)
{
     SCON = 0X50;/*Timer 1 is being used to generate baud rates.*/
     PCON = 0X80 | PCON;
     TMOD = 0X20;
     TH1 = 0XFD;
     TR1 = 1;            /*TCON.6*/
//   ES = 1;            /*IE.4      */
     RI = 0;              /*SCON.0*/
}

unsigned char getc()
{
	unsigned char buff;

	while(RI == 0);
	buff = SBUF;
	RI = 0;
	return buff;
}

void putc(unsigned char ch)
{
	SBUF = ch ;
	_nop_();
	_nop_();
	while( TI==0 );
	TI =0;
}

void showID()
{
	code char ID[]={"AVR ISP"};

	for(loop=0;loop<sizeof(ID)-1;loop++) //ID-1是不要發串末的0
		putc ( ID[loop] );
}

void show_device(void)
{
	for(	loop=0;
			loop< sizeof(DeviceType)/sizeof(DeviceType[0]);
			loop++		)
		putc ( DeviceType[loop][0] );
}

unsigned char check_device(unsigned char device)
{
	for(	loop=0;
			loop< sizeof(DeviceType)/sizeof(DeviceType[0]);
			loop++		)
	{
		if(device == DeviceType[loop][0] )
			return DeviceType[loop][1];
	}
	return '?';
}

unsigned char wrser(unsigned char dat)
{
	unsigned char indat = 0;
	for(loop = 0;loop<8;loop++)
	{
		if( dat & 0x80 )
			MOSI = 1;
		else
			MOSI = 0;

		dat <<=1;

		indat <<= 1;

		if(MISO)
			indat |= 1;

		pulse_sck();
	}

	return indat;
}

void spiinit()
{
	unsigned char count;

	SCK = 0;
	RESET = 1;
	Delay(10);
	RESET = 0;
	Delay(10);

	wrser(0xac);		// SPI write (byte 1)
	wrser(0x53);		// SPI write (byte 2)
	if ( (device >= 0x20) && (device <= 0x7F) )
	{
		count = 32;
		do {
			if (wrser(0) == 0x53)	// SPI read (byte 3)
				break;
			wrser(0x00);		// SPI write (byte 4)
			pulse_sck();
			wrser(0xac);		// SPI write (byte 1)
			wrser(0x53);		// SPI write (byte 2)

		} while(--count);
	}else wrser(0x00);		// SPI write (byte 3)

	wrser(0x00);	// SPI write (byte 4)
	Delay(100);
}

void writeFLASHdelay(void)
{ //根據芯片類型,決定是否延時
	if(pgm_mode == 0)
	{
#ifndef SL_BOARD
		Delay(100);
#else 
		Delay(250);
#endif
	}
}

unsigned char w17call(unsigned char param1)
{
	wrser(0x30);
	wrser(0x00);
	wrser(param1);
	return wrser(0);
}


unsigned char device;
unsigned char LedData;

void main(void)
{
	LED_GREEN = 0;
	Delay(60254);
	LED_GREEN = 1;
	init_serial( );
	while(1)
	{
		_nop_();
		switch(getc())
		{
		case 0x1b:
			LED_GREEN = 0;
			break;

		case 'T':
			device = getc();
			putc(0x0d);
			break;

		case 'S':
			showID();
			break;

		case 'V':
			putc(SW_MAJOR);
			putc(SW_MINOR);
			break;

		case 'v':
			putc(HW_MAJOR);
			putc(HW_MINOR);
			break;

		case 't':
			show_device();//Show supported devices
			break;

		case 'p':
			putc('S');
			break;

		case 'a':
			putc('Y');
			break;

		case 'x':
			LedData = getc();
			if(LedData == 1)
				LED_GREEN = 0 ;
			else 
				LED_GREEN = 1 ;
			putc(0x0d);
			break;
		
		case 'y':
			LedData = getc();
			if(LedData == 1)
				LED_RED2 = 0 ;
			else 
				LED_RED2 = 1 ;
			putc(0x0d);
			break;

		case 'P':
			spiinit();
			LED_RED1 = 0;
			pgm_mode = check_device(device);
			if ( pgm_mode != '?' )
				putc(0x0d);
			else 
				putc('?');
			break;

		case 'C':	//Write program memory, high byte
			wrser(0x48);
			wrser(Addr_H);
			wrser(Addr_L);
			wrser(getc());

			IncAddrAuto();

			writeFLASHdelay();
			putc(0x0d);
			break;

		case 'c':	//Write program memory, low byte
			wrser(0x40);
			wrser(Addr_H);
			wrser(Addr_L);
			wrser(getc());

			writeFLASHdelay();
			putc(0x0d);
			break;

		case 'R'://Read program memory
			wrser(0x28);
			wrser(Addr_H);
			wrser(Addr_L);
			putc( wrser ( 0 ) );

			wrser(0x20);
			wrser(Addr_H);
			wrser(Addr_L);
			putc( wrser( 0 ) );

			IncAddrAuto();
			break;

		case 'A':
			Addr_H = getc();
			Addr_L = getc();
			putc( 0x0d );
			break;

		case 'D':		//Write data memory
			wrser(0xC0);
			wrser(Addr_H);
			wrser(Addr_L);
			wrser(getc() );
			Delay(250);
			IncAddrAuto();
			putc(0x0d);
			break;

		case 'd':	//Read data memory
			wrser(0xA0);
			wrser(Addr_H);
			wrser(Addr_L);
			putc( wrser( 0 ) );
			IncAddrAuto();
			break;

		case 'L':		//Leave programming mode

			MOSI = 1;
			MISO = 1;
			SCK  = 1;
			LED_RED1 = 1;
			putc(0x0d);
			RESET = 1;
			break;

		case 'e':		//Chip erase
			wrser(0xAC);
			wrser(0x80);
			wrser(0x04);
			wrser(0x00);
			Delay(10);
			putc(0x0d);

			break;

		case 'l':		//Write lock bits
			wrser(0xAC);
			wrser( (getc() & 0x6) | 0xe0 );
			wrser(0x00);
			wrser(0x00);
			Delay(10);
			putc(0x0d);
			break;

		case 's':		//Read signature bytes
			putc (w17call(2) );
			putc (w17call(1) );
			putc (w17call(0) );
			break;

		case 'm':		//Write Program Memory Page
			wrser(0x4c);
			wrser(Addr_H);
			wrser(Addr_L);
			wrser(0);

			Delay(10);
			putc(0x0d);
			break;

		case ':':		//Universal Command
			wrser(getc());
			wrser(getc());
			wrser(getc());
			putc( wrser(0));
			Delay(10);
			putc(0x0d);
			break;

		case '.':		//New Universal Command
			wrser( getc() );
			wrser( getc() );
			wrser( getc() );
			putc(wrser ( getc() ) );
			Delay( 10 );
			putc( 0x0d );
			break;

		default:
			putc('?');
		}
	}	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合网色—综合色88| 欧美aaaaaa午夜精品| 成人免费观看男女羞羞视频| 日韩情涩欧美日韩视频| 国产精品一区二区你懂的| 国产精品美女久久久久久久网站| 国产麻豆视频精品| 欧美激情在线看| 欧美在线短视频| 日本美女视频一区二区| 国产精品女同互慰在线看| 一本一本大道香蕉久在线精品| 亚洲一区二区四区蜜桃| 91精品国产品国语在线不卡| 国产99久久精品| 五月综合激情网| 亚洲人成影院在线观看| 日韩欧美亚洲国产另类| 色噜噜狠狠色综合中国| 国产乱码精品一品二品| 亚洲福利一二三区| 亚洲色图在线播放| 国产丝袜美腿一区二区三区| 欧美日免费三级在线| 国产成人精品免费网站| 亚洲精品国久久99热| 欧美成人一区二区三区片免费| 成人av电影免费观看| 国产精品正在播放| 国产精品一区二区久久不卡| 色999日韩国产欧美一区二区| 中文字幕一区二区三区av| 久久亚洲一区二区三区明星换脸| 欧美日韩视频不卡| 欧美性生活大片视频| 日本黄色一区二区| 在线观看国产一区二区| 欧美色男人天堂| 欧美色手机在线观看| 91精品国模一区二区三区| 欧美日韩一本到| 欧美一二三四在线| 国产日本欧美一区二区| 综合中文字幕亚洲| 午夜婷婷国产麻豆精品| 免费成人美女在线观看| 国产乱对白刺激视频不卡| 成人综合在线观看| 欧美亚洲综合网| 欧美一卡在线观看| 成人欧美一区二区三区小说| 亚洲一区二区在线免费观看视频| 亚洲永久免费视频| 国产成人无遮挡在线视频| 成人av影院在线| 日韩免费看的电影| 18成人在线观看| 亚洲精品在线观看网站| 欧美丰满少妇xxxbbb| 久久久不卡影院| 午夜精品福利久久久| av亚洲精华国产精华精| 日韩视频免费直播| 樱花影视一区二区| 国内不卡的二区三区中文字幕 | 亚洲电影在线免费观看| 粉嫩在线一区二区三区视频| 91麻豆精品国产91| 亚洲大尺度视频在线观看| 色美美综合视频| 亚洲视频网在线直播| 国产精品亚洲第一区在线暖暖韩国| 7777精品久久久大香线蕉| 亚洲一区二区三区中文字幕| 成人av免费在线| 国产精品久久久久永久免费观看| 久久国产福利国产秒拍| 日韩免费视频一区| 国产精品123| 国产精品国产三级国产普通话99| 国产99久久久国产精品| 国产精品久久精品日日| 91影院在线免费观看| 亚洲激情自拍偷拍| 91精品国产综合久久精品性色 | 日韩一区有码在线| 日本精品免费观看高清观看| 天天影视网天天综合色在线播放 | 久久久久国产精品厨房| 久久精品国产精品亚洲精品| 久久嫩草精品久久久精品一| 国产黄色精品网站| 1000精品久久久久久久久| 色综合久久久久久久| 香蕉影视欧美成人| 精品国产一区二区三区av性色 | 亚洲一区二区三区四区在线免费观看| 色综合久久久久久久久| 国内精品免费**视频| 中文字幕亚洲区| 精品剧情v国产在线观看在线| 高清视频一区二区| 男女性色大片免费观看一区二区| 国产性天天综合网| 欧美精品xxxxbbbb| 99国产欧美另类久久久精品| 美女看a上一区| 日韩主播视频在线| 亚洲欧美日本韩国| 国产精品久久久久久久久免费丝袜| 在线视频欧美精品| 91一区一区三区| 成人综合在线观看| 国产精品456| 国产精品18久久久久久久久| 奇米影视7777精品一区二区| 一区二区三区91| 亚洲制服丝袜av| 男人的天堂亚洲一区| 免费视频一区二区| 国产一区二区中文字幕| 亚洲欧洲日产国码二区| 在线播放中文一区| 欧美肥妇bbw| 久久在线观看免费| 精品国产乱码久久久久久图片| 欧美电影免费观看完整版| 精品少妇一区二区三区| 精品国产99国产精品| 国产亚洲欧美日韩日本| 亚洲欧洲一区二区在线播放| 亚洲你懂的在线视频| 婷婷丁香激情综合| 韩国女主播一区二区三区| 国产专区欧美精品| 色激情天天射综合网| 91麻豆精品国产自产在线| 国产日韩欧美精品综合| 亚洲免费观看在线视频| 日本视频免费一区| a级精品国产片在线观看| 日产国产高清一区二区三区| 无码av免费一区二区三区试看| 青青草视频一区| 欧美日本精品一区二区三区| 久久色在线观看| 亚洲第一av色| 在线视频国产一区| 国产午夜精品久久久久久久 | 欧美性受xxxx| 中文字幕中文字幕在线一区 | 欧美日韩精品三区| 亚洲欧洲精品一区二区三区不卡 | 精品美女在线播放| 亚洲午夜激情av| 91在线播放网址| 最新高清无码专区| 成人av免费网站| 国产精品伦理在线| k8久久久一区二区三区 | 日韩欧美一区二区在线视频| 亚洲午夜久久久久| 欧美亚洲一区二区在线观看| 亚洲欧洲中文日韩久久av乱码| 成人午夜电影网站| 1024成人网| 7777精品伊人久久久大香线蕉超级流畅| 国产精品乱人伦| 在线视频观看一区| 奇米精品一区二区三区四区 | 美女视频一区二区三区| 精品电影一区二区三区| 国产综合色视频| 亚洲女爱视频在线| 日韩一级完整毛片| 成人一区二区三区视频在线观看 | av一区二区三区四区| 亚洲激情中文1区| 欧美v亚洲v综合ⅴ国产v| 国产成人精品免费看| 亚洲午夜免费视频| 久久久高清一区二区三区| 91天堂素人约啪| 精油按摩中文字幕久久| 亚洲精品成a人| 中文字幕av一区二区三区高| 91黄色免费版| 免费xxxx性欧美18vr| 亚洲欧美二区三区| 精品国一区二区三区| 午夜久久久久久久久久一区二区| 欧美在线你懂得| www.欧美亚洲| 国产成人免费网站| 麻豆一区二区三区| 日韩av不卡在线观看| 亚洲一区二区三区四区在线 | 欧美综合久久久| 成人av网站免费观看| 成人三级伦理片|