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

Định dạng
Số trang 6
Dung lượng 209,79 KB

Nội dung

Đ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 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 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 #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) { 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++) { 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!   . Đ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. đượ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à

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

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w