📄 main.c.svn-base
字号:
#include <reg51.h>
#include <stdio.h>
#include "config.h"
#include "GloblDef.h"
#include "TCPIPmem.h"
#include "RTL8019.h"
#include "IP.h"
#include "etherif.h"
#include "ARP.h"
#include "Netif.h"
#include "ICMP.h"
#include "TCP.h"
//#include "UDP.h"
//#include "I2C.h"
//#include "w77e58.h"
#include <absacc.h>
unsigned char data gTemp;
//static unsigned char xdata EtherAddr[6] = MACAddr;
/******************************************************************************
函数:Delay()
功能:延时chDelay ms
参数:
unsigned char chDelay:要延时的时长,<=255MS
返回:无
说明:请根据具体情况调整延时值
******************************************************************************/
void delay(unsigned int iDly)
{
unsigned char chTmpIn;
unsigned int iTmpOut;
for(iTmpOut = 0;iTmpOut < iDly;iTmpOut++)
//针对24MHZ的主频
for(chTmpIn = 0;chTmpIn < 250;chTmpIn++)
{
;
}
}
/******************************************************************************
函数:SerialInit()
功能:对串口进行初始化,设置工作模式、波特率等
参数:无
返回:无
说明:
*****************************************************************************/
void SerialInit()
{
//set TI to 1, set TR1 to 1
SCON = 0x52;// SM0 SM1 =1 SM2 REN TB8 RB8 TI RI
TMOD = 0x20;// GATE=0 C/T-=0 M1 M0=2 GATE C/T- M1 M0
TH1 = 0xE6; // TH1=E6 4800 when at 24MHz,TH1=F3,9600,24MHz
PCON = 0x80;
TCON = 0x40;// 01101001 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT
}
/******************************************************************************
函数:InterruptInit()
功能:对定时中断进行初始化,设置定时器及其中断时长
参数:无
返回:无
说明:
*****************************************************************************/
void InterruptInit()
{
TMOD |= 0x01;
TH0 = 0x3C; //TIMER_24M_25MS_H;
TL0 = 0xAA; //TIMER_24M_25MS_L;
TR0 = 1;
//open interrupt for rtl and timer
EA = 1;
// EX0 = 1;
ET0 = 1;
}
/******************************************************************************
主程序
******************************************************************************/
void main()
{
//分配显示缓冲,每屏显示32个字
unsigned int xdata chDisplayBuf[64];
unsigned char chtmp = 0;
//分配网络缓冲
struct SMemHead xdata *MemHead;
struct SEtherDevice xdata DevRTL;
struct SNetIf xdata *pNetIf;
unsigned long IPAddr = 0xc0a80103; //本机IP地址:192.168.1.3
unsigned long NetMask = 0xffffff00; //子网掩码:255.255.255.0 */
unsigned long GateWay = 0xc0a80101; //网关地址:192.168.1.1 */
unsigned char xdata EtherAddr[6] = {0x52,0x54,0x4C,0x30,0x2e,0x2f}; //本机MAC地址
// 显示驱动流程 //
SerialInit();
//LEDInit();
//中断
InterruptInit();
// 网络驱动流程 //
RTL8019Init();
// 协议栈处理流程 //
MemInit();
NetIfInit();
ARPInit();
TCPInit();
/* init Devcie struct and init this device */
EtherDevInit(&DevRTL,EtherAddr,&RTLSendPacket,RTLReceivePacket);
/* add this device to NetIf */
pNetIf = NetIfAdd(IPAddr,NetMask,GateWay,EtherInput,EtherOutput,&DevRTL);
// 解码驱动流程 //
//I2CInit();
//Sta013Init();
//用于测试对RTL8019内部寄存器读写是否正常
//RTL8019RegTest();
//RTLInit();
//Test8019();
//TestDataBus();
// 主循环 //
while(1)
{
RTL8019SendPacketTest();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -