Thông báo! Chúng tôi đang cố gắng khôi phục lại các link download, các bạn vui lòng tải lại sau (dự kiến 10/12/2022 hoàn thành). Cảm ơn các bạn!

Lập trình Psoc 1 với 8 hiệu ứng LED

TuanPi | 29.3.15 | | |
.
Psoc 1 7segone

Mục đích

Led đơn là bài toán đầu tiên khi bắt đầu với vi điều khiển. Trong dự án này sẽ thực hiện với 8 LED đơn với Psoc 1 (cụ thể là chíp CY8C24423A-24PXI) trên Kit phát triển của TBD Group.

Kit psoc 7segone
Kit phát triển của TBD Group
Sau khi học xong bài này bạn có thể tự lập trình cho mình nhiều hiệu ứng với LED đơn, ngoài ra có thể vận dụng linh hoạt cho các dự án sau này.

Yêu cầu Project

  • PSoC Designer- miễn phí phần mềm phát triển phần mềm được cung cấp bởi Cypress. Phiên bản 5.4 đã được sử dụng cho dự án này. Download
  • Kit phát triển của TBD hoặc Kit psoc 1 của Cypress

Code mẫu

//----------------------------------------------------------------------------
// Copyright 7segone
//
// Code 8 Led đơn 4 hiệu ứng
// Designed by Phan Hữu Tuấn
// Email: Phantuan.ktd@gmail.com
//----------------------------------------------------------------------------

#include <m8c.h>        // part specific constants and macros
#include "PSoCAPI.h"    // PSoC API definitions for all User Modul

#define P0 PRT0DR
#define P1 PRT1DR

const int MANG1[8]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
const int MANG2[8]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};
void delay(int t)
{
      unsigned int i,j;
      for(i=0;i<t;i++)
            for(j=0;j<100;j++);
}
void Hieuung1(void )
{
      int dem1=0;
      while (dem1++<6)
      {
            P0=0xff;
            delay(300);
            P0=0x00;
            delay(300);
      }
}
void Hieuung2(void )
{
      int dem2;
      for (dem2=0;dem2<8;dem2++)
      {
            delay(100);
            P0=MANG1[dem2];
      }
      for (dem2=0;dem2<8;dem2++)
      {
            delay(100);
            P0=MANG2[dem2];
      }
}
void Hieuung3(void )
{
      int dem3;
      for (dem3=0;dem3<10;dem3++)
      {
            P0=0x55;
            delay(300);
            P0=0xaa;
            delay(300);
      }
}
void Hieuung4(void )
{
      int dem4;
      int dem5=0;
      while (dem5++<5)
      {
            for (dem4=0;dem4<8;dem4++)
            {
                  delay(100);
                  P0=MANG1[8-dem4];
            }
            for (dem4=0;dem4<8;dem4++)
            {
                  delay(100);
                  P0=MANG2[8-dem4];
            }
      }
}
void main(void )
{
      for (;;)
      {
            Hieuung1();
            Hieuung2();
            Hieuung3();
            Hieuung4();
      }
}
//----------------------------------------------------------------------------
// Date: 16/1/2015
// Email: Phantuan.ktd@gmail.com
//----------------------------------------------------------------------------

Video

Hỏi đáp

Nếu gặp bất kỳ vấn đề gì bạn có thể bình luận phía bên dưới hoặc gửi về hòm thư: Phantuan.ktd@gmail.com
 Xem thêm Tổng quan và các thể hệ PSoC.
Lên đầu trang