View Single Post
Old 23-06-2009, 05:40 PM   #171
bravesoldier
Đệ tử 1 túi
 
Tham gia ngày: Apr 2009
Bài gửi: 18
:
Em tra datasheet của PIC16F877A để tìm hiểu module SPI và xem cả example trong CCS nữa nhưng khi thử trên bo cắm với 5 con 595 thì 40 con LED sáng loạn cả lên. Liệu em có dùng sai hay không? Bác nào dùng SPI cứng của PIC ko chỉ cho em với?
Code:
#include <16F877A.h>
#device *=16 ADC=8
#fuses NOWDT, XT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP
#use delay(clock=4000000)
#use fast_io(b)
#byte portb=0x6
#bit SCL = portb.0

void latch_data()
  {
    SCL=0;
    SCL=1;
  }

main()
  {
   byte i;
   set_tris_b(0);
   setup_spi(SPI_MASTER | SPI_H_TO_L | SPI_CLK_DIV_16); // tham kha?o Help
   
   SCL=1;
   while (true)
      {
       for (i=1; i<=5; ++i) {spi_write(0xAA);}
       latch_data();
       delay_ms(1000);

       for (i=1; i<=5; ++i) {spi_write(0x55);}
       latch_data();
       delay_ms(1000);
      }
  }
Em lắp xen kẽ 20 con LED xanh với 20 con LED đỏ, viết code để cho chúng nó nhấp nháy.
Theo như datasheet thì em dùng chân RC5 của PIC16F877A để xuất data ra chân 14 của con 595 đầu tiên, chân RC3 làm chân clock (SCK), chân RB0 chọn để chốt.
Em xin cám ơn!
bravesoldier vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn