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

Bai tap ky thuat so ung dung de 12

19 696 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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Lập bảng K cho mỗi đầu ra.. - Tạo biểu thức tối giản của nguyên hàm đánh vòng các ô làm hàm ra bằng 1, của đảo hàm đánh vòng các ô làm hàm ra bằng 0.. - Trong bảng K tổ hợp thừa ta đánh

Trang 1

THIẾT KẾ MẠCH CHUYỂN MÃ

MÃ ĐẦU VÀO BCD 7421 – MÃ ĐẦU RA BCD 8421

*

Phân tích bài toán và Thực hiên:

Trong các thiết bị điện tử số, để biễu diễn 10 chữ số thập phân từ 0 đến 9, người ta dùng 4 bit để tổ hợp nên tạo ra được 16 tổ hợp khác nhau.Ta chỉ dùng 10 tổ hợp trong 16 tổ hợp nên tạo ra đựơc nhiều hệ mã khác nhau trong đó có 6 tổ hợp

thừa Những hệ mã đó là: mã BCD 8421, BCD 7421, BCD 5421, BCD 2421, Gray, Dư 3.

- 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ó 4 đầu ra x,y,z,t mỗi đầu ra là một hàm của 4 biến vào a,b,c,d Lập bảng

K cho mỗi đầu ra.

- Tạo biểu thức tối giản của nguyên hàm đánh vòng các ô làm hàm ra bằng 1, của đảo hàm đánh vòng các ô làm hàm ra bằng 0.

- Trong bảng K tổ hợp thừa ta đánh X

Trang 2

1.Bảng công tác

thập

phân

a b c d x y z t

Tổ

hợp

thừa

Mỗi cột x , y , z , t là một hàm của bốn biến a, b, c, d  Lập một bảng K cho mỗi hàm

2

Trang 3

2.Tối giản bằng bảng Karnaugh:

Đầu x

cd

00 01 11 10

Dựa vào bảng trên ta có : x = ad+ac

x = a + c d

Đầu y

cd

00 01 11 10

Dựa vào bảng trên ta có : y = b + a c d

y = a b + d + b c

Trang 5

Đầu z

cd

00 01 11 10

Dựa vào bảng trên ta có : z =a c+a c d

z = a c + ac + c d

Đầu t

cd

00 01 11 10

Dựa vào bảng trên ta có: t = a d + a d

ad d

a

Trang 7

3.Tối giản bằng định lý Logic:

Từ bảng công tác ta or các minterm nào làm hàm ra bằng 1.(Mỗi cột là 1 hàm của 4 biến vào a,b,c,d),

ta có biểu thức chuẩn tắc tuyễn của đảo hàm Ta or tất cả các minterm làm hàm ra có giá trị không xác định để lập điều kiện ràng buộc

 x =

) 10 9 (

∑ +

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

0 ) 15 14 13 12 11 7 ( + + + + + =

= b c d+ b c d

= ad+ac

 y= ∑(4+5+6+7)

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

0 ) 15 14 13 12 11 7 ( + + + + + =

y= b c d+ b c d+a bc d+ b c d

d c a b

y = +

 z=∑(2+3+6+7)

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

0 ) 15 14 13 12 11 7 ( + + + + + =

z= a b c d+ b cd+a b c d+a bc d

d c a c

a

z = +

 t=∑(1+3+5+7+10)

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

0 ) 15 14 13 12 11 7 ( + + + + + =

t = b c d+a b cd+ b c d+ b c d+ b c d

d a d a

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 các ô toàn 1 và x tìm được biểu thức của nguyên hàm như sau

Trang 8

x = ad + ac, y = b + a c d

, z = a c + a c d

, t = a d + a d

a b c d

8

Trang 9

b) Thiết kế mạch logic dạng AND -OR

Từ bảng Kaunaugh, ta đánh vòng các ô toàn 0 và “x”, tìm được biểu thức đảo hàm, sau đó ta phủ định một lần và triển khai đến cấp biến để tìm biểu thức nguyên hàm như sau:

) (c d a d c a x

x= = + = +

, y= y= b+ d+b c=(a+b)(b+d)(b+c)

, )

)(

)(

(a c a c c d d

c ac c a z

z= = + + = + + +

, t=t=a d+ad =(a+d)(a+d)

a b

Trang 10

c) Thiết kế mạch logic dạng NOR-AND

Từ bảng Kaunaugh, ta đánh vòng các ô toàn 0 và “x”, tìm được biểu thức đảo hàm, sau đó ta phủ định một lần và tìm biểu thức nguyên hàm như sau:

d c a

x

x = = +

, y= y= b+ d+b c

, z = z = a c + ac + c d

, t = t = a d + ad

10

Trang 11

d) Thiết kế mạch logic dạng NOR-NOR

Từ bảng Kaunaugh, ta đánh vòng các ô toàn 0 và “x”, tìm được biểu thức đảo hàm, sau đó ta phủ định một lần và sau đó triển khai tiếp để tìm biểu thức nguyên hàm như sau: Tiếp tục phủ định 2 lần nữa để tìm biểu thức nguyên hàm

) ( ) ( c d a c d a

d

c

a

x

x = = + = + = + +

,

) ( ) ( ) ( ) )(

)(

( a b b d b c a b b d b c c

b d b

y

y = = + + = + + + = + + + + +

,

) ( ) ( ) ( ) )(

)(

( a c a c c d a c a c c d d

c ac

c

a

z

z = = + + = + + + = + + + + +

,

) ( ) ( ) )(

( a d a d a d a d ad

d

a

t

t = = + = + + = + + +

Trang 13

e) Thiết kế mạch logic dạng NAND-NAND

Từ bảng Kaunaugh, ta đánh vòng các ô toàn 1 và “x”, tìm được biểu thức nguyên hàm sau

đó, phủ định 2 lần, quá trình biến đổi như sau

Biểu thức:

x =ad+ac x = ad + ac = ad ac

.

d c

a

b

y = +

y = b + a c d = b a c d

.

d c a

c

a

z = +

z = a c + a c d = a c a c d

.

ad

d

a

t = +

t = a d + ad = a d ad

.

Trang 14

5 Chương trình mô phỏng

//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

Trang 15

if (n<0 || 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",

Trang 16

(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

Trang 17

}

int main(){

short t = 1;

while (t){

printf("|======================================|\n");

printf("|======= MO PHONG MACH CHUYEN MA ======|\n"); printf("|======= BCD7421 -> BCD 8421 ======|\n");

printf("|======================================|\n");

printf("| 1 In mach AND-OR |\n");

printf("| 2 In mach OR-AND |\n");

printf("| 3 In mach NOR-AND |\n");

printf("| 4 In mach NOR-NOR |\n");

printf("| 5 In mach NAND-NAND |\n");

printf("| - 0 to Exit -|\n");

printf("Chon N Tu 1 Den 5 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 = 0 ; i<10; i++){

and_or(i);

} break;

case 2:

printf("\tIn mach OR-AND\n");

printf("|

Trang 18

printf("|So thap phan | BCD7421 | BCD 8421 |\n"); printf("| N | abcd | xywt |\n");

printf("|**************************************|\n");

for (int i = 0 ; i<10; i++){

or_and(i);

} break;

case 3:

printf("\tIn mach NOR-AND\n");

printf("|

oooooooooooooooooooooooooooooooooooooo|\n");

printf("|So thap phan | BCD7421 | BCD 8421 |\n"); printf("| N | abcd | xywt |\n");

printf("|**************************************|\n");

for (int i = 0 ; i<10; i++){

nor_and(i);

} break;

case 4:

printf("\tIn mach NOR-NOR\n");

printf("|

oooooooooooooooooooooooooooooooooooooo|\n");

printf("|So thap phan | BCD7421 | BCD 8421 |\n"); printf("| N | abcd | xywt |\n");

printf("|**************************************|\n");

for (int i = 0 ; i<10; i++){

nor_nor(i);

} break;

case 5:

printf("\tIn mach NAND-NAND\n");

printf("|

oooooooooooooooooooooooooooooooooooooo|\n");

18

Trang 19

printf("|So thap phan | BCD7421 | BCD 8421 |\n"); printf("| N | abcd | xywt |\n");

printf("|**************************************|\n");

for (int i = 0 ; i<10; i++){

nand_nand(i);

} }

}

}

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

TỪ KHÓA LIÊN QUAN

w