Giao tiếp với IC ghi dịch 74HC595

0
6264

 

74hc595

74HC595 thuộc dòng 74xx595 (xx là ký hiệu có thể khác nhau giữa các hãng) là IC ghi dịch 8bit chốt dữ liệu, đầu vào nối tiếp, đầu ra song song. Dùng để mở rộng cổng ra của MCU (Vi điều khiển) sử dụng giao tiếp SPI. Chúng ta có thể mắc nối tiếp các IC 595 với nhau để mở rộng tùy thích.

74hc595-pinout

74HC595 Pinout

Giao tiếp SPI với IC 595 gồm 3 đường:

  • DATA: (14) – Dữ liệu từ MCU sẽ đưa vào chân này, dữ liệu được đưa vào theo kiểu nối tiếp. Để dễ hình dung, bạn có thể hiểu giống như bạn đưa các đồng xu vào ống vậy. Tức dữ liệu sẽ được đẩy dồn vào các ngăn nhớ của 595.
  • CLK: (11) – Đây là tín hiệu đồng bộ quá trình giao tiếp giữa MCU và IC 595. Cứ mỗi bit dữ liệu được gửi đi đồng nghĩa với việc gửi đi 1 xung clock. Tức khi có 1 xung tích cực ở sườn dương (từ 0 lên 1) thì 1 bit sẽ được dịch vào IC.
  • SCK: (12) – Là chân Shift Clock, dùng để chốt dữ liệu. Khi có 1 xung tích cực ở sườn dương thì dữ liệu ở trong IC 595 sẽ được đẩy ra các chân Output tương ứng, và bạn có thể đẩy dữ liệu ra bất cứ lúc nào.
    VD: Bạn dịch 3bits vào IC, khi có tín hiệu chốt, dữ liệu sẽ được đưa ra ở Qa – Qb – Qc. Chiều dịch dữ liệu là từ Qa đến Qh. Vì vậy nên cần chú ý chiều dịch dữ liệu.

Một số chân chức năng khác trên IC 595:

  • OE (13): Output Enable – Dữ liệu được phép xuất ra khi chân này ở mức tích cực thấp.
  • MR (10): Memory Clear – Khi chân này ở mức tích cực thấp sẽ xóa dữ liệu đã đưa vào IC.
  • Q7′ (9): Chân dữ liệu nối tiếp, chân này sẽ nối với chân DATA của IC 595 tiếp theo trong trường hợp mắc nối tiếp nhiều IC. Dữ liệu sẽ được dịch qua chân này khi đã dịch đủ 8bits cho IC trước đó.

 

74hc595-

Sơ đồ vào ra của IC 74HC595

 

Code tham khảo giao tiếp với 74HC595 trên MSP430 điều khiển led chạy qua chạy lại. Các bạn có thể nhìn trong phần khai báo để nối mạch cho đúng chức năng của từng chân với MCU.

 

Khi muốn gửi dữ liệu có độ dài lớn, trong khi thanh ghi của MSP430G2xxx chỉ là 16bits, vì vậy bạn cần cắt dữ liệu thành các đoạn 16bits để gửi đi.

Khi tôi gửi 32bits tới 4 IC 74HC595, tôi sẽ phải gửi 2 lần:

Leave a Reply