PIC Vietnam

Go Back   PIC Vietnam > Truyền thông > Giao tiếp USB, CAN, I2C, SPI, USART...

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Giao tiếp USB, CAN, I2C, SPI, USART... Những giao tiếp được tích hợp trên PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 25-01-2010, 02:45 PM   #1
dt_cn
Đệ tử 1 túi
 
dt_cn's Avatar
 
Tham gia ngày: Oct 2008
Bài gửi: 11
:
Vâng ạ em cảm ơn anh .
Đề tài của em làm là nhà thông minh ý định của em là định sử dụng 10-15con PIC6F88 slave đặt ở các khu vực hiện trường(như cầu thang,cửa,nhà bếp....)và 1 con master 16F877A mater thu thập dữ liệu từ các slave và kết nối với PC,tốc độ xung clock của em là 500khz,cáp xoắn đôi thì những ý tưởng của em đó liệu trong thực tế có ổn không anh?
Mong các bá giúp đỡ thanks các bác nhiều.
dt_cn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-01-2010, 02:52 PM   #2
dt_cn
Đệ tử 1 túi
 
dt_cn's Avatar
 
Tham gia ngày: Oct 2008
Bài gửi: 11
:
Em tìm hiểu trên mạng thì được biết có con IC 82B715 để nâng cao khoảng cách truyền thông I2C ,nhưng em ko biết con này có mặt trên thị trường không nhỉ?em tìm mua mà không thấy có ,bác nào biết chỉ giùm em với.
thanks
dt_cn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-01-2010, 11:44 AM   #3
dt_cn
Đệ tử 1 túi
 
dt_cn's Avatar
 
Tham gia ngày: Oct 2008
Bài gửi: 11
:
Trích:
Nguyên văn bởi dt_cn View Post
Vâng ạ em cảm ơn anh .
Đề tài của em làm là nhà thông minh ý định của em là định sử dụng 10-15con PIC6F88 slave đặt ở các khu vực hiện trường(như cầu thang,cửa,nhà bếp....)và 1 con master 16F877A mater thu thập dữ liệu từ các slave và kết nối với PC,tốc độ xung clock của em là 500khz,cáp xoắn đôi thì những ý tưởng của em đó liệu trong thực tế có ổn không anh?
Mong các bá giúp đỡ thanks các bác nhiều.
Không có bác nào giúp em à !huhu
dt_cn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-04-2010, 06:58 PM   #4
hangocminh1989
Đệ tử 6 túi
 
Tham gia ngày: Apr 2009
Bài gửi: 132
:
không có hình các bạn ơi????????????mình không hiểu
hangocminh1989 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-04-2010, 03:23 PM   #5
keluhanh
Nhập môn đệ tử
 
Tham gia ngày: Apr 2010
Bài gửi: 3
:
bác nào có chương trình giao tiếp i2c với con TC74 và 16F877A ko,cho mình xin với
keluhanh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-08-2010, 06:03 AM   #6
manhdungmta
Nhập môn đệ tử
 
Tham gia ngày: May 2010
Bài gửi: 10
:
khi giao tiếp i2c giữa hai pic 16f877a có bác nào gặp trường hợp M truyền không đúng địa chỉ nhưng S vẫn nhận khí thế không? cái này em chưa làm mạch thật, mới mô phỏng và thấy vậy.
manhdungmta vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-08-2010, 12:56 PM   #7
manhdungmta
Nhập môn đệ tử
 
Tham gia ngày: May 2010
Bài gửi: 10
:
hì, giờ mới làm mạch thật giao tiếp I2C giữa 1 con master ( 16f877a ) và 2 con sleve ( 16f877a ) thấy nó đều hoạt động đúng, chứ không như mô phỏng. ngày trước thì chỉ là làm giao tiếp với ds1307 thôi, mãi đến hôm nay có người nhờ mới làm tới giao tiếp giữa các pic với nhau. non quá, mong các bác giúp đỡ nhiều nhé.
manhdungmta vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-08-2010, 01:00 PM   #8
manhdungmta
Nhập môn đệ tử
 
Tham gia ngày: May 2010
Bài gửi: 10
:
à, tới em định học về ARM có bác nào rỗi rãi chỉ giúp em nhé
manhdungmta vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-10-2010, 10:07 PM   #9
manhdungmta
Nhập môn đệ tử
 
Tham gia ngày: May 2010
Bài gửi: 10
:
bác namquan cho em hỏi, vì sao khi em nạp luôn ct example về ethenet của 16f877a có sẵn trong mikroc lại không chạy gì cả, nhưng vẫn cái mạch ấy em nạp ct của con 18f4580 vẫn chạy ạ, đó là vì sao hả bác?
manhdungmta vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-10-2010, 04:39 PM   #10
chungcb86
Đệ tử 1 túi
 
chungcb86's Avatar
 
Tham gia ngày: Dec 2009
Bài gửi: 24
:
I2C không chịu chay.

Các bác giúp e vụ i2c này với. code lấy của bác Hoàn. mô phỏng thì chạy cứ ầm ầm. nhưng vô mạch thật thì ... híc híc e nó nằm im.
Đây là code của Master
Code:
#include <16F877A.H>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use Delay(Clock=4000000)

#use i2c(master, sda=PIN_C4, scl=PIN_C3, force_hw)

void write_I2C(int8 value, int8 slave_addr)
{
   i2c_start();
   i2c_write(slave_addr);
   i2c_write(value);
   i2c_stop();
}

int8 read_I2C(int8 slave_addr)
{
   int8 value_re;
   i2c_start();
   i2c_write(slave_addr + 1);
   value_re = i2c_read(0);
   i2c_stop();
   return value_re;
}

void main()
{
   int8 value_re;
   int8 i;
   const int8 N = 8;
   const int8 DIGITS[N] ={ 0b11111111,
                           0b11111110,
                           0b11111100,
                           0b11111000,
                           0b11110000,
                           0b11100000,
                           0b11000000,
                           0b10000000,
                          };
   const int8 slave_addr = 0x10;

   set_tris_b(0x00);
   while(1){
      for(i = 0; i<8; i++){
         write_I2C(DIGITS[i], slave_addr);
         delay_ms(500);
         value_re = read_I2C(slave_addr);
         output_b(value_re);
      }
   }
}

Còn đây là code của Slave:
Code:
#include <16F877A.H>
#fuses XT,NOWDT,NOPROTECT,NOLVP

#use delay(Clock=4000000)
#use i2c(SLAVE, SDA=PIN_C4, SCL=PIN_C3, address=0x10, force_hw)

int8 value = 0x01;

#INT_SSP
void i2c_isr()
{
   int8 state;

   state = i2c_isr_state();
   if(state < 0x80)
      value = i2c_read();
   if(state == 0x80){
      i2c_write(value);
   }
}

void main()
{
   enable_interrupts(GLOBAL);
   enable_interrupts(INT_SSP);

   set_tris_d(0x00);
   while(1){
      output_d(value);
   }
}

thay đổi nội dung bởi: chungcb86, 11-10-2010 lúc 04:50 PM.
chungcb86 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-10-2010, 09:51 AM   #11
chungcb86
Đệ tử 1 túi
 
chungcb86's Avatar
 
Tham gia ngày: Dec 2009
Bài gửi: 24
:
Bác nào sử bít code bị mắc ở đâu sửa giúp mình với.
chungcb86 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-11-2013, 06:01 PM   #12
BDA_6892
Nhập môn đệ tử
 
Tham gia ngày: May 2013
Bài gửi: 1
:
i2c

mình viết y chang nhưng sao không mô phỏng được
chỗ code của slave , cuối cùng là output_b chứ hả, mình thấy giá trị output của slave lúc nào cũng là value=0x01 ban đầu.....không có sự thay đổi nên chắc chưa có giao tiếp giữa slave và master.
BDA_6892 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-10-2010, 10:59 AM   #13
chungcb86
Đệ tử 1 túi
 
chungcb86's Avatar
 
Tham gia ngày: Dec 2009
Bài gửi: 24
:
ok mach đã chạy. nguyên nhân : đứt mạch nên 1 chân không được nối với trở thanh
chungcb86 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-10-2010, 10:02 AM   #14
liemcena
Nhập môn đệ tử
 
Tham gia ngày: Sep 2010
Bài gửi: 1
:
Giúp em i2c

giúp em i2c với em mới học về pic và i2c : dipswitch truyền dữ liệu cho master , master truyền cho slave ,slave hiển thị lên led(giống việc điều khiển đèn bằng dipswitch qua chuẩn i2c)
code Master:
#include <16F877A.H>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use Delay(Clock=4000000)
#byte portb=0x06
#define SLAVE_ADDRESS 0x10
#use i2c(master, sda=PIN_C4, scl=PIN_C3)
#use Fast_IO(b)
void write_I2C(int8 data)
{
i2c_start();
i2c_write(SLAVE_ADDRESS);
i2c_write(data);
i2c_stop();
}
void main()
{
int8 data;
set_tris_b(255);
data=input_b();
while(1)
{
write_I2C(data);
delay_ms(100);
}
}
code slave:

#include <16F877A.H>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(Clock=4000000)
#use i2c(SLAVE,SDA=PIN_C4,SCL=PIN_C3)
#define SLAVE_ADDRESS 0x10
#use Fast_IO(b)

void read_I2C()
{
int8 data;
i2c_start();
i2c_read(SLAVE_ADDRESS);
data=i2c_read();
delay_ms(100);
i2c_stop();
}


void main()
{
int8 data;
set_tris_b(0x00);

while(1)
{
read_I2C();
output_b(data);
}
}
không biết sai ở đâu nữa mô phỏng bằng proteus không chạy gì cả
Hình Kèm Theo
File Type: jpg untitled.JPG (223.4 KB, 22 lần tải)

thay đổi nội dung bởi: liemcena, 26-10-2010 lúc 10:55 PM.
liemcena vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-11-2010, 09:47 PM   #15
dark_dragon6789
Nhập môn đệ tử
 
Tham gia ngày: Mar 2009
Bài gửi: 4
:
em dùng code của bác Hoan cho vô protues thì không thấy chạy gì cả, không hiểu sai chỗ nào luôn
dark_dragon6789 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 11:51 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam