Trung tâm đào tạo thiết kế vi mạch Semicon


  • ĐĂNG KÝ TÀI KHOẢN ĐỂ TRUY CẬP NHIỀU TÀI LIỆU HƠN!
  • Create an account
    *
    *
    *
    *
    *
    Fields marked with an asterisk (*) are required.
wafer.jpg

MSP430 - SPI - Giao tiếp với IC 74HC595

E-mail Print PDF
Bài này sẽ giới thiệu cho các bạn giao tiếp SPI giữa MSP430 và IC 74HC595. Công cụ lập trình được sử dụng trong bài này là phần mềm IAR Embedded Workbench.
SPI là chuẩn truyền thông đồng bộ nối tiếp theo kiểu Master-Slave. SPI là một cách truyền song công nghĩa là tại một thời điểm quá trình truyền và nhận có thể xảy ra đồng thời. Chuẩn SPI giao tiếp qua 4 đường:
SCK: xung nhịp cho giao tiếp SPI, chỉ được tạo bởi Master có tác dụng đồng bộ dữ liệu truyền.
[MISO-Master Input Slave Output: là đường dữ liệu truyền từ Slave về Master.
MOSI-Master Output Slave Input: là đường dữ liệu truyền từ Master đến Slave.
SS-Slave Select: là đường chọn Slave cần giao tiếp.
TRUYỀN THÔNG SPI TRÊN MSP430 LAUNCHPAD:
Sơ đồ kết nối phần cứng với 74HC595:
 

Hoạt động:
Master MSP430 sẽ truyền từng chuỗi dữ liệu 8 bit là mã hex từ 0 đến 9 của led 7 đoạn qua Slave là thanh ghi dịch 74HC595 được đồng bộ bằng xung SCK trên chân P1.5. Lúc đầu nạp cho USICNT=8 để truyền 8 bit dữ liệu; sau khi truyền xong 8 bit này, ta nạp lại giá trị 8 cho USICNT để truyền 8 bit tiếp theo.
Ta dùng chân P1.4 để tạo xung dương kích cho 74HC595 xuất dữ liệu ra led 7 đoạn

Clip bài giảng:

Source code:

Mã:
//******************************************************************************   //  MSP430G2x21/G2x31 HALF DUPLEX WRITE   //   //Description: SPI Master communicates with SPI Slave using   //  the USI . Slave data should increment from 0 to 9 and   //    displays on led 7 segment.   //                Slave                      Master   //              74HC595                  MSP430G2x21/G2x31   //            -----------------          -----------------   //            |                |        |                |   //            |                |        |                |   // led 7seg<--|QA-QH            |        |                |   //            |                |        |                |   //            |                |        |                |   //            |                |        |                |   //            |                |        |            P1.0|-> LED  //  Texas Instruments Inc.   //  Built with CCS Version 4.2.0 and IAR Embedded Workbench Version: 5.10   //******************************************************************************       #include <msp430g2221.h>   int i=0;   int b[10]={0x40,0xF9,0x24,0x30,0x19,0x12,0x02,0xF8,0x80,0x10};       void main(void)   {     WDTCTL = WDTPW + WDTHOLD;                      // Stop watchdog timer     P1DIR |= 0x10;                                // Set P1.4 to output direction     USICTL0 |= USIPE6 + USIPE5 + USIMST + USIOE;  // Port, SPI Master     USICTL1 |= USICKPH + USIIE;                    // Counter interrupt, flag remains set     USICKCTL = USIDIV_2 + USISSEL_1;                  // /4 ACLK     USICTL0 &= ~USISWRST;                          // USI released for operation     USISRL = b[i];     USICNT = 8;                                    // init-load counter     _BIS_SR(LPM3_bits + GIE);                        // Enter LPM3 w/ interrupt   }       // USI interrupt service routine   #pragma vector=USI_VECTOR   __interrupt void universal_serial_interface(void)   {     // create positive edge clock on p1.4     P1OUT &= ~0x10;     __delay_cycles(1250);     P1OUT |= 0x10;     USISRL = b[i] ;     if(i==9)       {           i=0;       }       else{           i++;       }     USICNT = 8;                          // re-load counter   }  
Nguồn; http://codientu.org

Bạn có đam mê ngành thiết kế vi mạch và bạn muốn có mức lương 1000 usd cùng lúc bạn

đang muốn tìm một Trung tâm để học vậy hãy đến với ngành vi mạch tại SEMICON

  HotLine: 0972 800 931 Ms Duyên

 

 

 

Related Articles

Chat Zalo