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

Quét LED 7_ Đếm 0-9999

8 2,1K 35
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 đề Quét Led 7_ Đếm 0-9999
Tác giả Biendt
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Điện Tử
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 8
Dung lượng 202,23 KB

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

Nội dung

Để hiện thị lên LED 7 vạch nếu mà ta muốn hiện thị số 1234 trên LED 7 vạch mà mỗi con LED 7 vạch nó lại tiêu tốn mất 1 Port của vi điều khiển như thế thì lãng phí cho chức năng của 1 vi

Trang 1

Quét LED 7_ Đếm 0-9999

Nguồn : biendt.biz 

Cái phần này tương đối khó tôi phải mất khá nhiều thời gian để tìm hiểu nguyên

lý quét mấy con LED 7 vạch này Để hiện thị lên LED 7 vạch nếu mà ta muốn hiện thị số 1234 trên LED 7 vạch mà mỗi con LED 7 vạch nó lại tiêu tốn mất 1 Port của vi điều khiển như thế thì lãng phí cho chức năng của 1 vi điều khiển như con PSoc.Để khắc phục điều này thì dùng phương pháp quét LED như thế đối với hiện thị 4 chân này ta chỉ mất có 12 chân vi điều khiển

1 : Lắp mạch

Hiện này trên thị trường có loại LED 7 vạch được đóng hộp thành 1 con với ghép của 4 con LED 7 vạch đơn Nhưng mà do giá thành mua con đóng hộp này tôi mua thế nào mà đắt hơn 2 con đôi ghép lại Nên tôi dùng phương pháp ghép vào để thành con LED 7 vạch này

Cấu tạo của nó như sau

Trang 2

Hiện có 2 loại là catot chung và anot chung nhưng ở đây tôi dùng Anot chung Con trên nó được chung các thanh LED : a chung a, b chung b và nó được điều khiển bởi các chân Anot như trên nó được điều khiển bởi 4 chân Khi cấp nguồn vào các chân abcd thì lúc này LED chưa sáng Khi ta cho nguồn vào các chân điều thì nó sẽ sáng cho vào chân điều khiển nào thì nó sẽ sáng LED tương ứng với chân điều khiển đó

Ví dụ : Ta cho 5V vào chân A1 còn nối đất cho chân a thì chỉ có thanh a của LED

số 1 sáng thôi tương tự như các LED khác cũng thế

Sơ đồ lắp mạch:

Trang 3

Ở đây tôi dùng Port2 để điều khiển các thanh trên LED 7 thanh còn các

Port1_4,Port1_5,Port1_6,Port1_7 để điều khiển hiện thị lần lượt các LED từ 1 đến 3.Các pác nhớ là lắp chuẩn các chân đấy nhé nếu mà lắp nhầm cái là nó không hiện thị như mong muốn đâu

Do quét 4 LED cùng 1 lúc nên dòng qua các LED sẽ yếu nên các LED sẽ sáng yếu ở đây tôi dùng con A1015 để kích dòng vào cho Các LED và nó được điều khiển bởi các Port1_4,Port1_5,Port1_6,Port1_7.Ở chân B của mỗi A1015 cho thêm con trở 1K cho đỡ nóng Transitor

hê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ự

Trang 4

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

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

Ở đây chúng ta dựa theo nguyên tắc quét ảnh vì mắt chúng ta có hiện tượng lưu ảnh trên võng mạch nên khi ta quét với tần số nhanh thì mắt chúng ta không có cảm giác là nó sáng lần lượt các LED mà có cảm giác là nó sáng tất.Đầu tiên ta phải gửi dữ liệu muốn hiện thị cho LED1 và chân bật chân điều khiển của LED1

đó lên để cho LED1 đó hiện thị Sau đó ta lại gửi tiếp dữ liệu muốn hiện thị LED

2 và cũng phải bật chân điều khiển của LED2 đó Để cho số tiếp theo hiện thị lên LED2 Cứ như thế cho LED 3 và LED4 Quá trình này được diễn ra nhanh với tần

số cao Nên ta ko thể có cảm giác là các LED sáng lần lượt Để kiểm tra nguyên

lý của nó các pác hãy tăng Delay lên để thấy rõ quét LED của nó!

Ví dụ: Để hiện thị được số 1234 trên 4 con LED 7 vạch Đầu tiên ta phải cho đèn

1 sáng sau đó đèn 2 sáng sau đó đến đèn 3 4 Ta cho các LED này hiện thị lần lượt và được lặp đi lặp lại với tần sô cao nên ta sẽ được số 1234 hiện thị trên LED

3 : Lập trình:

Dùng P2 và P1 ở chế độ Strong

// -

// Quet 4 LED 7 vach

// Dem so tu 0-9999

// Viet boi : biendt - biendt.biendt@gmail.com

Trang 5

// Dung Port2 noi vao lan luot tu a,b g

// Port1_4 den Port1_7 noi lan luot LED4-LED1

// C main line

// -

#include // part specific constants and macros

#include "PSoCAPI.h" // PSoC API definitions for all User Modules /* Dinh nghia cac ma hien thi so tu 0 den 9*/

#define S0 0x40 //So 0

#define S1 0xF9

#define S2 0x24

#define S3 0x30

#define S4 0x19

#define S5 0x12

#define S6 0x02

#define S7 0xF8

#define S8 0x80

#define S9 0x10 // So 9

/* Nhap 1 mang ki tu gom 10 phan tu bao gom cac so hien thi*/ unsigned char LED_code[10]={S0,S1,S2,S3,S4,S5,S6,S7,S8,S9}; /* Ham tao tre thoi gian*/

void delay(unsigned int t)

{

unsigned int i,j;

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

for(j=0;j

}

Trang 6

void hienthiso(unsigned char digit1,unsigned char digit2, unsigned char digit3, unsigned char digit4)

{

/* Hien thi so thu nhat*/

PRT2DR=LED_code[digit1];

PRT1DR=PRT1DR&0xef;

delay(1);

PRT1DR=PRT1DR|0x10;

/* Hien thi so thu hai*/

PRT2DR=LED_code[digit2];

PRT1DR=PRT1DR&0xdf;

delay(1);

PRT1DR=PRT1DR|0x20;

/* Hien thi so thu ba*/

PRT2DR=LED_code[digit3];

PRT1DR=PRT1DR&0xbf;

delay(1);

PRT1DR=PRT1DR|0x40;

/* Hien thi so thu thu 4*/

PRT2DR=LED_code[digit4];

PRT1DR=PRT1DR&0x7f;

Trang 7

delay(1);

PRT1DR=PRT1DR|0x80;

}

void main()

{

while(1)

{

unsigned m,n,x,y,lap;

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

{

for(n=0;n<10;n++)

{

for(x=0;x<10;x++)

{

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

{

for(lap=0;lap<200;lap++) // lap hien thi {

hienthiso(y,x,n,m);

delay(10);

}

}

}

}

}

Trang 8

}

}

Mạch đã Test ==>OK  

Ngày đăng: 05/11/2013, 16:15

HÌNH ẢNH LIÊN QUAN

Sơ đồ lắp mạch: - Quét LED 7_ Đếm 0-9999
Sơ đồ l ắp 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

🧩 Sản phẩm bạn có thể quan tâm

w