ai đã làm qua cái này cho e hỏi cái: sao khi ghi dòng Ethernet_doPacket(); thì LCD không hiện còn bỏ ra thì LCD hiện binh2 thường??
và làm sao ping dịa chỉ này được??ko biết e viết đúng không??chỉ để Ping thui
và làm sao ping dịa chỉ này được??ko biết e viết đúng không??chỉ để Ping thui
Code:
#include "__EthJ60.h"
#define _Ethernet_HALFDUPLEX 0
#define Ethernet_FULLDUPLEX 1
#define rs PORTH.F0
#define en PORTH.F1
char buffer[15];
int i=0,dl;
char ch=0;
char txt[3];
unsigned char myMacAddr[6] = {0x00, 0x14, 0xA5, 0x76, 0x19, 0x3f}; // my MAC address
unsigned char myIpAddr[4] = {192, 168, 1, 109 }; // my IP address
unsigned char gwIpAddr[4] = {192, 168, 1, 108 }; // gateway (router) IP address
unsigned char ipMask[4] = {255, 255, 255, 0 }; // network mask (for example : 255.255.255.0)
unsigned char dnsIpAddr[4] = {192, 168, 20, 1 }; // DNS server IP address
void lenh_lcd(char l)
{
rs=0;//cho phép ghi lenh
en=1;//enable lcd
PORTF=((PORTF&0x0f)|(l&0xf0));//xóa 4 bít cao cua PORT2 và co^.ng voi 4 bít cao cu?a data can truyen
en=0;//disable lcd
en=1;
PORTF=((PORTF&0x0f)|((l<<4)&0xf0));//xóa 4 bít cao và cong voi 4 bít thap cua du lieu
en=0;
delay_ms(5);
}
void dulieu_lcd(char d)
{
rs=1;
en=1;
PORTF=((PORTF&0x0f)|(d&0xf0));
en=0;
en=1;
PORTF=((PORTF&0x0f)|((d<<4)&0xf0));
en=0;
delay_ms(5);
}
void lcd_gotoxy(unsigned char x, unsigned char y) //y la hang
{
unsigned char address;
if(!y)
address = (0x80+x);
else
address = (0xC0+x);
delay_us(200);
lenh_lcd(address);
delay_us(50);
}
void LCD_display(char *s)
{while(*s)
{
dulieu_lcd(*s);
s++;
}
}
void kt_lcd(void)
{
lenh_lcd(0x02); delay_ms(100);
lenh_lcd(0x02);
lenh_lcd(0x02);
lenh_lcd(0x28);
lenh_lcd(0x0c);//ba^.t hie^?n thi. ta('t con tro?
lenh_lcd(0x06);//di.ch con tro? sang pha?i
lenh_lcd(0x01);//xóa màn hình
}
unsigned int Ethernet_UserTCP(unsigned char *remoteHost, unsigned int remotePort, unsigned int localPort, unsigned int reqLength)
{
return(0); // return to the library with the number of bytes to transmit
}
unsigned int Ethernet_UserUDP(unsigned char *remoteHost, unsigned int remotePort, unsigned int destPort, unsigned int reqLength)
{
return(0); // back to the library with the length of the UDP reply
}
void main() {
CMCON = 0x07; //Disable Comparators
ADCON1 = 0x0F; // All is digital I/O
TRISF=0;TRISH=0; TRISA = 0xfc;
PORTF=0;PORTH=0; PORTA.F0=0; PORTA.F1=0;
kt_lcd();
delay_ms(100);
lcd_gotoxy(1,0);
LCD_display("DH SPKT TPHCM");
lcd_gotoxy(1,1);
LCD_display("TEXT ETHERNET");
Ethernet_Init(myMacAddr, myIpAddr, Ethernet_FULLDUPLEX);
Ethernet_confNetwork(ipMask, gwIpAddr, dnsIpAddr);
while(1) // do forever
{
Ethernet_doPacket(); // process incoming Ethernet packets
}
}
, mikroC có bản mới nhất 6.0.0 ra đời cuối tháng 2 năm 2013 đó ! từ 2009 đến 2013 là năm đó 

Comment