24/05/2018, 17:35

MẠCH ĐẾM 1

Lợi dụng tính đảo trạng thái của FF JK khi J=K=1, người ta thực hiện các mạch đếm. Chức năng của mạch đếm là đếm số xung C K đưa vào ngã vào hoặc thể hiện số trạng thái có thể có của các ngã ra. Nếu xét khía cạnh tần số của ...

Lợi dụng tính đảo trạng thái của FF JK khi J=K=1, người ta thực hiện các mạch đếm.

Chức năng của mạch đếm là đếm số xung CK đưa vào ngã vào hoặc thể hiện số trạng thái có thể có của các ngã ra.

Nếu xét khía cạnh tần số của tín hiệu thì mạch đếm có chức năng chia tần, nghĩa là tần số của tín hiệu ở ngã ra là kết quả của phép chia tần số của tín hiệu CK ở ngã vào cho số đếm của mạch.

Ta có các loại: mạch đếm đồng bộ, không đồng bộ và đếm vòng.

Mạch đếm đồng bộ

Trong mạch đếm đồng bộ các FF chịu tác động đồng thời của xung đếm CK.

Mạch đếm đồng bộ n tầng, đếm lên

Để thiết kế mạch đếm đồng bộ n tầng (lấy thí dụ n=4), trước tiên lập bảng trạng thái, quan sát bảng trạng thái suy ra cách mắc các ngã vào JK của các FF sao cho mạch giao hoán tạo các ngã ra đúng như bảng đã lập. Giả sử ta dùng FF tác động bởi cạnh xuống của xung CK (Thật ra, kết quả thiết kế không phụ thuộc vào chiều tác động của xung CK, tuy nhiên điều này phải được thể hiện trên mạch nên ta cũng cần lưu ý). Với 4 FF mạch đếm được 24=16 trạng thái và số đếm được từ 0 đến 15. Ta có bảng trạng thái:

Bảng 5.14

Nhận thấy:

- FF A đổi trạng thái sau từng xung CK, vậy: TA = JA = KA = 1

- FF B đổi trạng thái nếu trước đó QA = 1, vậy TB = JB = KB = QA

- FF C đổi trạng thái nếu trước đó QA = QB = 1, vậy: TC = JC = KC = QA.QB

- FF D đổi trạng thái nếu trước đó QA=QB=QC=1, vậy:

TD = JD = KD = QA.QB.QC = TC.QC

Ta được kết quả ở (H 5.16)

(H 5.16)

Mạch đếm đồng bộ n tầng, đếm xuống

Bảng trạng thái:

Bảng 5.15

Nhận thấy:

- FF A đổi trạng thái sau từng xung CK, vậy: TA = JA = KA = 1

- FF B đổi trạng thái nếu trước đó QA = 0, vậy: TB = JB = KB =

- FF C đổi trạng thái nếu trước đó QA=QB=0, vậy: TC = JC = KC =

- FF D đổi trạng thái nếu trước đó QA = QB = QC= 0, vậy:

Ta được kết quả ở (H 5.17)

(H 5.17)

Mạch đếm đồng bộ n tầng, đếm lên/ xuống

Để có mạch đếm n tầng, đếm lên hoặc xuống ta dùng một đa hợp 2→1 có ngã vào điều khiển C để chọn Q hoặc đưa vào tầng sau qua các cổng AND. Trong mạch (H 5.18) dưới đây khi C=1 mạch đếm lên và khi C=0 mạch đếm xuống.

(H 5.18)

Tần số hoạt động lớn nhất của mạch đếm đồng bộ n tầng:

Trong mạch (H 5.16) ta cần 2 cổng AND. Trong trường hợp tổng quát cho n tầng, số cổng AND là (n-2) như vậy thời gian tối thiểu để tín hiệu truyền qua mạch là:

Tần số cực đại xác định bởi:

Để gia tăng tần số làm việc của mạch, thay vì dùng các cổng AND 2 ngã vào ta phải dùng cổng AND nhiều ngã vào và mắc theo kiểu:

TA = JA = KA = 1 TB = JB = KB = QA

TC = JC = KC = QA.QB TD = JD = KD = QA.QB.QC

Như vậy tần số làm việc không phụ thuộc vào n và bằng:

Mạch đếm đồng bộ Modulo - N (N ≠ 2n)

Để thiết kế mạch đếm modulo - N, trước nhất ta phải chọn số tầng.

Số tầng n phải thỏa điều kiện:

2n-1 < N < 2n

Thí dụ thiết kế mạch đếm 10 (N = 10).

24-1 < 10 < 24 .

Vậy số tầng là 4

Có nhiều phương pháp thiết kế mạch đếm đồng bộ modulo-N.

Sau đây ta khảo sát hai phương pháp : dùng hàm Chuyển MARCUS

Phương pháp dùng hàm Chuyển (Transfer function)

Hàm Chuyển là hàm cho thấy có sự thay đổi trạng thái của FF. Mỗi loại FF có một hàm Chuyển riêng của nó.

Hàm Chuyển được định nghĩa như sau: hàm có trị 1 khi có sự thay đổi trạng thái của FF (Q+ ≠ Q) và trị 0 khi trạng thái FF không đổi (Q+ = Q).

Chúng ta chỉ thiết kế mạch đếm dùng FF JK do đó ta chỉ xác định hàm Chuyển của loại FF này.

Bảng trạng thái của FF JK (Bảng 5.16)

Bảng 5.16

Dùng Bảng Karnaugh ta suy ra được biểu thức của H:

{}Để thiết kế mạch đếm cụ thể ta sẽ xác định hàm H cho từng FF trong mạch, so sánh với biểu thức của hàm H suy ra J, K của các FF. Dưới đây là một thí dụ.

Thiết kế mạch đếm 10 đồng bộ dùng FF JK

Bảng trạng thái của mạch đếm 10 và giá trị của các hàm H tương ứng:

Bảng 5.17

Từ bảng 5.17, ta thấy:

Để xác định HB, HC và HD ta phải vẽ bảng Karnaugh

(H 5.19)

Ghi chú: Trong kết quả của hàm H ta muốn có chứa Q và Q¯ size 12{ {overline {Q}} } {} tương ứng để suy ra ngay các trị J và K nên ta đã chia bảng Karnaugh ra làm 2 phần chứa Q và Q¯ size 12{ {overline {Q}} } {} và nhóm riêng từng phần này.

Từ các kết quả này, ta vẽ được mạch (H 5.20)

(H 5.20)

Bây giờ ta có thể kiểm tra xem nếu như vì một lý do nào đó, số đếm rơi vào các trạng thái không sử dụng (tương ứng với số từ 10 đến 15) thì khi có xung đồng hồ trạng thái tiếp theo sẽ như thế nào ? Mạch có quay về để đếm tiếp ?

Áp dụng các hàm chuyển có được, ứng với mỗi trạng thái Q của từng FF trong các tổ hợp không sử dụng, ta tìm trị H tương ứng rồi suy ra Q+, ta được bảng kết quả sau:

Bảng 5.18

Từ bảng kết quả ta có kết luận:

- Khi ngã ra rơi vào trạng thái 1010 (1010), nó sẽ nhảy tiếp vào trạng thái 1110 (1011) rồi sau đó nhảy về 610 (0110) (Dòng 1 và 2)

- Khi ngã ra rơi vào trạng thái 1210 (1100), nó sẽ nhảy tiếp vào trạng thái 1310 (11 01) rồi sau đó nhảy về 410 (0100) (Dòng 3 và 4)

- Khi ngã ra rơi vào trạng thái 1410 (1110), nó sẽ nhảy tiếp vào trạng thái 1510 (1111) rồi sau đó nhảy về 210 (0010) (Dòng 5 và 6).

Tóm lại, nếu có một sự cố xảy ra làm cho số đếm rơi vào các trạng thái không sử dụng thì sau 1 hoặc 2 số đếm nó tự động quay về một trong các số đếm từ 0 đến 9 rồi tiếp tục đếm bình thường.

Phương pháp MARCUS

Phương pháp MARCUS cho phép xác định các biểu thức của J và K dựa vào sự thay đổi của Q+ so với Q

Từ bảng trạng thái của FF JK (Bảng 5.7) ta có thể viết lại Bảng 5.19:

Bảng 5.19

Để thiết kế mạch, ta so sánh Q+ và Q để có được bảng sự thật cho J, K của từng FF, sau đó xác định J và K.

Thí dụ thiết kế lại mạch đếm 10 bằng phương pháp MARCUS

Bảng sự thật cho J, K của từng FF

0