1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Điều khiển IO bằng sáng từng LED

6 303 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Điều khiển IO bằng sáng từng LED
Tác giả Biendt, Nguyenvan Bien
Định dạng
Số trang 6
Dung lượng 209,79 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Điều khiển IO bằng sáng từng LEDNguồn : biendt.biz Đầu tiên để học được vi điều khiển là ta lập trình bật tắt đèn LED cho nó quen với với việc vào ra của vi điều khiển ở đây tôi dùng con

Trang 1

Điều khiển IO bằng sáng từng LED

Nguồn : biendt.biz 

Đầu tiên để học được vi điều khiển là ta lập trình bật tắt đèn LED cho nó quen với với việc vào ra của vi điều khiển ở đây tôi dùng con CY8C29466 không có các pác dùng con khác cũng được Và bài này tôi đã test trên thực tế nên chương trình ko có gì sai Con này thì ta không mô phỏng được vì Protues không hỗ trợ

1: Lắp mạch

Ở đây tôi dùng điều khiển bằng cách bơm dòng cho vi điều khiển Dùng nguồn

Trang 2

5V cấp cho cả dãy LED và CY8C29466.

Các pác gắn lần lượt 8 con LED vào lần lượt các chân Port0 tương ứng của vi điều khiển Chiều của catot của LED được nối vào với vi điều khiển qua các con trở 330 còn đầu Anot của 8 con LED được nối chung với nhau lên 5V (Hình vẽ) Thêm 1 mạch reset cho mạch: dùng 1 công tắc nối với chân số 19 thông qua 1 điện trở 1k và đầu kia được nối lên VCC Khi công tắc được đóng thì mạch sẽ tự reset Còn 1 tụ được nối giữa chân 28 và 14 là để không bị mất nguồn trong khoảng thời gian ngắn

Sơ đồ mạch:

2 : Nguyên lý hoạt động

Trang 3

Do nguồn 5V được nối từ LED vào vi điều khiển nên khi chân vi điều khiển 0V thì đèn sáng còn 5V thì đèn tắt Psoc có cái hơi khác do các dòng vi điều khiển khác

là nó không bộ dao động ngoài mà nó tích hợp bên trong nên việc lắp mạch và điều khiển rất rễ ràng với tốc độ xử lý lên tới 48MHZ

3: Lập trình

Đầu tiên các pác chọn drives cho Port0 là tất cả ở chế độ strong vì ở mức này ta

có thể điều khiển được cả 2 khóa của trong con vi điều khiển (Để bit được làm cái này các pác vào phần mềm của nó chỉnh lại là ok ở đây tôi không hướng dẫn cái này)

Để điều khiển 1 LED ta chỉ cần cho chân đó xuống 0V Tắt đi cho nó mức 5V

Ví dụ : Tôi muốn cho Port0_0 sáng thì tôi tính mã như sau: Tôi cho Port0_0 ở mức 0 còn các Port0_1 đến Port0_7 bằng 1 Tính mã nhị phân 4 bít ta được : 0xfe Tắt nó đi thì ngược lai!

Chương trình:

// -

// Bai tap nhay den LED linh tinh tu 1 den 8 va nguoc lai

// 8 LED duoc noi voi Port 0 (Lan luot)

// Viet boi biendt

// nguyenvanbientbd47@gmail.com

// ngoai cac kieu nhay nay cac ban co the dieu chinh thanh kieu den theo y thich // -

#include // part specific constants and macros

Trang 4

#include "PSoCAPI.h" // PSoC API definitions for all User Modules

#include "ports.h"

// Dinh ngia cac gia tri

#define LED0 0xfe // LED 0

#define LED1 0xfd

#define LED2 0xfb

#define LED3 0xf7

#define LED4 0xef

#define LED5 0xdf

#define LED6 0xbf

#define LED7 0x7f // LED 7

//Nhap 1 mang li tu gom cac den LED tu 0 - 7

unsigned char LED_code[8]={LED0,LED1,LED2,LED3,LED4,LED5,LED6,LED7}; // Ham tao thoi gian tre//

void delay()

{

unsigned int i;

for(i=0;i<10000;i++)

for(i=0;i<20000;i++);

}

void hienthi(unsigned char x) // ham tuy chon hien thi

{

switch(x)

Trang 5

{

case 0:{PRT0DR=0xff;PRT0DR=LED0;break;} //LED1 case 1:{PRT0DR=0xff;PRT0DR=LED1;break;}

case 2:{PRT0DR=0xff;PRT0DR=LED2;break;}

case 3:{PRT0DR=0xff;PRT0DR=LED3;break;}

case 4:{PRT0DR=0xff;PRT0DR=LED4;break;}

case 5:{PRT0DR=0xff;PRT0DR=LED5;break;}

case 6:{PRT0DR=0xff;PRT0DR=LED6;break;}

case 7:{PRT0DR=0xff;PRT0DR=LED7;break;} //LED8 }

}

void main()

{

PRT0DR=1; //Khoi tao

while(1)

{

unsigned char m; // nhap nhay kieu 1

for(m=0;m<8;m++) //Lap 8 lan

{

hienthi(m);

delay();

}

if(m==8) //nhap nhay kieu 2

{

unsigned char n;

for(m=0;m<8;m++)

Trang 6

{

PRT0DR=LED_code[7-m];

delay();

}

if(n==8); // Mhap nhay kieu 3

{

unsigned char y;

for(y=0;y<8;y++)

{

PRT0DR=~PRT0DR; // dao toan bo bit 0

delay();

//PRT0DR=0xff;

}

}

}

}

}

Bài này tôi lập trình thế này là quá dài nhưng đầu tiên cần nhớ lại kiến thức C Đây là việc điều khiển theo ý thích của tôi còn các pác muốn LED sáng theo ý thích các pác thì nên sửa lại chút ít!

Mảng này không mô phỏng được nhưng mà tôi đã test trên mạch thật chạy rất ngon!

 

Ngày đăng: 19/10/2013, 06:15

HÌNH ẢNH LIÊN QUAN

Sơ đồ mạch: - Điều khiển IO bằng sáng từng LED
Sơ đồ m ạch: (Trang 2)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w