Thiết kế mạch chuyển mã từ BCD 7421 sang dư 3

abcd(i,MA8421,&a,&b,&c,&d); else abcd(i,MA7421,&a,&b,&c,&d); printf("|\%5d |%d|%d|%d|%d| |%c|%c|%c|%c|\n",i,a,b,c,d,!!(!(!(a||b)||!(a||c||d)))|0x30,!!(!(!(!b||!c)||!( !b||!d)||!(!a||!d)||!(b||c||d)))|0x30,!!(!(!(!c||d)||!(a||c||!d)))|0x30,!!(!(!(a|| !d)||!(!a||d)))|0x30);

pdf21 trang | Chia sẻ: tienthan23 | Lượt xem: 10259 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Thiết kế mạch chuyển mã từ BCD 7421 sang dư 3, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN ____***____ BÀI TẬP KỸ THUẬT SỐ ỨNG DỤNG ĐỀ TÀI 16: THIẾT KẾ MẠCH CHUYỂN Mà TỪ BCD 7421 SANG DƯ 3  Giảng viên : TS.Đặng Bá Lư Sinh viên : Hồ Tá Quý MSSV : 102130036 Lớp : 13T1 Đà Nẵng, ngày 11 tháng 11 năm 2015 Bài tập kĩ thuật số ứng dụng Thiết kế mạch chuyển mã BCD 7421 sang Dư 3 SVTH: HỒ TÁ QUÝ - LỚP 13T1 TRANG 2 I. Mạch chuyển mã BCD 7421 sang Dư 3 II. Lập bảng công tác: BCD 7421 ABCD DƯ 3 XYZW 0 0000 0011 1 0001 0100 2 0010 0101 3 0011 0110 4 0100 0111 5 0101 1000 6 0110 1001 7 1000 1010 8 1001 1011 9 1010 1100 10 0111 xxxx 11 1011 xxxx 12 1100 xxxx 13 1101 xxxx 14 1110 xxxx 15 1111 xxxx Bài tập kĩ thuật số ứng dụng Thiết kế mạch chuyển mã BCD 7421 sang Dư 3 SVTH: HỒ TÁ QUÝ - LỚP 13T1 TRANG 3 III. Thiết kế mạch dạng OR_AND, NAND_NAND 1. Tối giản bằng bảng K - Đánh vòng các ô toàn 1 ta có biểu thức tối giản của nguyên hàm Dựa vào bảng K ta có 𝑥(𝑎, 𝑏, 𝑐, 𝑑) = 𝑎 + 𝑏𝑑 + 𝑏𝑐 Ta có 𝑦(𝑥, 𝑏, 𝑐, 𝑑) = 𝑏𝑐̅�̅� + �̅��̅�𝑑 + �̅�𝑐 Bài tập kĩ thuật số ứng dụng Thiết kế mạch chuyển mã BCD 7421 sang Dư 3 SVTH: HỒ TÁ QUÝ - LỚP 13T1 TRANG 4 Ta có: 𝑧(𝑎, 𝑏, 𝑐, 𝑑) = 𝑐̅�̅� + 𝑐𝑑 + 𝑎𝑑 Ta có: 𝑤(𝑎, 𝑏, 𝑐, 𝑑) = �̅��̅� + 𝑎𝑑 2. Tối giản bằng định lí logic. a) x=∑(5,6,8,9,10) và điều kiện ràng buộc ∑(7,11,12,13,14,15) = 0 ((𝑎�̅�𝑐̅�̅� + 𝑎𝑏𝑐̅�̅�)+(𝑎�̅�𝑐̅𝑑+𝑎𝑏𝑐̅𝑑)+(𝑎�̅�𝑐𝑑 + 𝑎𝑏𝑐𝑑)+(𝑎�̅�𝑐�̅� + 𝑎𝑏𝑐�̅�)) +(((𝑎𝑏𝑐̅𝑑+�̅�𝑏𝑐̅𝑑) + (�̅�𝑏𝑐𝑑 + 𝑎𝑏𝑐𝑑))+((�̅�𝑏𝑐𝑑 + 𝑎𝑏𝑐𝑑) + (�̅�𝑏𝑐�̅� + 𝑎𝑏𝑐�̅�))) =( 𝑎𝑐̅�̅� + 𝑎𝑐̅𝑑 + 𝑎𝑐𝑑 + 𝑎𝑐�̅�) + (𝑏𝑐̅𝑑 + 𝑏𝑐𝑑) + (𝑏𝑐𝑑 + 𝑏𝑐�̅�) = a+bd+bc Bài tập kĩ thuật số ứng dụng Thiết kế mạch chuyển mã BCD 7421 sang Dư 3 SVTH: HỒ TÁ QUÝ - LỚP 13T1 TRANG 5 b) y=∑(1,2,3,4,10) và điều kiện ràng buộc ∑(7,11,12,13,14,15) = 0 (�̅��̅�𝑐̅𝑑 + �̅��̅�𝑐𝑑) + (�̅��̅�𝑐�̅�+�̅��̅�𝑐𝑑 + 𝑎�̅�𝑐�̅� + 𝑎�̅�𝑐𝑑)+(�̅�𝑏𝑐̅�̅�+𝑎𝑏𝑐̅�̅�) =(�̅��̅�𝑑 + �̅�𝑐 + 𝑏𝑐̅�̅�) c) z=∑(0,3,4,8,9) và điều kiện ràng buộc ∑(7,11,12,13,14,15) = 0 (�̅��̅�𝑐̅�̅� + �̅�𝑏𝑐̅�̅� + 𝑎�̅�𝑐̅�̅� +a𝑏𝑐̅�̅�)+( �̅��̅�𝑐𝑑 + �̅�𝑏𝑐𝑑+𝑎�̅�𝑐𝑑+ 𝑎𝑏𝑐𝑑)+(𝑎�̅�𝑐̅𝑑 + 𝑎�̅�𝑐𝑑 + 𝑎𝑏𝑐̅𝑑+ 𝑎𝑏𝑐𝑑) =𝑐̅�̅� + 𝑐𝑑 + 𝑎𝑑 d) w=∑ 0,2,4,6,9 và điều kiện ràng buộc ∑(7,11,12,13,14,15) = 0 ((�̅��̅�𝑐̅�̅� + �̅�𝑏𝑐̅�̅�) + (�̅��̅�𝑐�̅� + �̅�𝑏𝑐�̅�)) + ((𝑎�̅�𝑐̅𝑑 + 𝑎�̅�𝑐𝑑) + (𝑎𝑏𝑐̅𝑑 + 𝑎𝑏𝑐𝑑)) = (�̅�𝑐̅�̅� + �̅�𝑐�̅�) + (𝑎�̅�𝑑 + 𝑎𝑏𝑑) = �̅��̅�+ad 3. Thiết kế mạch. a. Mạch OR_AND 𝑥(𝑎, 𝑏, 𝑐, 𝑑) = 𝑎 + 𝑏𝑑 + 𝑏𝑐 𝑦(𝑥, 𝑏, 𝑐, 𝑑) = 𝑏𝑐̅�̅� + �̅��̅�𝑑 + �̅�𝑐 𝑧(𝑎, 𝑏, 𝑐, 𝑑) = 𝑐̅�̅� + 𝑐𝑑 + 𝑎𝑑 𝑤(𝑎, 𝑏, 𝑐, 𝑑) = �̅��̅� + 𝑎𝑑 Vẽ mạch: Bài tập kĩ thuật số ứng dụng Thiết kế mạch chuyển mã BCD 7421 sang Dư 3 SVTH: HỒ TÁ QUÝ - LỚP 13T1 TRANG 6 Chương trình C mô phỏng mạch OR_AND: #include #include #include /****************************************/ /******** MO PHONG MACH CHUYEN MA *******/ /*********** BCD 7421->MA DU 3 **********/ /************* MACH OR_AND ***********/ /****************************************/ void abcd(char i,char *x, char *a, char *b, char *c,char *d); main() { char a,b,c,d,i,MA8421[4]={8,4,2,1},MA7421[4]={7,4,2,1}; printf("\nMACH CHUYEN MA BCD 7421 -> MA DU 3\t"); printf("\n\t MACH OR_AND\t"); printf("\n_________MA7421_____MADu3__"); printf("\n| SoTP |a|b|c|d| |x|y|z|w|\n"); for(i=0;i<=9;i++) { if(i<=3) abcd(i,MA8421,&a,&b,&c,&d); else abcd(i,MA7421,&a,&b,&c,&d); printf("|\%5d |%d|%d|%d|%d| |%c|%c|%c|%c|\n",i,a,b,c,d,(a||(b&&d)||(b&&c))|0x30,(((b &&!c&&!d)||(!a&&!b&&d)|(!b&&c)))|0x30,((!c&&!d)||( c&&d)|(a&&d))|0x30,(!a&&!d||(a&&d))|0x30); Bài tập kĩ thuật số ứng dụng Thiết kế mạch chuyển mã BCD 7421 sang Dư 3 SVTH: HỒ TÁ QUÝ - LỚP 13T1 TRANG 7 } } void abcd(char i,char *x, char *a, char *b, char *c,char *d) { char j=i; *a=j>=*x?1:0; if(*a) j-=*x; *b=j>=*(x+1)?1:0; if(*b) j-=x[1]; *c=j>=x[2]?1:0; if(*c) j-=*(x+2); *d=j>=*(x+3)?1:0; if(*d) j-=*(x+3); } Kết quả: Bài tập kĩ thuật số ứng dụng Thiết kế mạch chuyển mã BCD 7421 sang Dư 3 SVTH: HỒ TÁ QUÝ - LỚP 13T1 TRANG 8 b) Mạch NAND_NAND Từ biểu thức tối giản của nguyên hàm dạng OR_AND, phủ định 2 lần(triển khai đến số hạng)ta có biểu thức tối giản của nguyên hàm dạng NAND_NAND �̿� = 𝑎 + 𝑏𝑑 + 𝑏𝑐̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ = �̅� 𝑏𝑑̅̅̅̅ 𝑏𝑐̅̅ ̅̅̅ ̅̅ ̅̅ ̅̅ ̅̅ �̿� = 𝑏𝑐̅�̅� + �̅��̅�𝑑 + �̅�𝑐̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿ = 𝑏𝑐̅�̅�̅̅ ̅̅ ̅ �̅��̅�𝑑̅̅ ̅̅ ̅ �̅�𝑐̅̅ ̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅ 𝑧̿ = 𝑐 ̅�̅� + 𝑐𝑑 + 𝑎𝑑̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ = 𝑐̅�̅�̅̅ ̅ 𝑐𝑑̅̅ ̅ 𝑎𝑑̅̅̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅ �̿� = �̅��̅� + 𝑎𝑑̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿ = �̅��̅�̅̅̅̅ 𝑎𝑑̅̅̅̅ ̅̅ ̅̅ ̅̅ ̅̅ Vẽ mạch: Bài tập kĩ thuật số ứng dụng Thiết kế mạch chuyển mã BCD 7421 sang Dư 3 SVTH: HỒ TÁ QUÝ - LỚP 13T1 TRANG 9 Chương trình C: #include #include #include /****************************************/ /******** MO PHONG MACH CHUYEN MA *******/ /*********** BCD 7421->MA DU 3 **********/ /************* MACH NAND_NAND ***********/ /****************************************/ void abcd(char i,char *x, char *a, char *b, char *c,char *d); main() { char a,b,c,d,i,MA8421[4]={8,4,2,1},MA7421[4]={7,4,2,1}; printf("\n MACH CHUYEN MA BCD 7421 -> MA DU 3\t"); printf("\n\t MACH NAND_NAND\t"); printf("\n_________MA7421_____MADu3__"); printf("\n| SoTP |a|b|c|d| |x|y|z|w|\n"); for(i=0;i<=9;i++) { if(i<=3) abcd(i,MA8421,&a,&b,&c,&d); else abcd(i,MA7421,&a,&b,&c,&d); printf("|\%5d |%d|%d|%d|%d| |%c|%c|%c|%c|\n",i,a,b,c,d,(!(!a&&!(b&&d)&&!(b&&c)))|0x 30,(!(!(b&&!c&&!d)&&!(!a&&!b&&d)&&!(!b&&c)))|0x30, (!(!(!c&&!d)&&!(c&&d)&&!(a&&d)))|0x30,(!(!(!a&&!d)& &!(a&&d)))|0x30); } } void abcd(char i,char *x, char *a, char *b, char *c,char *d) { char j=i; *a=j>=*x?1:0; if(*a) j-=*x; *b=j>=*(x+1)?1:0; if(*b) j-=x[1]; *c=j>=x[2]?1:0; if(*c) j-=*(x+2); *d=j>=*(x+3)?1:0; if(*d) j-=*(x+3); } Bài tập kĩ thuật số ứng dụng Thiết kế mạch chuyển mã BCD 7421 sang Dư 3 SVTH: HỒ TÁ QUÝ - LỚP 13T1 TRANG 10 Kết quả: Bài tập kĩ thuật số ứng dụng Thiết kế mạch chuyển mã BCD 7421 sang Dư 3 SVTH: HỒ TÁ QUÝ - LỚP 13T1 TRANG 11 IV. Thiết kế mạch dạng AND_OR, NOR_NOR, NOR_AND 1. Tối giản bằng bảng K. - Đánh dấu các ô toàn 0 ta có biểu thức tối giản của đảo hàm. �̅� = �̅��̅� + �̅�𝑐̅�̅� �̅� = 𝑏𝑐 + 𝑏𝑑 + 𝑎𝑑 + �̅�𝑐̅�̅� Bài tập kĩ thuật số ứng dụng Thiết kế mạch chuyển mã BCD 7421 sang Dư 3 SVTH: HỒ TÁ QUÝ - LỚP 13T1 TRANG 12 𝑧̅ = 𝑐�̅� + �̅�𝑐̅𝑑 �̅� = �̅�𝑑 + 𝑎�̅� Bài tập kĩ thuật số ứng dụng Thiết kế mạch chuyển mã BCD 7421 sang Dư 3 SVTH: HỒ TÁ QUÝ - LỚP 13T1 TRANG 13 2. Tối giản bằng định lý. a) �̅�=∑(0,1,2,3,4) và điều kiện ràng buộc ∑(7,11,12,13,14,15) = 0 (�̅��̅�𝑐̅�̅� + �̅�𝑏𝑐̅�̅�)+( �̅��̅�𝑐̅�̅� + �̅��̅�𝑐̅𝑑 + �̅��̅�𝑐�̅� + �̅��̅�𝑐𝑑) = �̅�𝑐̅�̅� + �̅��̅� b) �̅�=∑(0,5,6,8,9) và điều kiện ràng buộc ∑(7,11,12,13,14,15) = 0 (�̅��̅�𝑐̅�̅� + 𝑎�̅�𝑐̅�̅�)+(�̅�𝑏𝑐̅𝑑 + �̅�𝑏𝑐𝑑 + 𝑎𝑏𝑐̅𝑑 + 𝑎𝑏𝑐𝑑)+(�̅�𝑏𝑐�̅� + �̅�𝑏𝑐𝑑 + 𝑎𝑏𝑐�̅� + 𝑎𝑏𝑐𝑑)+(𝑎�̅�𝑐̅𝑑 + 𝑎�̅�𝑐𝑑 + 𝑎𝑏𝑐̅𝑑 + 𝑎𝑏𝑐𝑑) = �̅�𝑐̅�̅� + 𝑏𝑑 + 𝑏𝑐 + 𝑎𝑑 c) 𝑧̅=∑(1,2,6,10,14) và điều kiện ràng buộc ∑(7,11,12,13,14,15) = 0 (�̅��̅�𝑐̅𝑑 + �̅�𝑏𝑐̅𝑑)+(�̅��̅�𝑐�̅� + �̅�𝑏𝑐�̅� + 𝑎�̅�𝑐�̅� + 𝑎𝑏𝑐�̅�) = 𝑐�̅� + �̅�𝑐̅𝑑 d) 𝑧̅=∑(1,2,6,10,14) và điều kiện ràng buộc ∑(7,11,12,13,14,15) = 0 (�̅��̅�𝑐̅𝑑 + �̅��̅�𝑐𝑑 + �̅�𝑏𝑐̅𝑑 + �̅�𝑏𝑐𝑑)+(𝑎�̅�𝑐̅�̅� + 𝑎�̅�𝑐�̅� + 𝑎𝑏𝑐̅�̅� + 𝑎𝑏𝑐�̅�) = �̅�𝑑 + 𝑎�̅� 3. Thiết kế mạch a) Thiết kế mạch a. Mạch AND_OR - Từ biểu thức tối giản của đảo hàm phủ định 1 lần nữa (triển khai đến các biến) ta có biểu thức tối giản của nguyên hàm dạng AND_OR. �̿� = �̅��̅� + �̅�𝑐̅�̅�̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ = �̅��̅�̅̅̅̅ �̅�𝑐̅�̅�̅̅ ̅̅ ̅ = (𝑎 + 𝑏)(𝑎 + 𝑐 + 𝑑) �̿� = 𝑏𝑐 + 𝑏𝑑 + 𝑎𝑑 + �̅�𝑐̅�̅�̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ = 𝑏𝑐̅̅ ̅ 𝑏𝑑̅̅̅̅ 𝑎𝑑̅̅̅̅ �̅�𝑐̅�̅�̅̅ ̅̅ ̅ = (�̅� + 𝑐̅)(�̅� + �̅�)(�̅� + �̅�)(𝑏 + 𝑐 + 𝑑) 𝑧̿ = 𝑐�̅� + �̅�𝑐̅𝑑̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ = 𝑐�̅�̅̅ ̅ �̅�𝑐̅𝑑̅̅ ̅̅ ̅ = (𝑐̅ + 𝑑)(𝑎 + 𝑐 + �̅�) �̿� = �̅�𝑑 + 𝑎�̅�̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅ = �̅�𝑑̅̅̅̅ 𝑎�̅�̅̅̅̅ = (𝑎 + �̅�)(�̅� + 𝑑) Bài tập kĩ thuật số ứng dụng Thiết kế mạch chuyển mã BCD 7421 sang Dư 3 SVTH: HỒ TÁ QUÝ - LỚP 13T1 TRANG 14 Vẽ mạch: Chương trình C: #include #include #include /****************************************/ /******** MO PHONG MACH CHUYEN MA *******/ /*********** BCD 7421->MA DU 3 **********/ /************* MACH AND_OR ***********/ /****************************************/ void abcd(char i,char *x, char *a, char *b, char *c,char *d); main() { char a,b,c,d,i,MA8421[4]={8,4,2,1},MA7421[4]={7,4,2,1}; Bài tập kĩ thuật số ứng dụng Thiết kế mạch chuyển mã BCD 7421 sang Dư 3 SVTH: HỒ TÁ QUÝ - LỚP 13T1 TRANG 15 printf("\n MACH CHUYEN MA BCD 7421 -> MA DU 3\t"); printf("\n\t MACH AND_OR\t"); printf("\n_________MA7421_____MADu3__"); printf("\n| SoTP |a|b|c|d| |x|y|z|w|\n"); for(i=0;i<=9;i++) { if(i<=3) abcd(i,MA8421,&a,&b,&c,&d); else abcd(i,MA7421,&a,&b,&c,&d); printf("|\%5d |%d|%d|%d|%d| |%c|%c|%c|%c|\n",i,a,b,c,d,((a||b)&&(a||c||d))|0x30,((!b||!c)&&(! b||!d)&&(!a||!d)&&(b||c||d))|0x30,((!c||d)&&(a||c||!d))|0x30,((a||!d )&&(!a||d))|0x30); } } void abcd(char i,char *x, char *a, char *b, char *c,char *d) { char j=i; *a=j>=*x?1:0; if(*a) j-=*x; *b=j>=*(x+1)?1:0; if(*b) j-=x[1]; *c=j>=x[2]?1:0; if(*c) j-=*(x+2); *d=j>=*(x+3)?1:0; if(*d) j-=*(x+3); } Bài tập kĩ thuật số ứng dụng Thiết kế mạch chuyển mã BCD 7421 sang Dư 3 SVTH: HỒ TÁ QUÝ - LỚP 13T1 TRANG 16 Kết quả: b. Mạch NOR_AND Từ biểu thức tối giản của đảo hàm phủ định 1 lần nữa ( không triển khai) ta có biểu thức tối giản của nguyên hàm dạng NOR_AND. �̿� = �̅��̅� + �̅�𝑐̅�̅�̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ �̿� = 𝑏𝑐 + 𝑏𝑑 + 𝑎𝑑 + �̅�𝑐̅�̅�̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ 𝑧̿ = 𝑐�̅� + �̅�𝑐̅𝑑̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ �̿� = �̅�𝑑 + 𝑎�̅�̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅ Bài tập kĩ thuật số ứng dụng Thiết kế mạch chuyển mã BCD 7421 sang Dư 3 SVTH: HỒ TÁ QUÝ - LỚP 13T1 TRANG 17 Vẽ mạch: Chương trình C: #include #include #include /****************************************/ /******** MO PHONG MACH CHUYEN MA *******/ /*********** BCD 7421->MA DU 3 **********/ /************* MACH NOR_AND ***********/ /****************************************/ void abcd(char i,char *x, char *a, char *b, char *c,char *d); main() { Bài tập kĩ thuật số ứng dụng Thiết kế mạch chuyển mã BCD 7421 sang Dư 3 SVTH: HỒ TÁ QUÝ - LỚP 13T1 TRANG 18 char a,b,c,d,i,MA8421[4]={8,4,2,1},MA7421[4]={7,4,2,1}; printf("\n MACH CHUYEN MA BCD 7421 -> MA DU 3\t"); printf("\n\t MACH NOR_AND\t"); printf("\n_________MA7421_____MADu3__"); printf("\n| SoTP |a|b|c|d| |x|y|z|w|\n"); for(i=0;i<=9;i++) { if(i<=3) abcd(i,MA8421,&a,&b,&c,&d); else abcd(i,MA7421,&a,&b,&c,&d); printf("|\%5d |%d|%d|%d|%d| |%c|%c|%c|%c|\n",i,a,b,c,d,(!((!a&&!b)||(!a&&!c&&!d)))|0x30,( !((b&&c)||(b&&d)||(a&&d)||(!b&&!c&&!d)))|0x30,(!((c&&!d)|| (!a&&!c&&d)))|0x30,(!((!a&&d)||(a&&!d)))|0x30); } } void abcd(char i,char *x, char *a, char *b, char *c,char *d) { char j=i; *a=j>=*x?1:0; if(*a) j-=*x; *b=j>=*(x+1)?1:0; if(*b) j-=x[1]; *c=j>=x[2]?1:0; if(*c) j-=*(x+2); *d=j>=*(x+3)?1:0; if(*d) j-=*(x+3); } Bài tập kĩ thuật số ứng dụng Thiết kế mạch chuyển mã BCD 7421 sang Dư 3 SVTH: HỒ TÁ QUÝ - LỚP 13T1 TRANG 19 Kết quả: c. Mạch NOR_NOR Từ biểu thức tối giản của nguyên hàm dạng AND_OR, phủ định 2 lần nữa ( triển khai đến số hạng) ta có biểu thức tối giản của nguyên hàm dạng NOR_NOR. �̿� = (𝑎 + 𝑏)(𝑎 + 𝑐 + 𝑑)̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ = 𝑎 + 𝑏̅̅ ̅̅ ̅̅ ̅ + 𝑎 + 𝑐 + 𝑑̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅ �̿� = (�̅� + 𝑐̅)(�̅� + �̅�)(�̅� + �̅�)(𝑏 + 𝑐 + 𝑑)̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿ = �̅� + 𝑐̅̅̅ ̅̅ ̅̅ ̅ + �̅� + �̅�̅̅ ̅̅ ̅̅ ̅ + �̅� + �̅�̅̅ ̅̅ ̅̅ ̅ + 𝑏 + 𝑐 + 𝑑̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ 𝑧̿ = (𝑐̅ + 𝑑)(𝑎 + 𝑐 + �̅�)̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ = 𝑐̅ + 𝑑̅̅ ̅̅ ̅̅ ̅ + 𝑎 + 𝑐 + �̅�̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅ �̿� = (𝑎 + �̅�)(�̅� + 𝑑)̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ ̿̿ = 𝑎 + �̅�̅̅ ̅̅ ̅̅ ̅ + �̅� + 𝑑̅̅ ̅̅ ̅̅ ̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ Bài tập kĩ thuật số ứng dụng Thiết kế mạch chuyển mã BCD 7421 sang Dư 3 SVTH: HỒ TÁ QUÝ - LỚP 13T1 TRANG 20 Vẽ mạch: Chương trình C: #include #include #include /****************************************/ /******** MO PHONG MACH CHUYEN MA *******/ /*********** BCD 7421->MA DU 3 **********/ /************* MACH NOR_NOR ***********/ /****************************************/ void abcd(char i,char *x, char *a, char *b, char *c,char *d); main() { char a,b,c,d,i,MA8421[4]={8,4,2,1},MA7421[4]={7,4,2,1}; printf("\n MACH CHUYEN MA BCD 7421 -> MA DU 3\t"); printf("\n\t MACH NOR_NOR\t"); printf("\n_________MA7421_____MADu3__"); printf("\n| SoTP |a|b|c|d| |x|y|z|w|\n"); for(i=0;i<=9;i++) { if(i<=3) Bài tập kĩ thuật số ứng dụng Thiết kế mạch chuyển mã BCD 7421 sang Dư 3 SVTH: HỒ TÁ QUÝ - LỚP 13T1 TRANG 21 abcd(i,MA8421,&a,&b,&c,&d); else abcd(i,MA7421,&a,&b,&c,&d); printf("|\%5d |%d|%d|%d|%d| |%c|%c|%c|%c|\n",i,a,b,c,d,!!(!(!(a||b)||!(a||c||d)))|0x30,!!(!(!(!b||!c)||!( !b||!d)||!(!a||!d)||!(b||c||d)))|0x30,!!(!(!(!c||d)||!(a||c||!d)))|0x30,!!(!(!(a|| !d)||!(!a||d)))|0x30); } } void abcd(char i,char *x, char *a, char *b, char *c,char *d) { char j=i; *a=j>=*x?1:0; if(*a) j-=*x; *b=j>=*(x+1)?1:0; if(*b) j-=x[1]; *c=j>=x[2]?1:0; if(*c) j-=*(x+2); *d=j>=*(x+3)?1:0; if(*d) j-=*(x+3); } Kết quả:

Các file đính kèm theo tài liệu này:

  • pdfbai_tap_ktsud_6915.pdf