1. Trang chủ
  2. » Công Nghệ Thông Tin

Bai tap ky thuat so ung dung de 12

19 695 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 429,19 KB

Nội dung

THIẾT KẾ MẠCH CHUYỂN MÃ MÃ ĐẦU VÀO BCD 7421 – MÃ ĐẦU RA BCD 8421 * Phân tích toán Thực hiên: Trong thiết bị điện tử số, để biễu diễn 10 chữ số thập phân từ đến 9, người ta dùng bit để tổ hợp nên tạo 16 tổ hợp khác nhau.Ta dùng 10 tổ hợp 16 tổ hợp nên tạo đựơc nhiều hệ mã khác có tổ hợp thừa Những hệ mã là: mã BCD 8421, BCD 7421, BCD 5421, BCD 2421, Gray, Dư - Từ bảng mã BCD7421 gốc ta thiết kế mạch chuyển mã sang bảng mã BCD8421 - Mỗi mạch có đầu x,y,z,t đầu hàm biến vào a,b,c,d Lập bảng K cho đầu - Tạo biểu thức tối giản nguyên hàm đánh vòng ô làm hàm 1, đảo hàm đánh vòng ô làm hàm - Trong bảng K tổ hợp thừa ta đánh X 1.Bảng công tác Mã thập phân Tổ hợp thừa Mã BCD7421 a 0 0 0 1 x x x x x x b 0 0 1 0 X X X X X X c 0 1 0 0 x x x x x x Mã BCD8421 d 1 0 x x x x x x x 0 0 0 0 1 x x x x x x y 0 0 1 1 0 x x x x x x z 0 1 0 1 0 x x x x x x t 1 1 x x x x x x Mỗi cột x , y , z , t hàm bốn biến a, b, c, d  Lập bảng K cho hàm 2.Tối giản bảng Karnaugh: Đầu x cd ab 00 01 11 10 0 0 0 x x x x x x 00 01 11 10 0 0 1 x x x x x x 00 01 11 10 Dựa vào bảng ta có : x = ad+ac x = a + cd Đầu y cd ab 00 01 11 10 Dựa vào bảng ta có : y =b +a cd y = a b + bd + bc Đầu z cd ab 00 01 11 10 0 1 0 x x x x x x 00 01 11 10 1 0 x x x x x x 00 01 11 10 Dựa vào bảng ta có : z = ac + ac d z = a c + ac + c d Đầu t cd ab 00 01 11 10 Dựa vào bảng ta có: t = a d + ad t = a d + ad 3.Tối giản định lý Logic: Từ bảng công tác ta or minterm làm hàm 1.(Mỗi cột hàm biến vào a,b,c,d), ta có biểu thức chuẩn tắc tuyễn đảo hàm Ta or tất minterm làm hàm có giá trị không xác định để lập điều kiện ràng buộc  x= ∑ (9 + 10) điều kiện ràng buộc ∑ (7 + 11 + 12 + 13 + 14 + 15) = abcd + abc d = = ad+ac ∑ ( + + + 7)  y= y= điều kiện ràng buộc ∑ (7 + 11 + 12 + 13 + 14 + 15) = abc d + abc d + abc d + abc d y =b +a cd  z= ∑ (2 + + + 7) z= điều kiện ràng buộc ∑ (7 + 11 + 12 + 13 + 14 + 15) = abc d + abcd + abc d + abc d z = ac + ac d  t= ∑ (1 + + + + 10) t= điều kiện ràng buộc ∑ (7 + 11 + 12 + 13 + 14 + 15) = abcd + abcd + abc d + abc d + abc d t = a d + ad 4.Thiết kế mạch Logic: a) thiết kế mạch logic dạng OR-AND từ bảng k, ta đánh vòng ô toàn x tìm biểu thức nguyên hàm sau x = ad + ac, y = b + acd z = ac + ac d t = a d + ad , , a b c d b) Thiết kế mạch logic dạng AND -OR Từ bảng Kaunaugh, ta đánh vòng ô toàn “x”, tìm biểu thức đảo hàm, sau ta phủ định lần triển khai đến cấp biến để tìm biểu thức nguyên hàm sau: x = x = a + c d = a (c + d ) y = y = ab + bd + bc = ( a + b)(b + d )(b + c) , , z = z = a c + ac + cd = ( a + c )( a + c)( c + d ) t = t = a d + ad = (a + d )( a + d ) , a b c) Thiết kế mạch logic dạng NOR-AND Từ bảng Kaunaugh, ta đánh vòng ô toàn “x”, tìm biểu thức đảo hàm, sau ta phủ định lần tìm biểu thức nguyên hàm sau: x = x = a + cd , y = y = ab + bd + bc z = z = ac + ac + cd t = t = a d + ad , , 10 d) Thiết kế mạch logic dạng NOR-NOR Từ bảng Kaunaugh, ta đánh vòng ô toàn “x”, tìm biểu thức đảo hàm, sau ta phủ định lần sau triển khai tiếp để tìm biểu thức nguyên hàm sau: Tiếp tục phủ định lần để tìm biểu thức nguyên hàm x = x = a + c d = a (c + d ) = a + (c + d ) , y = y = ab + bd + bc = ( a + b)(b + d )(b + c) = (a + b) + (b + d ) + (b + c) z = z = ac + ac + cd = (a + c)( a + c)( c + d ) = (a + c) + (a + c) + (c + d ) , , t = t = a d + ad = (a + d )(a + d ) = (a + d ) + (a + d ) 11 12 e) Thiết kế mạch logic dạng NAND-NAND Từ bảng Kaunaugh, ta đánh vòng ô toàn “x”, tìm biểu thức nguyên hàm sau đó, phủ định lần, trình biến đổi sau Biểu thức: x =ad+ac  y = b + acd  z = ac + ac d t = a d + ad x = ad + ac = ad ac   y = b + acd = bacd z = ac + a c d = ac ac d t = a d + ad = a d ad 13 Chương trình mô //BAI TAP LON - KI THUAT SO UNG DUNG - DE SO 12: BCD 7421 - BCD 8421 #include "stdio.h" #include "conio.h" #include "stdlib.h" void BCD7421(int n, char *a, char *b, char *c, char *d) { 14 if (n 9) n = 0; short ma7421[4] = {7,4,2,1}; short binaryResult[4]; int i; for (i = 0; i < 4; i++){ if (n >= ma7421[i]) { n-=ma7421[i]; binaryResult[i] = 1; } else { binaryResult[i] = 0; } } *a = binaryResult[0]; *b = binaryResult[1]; *c = binaryResult[2]; *d = binaryResult[3]; } void or_and(int n) { char a,b,c,d; BCD7421(n, &a, &b, &c, &d); printf( "|%7d | %d%d%d%d | %d%d%d%d |\n", n, a,b,c,d, ((a&&d)||(a&&c)), (b||(a&&(!c&&!d))), ((!a&&c)||(a&&(!c&&!d))), ((! a&&d)||(a&&!d))); } void and_or(int n){ char a,b,c,d; BCD7421(n, &a, &b, &c, &d); printf( "|%7d | %d%d%d%d | %d%d%d%d |\n", n, a,b,c,d, 15 (a&&(c||d)), ((a||b)&&(b||!d)&&(b||!c)), ((a||c)&&(!a||!c)&&(c||!d)), ((a|| d)&&(!a||!d)) ); } void nor_and(int n){ char a,b,c,d; BCD7421(n, &a, &b, &c, &d); printf( "|%7d | %d%d%d%d | %d%d%d%d |\n", n, a,b,c,d, !(!a||(!c&&!d)), !((!a&&!b)||(!b&&d)||(!b&&c)), !((!a&&!c)||(a&&c)||(! c&&d)), !((!a&&!d)||(a&&d)) ); } void nor_nor(int n){ char a,b,c,d; BCD7421(n, &a, &b, &c, &d); printf( "|%7d | %d%d%d%d | %d%d%d%d |\n", n, a,b,c,d, !(!a||!(c||d)), !(!(a||b)||!(b||!d)||!(b||!c)), !(!(a||c)||!(!a||!c)||!(c||!d)), !(!(a||d)||! (!a||!d)) ); } void nand_nand(int n){ char a,b,c,d; BCD7421(n, &a, &b, &c, &d); printf( "|%7d | %d%d%d%d | %d%d%d%d |\n", n, a,b,c,d, !(!(a&&d)&&!(a&&c)), !(!b&&!(a&&(!c&&!d))), !(!(!a&&c)&&!(a&&(!c&&!d))), !(! (a&&d)&&!(!a&&!d)) 16 ); } int main(){ short t = 1; while (t){ printf("|======================================|\n"); printf("|======= MO PHONG MACH CHUYEN MA ======|\n"); printf("|======= BCD7421 -> BCD 8421 ======|\n"); printf("|======================================|\n"); printf("| In mach AND-OR |\n"); printf("| In mach OR-AND |\n"); printf("| In mach NOR-AND |\n"); printf("| In mach NOR-NOR |\n"); printf("| In mach NAND-NAND printf("| to Exit |\n"); -|\n"); printf("Chon N Tu Den Tuong Ung: N = "); scanf("%d", &t); switch(t){ case 1: printf("\tIn mach AND-OR\n"); printf("| oooooooooooooooooooooooooooooooooooooo|\n"); printf("|So thap phan | BCD7421 | BCD 8421 |\n"); printf("| N | abcd | xywt |\n"); printf("|**************************************|\n"); for (int i = ; i

Ngày đăng: 29/03/2017, 12:11

TỪ KHÓA LIÊN QUAN

w