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

Thiết kế mạch chuyển mã từ GRAY sang BCD 7421

19 1K 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 2,54 MB

Nội dung

Trang 1

Đề số 22 Thiết kế mạch chuyển mã từ

GRAY sang BCD 7421

Các bước thực hiện:

Đầu vào Gray gồm 4 bit vào A, B, C, D ; Đầu ra BCD 7421 gồm 4 bit ra

K, L, M, N

-Lập bảng công tác tương ứng cho Gray ( với A, B, C, D) và BCD 7421 ( với K, L, M, N)

-Lập biểu thức logic cho các đầu ra K, L, M, N ( dưới 2 dạng chuẩn tắc tuyển và chuẩn tắc hội)

-Tối giản biểu thức logic của mỗi đầu ra bằng 2 cách: dùng bảng Karnaugh và dùng các định lý logic

-Thiết kế mạch chuyển đổi với tất cả các dạng mạch logic ( gồm OR-AND, AND-OR, NOR-OR-AND, NOR- NOR, NAND-NAND)

-Viết chương trình mô phỏng mạch logic bằng ngôn ngữ C

-In kết quả của chương trình trả về màn hình

1.Bảng công tác:

Số

thập phân

Các tổ

hợp thừa

SVTH: Lê Anh Huỳnh Nhóm 8A Page 1

Trang 2

2.Biểu thức logic cho các đầu ra K, L, M, N:

+ Biểu thức logic theo dạng chuẩn tắc tuyển ( OR-AND ):

;

;

;

K = +

L = + +

+ Biểu thức logic theo dạng chuẩn tắc hội ( AND-OR ):

K= (A+B+C+D) (A+B+C+ ) (A+B+ +D) (A+B+ + ) (A+ +C+D);

L= (A+B+C+D) (A+B+C+ ) (A+B+ +D) (A+B+ + ) (A+ +C+ );

M= (A+B+C+D) (A+B+C+ ) (A+ +C+D) (A+ + +D) ( +B+C+D);

N= (A+B+C+D) (A+B+ +D) (A+ +C+D) ( +B+C+ ) ( +B+C+ );

K = (A+B+C+D)(A+B+C+ ) (A+B+ + ) (A+B+ +D) (A+ + +D) (A+ + + ) (A+ +C+ )

SVTH: Lê Anh Huỳnh Nhóm 8A Page 2

Trang 3

L = (A+B+C+D)(A+B+C+ ) (A+B+ + ) (A+B+ +D) (A+ +C+D)( + +C+D) ( + +C+ )

M = (A+B+C+D)(A+B+C+ )(A+ + +D) (A+ + + ) (A+ +C+D)( + +C+D)

N = (A+B+C+D)(A+B+ + )(A+ + +D)(A+ +C+ ) (A+ +C+D) ( + +C+ )

3.Tối giản biểu thức logic đầu ra:

a)Phương pháp dùng định lý logic:

+ Đầu ra K:

và điều kiện ràng buộc

)

=

=

=

=

=

=

=

=

=

=

=>kết quả tối giản: K=

SVTH: Lê Anh Huỳnh Nhóm 8A Page 3

Trang 4

+Đầu ra L:

và điều kiện ràng buộc

+(

= B

= B

= B

= B

= B

=>Kết quả tối giản: L= A + B

+Đầu ra M:

và điều kiện ràng buộc

+

=

=

=

=

=

=

=>Kết quả tối giản: M=

+Đầu ra N:

và điều kiện ràng buộc

SVTH: Lê Anh Huỳnh Nhóm 8A Page 4

Trang 5

= D +

=>Kết quả tối giản: N= D +

b)Phương pháp dùng bảng Karnaugh:

* Dạng OR-AND

+Đầu ra K:

Từ bảng K, ta có biểu thức tối giản: K=A + B

+Đầu ra L:

SVTH: Lê Anh Huỳnh Nhóm 8A Page 5

C D

10 00

C D AB

00

Ss A

Trang 6

Từ bảng K, ta có biểu thức tối giản: L= BC + BD

+Đầu ra M:

giản: M= +

+Đầu ra N:

SVTH: Lê Anh Huỳnh Nhóm 8A Page 6

C D AB

11

10

C D AB

BC

Trang 7

Từ bảng K, ta có biểu thức tối giản: N= A + + + BCD

4.Thiết kế mạch chuyển đổi Gray sang BCD 7421 a)Dạng OR-AND:

+Thiết kế với các biểu thức đầu ra dạng OR-AND:

K=A + B L= BC + BD M= + N= A + + + BCD

+Mạch:

SVTH: Lê Anh Huỳnh Nhóm 8A Page 7

A

BCD

Trang 8

b)Dạng AND-OR:

+Xét bảng K đầu ra K:

SVTH: Lê Anh Huỳnh Nhóm 8A Page 8

CD AB

00

00

A

B C

D

A B C D

Trang 9

Đóng vòng toàn 0, ta có biểu thức tối giản đảo hàm: = + Phủ định đảo hàm:

+Xét bảng K đầu ra L:

Đóng vòng toàn 0, ta có biểu thức đảo hàm: = Phủ định đảo hàm:

L= = = (A+B)(A+C+ )

SVTH: Lê Anh Huỳnh Nhóm 8A Page 9

C D AB

00

01

00

Trang 10

+Xét bảng K đầu ra M:

BC

Đóng vòng toàn 0, ta có biểu thức của đảo hàm: = Phủ định đảo hàm:

M= = = (

SVTH: Lê Anh Huỳnh Nhóm 8A Page 10

C D AB

00

C D AB

10

Trang 11

AD Đóng vòng 0, ta có biểu thức của đảo hàm: =

Phủ định đảo hàm:

+Thiết kế mạch với các biểu thức dạng AND-OR:

K = (A+B)(A+C+D)

L = (A+B)(A+C+ )

M= ( N= ( (A + D)

SVTH: Lê Anh Huỳnh Nhóm 8A Page 11

K L M N

Trang 12

+Mạch:

c)Dạng NOR-AND:

+Phủ định một lần biểu thức tối giản của đảo hàm (không triển khai):

K= = L= = M= = N= =

SVTH: Lê Anh Huỳnh Nhóm 8A Page 12

A B C D

A B C D

Trang 13

+Mạch:

d)Dạng NOR-NOR:

+ Phủ định 2 lần biểu thức dạng AND-OR của các đầu ra ta có dạng NOR-NOR:

SVTH: Lê Anh Huỳnh Nhóm 8A Page 13

A

B C D

A B C D

Trang 14

K=(A+B).(A+C+D) = =

+Mạch:

SVTH: Lê Anh Huỳnh Nhóm 8A Page 14

K L M N

A B C D

B C D

Trang 15

e)Dạng NAND-NAND:

K=

L=A + B M= AD + BD + C N= D+ A

+Phủ định 2 lần biểu thức dạng OR-AND các đầu ra ta có biểu thức

dạng NAND-NAND:

L= = = M= AD + BD + C= = N= D+ A = =

+Mạch:

SVTH: Lê Anh Huỳnh Nhóm 8A Page 15

K L M N

Trang 16

C: Mô phỏng mạch logic bằng chương trình C:

a)Dạng OR-AND:

#include <conio.h>

#include <stdio.h>

main() { int a,b,c,d,k,i=0;

printf( "BANG CHUYEN MA BCD 7421 => BCD 2421" );

printf( "\n\n\n" );

printf( " - \n" );

printf( "| STP | BCD7421 | ==> | BCD2421 | \n" );

printf( " - \n" );

for (a=0;a<=1;a++)

for (b=0;b<=1;b++) for (c=0;c<=1;c++) for (d=0;d<=1;d++) { k=8*a+4*b+2*c+d;

if ((k>=11)||(k==7)) continue ; printf( "| %2d |%2d%2d%2d%2d | ==> |%2d%2d%2d%2d | \n" ,i,a,b,c,d, (b&&d||b&&c||a),(a||b&&!d),(a&&d||b&&d||!b&&c),(!a&&d||a&&!d));

i++;

} printf( " - \n" );

getch();

}

b) Dạng AND-OR :

#include <conio.h>

#include <stdio.h>

main() { int a,b,c,d,k,i=0;

printf( "BANG CHUYEN MA BCD 7421 => BCD 2421" );

printf( "\n\n\n" );

printf( " - \n" );

printf( "| STP | BCD7421 | ==> | BCD2421 | \n" );

printf( " - \n" );

SVTH: Lê Anh Huỳnh Nhóm 8A Page 16

B C

D

B C D

Trang 17

for (b=0;b<=1;b++) for (c=0;c<=1;c++) for (d=0;d<=1;d++) { k=8*a+4*b+2*c+d;

if ((k>=11)||(k==7)) continue ; printf( "| %2d |%2d%2d%2d%2d | ==> |%2d%2d%2d%2d | \n" ,i,a,b,c,d,

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

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

i++;

} printf( " - \n" );

getch();

}

c) Dạng NOR-AND:

#include <conio.h>

#include <stdio.h>

main() { int a,b,c,d,k,i=0;

printf( "BANG CHUYEN MA BCD 7421 => BCD 2421" );

printf( "\n\n\n" );

printf( " - \n" );

printf( "| STP | BCD7421 | ==> | BCD2421 | \n" );

printf( " - \n" );

for (a=0;a<=1;a++)

for (b=0;b<=1;b++) for (c=0;c<=1;c++) for (d=0;d<=1;d++) { k=8*a+4*b+2*c+d;

if ((k>=11)||(k==7)) continue ; printf( "| %2d |%2d%2d%2d%2d | ==> |%2d%2d%2d%2d | \n" ,i,a,b,c,d,

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

i++;

} printf( " - \n" );

getch();

}

d) Dạng toàn NOR:

#include <conio.h>

#include <stdio.h>

main() { int a,b,c,d,k,i=0;

printf( "BANG CHUYEN MA BCD 7421 => BCD 2421" );

printf( "\n\n\n" );

printf( " - \n" );

printf( "| STP | BCD7421 | ==> | BCD2421 | \n" );

printf( " - \n" );

for (a=0;a<=1;a++)

for (b=0;b<=1;b++) for (c=0;c<=1;c++)

SVTH: Lê Anh Huỳnh Nhóm 8A Page 17

Trang 18

for (d=0;d<=1;d++) { k=8*a+4*b+2*c+d;

if ((k>=11)||(k==7)) continue ; printf( "| %2d |%2d%2d%2d%2d | ==> |%2d%2d%2d%2d | \n" ,i,a,b,c,d,

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

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

i++;

} printf( " - \n" );

getch();

}

e) Dạng toàn NAND:

#include <conio.h>

#include <stdio.h>

main() { int a,b,c,d,k,i=0;

printf( "BANG CHUYEN MA BCD 7421 => BCD 2421" );

printf( "\n\n\n" );

printf( " - \n" );

printf( "| STP | BCD7421 | ==> | BCD2421 | \n" );

printf( " - \n" );

for (a=0;a<=1;a++)

for (b=0;b<=1;b++) for (c=0;c<=1;c++) for (d=0;d<=1;d++) { k=8*a+4*b+2*c+d;

if ((k>=11)||(k==7)) continue ; printf( "| %2d |%2d%2d%2d%2d | ==> |%2d%2d%2d%2d | \n" ,i,a,b,c,d, !(!(b&&d)&&!(b&&c)&&!a),!(!a&&!(b&&!d)),!(!(a&&d)&&!(b&&d)&&!(!b&&c)),!(! (!a&&d)&&!(a&&!d)));

i++;

} printf( " - \n" );

getch();

}

Kết quả xuất ra màn hình của các chương trình mô phỏng trên:

SVTH: Lê Anh Huỳnh Nhóm 8A Page 18

Trang 19

SVTH: Lê Anh Huỳnh Nhóm 8A Page 19

Ngày đăng: 23/05/2014, 23:38

TỪ KHÓA LIÊN QUAN

w