PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   Help truyền dữ liệu nối tiếp qua 1 chân của pic (http://www.picvietnam.com/forum/showthread.php?t=1222)

tieukiep84 26-06-2007 10:12 AM

Help truyền dữ liệu nối tiếp qua 1 chân của pic
 
giả sử mình có một mảng
int8 const a[5]={3,5.6,8} chẳng hạn bây giờ muốn truyền qua chân B1 của con pic bắt đầu từ phần tử a[0] cho đến a[5] mỗi một phần tử phải truyền đủ 8 bit. sau đó mơi truyền đến phần tử tiếp theo.

tranvanthuong 26-06-2007 06:09 PM

bạn phải nói rõ vấn đề của bạn,bạn có phải muốn truyền dữ liệu nối tiếp phải ko?
mình có 1 giải thuật thế này:
Code:

vòng lặp 4 phần tử mãng
 {
  vòng lặp 8 (bit) biến chạy là i,i từ 0 đến 7

    {
      + if(kiemtra(i)) set B1=1;
          else B1=0;
    //tao xung truyền nếu cần
  }
}

bạn cứ theo giài thuật trên đi có gì thì liên hệ với tui
chúc thành công

Mecha 26-06-2007 06:50 PM

Thuật toán của bạn tranvanthuong đúng với yêu cầu của bạn tieukiep84 rồi. Tuy nhiên trong trường hợp có >= hai bit liền kề nhau là 11 hoặc 00 thì phía bộ nhận liệu có phân biệt được đó là hai hay nhiều bit hay không?

doianhve 26-06-2007 10:06 PM

Hoac ban co the lam nhu sau
int trang_thai;
int8 i,j;
for(i=0;i<=4;++i) //quay vong 5 bytes
{
for(j=0;<=7;++j) //kiem tra trang thai bit cua 8bit
{
//kiem tra bit:Bit_test____se cho ra ve muc logic cua vi tri Bit
Trang_thai=bit_test (a[i],j); // 1 hoac 0
Output_bit(pin_B1,Trang_thai) //truyen trang thai Bit ra cong
}
}
Chuc ban thanh cong !

Mecha 26-06-2007 10:12 PM

Trích:

Nguyên văn bởi doianhve (Post 9622)
Hoac ban co the lam nhu sau
int trang_thai;
int8 i,j;
for(i=0;i<=4;++i) //quay vong 5 bytes
{
for(j=0;<=7;++j) //kiem tra trang thai bit cua 8bit
{
//kiem tra bit:Bit_test____se cho ra ve muc logic cua vi tri Bit
Trang_thai=bit_test (a[i],j); // 1 hoac 0
Output_bit(pin_B1,Trang_thai) //truyen trang thai Bit ra cong
}
}
Chuc ban thanh cong !


Thuật toán của bạn và @tranvanthuong cơ bản là tương tự như nhau. Vấn đề ở đây như mình đã nói đó là trong trường hợp có >= hai bit liền kề nhau là 11 hoặc 00 thì phía bộ nhận làm cách nào để phân biệt được đó là hai hay nhiều bit? Vì khi đó không có sườn xung để chốt dữ liệu.

doianhve 26-06-2007 11:50 PM

ok! nếu vậy chúng ta cần thêm một chân nữa điều khiển,tính năng giống chân Clock là được.

tieukiep84 27-06-2007 07:55 AM

ý mình là muốn dùng 2 chân con pic để quet ma trận. chân thứ nhất dùng để xuất dữ liệu, mình xuất nối tiếp sau đó qua mấy con IC ghi dịch, qua một tầng IC chốt để chuyển thành song song để xuất dữ liệu ra, còn chân thứ 2 dùng để quét cột. Vì trong thực tế nếu xuất dữ liệu song song thì con 16f877 rất hạn chế về chân khi quét nhiều hàng.

luanktd 23-07-2007 12:04 AM

cho mình hỏi có loại pic nào sử dụng được mạng can ko vậy

namqn 23-07-2007 05:26 PM

Trích:

Nguyên văn bởi luanktd (Post 10262)
cho mình hỏi có loại pic nào sử dụng được mạng can ko vậy

Bạn xem ở đây nhé:

http://www.microchip.com/ParamChartS...g=en&pageId=74

Thân,


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

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam