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

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

?? main.c

?? 硬件協議棧芯片w3100a的DHCP實現
?? C
字號:
/*
********************************************************************************
* Wiznet.
* 5F Simmtech Bldg., 228-3, Nonhyun-dong, Kangnam-gu,
* Seoul, Korea
*
* (c) Copyright 2002, Wiznet, Seoul, Korea
*
* Filename : main.c
* Programmer(s): 
* Created : 2002/01/
* Modified :
* Description : Loopback program by using DHCP Client & TCP server mode for EVB8051
********************************************************************************
*/

/*
###############################################################################
Include Part
###############################################################################
*/
#include <at89x51.h>			// Definition file for 8051 SFR
//#include <stdio.h>			// to use printf
#include "serial.h" 			// serial related functions
#include "socket.h" 			// W3100A driver file
#include "lcd.h"			// lcd fucntion
#include "at24c02.h"			// EEPROM
#include "netconf.h"			// Network Configuration
#include "dhcp.h"			// DHCP related functions
#include "sockutil.h"                   // Useful function of W3100A

/*
###############################################################################
Define Part
###############################################################################
*/
#define	MAX_BUF_SIZE	2048		// Maximum receive buffer size

#define USER_SPECIFIC_MAC_VALUE		"\x00\x08\xDC\x00\x00\x00"	// You Must be Modified by suitable and unique value


/*
###############################################################################
Local  Variable Declaration Part
###############################################################################
*/
sfr  CKCON      =   0x8F;		// CKCON Reg. Define
u_char xdata * data_buf = 0x7000;	// Position of receive buffer

/*
###############################################################################
Function Prototype Declaration Part
###############################################################################
*/
void Init8051(); 		
void init_sock(u_char i);	
void InitNetConfig(void);
void DHCP_IP_Display(void);

/*
###############################################################################
Function Implementation Part
###############################################################################
*/
/*
********************************************************************************
*              Main function to run loopback function
*
* Description: After initialization of 8051 and W3100A, wait for IP address assignment from dhcp server.
	       After IP address is occupied, then wait for connection request from a peer.
*              And do loopback function which sends back received data.
*              When closing the channel, re-initialize the channel and wait for connection request.
* Arguments  : None.
* Returns    : None.
* Note       : 
********************************************************************************
*/
void main()
{
	SOCKET i;		//Variable to handle each socket
	int len;		// Variable to store received data size
	char k,j;

	Init8051();		// Initialize 8051
        InitLcd();		// LCD Init

	PutStringLn("\r\n-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*");
	PutString  (" DHCP Client & LoopBack Program.(TCP Server mode) - Created Date : ");PutLTOA(0x20021028); PutStringLn("");
	PutStringLn("                                                  - Created By   : WIZnet, Inc.");
	PutStringLn("                                                  - W3100A Driver: V2.2");
	PutStringLn("                                                  - DHCP API     : V1.5");
	PutStringLn("                                                  - Flatform     : 8051 EVB V3.0");
	PutStringLn("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\r\n");

	initW3100A();		// Initialize W3100A

	if(!Check_EEPROM())
		setMACAddr(USER_SPECIFIC_MAC_VALUE);		// If saved Mac address value in eeprom, set unique default value to MAC address.
	else
	{
		EEP_ReadBytes(MADDR,SRC_HA_PTR,6);		// Save Mac address value in eeprom to W3100A's MAC address register
		for(k = 0; k < 6; k++)
		      if(*(SRC_HA_PTR+k) != 0)	break;				
		for(j = 0; j < 6; j++)
		      if(*(SRC_HA_PTR+j) != 0)	break;					
		if(k == 6 || j == 6)	setMACAddr(USER_SPECIFIC_MAC_VALUE);
	}

	if(1 == DHCP_SetIP())	       				// Before you call DHCP_SetIP() function, W3100A's MAC Address Regiter value must be setted.
	{
		Config_Save('A');
		DHCP_IP_Display();
	}
	else
	{
		PutStringLn("<<<< DHCP FAILED .. USED DEFAULT IP >>>>");
		InitNetConfig();        // Setup network information		
	}

	
	for (i = 0; i < MAX_SOCK_NUM; i++) init_sock(i);				// Initialize channel for Loop Back Service and wait in server mode
	
	while(1)									// Loop Back Service
	{
		for( i = 0 ; i < MAX_SOCK_NUM ; i++ )					// Do loopback service to 4 channels of W3100A in order
		{
			switch(select(i,SEL_CONTROL))
			{
			case SOCK_ESTABLISHED:						// If client is connected 
				if ((len = select(i, SEL_RECV)) > 0) 			// Confirm if received the data
				{
					if (len > MAX_BUF_SIZE) len = MAX_BUF_SIZE;	// Handle as much as buffer size first when receiving data more than system buffer
					len = recv(i, data_buf, len);			// Loopback received data from client 
					send(i, data_buf, len);
				}
				break;
			case SOCK_CLOSE_WAIT:                           		// If the client request to close connection and wait for closing successfully
				PutString("CLOSE_WAIT : ");PutHTOA(i);PutStringLn("");					
				close(i);	       					// Close the appropriate channel connected to client
			case SOCK_CLOSED:                                               // If the socket connected to client already has been closed
				PutString("CLOSED : ");PutHTOA(i);PutStringLn("");	
				init_sock(i);						// To do loopback service again in closed channel, wait in initialization and server mode
				break;
			}
		}
	}		
}

/*
********************************************************************************
*              8051 Initialization Function
*
* Description: 
* Arguments  : None.
* Returns    : None.
* Note       : 
********************************************************************************
*/
void Init8051(void)
{ 
	EA = 0; 		// Disable all interrupts
	CKCON = 0x01;		// X2 Mode
	IT0 = 0;		// interrupt level trigger
	EX0 = 1;		// INT 0 enable
	EX1 = 0; 		// INT 1 disable
	EA = 1;	       		// Enable all interrupts	
	InitSerial();  		// Initialize serial port (Refer to serial.c)
	wait_10ms(1);
}

/*
********************************************************************************
*              Re-initialization function for the disconnected channel.
*
* Description: Wait in server mode after re-initialization for the disconnected channel.
* Arguments  : None.
* Returns    : None.
* Note       : 
********************************************************************************
*/
void init_sock(u_char i) 
{
//	printf("socket : ");
	PutString("socket : ");	
	socket(i, SOCK_STREAM, 5000, 0);	// socket creation  
//	printf("%bd ok\r\n",i);
	PutHTOA(i);PutStringLn("");

//	printf("listen : ");
	PutString("listen : ");
	NBlisten(i);           			// Server Mode
//	printf("%bd ok..\r\n", i);
	PutHTOA(i);PutStringLn("");
}

/*
********************************************************************************
* Description: Setup network ( Source IP, G/W, S/N, MAC Address ) information
* Arguments  : None.
* Returns    : None.
* Note       : 
********************************************************************************
*/
void InitNetConfig(void)
{
	int i, j;
	char c;
	u_char xdata ip[6];  	       		// Variable for setting up network information
	u_char xdata ipstr[16];
	un_l2cval tip;

	if(!Check_EEPROM())
	{
		ip[0] = 0x00; ip[1] = 0x08; ip[2] = 0xDC; ip[3] = 0x00; ip[4] = 0x00; ip[5] = 0x00;     // ETC.
		setMACAddr(ip);		// Setup MAC
		ip[0] = 192; ip[1] = 168; ip[2] = 0; ip[3] = 2;		// VPN Env.						
		setIP(ip);		// Setup source IP
		ip[3] = 1;		// VPN , Develope Env.
		setgateway(ip);		// Setup gateway address
		ip[0] = 255; ip[1] = 255; ip[2] = 255; ip[3] = 0;
		setsubmask(ip);		// Setup subnet mask
	}	
	else
	{
		ClrScr();
		GotoXY(0,0);
		Puts(" < NET CONFIG > ");
		T0 = 0;
		T1 = 1;

		EEP_ReadBytes(GIPADDR,tip.cVal,4);         // If IP address wasn't set up in EEPROM, setup initial network configuration.
		if(tip.lVal == 0 || tip.lVal == (0-1))     // If Gateway Address is 00.00.00.00 or ff.ff.ff.ff
		{       			
			PutString("Setting Initial Network Configuration ...");PutStringLn("");PutStringLn(""); 
			setMACAddr(USER_SPECIFIC_MAC_VALUE);			// Setup MAC
			ip[0] = 192; ip[1] = 168; ip[2] = 0; ip[3] = 2;		// VPN Env.						
			setIP(ip);		// Setup source IP
			ip[3] = 1;		// VPN , Develope Env.
			setgateway(ip);		// Setup gateway address
			ip[0] = 255; ip[1] = 255; ip[2] = 255; ip[3] = 0;
			setsubmask(ip);
			Config_Save('A');
		}

		PutString("Press 'C' Key To Update Network Configuration");
		GotoXY(0,1);
		for(i = 0; i < 16; i++)
		{
			for( j = 0 ; j < 50 ; j++)
			{
				if(IsPressedKey() == 1)
				{
					c = GetByte();PutStringLn("");
					if(c == 'C' || c == 'c')
					{
						Configure();
						c = '*';
						break;
					}
					else if(c== 0x1B)		// Escape Character
					{
						c = '*';
						break;
					}
				}
				wait_1ms(2);
			}
			if(c == '*') break;
			T0 = !T0;				// LED TOGGLE
			T1 = !T1;
			Putch(0xFF);
			PutByte('.');
		}
		PutStringLn("");
		Config_Load();
	}
	GetNetConfig();				// Display network information
	sysinit(0x55,0x55);
	ClrScr();
	GotoXY(0,0);
	Puts("DHCP Client");
	GotoXY(1,1);
	GetIPAddress(ip);
	inet_ntoa(ip,ipstr);			// Output IP Address on LCD
	Puts(ipstr);
	T0 = 0;							// LED0 ON 
	T1 = 0;							// LED1 ON 
}

/*
********************************************************************************
* Description: Display DHCP IP address on LCD
* Arguments  : None.
* Returns    : None.
* Note       : 
********************************************************************************
*/
void DHCP_IP_Display(void)
{
       	u_char xdata ip[6];  	       		// Variable to setup network information
	u_char xdata ipstr[16];
	
	GetNetConfig();				// Display network information
	ClrScr();
	GotoXY(0,0);
	Puts("DHCP Client");
	GotoXY(1,1);
	GetIPAddress(ip);
	inet_ntoa(ip,ipstr);			// Output IP Address on LCD
	Puts(ipstr);
	T0 = 0;							// LED0 ON 
	T1 = 0;							// LED1 ON 
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产v日产∨综合v精品视频| 日韩高清一区在线| 久久人人爽人人爽| 欧美一区二区在线视频| 欧美日韩一级大片网址| 在线视频观看一区| 欧美日韩一级片网站| 欧美色窝79yyyycom| 欧美日韩一区二区在线观看| 欧美日韩国产综合一区二区| 欧美乱妇15p| 欧美一区二区久久| 精品国产一区二区三区不卡| 26uuu精品一区二区在线观看| 欧美tickling网站挠脚心| www成人在线观看| 国产精品久久久久久亚洲毛片| 国产精品久久午夜夜伦鲁鲁| 亚洲日本丝袜连裤袜办公室| 亚洲一区在线视频观看| 免费看日韩a级影片| 精品一区二区三区蜜桃| 国产美女在线观看一区| 成人免费毛片aaaaa**| 色综合天天综合给合国产| 欧美影视一区二区三区| 欧美一区二区播放| 国产欧美日韩不卡免费| 一二三四社区欧美黄| 免费在线观看成人| 成人国产亚洲欧美成人综合网 | 国产精品久久久久久久久搜平片| 中文字幕一区免费在线观看| 一区二区三区四区国产精品| 免费成人结看片| 成人亚洲精品久久久久软件| 欧美精品 国产精品| 国产性色一区二区| 日本午夜精品一区二区三区电影| 国产成人自拍高清视频在线免费播放| av影院午夜一区| 欧美精品一区二区高清在线观看| 中文字幕亚洲电影| 久久99热99| 色婷婷国产精品久久包臀| 日韩免费视频一区二区| 综合久久国产九一剧情麻豆| 免费在线观看日韩欧美| 色哟哟国产精品| 久久精品亚洲国产奇米99| 亚洲.国产.中文慕字在线| 成人免费观看男女羞羞视频| 91麻豆精品国产91久久久| 亚洲欧美一区二区三区极速播放| 另类成人小视频在线| 欧美三级乱人伦电影| 国产精品不卡视频| 国产精品99久久久久久久vr| 日韩欧美黄色影院| 日本一不卡视频| 欧美日韩国产系列| 亚洲一区二区综合| 91在线免费看| 中文一区一区三区高中清不卡| 麻豆精品一区二区三区| 欧美日韩另类一区| 一区二区三区欧美久久| 91麻豆产精品久久久久久| 国产精品卡一卡二| 国产一区二区三区四区五区美女 | 91色porny在线视频| 久久美女高清视频| 精品一二线国产| 精品国产乱码久久久久久1区2区 | 日韩一级片网站| 日韩成人伦理电影在线观看| 欧美在线影院一区二区| 亚洲欧美日韩国产中文在线| av在线这里只有精品| 国产精品福利影院| 91一区二区在线| 亚洲乱码国产乱码精品精的特点| 成人黄色一级视频| 亚洲欧美综合色| 欧美专区日韩专区| 天天色天天操综合| 日韩欧美在线影院| 国产一区二区精品久久91| 国产午夜精品一区二区三区嫩草 | 欧美不卡视频一区| 国产麻豆视频一区二区| 国产精品三级视频| 欧美亚洲一区二区三区四区| 视频一区二区三区入口| 久久婷婷国产综合国色天香| 成人91在线观看| 亚洲国产精品嫩草影院| 91精品一区二区三区久久久久久| 蜜臀a∨国产成人精品| 国产精品日日摸夜夜摸av| 欧美自拍偷拍午夜视频| 久久国产精品免费| 亚洲欧美综合在线精品| 777午夜精品免费视频| 九色综合国产一区二区三区| 国产精品盗摄一区二区三区| 精品视频一区三区九区| 国产风韵犹存在线视精品| 亚洲精品亚洲人成人网在线播放| 91麻豆精品国产| 成人精品小蝌蚪| 日本在线不卡视频| 亚洲情趣在线观看| 精品日产卡一卡二卡麻豆| 色综合欧美在线视频区| 美女精品一区二区| 亚洲猫色日本管| 精品久久久久99| 欧美日韩国产天堂| 成人av资源在线| 狠狠色丁香久久婷婷综合_中| 亚洲三级在线播放| 久久精品欧美一区二区三区不卡| 91福利在线看| 国产高清不卡一区二区| 午夜精品123| 亚洲精品视频在线看| 国产亚洲一二三区| 日韩一级高清毛片| 欧美日韩精品系列| 91在线视频观看| 成人国产精品免费观看动漫| 奇米亚洲午夜久久精品| 一区二区三区资源| 亚洲国产精品高清| 精品乱人伦小说| 欧美日韩成人综合| 色综合久久66| 99re在线精品| 成人福利视频网站| 成人一区二区在线观看| 国内精品免费**视频| 精品一区二区在线视频| 免费看黄色91| 日本不卡在线视频| 麻豆视频观看网址久久| 日本aⅴ亚洲精品中文乱码| 偷窥国产亚洲免费视频| 亚洲综合色网站| 亚洲国产精品综合小说图片区| 亚洲欧美经典视频| 一区二区三区**美女毛片| 亚洲精品欧美二区三区中文字幕| 亚洲视频免费在线观看| 中文字幕一区二区三区视频| 国产精品视频yy9299一区| 国产精品久久久久久久第一福利| 久久网这里都是精品| 欧美激情一区在线观看| 国产欧美日韩卡一| 国产精品高潮呻吟| 亚洲永久免费视频| 亚洲成人中文在线| 蜜桃免费网站一区二区三区| 日本aⅴ亚洲精品中文乱码| 久久97超碰国产精品超碰| 韩国三级中文字幕hd久久精品| 国产精品1区2区| av中文字幕亚洲| 欧美三级一区二区| 日韩免费福利电影在线观看| 久久久久久97三级| 亚洲欧美国产77777| 午夜欧美视频在线观看| 免费观看91视频大全| 国产精品18久久久久久久久| 风间由美性色一区二区三区| 色噜噜狠狠成人中文综合| 欧美一级日韩免费不卡| 国产午夜精品在线观看| 一区二区久久久久| 极品少妇一区二区三区精品视频 | 青青青爽久久午夜综合久久午夜| 激情五月婷婷综合| 成人动漫一区二区| 欧美精品三级在线观看| 久久精品视频一区二区三区| 一区二区不卡在线播放| 裸体健美xxxx欧美裸体表演| 91原创在线视频| 欧美一区二区三区免费观看视频 | 日韩欧美国产系列| 亚洲日本va在线观看| 奇米综合一区二区三区精品视频| fc2成人免费人成在线观看播放| 日本高清不卡在线观看| 久久久久高清精品| 亚洲高清不卡在线| av成人免费在线观看| 欧美xxxxx裸体时装秀|