Một cổng cổng Logic bao gồm một khối kiến trúc cơ bản của bất kỳ mạch kỹ thuật số nào. Nó nhận vào một hoặc hai dữ liệu đầu vào và tạo ra kết quả đầu ra dựa trên những dữ liệu đầu vào đó. Kết quả đầu ra có thể là high – cao (1) hoặc low – thấp (0). Các Cổng Logic thường được triển khai bằng cách sử dụng các điốt (diode) hoặc transistors. Ngoài ra, cũng có thể sử dụng các ống chân không (vacuum tubes), và các yếu tố điện từ như quang học, phân tử, v.v… để xây dựng các Cổng Logic. Trong máy tính, hầu hết các mạch điện tử đều được tạo thành từ các cổng logic. Các cổng logic thường được sử dụng để tạo ra một mạch có thể tính toán, lưu trữ dữ liệu hoặc cung cấp khả năng lập trình hướng đối tượng (đặc biệt là tính kế thừa đầy mạnh mẽ).
Có bảy cổng logic cơ bản được định nghĩa, đó là: Cổng AND, cổng OR, cổng NOT, cổng NAND, cổng NOR, cổng XOR và cổng XNOR.
Nội dung chính
1. Cổng AND
Cổng AND sẽ trả về kết quả đầu ra là 1 nếu cả hai giá trị đầu vào đều là 1, ngược lại, nó sẽ trả về 0.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Python3 program to illustrate
# working of AND gate
def AND (a, b):
if a == 1 and b == 1:
return True
else:
return False
# Driver code
if __name__=='__main__':
print(AND(1, 1))
print("+---------------+----------------+")
print(" | AND Truth Table | Result |")
print(" A = False, B = False | A AND B =",AND(False,False)," | ")
print(" A = False, B = True | A AND B =",AND(False,True)," | ")
print(" A = True, B = False | A AND B =",AND(True,False)," | ")
print(" A = True, B = True | A AND B =",AND(True,True)," | ")
Kết quả in ra là:
True
+---------------+----------------
| AND Truth Table | Result |
A = False, B = False | A AND B = False |
A = False, B = True | A AND B = False |
A = True, B = False | A AND B = False |
A = True, B = True | A AND B = True |
2. Cổng NAND
Cổng NAND (phủ định AND) sẽ trả về kết quả đầu ra là 0 nếu cả hai giá trị đầu vào đều là 1, ngược lại, nó sẽ trả về 1.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Python3 program to illustrate
# working of NAND gate
def NAND (a, b):
if a == 1 and b == 1:
return False
else:
return True
# Driver code
if __name__=='__main__':
print(NAND(1, 0))
print("+---------------+----------------+")
print(" | NAND Truth Table | Result |")
print(" A = False, B = False | A AND B =",NAND(False,False)," | ")
print(" A = False, B = True | A AND B =",NAND(False,True)," | ")
print(" A = True, B = False | A AND B =",NAND(True,False)," | ")
print(" A = True, B = True | A AND B =",NAND(True,True)," | ")
Kết quả in ra là:
True
+---------------+----------------
| NAND Truth Table | Result |
A = False, B = False | A AND B = True |
A = False, B = True | A AND B = True |
A = True, B = False | A AND B = True |
A = True, B = True | A AND B = False |
3. Cổng OR
Cổng OR trả về kết quả đầu ra là 1 nếu một trong hai hoặc cả hai giá trị đầu vào là 1, ngược lại, nếu cả hai giá trị đầu vào đều là 0, nó sẽ trả về kết quả là 0.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Python3 program to illustrate
# working of OR gate
def OR(a, b):
if a == 1:
return True
elif b == 1:
return True
else:
return False
# Driver code
if __name__=='__main__':
print(OR(0, 0))
print("+---------------+----------------+")
print(" | OR Truth Table | Result |")
print(" A = False, B = False | A AND B =",OR(False,False)," | ")
print(" A = False, B = True | A AND B =",OR(False,True)," | ")
print(" A = True, B = False | A AND B =",OR(True,False)," | ")
print(" A = True, B = True | A AND B =",OR(True,True)," | ")
Kết quả in ra là:
False
+---------------+----------------+
| OR Truth Table | Result |
A = False, B = False | A AND B = False |
A = False, B = True | A AND B = True |
A = True, B = False | A AND B = True |
A = True, B = True | A AND B = True |
4. Cổng XOR
Cổng XOR trả về kết quả đầu ra là 1 nếu nếu hai giá trị đầu vào là khác nhau, ngược lại, nếu cả hai giá trị đầu vào đều là 0 hoặc đều là 1 thì nó sẽ trả về kết quả là 0.
# Python3 program to illustrate
# working of Xor gate
def XOR (a, b):
if a != b:
return 1
else:
return 0
# Driver code
if __name__=='__main__':
print(XOR(5, 5))
print("+---------------+----------------+")
print(" | XOR Truth Table | Result |")
print(" A = False, B = False | A AND B =",XOR(False,False)," | ")
print(" A = False, B = True | A AND B =",XOR(False,True)," | ")
print(" A = True, B = False | A AND B =",XOR(True,False)," | ")
print(" A = True, B = True | A AND B =",XOR(True,True)," | ")
Kết quả in ra là:
0
+---------------+----------------+
| XOR Truth Table | Result |
A = False, B = False | A AND B = 0 |
A = False, B = True | A AND B = 1 |
A = True, B = False | A AND B = 1 |
A = True, B = True | A AND B = 0 |
5. Cổng NOT
Cổng này có tác dụng đảo ngược giá trị, nó chỉ nhận vào một dữ liệu đầu vào, nếu dữ liệu đầu vào được cung cấp là 1, nó sẽ trả về kết quả đầu ra là 0, và ngược lại, nếu dữ liệu đầu vào là 0, nó sẽ trả về 1.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Python3 program to illustrate
# working of Not gate
def NOT(a):
if(a == 0):
return 1
elif(a == 1):
return 0
# Driver code
if __name__=='__main__':
print(NOT(0))
print("+---------------+----------------+")
print(" | NOT Truth Table | Result |")
print(" A = False | A NOT =",NOT(False)," | ")
print(" A = True, | A NOT =",NOT(True)," | ")
Kết quả in ra là:
1
+---------------+----------------+
| NOT Truth Table | Result |
A = False | A NOT = 1 |
A = True, | A NOT = 0 |
6. Cổng NOR
Cổng NOR (phủ định cổng OR) trả về đầu ra là 1 nếu cả hai đầu vào đều là 0, ngược lại, đối với tất cả các trường hợp khác nó sẽ trả về 1.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Python3 program to illustrate
# working of NOR gate
def NOR(a, b):
if(a == 0) and (b == 0):
return 1
elif(a == 0) and (b == 1):
return 0
elif(a == 1) and (b == 0):
return 0
elif(a == 1) and (b == 1):
return 0
# Driver code
if __name__=='__main__':
print(NOR(0, 0))
print("+---------------+----------------+")
print(" | NOR Truth Table | Result |")
print(" A = False, B = False | A AND B =",NOR(False,False)," | ")
print(" A = False, B = True | A AND B =",NOR(False,True)," | ")
print(" A = True, B = False | A AND B =",NOR(True,False)," | ")
print(" A = True, B = True | A AND B =",NOR(True,True)," | ")
Kết quả in ra là:
1
+---------------+----------------+
| NOR Truth Table | Result |
A = False, B = False | A AND B = 1 |
A = False, B = True | A AND B = 0 |
A = True, B = False | A AND B = 0 |
A = True, B = True | A AND B = 0 |
7. Cổng XNOR
Cổng XNOR (phủ định cổng XOR) trả về đầu ra là 1 nếu cả hai dữ liệu đầu vào đều giống nhau (cùng là 0 hoặc cùng là 1), và ngược lại, trả về 0 nếu hai dữ liệu đầu vào là khác nhau.
edit
play_arrow
brightness_4
# Python3 program to illustrate
# working of Not gate
def XNOR(a,b):
if(a == b):
return 1
else:
return 0
# Driver code
if __name__=='__main__':
print(XNOR(1,1))
print("+---------------+----------------+")
print(" | XNOR Truth Table | Result |")
print(" A = False, B = False | A AND B =",XNOR(False,False)," | ")
print(" A = False, B = True | A AND B =",XNOR(False,True)," | ")
print(" A = True, B = False | A AND B =",XNOR(True,False)," | ")
print(" A = True, B = True | A AND B =",XNOR(True,True)," | ")
Kết quả in ra là:
1
+---------------+----------------+
| XNOR Truth Table | Result |
A = False, B = False | A AND B = 1 |
A = False, B = True | A AND B = 0 |
A = True, B = False | A AND B = 0 |
A = True, B = True | A AND B = 1 |
Nguồn và Tài liệu tiếng anh tham khảo:
Tài liệu từ cafedev:
- Full series tự học Python từ cơ bản tới nâng cao tại đây nha.
- Ebook về python tại đây.
- Các series tự học lập trình khác
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!