Nếu đây là lần đầu tiên đến với Điện Tử Việt Nam, bạn có thể đọc phần Hỏi đáp bằng cách nhấn vào liên kết. Có thể bạn cần đăng kí trước khi có thể gửi bài . Để bắt đầu xem bài viết, chọn diễn đàn bạn muốn thăm dưới đây.
Thông báo
Collapse
No announcement yet.
Một số kiểu thiết kế tiết kiệm chân Vi điều khiển!
Có thể bạn chưa biết! Một số kiểu thiết kế tiết kiệm chân MCU!
Bàn phím là 1 chức năng không thể thiếu trong việc thiết kế mạch. Một số mạch,nếu dùng hết chân vào/ra của MCU mà vẫn ko đủ cho ứng dụng của mình. Vậy làm sao? kiếm 1 con MCU nhiều cổng I/O hay ghép nhiều con.. hay vô vàn cách khác. Tuy nhiên trước khi tìm đến giải pháp đó, bạn nán lại ít phút. Có thể giải pháp của tôi đưa ra có thể giúp ích được cho bạn trong một số trường hợp. Các mạch này tôi đã từng làm và chạy khá tốt.
Tiết kiệm chân nếu mạch quét Led7T+bắt phím.
Mạch 1: Led7T và 4 phím ấn. Chỉ mất: 8 chân data, 4 chân điều khiển,1 chân đọc phím. Tổng mất:8+4+1=13 chân.
Làm như trên mạch của bạn sẽ có tính năng: Dữ liệu mềm dẻo, tiết kiệm IC giãi mã 7T kiểu-Bạn hoàn toàn có thể hiển thị:0-9, ngoài ra bạn có thể hiển thị lên đó một số chữ như:A,B,C,..G,g,n,U,u... trên cái mặt LED cỏn con đó.
Vậy lợi ích đã rõ: bạn tiết kiệm được IC giải mã, mềm dẻo hơn trong hiển thị, có thể bắt 4 phím, tất nhiên có thể phát triển thành 8, 16, thậm chí hơn nữa, mà không tốn thêm 1 chân nào dành cho việc quét phím(lần sau).
Việc bắt phím vô cùng đơn giản. Giả sử bạn quét đến LED thứ i(i=1->4), bạn đọc trạng thái chân Keyboard.
if(Keyboard)
{
//Phím thứ i được ấn
//Bạn có thể dùng thêm mã lệnh để chống rung
}
Sau đây là hình ảnh gửi kèm(các thành viên đăng nhập mới thấy được hình ảnh và file gửi kèm)
... bài viết này của BA rất hay, rất tiếc diễn đàn trong thời gian qua bị lỗi nên một số hình ảnh, sơ đồ minh họa bị mất, làm bài viết mất đi giá trị của nó... hôm nay tình cờ lục lại đống tài liệu cũ, rất may là mình còn lưu lại những bài viết nêu trên, để các bạn tiện theo dõi, tui xin mạn phép UP mấy cái sơ đồ và hình ảnh đó lên dưới dạng QUOTE bài viết cũ...
Đây là một kiểu thiết kế tương tự, cũng chỉ với 13 chân, bạn có thể mở rộng 8 phím ấn.
Cách thực hiện cũng đơn giản, sau mỗi dòng lệnh xóa led, bạn chèn mã lệnh bằng cách gán data_i=1; nếu sau đó đọc trạng thái chân keyboard. Nếu bằng 1 thì có nghĩa là phím i được ấn.
Chú ý, với PIC thì bạn có thể vô tư với kiểu trên, song với 89 thì cần trở kéo ở các chân data. Cách hay hơn nếu dùng 89, bạn đảo ngược tất cả đầu LED, nối điện trở chân KB lên 1. Sau dòng lệnh xóa Led, nếu chân KB==0 thì phím được ấn.
Có thể biến đổi mạch trên khác đi 1 chút cho hợp với thiết kế của mình
Với cách ở hình 3, nó sẽ gần giống cách hình 2.
Sau mỗi dòng lệnh xóa Led, bạn chèn thêm mã lệnh quét kiểu matran phím. Theo cách này bạn lại có thể mở rộng 16 phím. Vậy chỉ cần 13-1=12 chân, bạn có thể làm được 1 kiểu quét khá tiết kiệm.
Lưu ý: với PIC, trước khi làm thao tác quét này bạn nhớ khởi tạo chức năng công I/OATA là 4:I,4:O
Với 89 thì nhớ set các chân data lên 1 đã.[/b]
... làm thủ công theo cách này chậm quá... lại mang tiếng "câu bài"... ... bác mike (Admin) có cách nào khác để chèn hình ảnh vào bài viết cũ mà không phải áp dụng cách làm củ chuối này không (hiện còn một số sơ đồ và hình ảnh nữa chưa UP lên)
Thanks...
Nếu bạn dùng pic 16f87xx trở lên thì 1 chân thôi có thể điều khiển 1024 phím, nhưng trên thực tế thì không ai dùng phím nhiều như vậy, đây là một ưu điểm pic so với 89.
Đây, toàn bộ nó đây, bạn nào quan tâm có thể lấy về xem nhé, hoặc bác admin có thể hệ thống lại rồi post nguyên một bài đi!
Hì, nếu cứ cuối mỗi page lại có 1 bài như của bác natra thì tốt quá. File Rar tải vèo 1 cái là xong, thank you bác. May là em nhảy 1 fát xuống trang cuối
Em đề nghị các bác học tập bác natra
Trước hết rất cảm ơn các mod, nhất là bác BA đã chia sẻ với anh em những kiểu tiết kiệm chân rất hữu ích. Em đang có một project nho nhỏ cũng có led 7T và phím, mà vdk số chân có hạn, thế là làm cái menu rất chi là rắc rối. Nhờ có bài của bác BA, mọi thứ trở nên dễ dàng hơn. Và thực tế tìm hiểu thêm thì bọn tây chúng nó cũng dùng kiểu vừa quét vừa bắt như thế này. Chắc bọn nó bắt chước bác BA j/k
VÀ em thấy bọn microchip cũng có một cái tip&trick cho pic 8 chân, cũng có một số kiểu thiết kế tuơng tự, ví dụ 1 chân có thể bắt nhiều phím bằng ADC như bác BA đã đề cập hay cũng 1 chân bắt đuợc nhiều phím dùng timer, etc
Sẽ hữu ích cho những người mới như em
PS: ngày mai các bác tham gia seminar tháng 3 của microchip chắc cũng đuợc phát một cuốn tipntricks này đấy ạ
Khi làm để chơi thì một con 877A với một con 876A giá chẳng hơn nhau bao nhiêu, nhiều bạn sẽ cứ chân nhiều mà chiến. Tuy nhiên khi sản xuất, việc tiết kiệm chân là khá quan trọng.
Em xin post thêm một tí tẹo về quét led nói chung và led 7T nói riêng.
Có nhiều kiểu quét
- cứ môi chân của led 7T nối với 1 chân vđk . mỗi con led 7T cần khoảng 9 chân , một vđk 40pin may ra chơi được 4 em led 7seg:P
- Dùng các IC phụ trợ như ghi dịch (595) hay demux chẳng hạn, blah blah
- Cách thường dùng nhất là multiplexing như các bài anh BA đã post
Các cách trên ai ai cũng biêt rồi. Có một cách một số người biết nhưng em chưa thấy gọi tên chính xác:
CHARLIEPLEXING
một kĩ thuật được đưa ra bởi Charlie Allen, hình như ông này là người của maxim-ic. Cũng chính vì vậy nhiều IC đk led của maxim sử dụng kĩ thuật này. Với n chân của vđk có thể chiến được vớii n*(n-1) led đơn hay segment của led 7T
Em chỉ xin đưa ra một tài liệu nho nhỏ mọi người cùng tham khảo, còn lại các bác tự google nhé
Thêm cái hình minh họa ứng dụng của kĩ thuật này với led 7T cho nó sinh động
@anh BA: HTV có phải là anh muốn nói đên HTA không ạ
Nói đến HTV lại làm em buồn cười.
Có bà lên sàn:"cho chị 1 nghìn cổ Truyền hình Hà Tây"
Broker: ??? (processing)
Nhà đầu tư: Nhanh lên cho chị, chú không thấy thằng Truyền hình Hà Tây HTV đang xanh chói lọi kia à !!!!
Để tiết kiệm chân cho các mcu trong các apps có các phím bấm, ngoài phương pháp của bạn BINHANH ra, cũng có thể dùng ADC có sẵn trong mcu (hầu hết các mcu đều có các integrated ADC) để xác định phím nào được bấm như sơ đồ dưới đây. sorry nếu như ai đó đã đề cập đến cách này rồi.
Trừ trường hợp công suất (rất) thấp, hầu như tất cả các loại nguồn xung thông thường đều có tụ nhỏ 1 - 10nF nối giữa sơ cấp và thứ cấp, để thoát nhiễu và để chống hiện tượng tương tự tĩnh điện. Vụ này đã thảo luận vài...
Dạ chú sắm con át chống giật và thay nguồn tổ ong khác cho an toàn ạ. Đa phần nguồn xung đều xả nhiễu của bên thứ cấp về điện lưới qua 1 con tụ nên cảm giác tê sẽ khó xác định rõ ràng là do rò điện hay là nó vốn vậy...
Xin chào mọi người. E có sử dụng 1 cục nguồn tổ ong 12v-30A chạy đèn led xe trà sữa. Mà thợ thi công bị rò điện nên điện rò ra khung xe. E dùng đồng hồ đo điện ở khung xe và cả output thì thấy có dòng điện xoay chiều hơn 100v. Nên chạm...
Cho e hỏi là phần chân X thì nối cái j thì mạch mới chạy được ạ và kiểm tra đúng sai kiểu j ạ
Đề bài thiết kế mạch dãy đồng bộ nhận biết dãy tín hiệu vào ở dạng nhị phân được đưa liên tiếp ở đầu vào X và được đồng...
Comment