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

Chia sẻ: Nguyenhoang Nhan | Ngày: | Loại File: PDF | Số trang:6

0
275
lượt xem
193
download

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

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Đầ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

Chủ đề:
Lưu

Nội dung Text: Điều khiển IO bằng sáng từng LED

  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
  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
  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
  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
  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
  6. { PRT0DR=LED_code[7-m]; delay(); } if(n==8); // Mhap nhay kieu 3 { unsigned char y; for(y=0;y

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản