Điều khiển ma trận 8*8 dùng Psoc

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

0
453
lượt xem
208
download

Điều khiển ma trận 8*8 dùng Psoc

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

Xác định cho chân LED ma trận. Ta dùng đồng hồ xác định cũng được . Vì mỗi ma trận LED được cấu tạo bởi bởi các hàng và các cột trong đó các hàng là cực Anot của LED và cột là Katot của LED.

Chủ đề:
Lưu

Nội dung Text: Điều khiển ma trận 8*8 dùng Psoc

  1. Điều khiển ma trận 8*8 dùng Psoc Nguồn : biendt.biz  Bài này tôi giới thiệu với các pác làm led ma trận 8x8 đơn giản dùng chip Psoc. Hiện thị chữ " BIENDT" ta quét cột * Chuẩn bị : 1 LED ma trận 8*8. Hiện này trên thị trường có loại LED 8*8 hai mầu đỏ và xanh Xác định cho chân LED ma trận. Ta dùng đồng hồ xác định cũng được . Vì mỗi ma trận LED được cấu tạo bởi bởi các hàng và các cột trong đó các hàng là cực Anot của LED và cột là Katot của LED.
  2. Hay các pác có thể xem hình dới đây để xác định: Để như trên thì thứ tự chân như sau: Đây là LED hai mầu đỏ (D) và xanh (X) với hàng chung hay Anot chung! Nhìn trên thứ tự đó thì : H1 D1 X1 H2 D2 X2 H3 D3 X3 H4 D4 X4 H5 D5 X5 H6 D6 X6 H7 D7 X7 H8 D8 X8 Ỏ đây tôi chỉ dùng mầu đỏ thôi! * Mạch nguyên lý :
  3. Với mạch trên tôi dùng + A1015 để kích dòng cho các hàng + ULN2803 để ổn định dòng để đèn sáng đều * Nguyên lý hoạt động.
  4. Tại mỗi thời điểm ta chỉ có một đèn LED trên 1 cột sáng do ta quét 8 cột với tần số nhanh do mắt con người có sự lưu ảnh nên tại một thới điểm ta sẽ nhìn thấy toàn bộ kí tự. Để cho đèn D1 sáng ta phải cho vào hàng 1 điện áp 5V và cột 1 điện áp âm. Đối với mạch trên do ta sử dụng A1013 nên chân điều khiển vào Bazo phải là 0V. Nên ta phải tính các ký tự hiện thị ở mức 0.tức là một mảng kí tự gồm 9 phần tử trong đó có 1 phần tử đưa tất cả các hàng về 0 V để tắt toàn bộ hàng đó! Để làm chữ chạy ta phải thêm 1 biến vào để hiện thị các kí tự ra hàng! * Chương trình điều khiển. Ỏ đây các hàng ta nối với P0 với mức logic là 0 (Điều khiển Transitor A1015) Các cột ta nối với P2 với mức logic là 0 //---------------------------------------------------------------------- // C main line //-----------------------------------------------------------------------
  5. #include // part specific constants and macros #include "PSoCAPI.h" // PSoC API definitions for all User Modules unsigned char kytu1[9]; // mang 9 phan tu cua cac hang unsigned char k=0; bien xac dinh cac ki tu unsigned int n; void delay() { for(n=0;n
  6. kytu1[4]=0x76; kytu1[5]=0x89;kytu1[6]=0xFF;kytu1[7]=0xFF;kytu1[8]=0xFF;break;} //CHU I case 2: {kytu1[0]=0xFF;kytu1[1]=0x7E;kytu1[2]=0x7E;kytu1[3]=0x7E; kytu1[4]=0x00; kytu1[5]=0x7E;kytu1[6]=0x7E;kytu1[7]=0xFF;kytu1[8]=0xFF;break;} //CHU E case 3: {kytu1[0]=0xFF;kytu1[1]=0xFF;kytu1[2]=0x00;kytu1[3]=0x6E; kytu1[4]=0x6E; kytu1[5]=0x6E;kytu1[6]=0x6E;kytu1[7]=0xFF;kytu1[8]=0xFF;break;} //CHU N case 4: {kytu1[0]=0xFF;kytu1[1]=0x00;kytu1[2]=0xFE;kytu1[3]=0xFD; kytu1[4]=0xFB; kytu1[5]=0xF7;kytu1[6]=0xEF;kytu1[7]=0xDF;kytu1[8]=0x00;break;} //CHU D case 5: {kytu1[0]=0xFF;kytu1[1]=0xFF;kytu1[2]=0x00;kytu1[3]=0x7E; kytu1[4]=0x7E; kytu1[5]=0x7E;kytu1[6]=0x7E;kytu1[7]=0x81;kytu1[8]=0xFF;break;} //CHU T case 6: {kytu1[0]=0xFF;kytu1[1]=0xFE;kytu1[2]=0xFE;kytu1[3]=0xFE; kytu1[4]=0x00; kytu1[5]=0xFE;kytu1[6]=0xFE;kytu1[7]=0xFE;kytu1[8]=0xFF;break;} } //DAU DONG case 7: {kytu1[0]=0xFF;kytu1[1]=0xFF;kytu1[2]=0xFF;kytu1[3]=0xFF; kytu1[4]=0xFF;kytu1[5]=0xFF;kytu1[6]=0xFF;kytu1[7]=0xFF;
  7. kytu1[8]=0xFF;break;} void hienthi(void) { unsigned char i,j,lap; unsigned char cot[8]={0xFF,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F}; //phan tu quet cot for(j=0;j
  8. PRT0DR=0xFF; PRT2DR=0xFF; } } } } void main(void) { while(1) { hienthi(); k=k+1; if(k==7) { k=0; } } } Ngoài ra các pác có thể hiện thị chữ khác chỉ cần tính chữ hiện thị trong mảng kí tự là OK!  

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản