![]()  | 
		
			
  | 	
	
 Tài trợ cho PIC Vietnam  | 
||||||||
| Giao tiếp USB, CAN, I2C, SPI, USART... Những giao tiếp được tích hợp trên PIC | 
![]()  | 
	
	
| 
		 | 
	Ðiều Chỉnh | Xếp Bài | 
| 		
			
			 | 
		#1 | 
| 
			
			
			
			 Đệ tử 6 túi 
			
		
			
			
			Tham gia ngày: Nov 2007 
				Nơi Cư Ngụ: BK TP HCM 
				
				
					Bài gửi: 136
 
				
				
				:  | 
	
	
	
	
		
			
			 
				
				giao tiếp máy tính
			 
			nhờ các cao thủ xem dùm em,giao tiếp với pic18 cổng com như sau,sai chỗ nào,sao chương trình kô chạy 
		
	
		
		
		
		
		
	
	#include<18f4550.h> #fuses NOWDT,PUT,HS,NOPROTECT #device PIC184550*=16 ADC=10 #use delay(clock=4000000) #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7) #include<stdlib.h> #include<lcd_lib_4bit.c> #byte porta = 0x80 #byte portb = 0x81 #byte portc = 0x82 #byte porte = 0x84 char buffer[64],tam[5]; int i,j,j1; float x5,x10,x15,x20; int x1,x2,x3,x4,x6,x7,x8,x9,x11,x12,x13,x14,x16,x17,x1 8,x19; int c=1; int k=0; void getvalue() { gets(buffer); c=0; k=1; } void main() { set_tris_b(0); set_tris_e(0); LCD_init(); delay_us(10); LCD_putcmd(0x80); delay_us(10); printf(LCD_putchar,"nhan du lieu"); LCD_putcmd(0xc0); delay_us(10); printf(LCD_putchar,"hien thi mang ?"); delay_ms(1000); while (1) { if(c==1) { getvalue(); } if(k==1) { LCD_putcmd(0x01); delay_us(10); LCD_putcmd(0xc0); delay_us(10); printf(LCD_putchar,"da ta ok"); delay_ms(500); j=0;j1=0; for (i=1;i<64;++i) { if (buffer[i]!="A") //nue khac a { tam[j]=buffer[i]; j=j+1; } else { //tam[j]='\0'; if (j1==0) x1=atol(tam); LCD_putcmd(0x01); LCD_putcmd(0x80); delay_us(10); printf(LCD_putchar,"x1:%u",x1); delay_ms(1000); if (j1==1) x2=atol(tam); LCD_putcmd(0x01); LCD_putcmd(0x80); delay_us(10); printf(LCD_putchar,"x2:%u",x2); delay_ms(1000); if (j1==2) x3=atol(tam); LCD_putcmd(0x01); LCD_putcmd(0x80); delay_us(10); printf(LCD_putchar,"x3:%u",x3); delay_ms(2000); if (j1==3) x4=atol(tam); LCD_putcmd(0x01); LCD_putcmd(0x80); delay_us(10); printf(LCD_putchar,"x4:%u",x4); delay_ms(2000); if (j1==4) x5=atof(tam); LCD_putcmd(0x01); LCD_putcmd(0x80); delay_us(10); printf(LCD_putchar,"x5:%f",x5); delay_ms(2000); if (j1==5) x6=atol(tam); LCD_putcmd(0x01); LCD_putcmd(0x80); delay_us(10); printf(LCD_putchar,"x6:%u",x6); delay_ms(2000); if (j1==6) x7=atol(tam); LCD_putcmd(0x01); LCD_putcmd(0x80); delay_us(10); printf(LCD_putchar,"x7:%u",x7); delay_ms(2000); if (j1==7) x8=atol(tam); LCD_putcmd(0x01); LCD_putcmd(0x80); delay_us(10); printf(LCD_putchar,"x8:%u",x8); delay_ms(2000); if (j1==8) x9=atol(tam); LCD_putcmd(0x01); LCD_putcmd(0x80); printf(LCD_putchar,"x9:%u",x9); delay_ms(2000); if (j1==9) x10=atof(tam); LCD_putcmd(0x01); LCD_putcmd(0x80); delay_us(10); printf(LCD_putchar,"x10:%f",x10); delay_ms(2000); if (j1==10) x11=atol(tam); LCD_putcmd(0x01); LCD_putcmd(0x80); delay_us(10); printf(LCD_putchar,"x11:%u",x11); delay_ms(2000); if (j1==11) x12=atol(tam); LCD_putcmd(0x01); LCD_putcmd(0x80); delay_us(10); printf(LCD_putchar,"x12:%u",x12); delay_ms(2000); if (j1==12) x13=atol(tam); LCD_putcmd(0x01); LCD_putcmd(0x80); delay_us(10); printf(LCD_putchar,"x13:%u",x13); delay_ms(2000); if (j1==13) x14=atol(tam); LCD_putcmd(0x01); LCD_putcmd(0x80); delay_us(10); printf(LCD_putchar,"x14:%u",x14); delay_ms(2000); if (j1==14) x15=atof(tam); LCD_putcmd(0x01); LCD_putcmd(0x80); delay_us(10); printf(LCD_putchar,"x15:%f",x15); delay_ms(2000); if (j1==15) x16=atol(tam); LCD_putcmd(0x01); LCD_putcmd(0x80); delay_us(10); printf(LCD_putchar,"x16:%u",x16); delay_ms(2000); if (j1==16) x17=atol(tam); LCD_putcmd(0x01); LCD_putcmd(0x80); delay_us(10); printf(LCD_putchar,"x17:%u",x17); delay_ms(2000); if (j1==17) x18=atol(tam); LCD_putcmd(0x01); LCD_putcmd(0x80); delay_us(10); printf(LCD_putchar,"x18:%u",x18); delay_ms(2000); if (j1==18) x19=atol(tam); LCD_putcmd(0x01); LCD_putcmd(0x80); delay_us(10); printf(LCD_putchar,"x19:%u",x19); delay_ms(2000); if (j1==19) x20=atof(tam); LCD_putcmd(0x01); LCD_putcmd(0x80); delay_us(10); printf(LCD_putchar,"x20:%f",x20); delay_ms(2000); if (j1==20) break; //j1 xac dinh so chuoi j1=j1+1; j=0; } } } } } em đã test với mạch thật mà kô nhận được dữ liệu,...hic hic?  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#2 | |
| 
			
			
			
			 Đệ tử 6 túi 
			
		
			
				
			
			
			Tham gia ngày: Jul 2007 
				
				
				
					Bài gửi: 154
 
				
				
				:  | 
	
	
	
	
		
			
			 
				
				i2c
			 
			Trích: 
	
 #include<18f4550.h> #fuses NOWDT,PUT,HS,NOPROTECT #device PIC184550*=16 ADC=10 #use delay(clock=4000000) #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7) #include<stdlib.h> #include<lcd_lib_4bit.c> #byte porta = 0x80 #byte portb = 0x81 #byte portc = 0x82 #byte porte = 0x84 xem lại phần khai báo trên nhất là #fuses NOWDT,PUT,HS,NOPROTECT phần khai báo fuses bạn nên xem lại trong file 18f4550.h của ccs. PIC 18f không dùng porta = value mà là output_a(value);  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#3 | 
| 
			
			
			
			 Đệ tử 6 túi 
			
		
			
			
			Tham gia ngày: Nov 2007 
				Nơi Cư Ngụ: BK TP HCM 
				
				
					Bài gửi: 136
 
				
				
				:  | 
	
	
	
	
		
		
		
		 cảm ơn sư huynh đã chỉ giáo,đệ đã tìm ra được lỗi sai và sữa rồi chạy ok,.. 
		
	
		
		
		
		
		
	
	thanks alot  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#4 | 
| 
			
			
			
			 Đệ tử 2 túi 
			
		
			
			
			Tham gia ngày: Aug 2008 
				Nơi Cư Ngụ: Hà Nội 
				
				
					Bài gửi: 45
 
				
				
				:  | 
	
	
	
	
		
		
		
		 Bạn cho mình xin file lcd_lib_4bit.c được ko? 
		
	
		
		
		
		
		
	
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#5 | 
| 
			
			
			
			 Đệ tử 6 túi 
			
		
			
			
			Tham gia ngày: Nov 2007 
				Nơi Cư Ngụ: BK TP HCM 
				
				
					Bài gửi: 136
 
				
				
				:  | 
	
	
	
	
		
		
		
		 ok kô thành vấn đề 
		
	
		
		
			 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#6 | 
| 
			
			
			
			 Đệ tử 3 túi 
			
		
			
				
			
			
			Tham gia ngày: Aug 2008 
				
				
				
					Bài gửi: 53
 
				
				
				:  | 
	
	
	
	
		
			
			 minh cũng đang muốn làm giao tiếp máy tính với 18f4550. bạn cỏ thể post bài của bạn lên cho mọi người tham khảo không? Đặc biệt là mình, đang rất cần tài liệu tham khảo. 
		
	
		
		
		
		
			
				__________________ 
		
		
		
		
	
	Hãy cho trước khi nhận  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#7 | 
| 
			
			
			
			 Nhập môn đệ tử 
			
		
			
			
			Tham gia ngày: Nov 2008 
				
				
				
					Bài gửi: 1
 
				
				
				:  | 
	
	
	
	
		
		
		
		 mình khônh hiểu điều các bạn nói . Thông cảm có thể giải thích cho mình hiểu 
		
	
		
		
		
		
		
	
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#8 | 
| 
			
			
			
			 Đệ tử 6 túi 
			
		
			
			
			Tham gia ngày: Nov 2007 
				Nơi Cư Ngụ: BK TP HCM 
				
				
					Bài gửi: 136
 
				
				
				:  | 
	
	
	
	
		
		
		
		 giao tiếp máy tính với 18f4550 cũng giống như 16f877a bạn đã làm với con này chưa,bạn có thắc mắc ji,cứ hỏi mọi người ở đây có thể giúp bạn,con code thì đơn giản lắm 
		
	
		
		
		
		
		
	
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#9 | 
| 
			
			
			
			 Đệ tử 3 túi 
			
		
			
				
			
			
			Tham gia ngày: Aug 2008 
				
				
				
					Bài gửi: 53
 
				
				
				:  | 
	
	
	
	
		
		
		
		 Nói thiệt là mấy vụ giao tiếp máy tình minh không thạo mấy. Tại mình chưa làm giao tiếp máy tính bao giờ hết. Bạn thông cảm. Bạn có thể cho mình it ý tưởng về giao tiếp máy tính không. Thanks a lot! 
		
	
		
		
		
		
			
				__________________ 
		
		
		
		
	
	Hãy cho trước khi nhận  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#10 | 
| 
			
			
			
			 Đệ tử 6 túi 
			
		
			
			
			Tham gia ngày: Nov 2007 
				Nơi Cư Ngụ: BK TP HCM 
				
				
					Bài gửi: 136
 
				
				
				:  | 
	
	
	
	
		
		
		
		 giao tiếp máy tính : truyền nhận giữa máy tính và vi điều khiển chủ yếu qua 3 cổng :com,lpt,usb, bạn nên làm cổng com trước vì loại này đơn giản 
		
	
		
		
		
		
		
	
	- trước tiên bạn cần có phần cứng: mạch vi điều khiển pic và phần giao tiếp (max 232 và 4 cái tụ) - dùng c,vb, hay matlab có hỗ trợ oncom giao tiếp, dùng các chương trình này tao giao diện truyền và nhận dữ liệu,... bạn nên thực hiện từng bước vướng mắc chỗ nào thì post bài lên đây mọi người sẽ giúp đỡ bạn  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#11 | 
| 
			
			
			
			 Nhập môn đệ tử 
			
		
			
			
			Tham gia ngày: Dec 2008 
				
				
				
					Bài gửi: 2
 
				
				
				:  | 
	
	
	
	
		
		
		
		 các huynh có tai liệu viết phần mềm truyền dữ liệu bằng delphi7 ra cổng COM ko, đệ đang mày mò mai mà không ra,mong các huynh giúp. đệ đã tìm nhưng lại phải sử dụng thư viện dll có sẵn nên nhiều chỗ chưa hiểu lắm. 
		
	
		
		
		
		
		
	
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
![]()  | 
	
	
		
  | 
	
		
  |