Mạch so sánh tìm số lớn nhất và bé nhất

Để so sánh 2 số nhiều bit, trước tiên người ta so sánh 2 bit cao nhất (MSB), kết quả lớn hoặc nhỏ hơn do 2 bit này quyết định, nếu 2 bit MSB bằng nhau người ta so sánh 2 bit có trọng số thấp hơn tiếp theo và kết quả được quyết định theo cách tương tự như ở 2 bit MSB. . . . . Sự so sánh được lặp lại cho đến bit LSB để được kết cuối cùng.

Dưới đây là sơ đồ mạch so sánh 3 bit (H 4.24).

(H 4.24)

- IC 1 so sánh 2 bit cao (a3& b3) nên ngã vào cho phép được đưa lên mức cao, nếu kết quả bằng nhau, ngã ra E của nó lên cao, cho phép IC 2 so sánh, nếu kết quả lại bằng nhau, ngã ra E của IC 2 lên cao cho phép IC 3 so sánh, kết quả bằng nhau cuối cùng chỉ bởi ngã ra E của IC 3.

- Các ngã vào cổng OR nhận tín hiệu từ các ngã ra S (hoặc I) sẽ cho kết quả lớn hơn (hoặc nhỏ hơn) tùy vào kết quả so sánh ở bất cứ bit nào. Thật vậy khi có một kết quả lớn hơn (hoặc nhỏ hơn) thì S (hoặc I) ở một IC lên cao, các ngã ra E và I (hoặc S) của các IC khác bằng 0, đây là điều kiện mở cổng OR để cho kết quả so sánh xuất hiện ở một trong các cổng OR này.

Trên thị trường có sẵn loại IC so sánh 4 bit 7485 có ngã nối mạch để mở rộng việc so sánh cho số nhiều bit hơn.

Bảng sự thật của IC 7485

Bảng 4.8

Dựa vào bảng sự thật, ta thấy:

- Khi dùng IC 7485 để so sánh 2 số 4 bit ta phải giữ ngã vào nối mạch A’=B’ ở mức cao, hai ngã vào nối mạch còn lại ở mức thấp, như vậy IC mới thể hiện được kết quả của trạng thái 9.

- Khi so sánh 2 số nhiều bit hơn ta phải dùng nhiều IC 7485 và nối ngã ra của IC so sánh bit thấp vào ngã vào nối mạch tương ứng của các IC so sánh các bit cao hơn và IC so sánh các bit thấp nhất có ngã vào nối mạch được mắc như khi dùng riêng lẻ. Để đọc được kết quả so sánh ta phải quan tâm tới các trạng thái 9, 10 và 11 trong bảng sự thật.

(H 4.25) cho ta cách mắc 2 IC 7485 để so sánh 2 số nhị phân 8 bit:

(H 4.25)

Thí dụ :

  1. So sánh hai số A7 . . . .A0 = 10101111 và B7 . . . . B0 = 10110001

IC 2 so sánh các bit cao A7 . . .A4 = 1010 và B7 . . .B4 =1011 có A7= B7 , A6= B6 , A5= B5 và A4

  1. So sánh hai số A7 . . . .A0 = 10101111 và B7 . . . . B0 = 10101001

Trong trường hợp này kết quả hai số bit cao bằng nhau nên IC 2 nhìn vào ngã vào nối mạch để xem kết quả so sánh của IC1 (so sánh bit thấp), A3A2A1A0 =1111>B3B2B1B0 = 1001 nên ngã ra A>B = 1 để chỉ kết quả so sánh của 2 số 8 bit (trạng thái 10).

Để so sánh 2 số nhiều bit, trước tiên người ta so sánh 2 bit cao nhất (MSB), kết quả lớn hoặc nhỏ hơn do 2 bit này quyết định, nếu 2 bit MSB bằng nhau người ta so sánh 2 bit có trọng số thấp hơn tiếp theo và kết quả được quyết định theo cách tương tự như ở 2 bit MSB..... Sự so sánh được lặp lại cho đến bit LSB để được kết cuối cùng.

Dưới đây là sơ đồ mạch so sánh 3 bit (H 4).

(H 4)

  • IC 1 so sánh 2 bit cao (a 3 & b 3 ) nên ngã vào cho phép được đưa lên mức cao, nếu kết quả bằng nhau, ngã ra E của nó lên cao, cho phép IC 2 so sánh, nếu kết quả lại bằng nhau, ngã ra E của IC 2 lên cao cho phép IC 3 so sánh, kết quả bằng nhau cuối cùng chỉ bởi ngã ra E của IC 3.
  • Các ngã vào cổng OR nhận tín hiệu từ các ngã ra S (hoặc I) sẽ cho kết quả lớn hơn (hoặc nhỏ hơn) tùy vào kết quả so sánh ở bất cứ bit nào. Thật vậy khi có một kết quả lớn hơn (hoặc nhỏ hơn) thì S (hoặc I) ở một IC lên cao, các ngã ra E và I (hoặc S) của các IC khác bằng 0, đây là điều kiện mở cổng OR để cho kết quả so sánh xuất hiện ở một trong các cổng OR này.

Trên thị trường có sẵn loại IC so sánh 4 bit 7485 có ngã nối mạch để mở rộng việc so sánh cho số nhiều bit hơn.

Bảng sự thật của IC 7485

Thí dụ :

  1. So sánh hai số A 7... .A 0 = 10101111 và B 7.... B 0 = 10110001

IC 2 so sánh các bit cao A 7.. .A 4 = 1010 và B 7.. .B 4 =1011 có A 7 = B 7 , A 6 = B 6 , A 5 = B 5 và A 4

  1. So sánh hai số A 7... .A 0 = 10101111 và B 7.... B 0 = 10101001

Trong trường hợp này kết quả hai số bit cao bằng nhau nên IC 2 nhìn vào ngã vào nối mạch để xem kết quả so sánh của IC1 (so sánh bit thấp), A 3 A 2 A 1 A 0 =1111>B 3 B 2 B 1 B 0 = 1001 nên ngã ra A>B = 1 để chỉ kết quả so sánh của 2 số 8 bit (trạng thái 10).