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 } }
Comment