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

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

?? main.c

?? /*雙龍ISP板*/ //#define SOME_CHIP /*只支持少數幾種芯片*/只支持生產所用的芯片
?? C
字號:
#include <REG2051.H>
#include <intrins.H>

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

#ifndef SL_BOARD
	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;
#else
	sbit LED_RED1  = P3^2;
	sbit LED_RED2  = P3^4;
	sbit LED_GREEN = P3^5;

	sbit MOSI  = P1^2;
	sbit MISO  = P1^3;
	sbit SCK   = P1^4;
	sbit RESET = P3^3;
#endif

#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一区二区三区免费野_久草精品视频
亚洲色图视频网| 波多野结衣中文字幕一区二区三区 | 亚欧色一区w666天堂| 国产乱人伦偷精品视频免下载| 国产三级一区二区| 国产成人av网站| 国产精品久久久久aaaa樱花| av不卡在线播放| 亚洲大型综合色站| 日韩欧美另类在线| 国产91在线看| 又紧又大又爽精品一区二区| 欧美日韩色综合| 国产又黄又大久久| 亚洲少妇中出一区| 欧美老年两性高潮| 久久国产婷婷国产香蕉| 国产精品美女久久久久aⅴ国产馆| 91视频一区二区三区| 亚洲观看高清完整版在线观看| 欧美第一区第二区| 成人app网站| 视频精品一区二区| 久久久99精品免费观看不卡| 色综合久久88色综合天天6| 婷婷丁香久久五月婷婷| 久久精品欧美一区二区三区麻豆| 色综合天天性综合| 欧美a一区二区| 国产精品超碰97尤物18| 精品视频免费在线| 国产精品伊人色| 一区二区三区中文字幕精品精品 | 国产欧美综合在线观看第十页| 粉嫩av一区二区三区在线播放 | 麻豆成人免费电影| 国产精品免费视频网站| 欧美日韩成人在线| 国产·精品毛片| 亚洲成人福利片| 国产女人aaa级久久久级 | 欧美高清视频www夜色资源网| 国产原创一区二区| 亚洲综合免费观看高清完整版 | 欧美精品一区二区三区在线播放| 91网站在线观看视频| 青青国产91久久久久久| 亚洲欧洲精品一区二区精品久久久 | 国产精品欧美一级免费| 3d动漫精品啪啪一区二区竹菊 | 国产精品91xxx| 亚洲欧美日韩国产综合在线| 在线区一区二视频| 国产在线国偷精品产拍免费yy| 亚洲欧美另类在线| 久久影视一区二区| 欧美军同video69gay| 国产91色综合久久免费分享| 午夜视频一区二区| 亚洲女爱视频在线| 久久久91精品国产一区二区三区| 欧美日韩久久一区| 91在线码无精品| 国产乱码一区二区三区| 亚洲国产一区二区在线播放| 国产精品婷婷午夜在线观看| 欧美成人一区二区三区在线观看| 在线视频一区二区三区| 成人免费看的视频| 精品一区二区三区在线观看 | 综合色天天鬼久久鬼色| 久久婷婷综合激情| 欧美美女网站色| 色综合久久久久久久| 国产成a人亚洲| 黄色资源网久久资源365| 午夜不卡在线视频| 一区二区激情小说| 最新不卡av在线| 中文子幕无线码一区tr| 2020国产精品自拍| 日韩一区二区在线免费观看| 欧美图区在线视频| 91蜜桃免费观看视频| av在线综合网| 国v精品久久久网| 国产精品一二三在| 韩国三级电影一区二区| 免费在线观看视频一区| 天天综合网天天综合色| 亚洲一线二线三线视频| 亚洲视频一区二区在线观看| 中文字幕第一区二区| 国产欧美一区二区精品仙草咪| 日韩一级免费观看| 日韩一级片在线观看| 欧美疯狂性受xxxxx喷水图片| 在线精品视频免费观看| 欧洲一区二区三区免费视频| 日本韩国一区二区| 色婷婷综合久久久久中文| 99精品视频一区二区三区| 93久久精品日日躁夜夜躁欧美| 成人国产精品免费观看| 成人国产在线观看| 91在线云播放| 久久一区二区三区四区| 欧美变态tickling挠脚心| 91精品国产综合久久久蜜臀图片 | 在线看国产一区| 色8久久人人97超碰香蕉987| 一本到三区不卡视频| 91网站黄www| 欧美这里有精品| 欧美色视频一区| 欧美人妇做爰xxxⅹ性高电影| 欧美日韩国产天堂| 欧美高清视频一二三区 | 日韩午夜av一区| 精品精品国产高清a毛片牛牛| 精品嫩草影院久久| 2021中文字幕一区亚洲| 国产欧美精品在线观看| 国产精品久久久久久久久久久免费看 | 日本一区二区三区免费乱视频| 国产欧美一区二区在线| 国产精品欧美一级免费| 亚洲精品免费在线观看| 午夜成人在线视频| 久久国产综合精品| 国产99久久久国产精品| av激情亚洲男人天堂| 91成人国产精品| 欧美一区二区视频观看视频| 精品成人免费观看| 国产精品第13页| 亚洲狠狠爱一区二区三区| 人人精品人人爱| 高潮精品一区videoshd| 国产女人aaa级久久久级| 国产午夜精品久久久久久免费视 | 日韩女优制服丝袜电影| 欧美tickling挠脚心丨vk| 国产精品网站在线播放| 亚洲精品v日韩精品| 日韩电影免费在线看| 国产成人自拍网| 在线观看91视频| 日韩欧美综合一区| 国产精品欧美一级免费| 亚洲午夜精品17c| 精品一二线国产| 色悠悠久久综合| 日韩精品一区二区三区swag| 一区精品在线播放| 天天av天天翘天天综合网色鬼国产| 九九国产精品视频| 99re视频这里只有精品| 91精品国产91久久久久久最新毛片| 久久婷婷综合激情| 亚洲综合自拍偷拍| 国产在线乱码一区二区三区| 成人精品电影在线观看| 欧美日韩中文字幕一区二区| 精品国产91洋老外米糕| 亚洲精品国产a久久久久久| 老司机精品视频在线| zzijzzij亚洲日本少妇熟睡| 欧美裸体一区二区三区| 亚洲国产高清aⅴ视频| 亚洲成人动漫av| 成人自拍视频在线| 欧美高清激情brazzers| 日本一区二区成人| 青青草国产精品97视觉盛宴| 国产91在线看| 欧美日韩另类一区| 国产三级一区二区| 日韩激情一二三区| 粉嫩蜜臀av国产精品网站| 色屁屁一区二区| 日韩你懂的在线播放| 亚洲精品老司机| 国产精品综合一区二区三区| 欧美三级韩国三级日本三斤 | 国产精品―色哟哟| 毛片一区二区三区| 欧美在线你懂的| 国产三级精品在线| 亚洲午夜精品网| fc2成人免费人成在线观看播放| 日韩欧美在线不卡| 一区二区三区久久久| 粉嫩高潮美女一区二区三区| 欧美大肚乱孕交hd孕妇| 亚洲精品成人精品456| 成人毛片视频在线观看| 精品久久久久久无| 三级在线观看一区二区 | 色伊人久久综合中文字幕|