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);
21 trang |
Chia sẻ: tienthan23 | Lượt xem: 10259 | Lượt tải: 1
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:
- bai_tap_ktsud_6915.pdf