Tải bản đầy đủ (.docx) (20 trang)

Bài tập Kỹ thuật số ứng dụng Thiết kế mạch chuyển mã từ BCD 8421 sang BCD 5412 Thầy Lư

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (452.33 KB, 20 trang )

I.

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Lập bảng công tác:
KHOA CÔNG NGHỆ THÔNG TIN
____***____
BCD
8421 BCD 5421
abcd
xyzw
0

0000

0000

1

0001

0001

2

0010

0010

3


0011

0011

5

0101

1000

6

0110

1001

BÀI TẬP KỸ
THUẬT
SỐ0100
ỨNG DỤNG
4
0100
7
8

0111
ĐỀ
TÀI 10: 1010
1000


1011

THIẾT KẾ
9 MẠCH
1001 CHUYỂN
1100 ĐỔI MÃ
10

1010

1101

TỪ BCD
8421
SANG BCD
5421
11
1011
1110
12 HỆ1100
XXXXNHỊ PHÂN
DÙNG CHO
ĐẾM THẬP
13

1101

XXXX

14


1110

XXXX

15

Giảng viên
Sinh viên
Mã sinh viên
Lớp


1111
:
:
:
:

XXXX

TS.Đặng Bá Lư
Trần Duy Tân
102120117
12T1

Đà Nẵng, ngày 24 tháng 7 năm 2017


Bài tập Kỹ thuật số ứng dụng


GV: Đặng Bá Lư

II. Thiết kế mạch dạng AND_OR, NOR_NOR, NOR_AND
1) Tối giản bằng bảng K:
Đánh vòng các ô toàn 0 ta có biểu thức tối giản của đảo hàm.

cd

00

01

11

10

00

0

0

0

0

01

0


1

1

1

11

X

X

X

X

10

1

1

1

1

00

01


11

10

00

0

0

0

0

01

1

0

0

0

11

X

X


X

X

10

0

1

1

1

ab

=

cd
ab

=

SV: Trần Duy Tân

Lớp 12T1

Trang 2



Bài tập Kỹ thuật số ứng dụng

cd

GV: Đặng Bá Lư

00

01

11

10

00

0

0

1

1

01

0

0


1

0

11

X

X

X

X

ab

10

1

0

1

0

00

01


11

10

00

0

1

1

0

01

0

0

0

1

11

X

X


X

X

10

1

0

0

1

cd

b

ac

ab

SV: Trần Duy Tân

Lớp 12T1

Trang 3



Bài tập Kỹ thuật số ứng dụng

GV: Đặng Bá Lư

2) Tối giản bằng biểu thức Logic
 Đầu ra x:
và điều kiện ràng buộc

)
=

 Đầu ra y:
và điều kiện ràng buộc
= ( + ) + ( ) + () + ()
=
=
=

 Đầu ra z:
và điều kiện ràng buộc
=
=
=b++

 Đầu ra w:
và điều kiện ràng buộc
=
=+
=
=


SV: Trần Duy Tân

Lớp 12T1

Trang 4


Bài tập Kỹ thuật số ứng dụng

GV: Đặng Bá Lư

Thiết kế mạch:
a. Dạng 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.

 Chương trình mô phỏng mạch AND_OR:
#include "stdafx.h"
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
void abcd(char i, char *x, char *a, char *b, char *c, char *d);
int main()
{
char a, b, c, d, i, MA8421[4] = { 8,4,2,1 };
printf("\n\t\t\t _____________________________________");
printf("\n\t\t\t | Tran Duy Tan. MSSV:102120117
|");
printf("\n\t\t\t | Mo phong Mach chuyen ma

|");
SV: Trần Duy Tân

Lớp 12T1

Trang 5


Bài tập Kỹ thuật số ứng dụng

GV: Đặng Bá Lư

printf("\n\t\t\t | BCD 8421=> BCD 5421
|");
printf("\n\t\t\t | Dung cho he thap nhi phan
|");
printf("\n\t\t\t | Mach AND_OR
|");
printf("\n\t\t\t |______________________________________|");
printf("\n\n\n\n\n");
printf("\t\t\t\t........MA8421.....MA5421.\n");
printf("\t\t\t\t| SoTP |a|b|c|d| |x|y|z|w|\n");
for (i = 0; i <= 11; i++)
{
abcd(i, MA8421, &a, &b, &c, &d);
printf("\t\t\t\t|\%5d |%d|%d|%d|%d| |%d|%d|%d|%d|\n", i, a, b,
c, d,
(a || b) && (a || c || d), (a || !c) && (a || !d) && (b || c || d)
&& (!a||!b), (a || c) && (!b || d) && (c || !d) && (!a || !c || d), (!a || !d) && (a
|| b || d) && (!b || c) && (!b || !d));

}
for (i = 12; i <= 15; i++)
{
abcd(i, MA8421, &a, &b, &c, &d);
printf("\t\t\t\t|\%5d |%d|%d|%d|%d| |X|X|X|X|\n", i, a, b, c, d);
}
getchar();
}
void abcd(char i, char *x, char *a, char *b, char *c, char *d)
{
char j = i;
*a = j >= x[0] ? 1 : 0; if (*a) j -= x[0];
*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];
}

SV: Trần Duy Tân

Lớp 12T1

Trang 6


Bài tập Kỹ thuật số ứng dụng

GV: Đặng Bá Lư

b. Dạng 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.

SV: Trần Duy Tân

Lớp 12T1

Trang 7


Bài tập Kỹ thuật số ứng dụng

GV: Đặng Bá Lư

 Chương trình mô phỏng mạch NOR_AND:
#include "stdafx.h"
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
void abcd(char i, char *x, char *a, char *b, char *c, char *d);
int main()
{
char a, b, c, d, i, MA8421[4] = { 8,4,2,1 };
printf("\n\t\t\t _____________________________________");
printf("\n\t\t\t | Tran Duy Tan. MSSV:102120117
|");
printf("\n\t\t\t | Mo phong Mach chuyen ma
|");
printf("\n\t\t\t | BCD 8421=> BCD 5421
|");
printf("\n\t\t\t | Dung cho he thap nhi phan

|");
printf("\n\t\t\t | Mach NOR_AND
|");
printf("\n\t\t\t |______________________________________|");
printf("\n\n\n\n\n");
printf("\t\t\t\t........MA8421.....MA5421.\n");
printf("\t\t\t\t| SoTP |a|b|c|d| |x|y|z|w|\n");
for (i = 0; i <= 11; i++)
{
abcd(i, MA8421, &a, &b, &c, &d);
printf("\t\t\t\t|\%5d |%d|%d|%d|%d| |%d|%d|%d|%d|\n", i, a, b,
c, d,
SV: Trần Duy Tân

Lớp 12T1

Trang 8


Bài tập Kỹ thuật số ứng dụng

GV: Đặng Bá Lư

!((!a&&!b)||(!a&&!c&&!d)), !((!a&&c)||(!a&&d)||(!b&&!
c&&!d)), !((!a&&!c)||(b&&!d)||(!c&&d)||(a&&c&&!d)), !((a&&d)||(!a&&!b&&!
d)||(b&&!c)||(b&&d)));
}
for (i = 12; i <= 15; i++)
{
abcd(i, MA8421, &a, &b, &c, &d);

printf("\t\t\t\t|\%5d |%d|%d|%d|%d| |X|X|X|X|\n", i, a, b, c, d);
}
getchar();
}
void abcd(char i, char *x, char *a, char *b, char *c, char *d)
{
char j = i;
*a = j >= x[0] ? 1 : 0; if (*a) j -= x[0];
*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];
}

SV: Trần Duy Tân

Lớp 12T1

Trang 9


Bài tập Kỹ thuật số ứng dụng

GV: Đặng Bá Lư

c. Dạng 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.

 Chương trình mô phỏng mạch NOR_NOR:
#include "stdafx.h"

#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
void abcd(char i, char *x, char *a, char *b, char *c, char *d);
int main()
{
char a, b, c, d, i, MA8421[4] = { 8,4,2,1 };
printf("\n\t\t\t _____________________________________");
printf("\n\t\t\t | Tran Duy Tan. MSSV:102120117
|");

SV: Trần Duy Tân

Lớp 12T1

Trang 10


Bài tập Kỹ thuật số ứng dụng

GV: Đặng Bá Lư

printf("\n\t\t\t | Mo phong Mach chuyen ma
|");
printf("\n\t\t\t | BCD 8421=> BCD 5421
|");
printf("\n\t\t\t | Dung cho he thap nhi phan
|");
printf("\n\t\t\t | Mach NOR_NOR
|");

printf("\n\t\t\t |______________________________________|");
printf("\n\n\n\n\n");
printf("\t\t\t\t........MA8421.....MA5421.\n");
printf("\t\t\t\t| SoTP |a|b|c|d| |x|y|z|w|\n");
for (i = 0; i <= 11; i++)
{
abcd(i, MA8421, &a, &b, &c, &d);
printf("\t\t\t\t|\%5d |%d|%d|%d|%d| |%d|%d|%d|%d|\n", i, a, b,
c, d,
!(!(a||b)||!(a||c||d)),!(!(a||!c)||!(a||!d)||!(b||c||d)),!(!(a||c)||!
(!b||d)||!(c||!d)||!(!a||!c||d)), !(!(!a||!d)||!(a||b||d))||(!(!b||c)||!(!b||!d)));
}
for (i = 12; i <= 15; i++)
{
abcd(i, MA8421, &a, &b, &c, &d);
printf("\t\t\t\t|\%5d |%d|%d|%d|%d| |X|X|X|X|\n", i, a, b, c, d);
}
getchar();
}
void abcd(char i, char *x, char *a, char *b, char *c, char *d)
{
char j = i;
*a = j >= x[0] ? 1 : 0; if (*a) j -= x[0];
*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];
}

SV: Trần Duy Tân


Lớp 12T1

Trang 11


Bài tập Kỹ thuật số ứng dụng

SV: Trần Duy Tân

Lớp 12T1

GV: Đặng Bá Lư

Trang 12


Bài tập Kỹ thuật số ứng dụng

GV: Đặng Bá Lư

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 hàm.

cd

00

01


11

10

00

0

0

0

0

01

0

1

1

1

11

X

X


X

X

10

1

1

1

1

ab

bd

bc

a

x = a + bc + bd

cd

00

01


11

10

00

0

0

0

0

01

1

0

0

0

11

X

X


X

X

ab

b

ad

ac

10

0

1

1

1

y=

SV: Trần Duy Tân

Lớp 12T1

Trang 13



Bài tập Kỹ thuật số ứng dụng

cd

GV: Đặng Bá Lư

00

01

11

10

00

0

0

1

1

01

0

0


1

0

11

X

X

X

X

ab

a

10

1

0

1

0

00


01

11

10

00

0

1

1

0

01

0

0

0

1

11

X


X

X

X

cd

z=a

cd
ab

bc

a

10

SV: Trần Duy Tân

Lớp 12T1

1

0

0


1

Trang 14


Bài tập Kỹ thuật số ứng dụng

GV: Đặng Bá Lư

Tối giản bằng biểu thức Logic
 Đầu ra x:
và điều kiện ràng buộc
= + (ac + abc )
=
= bd + bc + a + ad + ab
=
=

 Đầu ra y:
và điều kiện ràng buộc
=
=

 Đầu ra z:
và điều kiện ràng buộc
=

 Đầu ra w:
và điều kiện ràng buộc
=


SV: Trần Duy Tân

Lớp 12T1

Trang 15


Bài tập Kỹ thuật số ứng dụng

GV: Đặng Bá Lư

Thiết kế mạch:
c. Dạng OR_AND
x=

 Chương trình mô phỏng mạch OR_AND:
#include "stdafx.h"
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
void abcd(char i, char *x, char *a, char *b, char *c, char *d);
int main()
{
char a, b, c, d, i, MA8421[4] = { 8,4,2,1 };
printf("\n\t\t\t _____________________________________");
printf("\n\t\t\t | Tran Duy Tan. MSSV:102120117
|");
printf("\n\t\t\t | Mo phong Mach chuyen ma
|");

printf("\n\t\t\t | BCD 8421=> BCD 5421
|");

SV: Trần Duy Tân

Lớp 12T1

Trang 16


Bài tập Kỹ thuật số ứng dụng

GV: Đặng Bá Lư

printf("\n\t\t\t | Dung cho he thap nhi phan
|");
printf("\n\t\t\t | Mach OR_AND
|");
printf("\n\t\t\t |______________________________________|");
printf("\n\n\n\n\n");
printf("\t\t\t\t........MA8421.....MA5421.\n");
printf("\t\t\t\t| SoTP |a|b|c|d| |x|y|z|w|\n");
for (i = 0; i <= 11; i++)
{
abcd(i, MA8421, &a, &b, &c, &d);
printf("\t\t\t\t|\%5d |%d|%d|%d|%d| |%d|%d|%d|%d|\n", i, a, b,
c, d,
a || (b&&c) || (b&&d), (b && !c && !d) || (a&&d) || (a&&c),
(!a && !b&&c) || (c&&d) || (a && !c && !d), (!a && !b&&d) || (b&&c && !d) ||
(a && !d));

}
for (i = 12; i <= 15; i++)
{
abcd(i, MA8421, &a, &b, &c, &d);
printf("\t\t\t\t|\%5d |%d|%d|%d|%d| |X|X|X|X|\n", i, a, b, c, d);
}
getchar();
}
void abcd(char i, char *x, char *a, char *b, char *c, char *d)
{
char j = i;
*a = j >= x[0] ? 1 : 0; if (*a) j -= x[0];
*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];
}

SV: Trần Duy Tân

Lớp 12T1

Trang 17


Bài tập Kỹ thuật số ứng dụng

GV: Đặng Bá Lư

d. Dạng 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.

SV: Trần Duy Tân

Lớp 12T1

Trang 18


Bài tập Kỹ thuật số ứng dụng

GV: Đặng Bá Lư

 Chương trình mô phỏng mạch NAND_NAND:
#include "stdafx.h"
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
void abcd(char i, char *x, char *a, char *b, char *c, char *d);
int main()
{
char a, b, c, d, i, MA8421[4] = { 8,4,2,1 };
printf("\n\t\t\t _____________________________________");
printf("\n\t\t\t | Tran Duy Tan. MSSV:102120117
|");
printf("\n\t\t\t | Mo phong Mach chuyen ma
|");
printf("\n\t\t\t | BCD 8421=> BCD 5421
|");
printf("\n\t\t\t | Dung cho he thap nhi phan

|");
printf("\n\t\t\t | Mach NAND_NAND
|");
printf("\n\t\t\t |______________________________________|");
printf("\n\n\n\n\n");
printf("\t\t\t\t........MA8421.....MA5421.\n");
printf("\t\t\t\t| SoTP |a|b|c|d| |x|y|z|w|\n");
for (i = 0; i <= 11; i++)
{
abcd(i, MA8421, &a, &b, &c, &d);
printf("\t\t\t\t|\%5d |%d|%d|%d|%d| |%d|%d|%d|%d|\n", i, a, b,
c, d,

SV: Trần Duy Tân

Lớp 12T1

Trang 19


Bài tập Kỹ thuật số ứng dụng

GV: Đặng Bá Lư

!(!a && !(b&&c) && !(b&&d)), !(!(b && !c && !d) && !
(a&&d) && (!a&&c)), !(!(!a && !b&&c) && (!c&&d) && !(a && !c && !d)), !(!
(!a && !b&&d) && !(b&&c && !d) && !(a && !d)));

}
for (i = 12; i <= 15; i++)

{
abcd(i, MA8421, &a, &b, &c, &d);
printf("\t\t\t\t|\%5d |%d|%d|%d|%d| |X|X|X|X|\n", i, a, b, c, d);
}
getchar();
}
void abcd(char i, char *x, char *a, char *b, char *c, char *d)
{
char j = i;
*a = j >= x[0] ? 1 : 0; if (*a) j -= x[0];
*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];
}

SV: Trần Duy Tân

Lớp 12T1

Trang 20



×