Quét ma trận phím 3 x 4 hiện thị LED 7seg (Chip Psoc)

Quét ma trận phím 3 x 4 hiện thị LED 7seg (Chip Psoc)


Muốn học tốt được vi điều khiển thì việc đấu tiên ta nên làm quen những bài tập cơ bản của vi điều khiển. ở đây là quan trọng IO như :LED, nút nhấn, ma trận....Hôm nay tôi giới thiệu đến các bạn 1 thuật toán quét ma trận phím đầu vào. Ở đây là quét ma trận 3x4 với thuật toán quét đơn giản nhưng mà chưa tối ưu. Giá trị của ma trận phím được hiện thị lên LED 7Seg!
Chú ý : Đây là bài thực hành nên tôi không đưa các linh kiện như :ULN2803, A1015....mà ghép nối trực tiếp
1 ) Cấu tạo của ma trận phím 3x4


Ma trận phím này được cấu tạo bởi : 3 hàng và 4 cột. các hàng và cột được nối với các chân cổng vào ra của vi điều khiển Psoc CY8C29466. Khi một phím được bấm, nó sẽ nối một hàng và một cột tương ứng. Như vậy ta sẽ có 12 nút nhấn mà chỉ mất có 7 chân vi điều khiển còn muốn tiếp kiệm hơn nữa là các bạn dùng giải mã 3 >> 8 (74138) hay dùng 74ls154.
Khi nút 0 được nhấn thì nó nối giữa cột 1 hàng 1. CÒn nút 1 được nhấn thì cột 2 và hàng 1 được nối hay nút 2 được nhấn thì nối giữa cột 3 và hàng 1... cứ như vậy đến nút thứ 12!
Đối với kết cấu của ma trận này chưa được chống nhiễu phím. Nếu muỗn chống nhiễu thì các bạn thêm con tụ khoảng 104 vào các nút nếu không muốn thì chống nhiễu bằng phần mền cũng được!
2 ) Mạch hiện thị.
Ở mạch này ta lại sử dụng cách quét LED 7. Loại LED này mua ngoài chợ chỉ có 5k.
Loại này là loại Anot chung. Các chân a,b,c,d,.. được nối với nhau và hai chân điều khiển dùng để điều khiển hiện thị LED.Có nghĩa là muốn cho LED 1 sáng thì ta cấp dòng vào cho chân điều khiển của LED 1 và tương tự như như LED2.Đối với LED này muốn cho LED sáng thì phải cấp vào các chân điều khiển mức 1 và các chân a,b,c,..mức 0 (Mã LED phải tính ở mức 0)
Nguyên lý quét LED ở đây tôi đã trình bày ở trong mục quét LED ở trang chủ. Nhưng qua đây tôi nói qua tại mỗi thời điểm ta chỉ hiện thị được 1 LED nên muốn hiện thị 2 LED mà ta có thể nhìn thấy thì cần phải quét 2 giá trị này liên tục. Do ta quét với tần số nhanh nên mắt ta không cảm nhận được là từng cái sáng 1 (Cái này xem điện ảnh họ làm 24h/s). Mình thì cứ hiểu thế thôi. Quét càng nhanh thì ta sẽ không nhìn thấy các điểm nháy của LED. Tần số quét ko được lớn hơn 24 hình/sec.
3) Sơ đồ nguyên lý:



Ở đây tôi dùng các chân như sau:
+ Phần hiện thị LED : Tôi dùng P0 được nối với (a,b,c,d...) Hai chân điều khiển được nối với P1_7 và P1_6. Ở đây không dùng ổn dòng nên LED nó hơi tối!
+ Phần ma trận phím: Các hàng từ Hàng 1 đến Hàng 3 được nối vào từ P2_0 đến P2_2. Còn các cột từ cột 1 đến cột 4 được nối vào P2_4 đến P2_7.
+ 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
4) Nguyên lý quét
Ở đây tôi làm theo phương pháp quét cột còn phương pháp quét theo hàng thì các bạn làm tự.
+ Bước 1 : Đầu tiên ta đưa cột 1 xuống mức 0V. Sau đó ta kiểm tra 3 hàng (hàng 1 , hàng 2, hàng 3) được nối với cột đó.Nếu nút 0 được nhấn tức là cột 1 được nối với hàng 1 khi đó hàng 1 được nhấn tín hiệu từ cột 1 và về mức 0 ==> cho ta giá trị 0. Nếu nút 4 được nhấn tức là cột 1 được nối với hàng 2 khi đó hàng 2 được nhận tín hiệu từ cột 1 và mức 0 ==> Cho ta giá trị 4. Nếu nút 8 được nhấn tức là nối cột 1 với hàng 3 khi đó hàng 3 được nhấn tín hiệu từ cột 1 và về mức 0 ==> cho ta giá trị 8. Vậy trong 1 cột cho ta 3 giá trị khác nhau từ 3 hàng.
+ Bước 2: Sau khi cho cột 1 bằng 0V sau đó ta cho tiếp cột 2 bằng 0V và tiếp tực kiểm tra các hàng 1 đến hàng 3 xem nào có hàng nào được nhấn không. Nếu nút 1 được nhấn tức là ta lại nối cột 2 với hàng 1, đưa giá trị của hàng 1 về 0V ==> cho giá trị 2. Nếu nút 5 được nhấn là ta lại nối cột 2 với hàng 2 khi đó đưa hàng 2 xuống 0V ==> cho giá trị 5. Nếu nút 9 được nhấn là ta lại nối cột 2 với hàng 3 và đưa hàng 3 xuống 0V ==> Cho ta giá trị 9. Như vậy ở lần này cũng cho ta 3 giá trị là các số 1,5,9
+ Bước 3, 4 : Cũng tương tự lần lượt như bước 1 và 2 và cách làm cũng tương tự. Như vậy ta cũng thu được 6 giá trị nữa là : 2,6,10,3,7,11
Như vậy ta đã xong việc quét ma trận phím và thu được các giá trị từ ma trận phím và giá trị này được hiện thị lên LED7 thanh.
6 ) Chương trình.
+ Môi trường lập trình : Psoc Designer
+ Viết cho vi xử lý : Psoc Cy8C29466

Bình Luận
Cùng danh mục: Vi điều khiển - Lập trình

Cơ sở công suất và năng lượng tiêu thụ trên MCU

29/07/2023 21:21:12 / Lượt xem: 414 / Người đăng: biendt

Công suất và năng lượng tiêu thụ của MCU ảnh hưởng đến các quyết định thiết kế về nguồn, thời gian sử dụng pin, và kể cả nhiệt độ hoạt động trong các ứng dụng nhúng. Nhất là khi đối mặt với các ứng dụng được cung cấp năng lượng từ nguồn pin,

Giải thích cơ chế các lệnh SET BIT, CLEAR BIT và TOGGLE trong lập trình vi điều khiển

15/09/2022 08:10:32 / Lượt xem: 994 / Người đăng: biendt

Giải thích các lệnh SET BIT, CLEAR BIT và TOGGLE thường được dùng trong lập trình vi điều khiển. Lệnh SET BIT là lệnh cài đặt 1 bit mong muốn trong thanh ghi cho nó có giá trị logic 1 và không làm thay đổi giá trị các bit còn lại của thanh ghi đó. Lệnh CLEAR BIT là lệnh cài đặt 1 bit mong muốn trong thanh ghi cho nó giá trị logic 0 và không làm thay đổi giá trị các bit còn lại của thanh ghi đó. Lệnh TOGGLE BIT là lệnh cài đặt 1 bit mong muốn trong thanh ghi cho nó giá trị logic 0 nếu trước đó nó có giá trị logic 1 và ngược lại, đồng thời không làm thay đổi giá trị các bit còn lại của thanh ghi đó.

Chia sẻ chương trình đọc ghi thẻ SD bằng MSP430 G2553 phục vụ lưu trữ

17/08/2022 06:20:30 / Lượt xem: 737 / Người đăng: biendt

Chương trình sử dụng vi điều khiển chính là MSP430G2553 (có thể sử dụng vi điều khiển khác cùng họ MSP430) kết nối với module đọc/ghi thẻ nhớ SD card là MODULE MICRO SD CARD để lưu trữ dữ liệu, đọc dữ liệu…Chuẩn bị : 1 KIT MSP430G2553, 1 Module SD Card, 1 Thẻ nhớ SD card : Micro SD <= 2GB hoặc Micro SDHC <= 32GB

Hướng dẫn thiết kế mạch vi điều khiển đơn giản

07/06/2022 06:18:47 / Lượt xem: 813 / Người đăng: biendt

Thiết kế mạch cho vi điều khiển là một việc làm không hề đơn giản đối với những người mới bắt đầu. Có thể bạn phải đọc hàng trăm trang datasheet và tài liệu thiết kế tham khảo, các sơ đồ mạch thiết kế mẫu, các chỉ dẫn layout để có thể hoàn thiện được thiết kế của mình một cách tốt nhất. Hướng dẫn này sẽ chỉ ra những điểm chung mà các bạn cần lưu ý khi thiết kế mạch vi điều khiển

Thiết kế mạch chống nhiễu cho Vi điều khiển (Chíp lập trình hoặc IC)

05/05/2022 06:05:35 / Lượt xem: 2058 / Người đăng: biendt

Có mấy phương pháp cho mạch chống nhiễu vi điều khiển : .Sử dụng cách ly quang: để cách ly giữa tín hiệu điều khiển từ VĐK xuất ra và mạch công suất 220v.Sử dụng mạch snubber khi điều khiển tải bằng relay.Sử dụng linh kiện điện tử chính hãng...Sử dụng mạch lọc nguồn AC 220v trước khi cấp cho bộ nguồn 5V nuôi VĐK...Chống nhiễu khi viết code