Vậy là ta đã có một trò chơi điện tử đơn giản theo kiểu may mắn. Cho bộ đếm hoạt động, người chơi sẽ nhấn một nút vào một thời điểm bất kì để ngưng cấp xung đếm ck, mạch đếm sẽ dừng lại ở con số đang đếm đến. Nếu số này làm đèn led sáng thì người chơi sẽ thắng. Tất nhiên để hoàn chỉnh ta cần phải có một mạch dao động để cấp xung ck cho mạch đếm chạy (bạn có thể tạo mạch dao động từ cổng logic hay mạch chốt kết hợp với linh kiện thụ động R, C như đã nói ở phần trước). Một ứng dụng đơn giản khác là dùng mạch đếm này để tạo khoảng xung vuông điều khiển tải (chẳng hạn động cơ chạy hay mở van xả) trong khoảng thời gian 3s đếm từ số 7 đến số 10 Giải pháp để giải bài toán trên là sẽ dùng cổng logic để tạo mạch giải mã số 0111(7 10 ) để kích ngõ ra lên cao rồi giải mã số 1010(10 10 ) để kích ngõ ra xuống thấp trở lại. Hai đường giải mã này được đưa vào ngõ Pr và Cl của mạch chốt để đặt ngõ ra lên mức cao khi Pr và xoá nó khi Cl. Mạch thực hiện kết nối như sau : Hình 3.3.4 Giải mã mạch đếm điều khiển tải Trong đó NAND1 sẽ giải mã số 7 còn Nand2 sẽ giải mã cho số 10. Ở số đếm thứ 7 của mạch đếm ngõ ra Nand1 xuống thấp preset mạch chốt đặt Q lên cao. Đến khi đếm tới 10 thì ngõ ra nand2 khi này xuống thấp (tất nhiên Nand1 đã trở lại cao rồi) thực hiện xoá ngõ ra Q làm Q xuống thấp. Khi mạch đếm đến 7 trở lại thì khoảng xung vuông lại xuất hiện. Nó có tính chu kỳ. Thời gian tồn tại xung vuông được quyết định bởi tần số (chu kì) mạch dao động cấp cho xung ck của mạch đếm, nếu Tck = 1s thì T = 3s. Do đó ta có thể thay đổi f mạch dao động để thay đổi khoảng thời gian điều khiển tải. Bây giờ bạn hãy thiết kế bộ trò chơi đó chỉ cần dùng 3 FF T (tạo 8 trạng thái ra). Khi người chơi nhấn dừng mạch đếm ở số 5 hay số 10 thì đèn led sẽ sáng. Mạch đếm xuống Ở trước là mạch đếm lên lần lượt chia 2 tần số, số hệ 10 ra tương ứng là từ 0 đến 15. Cũng có khi cần mạch đếm xuống từ 15 xuống 0 chẳng hạn, cách nối mạch sẽ như thế nào? Hình dưới trình bày cấu trúc mạch đếm xuống nhị phân 4 bit. Ngõ ra Q lần lượt của tầng trước sẽ được nối đến ngõ vào ck của tầng sau đó. Xung đếm ck vẫn tác động ở mức thấp Hình 3.3.5 Mạch đếm xuống 4 bit không đồng bộ Các ngõ ra và cách thức xoá mạch, đưa xung vào giống như ở trước. Ngõ ra Q của tầng FF đầu dổi trạng thái ở đổi cạnh xuống của xung vào các ngõ ra khác đổi trạng thái ở cạnh xuống của ngõ ra Q', tức là cạnh lên của ngõ ra Q 0 của FF kề trước. Dạng sóng ở ngõ vào và các ngõ ra cùng với mức logic sau mỗi xung vào và kết quả số đếm được trình bày như hình dưới đây. Để ý rằng sau xung ck đầu tiên thì mạch se đếm ngay lên số đếm cao nhất là 15 rồi dần dần xuống 14, … cho tới 0 tổng cộng sau 15 xung ck và tới xung ck thứ 16 mạch sẽ tự động xoá về 15 để đếm xuống trở lại. Hình dưới đây trình bày cả 2 dạng sóng của mạch đếm lên và xuống bạn có thể so sánh chúng để thấy rõ hơn nguyên lí của sự đếm lên và đếm xuống. hình 3.3.6 So sánh dạng sóng đếm lên và đếm xuống Hãy nối dây 4 FF T để tạo ra mạch đếm lên, mạch đếm xuống chia 16, có ngõ ck tác động mức cao. Hãy thay FF T bằng FF JK và thiết kế tương tự Thêm một bước nữa là cũng với từng ấy FF ta sẽ thiết kế mạch để có thể đếm lên đếm xuống đều được. Nhận thấy mạch đếm lên hay xuống là do nối từ ngõ raĠ của tầng trước tới ngõ vào ck của tầng sau do đó ở đây sẽ phải dùng một cổng OR cho 2 ngõ vào. Việc đếm lên xuống được quyết định bởi một ngõ điều khiển chọn chế độ lên hay xuống. Cấu trúc của mạch sẽ được thiết kế như sau : Hình 3.3.7 Mạch đếm lên hay xuống Muốn có cả hai dạng sóng đếm lên và đếm xuống như hình ta có thể lấy ra cùng lúc từ các ngõ đảo và không đảo của các tầng FF giống như hình sau : Hình 3.3.8 Mạch đếm lấy ra dạng sóng đếm lên và đếm xuống Mạch đếm tự dừng Các mạch đếm ở trước tự động quay vòng (đếm lên hết 15 rồi reset để trở lại đếm từ đầu hay đếm xuống đến 0 thì reset trở lại đếm từ 15 xuống) nếu tiếp tục cấp xung Ck cho mạch đếm. Bây giờ có một yêu cầu là mạch sẽ phải dừng đếm ở một con số nào đó định trước (chẳng hạn 10). Để thực hiện nó ta phải tìm cách dừng FF đầu tiên. Một cách mà chúng ta đã dùng ở phần “trò chơi may mắn” đó là ngưng cấp xung ck vào; nếu muốn mạch tự động làm, có thể dùng cổng logic tổ hợp để khống chế ngõ vào T (chung) của tầng đầu, các ngõ vào cổng logic sẽ là các mã số đếm của số đang đếm tới mà muốn dừng. Hình dưới đây trình bày cách thực hiện: Hình 3.3.9 Mạch đếm tự dừng ở số đếm 10 1.2 Mạch đếm không đồng bộ không theo hệ nhị phân (chia 2) Với mạch đếm dùng n FF mắc nối tiếp thì số mod (số trạng thái logic ra) là 2 n , và mạch sẽ đếm từ 0 đến 2 n – 1 (4 FF đếm tới 16 trạng thái). Trong nhiều trường hợp ta cần mạch đếm có số mod không theo 2 n , chẳng hạn đếm mod 10 (còn gọi là mạch đếm thập giai hay mạch đếm chia 10) rất hay dùng để hiển thị kết quả đếm ở dạng hệ 10, hay ví dụ khác là trong đồng hồ số cần mạch đếm chia 6 và chia 12 để hiển thị giờ và phút hay bất kì mạch đếm chia mod n nào.Thường thì trong mạch đếm lên số đếm tăng theo thứ tự liên tục từ 0 đền 2 n – 1 rồi quay về 0 để đếm trở lại. Nhưng cũng có thể không tăng theo thứ tự hay thứ tự nhưng không liên tục miễn là đủ số trạng thái n. Trở lại mạch đếm tự dừng ở hình trên : khi đếm tới một số định sẵn (số 10) mạch sẽ tự dừng, vậy ta có thể cho mạch tiếp tục chạy để đếm trở lại bằng cách đưa ngõ đó tới chân clear thay vì đưa tới chân J, K. Hình mạch đếm mod 10 được nối như sau : Hình 3.3.10 Mạch đếm mod 10 Cần để ý là ở xung đếm ck thứ 10 khi số đếm vừa lên 10 thì các trạng thái logic ngõ ra được đưa về khống chế ngõ Cl ngay do đó có thể thấy là số 10 không kịp hiện ra đã phải chuyển về 0. Thực tế thì do thời gian trì hoãn giữa các cổng logic khoảng vài ns nên vẫn có số đếm 10 trong khoảng thời gian này, ta chỉ quan tâm tới ảnh hưởng này khi cần đòi hỏi mạch hoạt động với độ chính xác cao như trong máy vi tính chẳng hạn. Ảnh hưởng của trì hoãn được thể hiện rõ hơn qua giản đồ xung sau Hình 3.3.11 Trì hoãn truyền của mạch đếm không đồng bộ mod 10 Thực tế thì cách thiết kế mạch đếm không theo hệ nhị phân lợi dụng ngõ clear như ở trên không được dùng do: + Các ngõ ra do được nối với tải khác nhau ảnh hưởng đến ngõ đưa về, rồi trì hoãn truyền qua các cổng logic nữa sẽ phát sinh xung nhọn, các tầng FF sẽ không được xoá đồng thời + Hơn nữa ngõ clear không còn được tự do để xoá mạch lúc mong muốn. Do vậy có một cách tạo mạch đếm trên là nghiên cứu sự liên hệ giữa các trạng thái ở các ngõ ra rồi thử nối chúng với các ngõ vào J, K của tầng nào đó cho tới khi thoả bảng trạng thái. Hãy xem cách nối như thế nào: Trước hết hãy nhìn vào giản đồ xung của mạch đếm mod 16. Tới số đếm thứ 10 thì mạch phải reset trở lại. - Ngõ ra Q0 không thay đổi gì dù có được xoá hay không vì nó theo xung ck - Ngõ ra Q1 tới đó phải giữ nguyên trạng thái trong 2 chu kì của xung ck nữa do đó ngõ J, K phải ở mức 0 trong khoảng thời gian này, ta có thể nối từ chân Q3 về J1, K1 vì lúc này Q3 đang ở mức 0 (nó cũng lên 1 sau khi bị xoá) - Ngõ ra Q2 tới lúc xoá vẫn ở 0 nên không cần thay đổi gì tầng FF 2 - Ngõ ra Q3 khi xoá phải trở lại mức 0 ban đầu, lúc này Q1 ở cao, Q2 ở thấp đồng thời Q0 đang đi xuống, do đó có thể nối Q0 tới ngõ ck của FF 3 và nối cổng and từ Q1 và Q2 Kết quả nối mạch như sau: . chơi điện tử đơn giản theo kiểu may mắn. Cho bộ đếm hoạt động, người chơi sẽ nhấn một nút vào một thời điểm bất kì để ngưng cấp xung đếm ck, mạch đếm sẽ dừng lại ở con số đang đếm đến. Nếu số. khoảng thời gian 3s đếm từ số 7 đến số 10 Giải pháp để giải bài toán trên là sẽ dùng cổng logic để tạo mạch giải mã số 0111(7 10 ) để kích ngõ ra lên cao rồi giải mã số 1010(10 10 ) để kích. ra). Khi người chơi nhấn dừng mạch đếm ở số 5 hay số 10 thì đèn led sẽ sáng. Mạch đếm xuống Ở trước là mạch đếm lên lần lượt chia 2 tần số, số hệ 10 ra tương ứng là từ 0 đến 15. Cũng