Thực hiện các phép toán Boolean

Một phần của tài liệu Hướng dẫn lập trình PIC với arduino (Trang 53 - 58)

5. Bắt đầu với Logic bậc thang

5.2 Thực hiện các phép toán Boolean

Các hàm logic Boolean như AND và OR có thể đạt được bằng cách sử dụng sắp xếp chuỗi / song song của chuyển đổi danh bạ. Ví dụ: hai công tắc nối tiếp sẽ cung cấp chức năng AND, vì cả hai công tắc phải được đóng lại để hoàn thành mạch. Tương tự, một chức năng OR có thể đạt được bằng hai công tắc được kết nối song song, vì việc đóng một hoặc nhiều công tắc sẽ cho phép dòng điện chuyển sang giai đoạn tiếp theo.

Hình 12. Các bộ chuyển mạch nối tiếp và song song thực hiện các chức năng logic AND và OR.

Các hàm logic Boolean cơ bản AND, OR, XOR và NOT có thể được biểu diễn ở dạng biểu đồ bậc thang bằng sử dụng kết hợp nối tiếp / song song của công tắc đầu vào và tiếp điểm đầu ra, như hình dưới đây.

Hình 13. Các hàm logic bậc thang logic Boolean và các hàm logic tương đương của chúng.

Sự sắp xếp sơ đồ bậc thang này có thể được mã hóa dễ dàng, như thể hiện trong bản phác thảo sau.

#include <plcLib.h>

/* Programmable Logic Controller Library for the Arduino and Compatibles

AND, OR, XOR and Not - Basic Boolean Logic Functions

Connections:

Input - switch connected to input X0 (Arduino pin A0) Input - switch connected to input X1 (Arduino pin A1)

Output - ANDed Output - LED connected to output Y0 (Arduino pin 3) Output - ORed Output - LED connected to output Y1 (Arduino pin 5) Output - XORed Output - LED connected to output Y2 (Arduino pin 6) Output - Inverted Output - LED connected to output Y3 (Arduino pin 9) Software and Documentation:

http://www.electronics-micros.com/software-hardware/plclib-arduino/

*/

void setup() {

setupPLC(); // Setup inputs and outputs }

void loop() {

in(X0); // Read Input 0 andBit(X1); // AND with Input 1 out(Y0); // Send result to Output 0

in(X0); // Read Input 0 orBit(X1); // OR with Input 1 out(Y1); // Send result to Output 1

in(X0); // Read Input 0 xorBit(X1); // XOR with Input 1 out(Y2); // Send result to Output 2

in(X0); // Read Input 0

outNot(Y3); // Send inverted result to Output 3 }

Liệt kê 3. Các hàm AND, OR, XOR và Not (Nguồn: Tệp> Ví dụ> plcLib> Logic>

AndOrXorNot

Nếu yêu cầu đầu ra hoạt động ở mức thấp thì các hàm tương đương NAND, NOR và XNOR có thể được tạo trong logic bậc thang.

Hình 14. Các mạch logic bậc thang NAND, NOR và XNOR và các chức năng logic tương

đương của chúng.

Việc mã hóa các hàm này đạt được bằng cách thay thế các lệnh out () của ví dụ trước bằng tương đương logic âm outNot () , như được hiển thị bên dưới.

#include <plcLib.h>

/* Programmable Logic Controller Library for the Arduino and Compatibles NAND, NOR, and XNOR - Boolean Logic functions with inverted outputs

Connections:

Input - switch connected to input X0 (Arduino pin A0) Input - switch connected to input X1 (Arduino pin A1)

Output - NAND Output - LED connected to output Y0 (Arduino pin 3) Output - NOR Output - LED connected to output Y1 (Arduino pin 5)

Output - XNOR Output - LED connected to output Y2 (Arduino pin 6) Software and Documentation:

http://www.electronics-micros.com/software-hardware/plclib-arduino/ */

void setup() {

setupPLC(); // Setup inputs and outputs }

void loop() { // NAND

outNot(Y0); // Send result to Output 0 (inverted)

// NOR

in(X0); // Read Input 0 orBit(X1); // OR with Input 1 outNot(Y1); // Send result to Output 1 (inverted)

// XNOR

in(X0); // Read Input 0 xorBit(X1); // XOR with Input 1 outNot(Y2); // Send result to Output 2 (inverted) }

Liệt kê 4. Các hàm NAND, NOR và XNOR. (Nguồn: Tệp> Ví dụ> plcLib> Logic>

NandNorXnor)

Các phép toán logic cũng có thể được thực hiện với một hoặc nhiều đầu vào được đảo ngược, như được thấy ở đây.

Hình 15. Thực hiện các phép toán Boolean liên quan đến các tín hiệu đầu vào đảo ngược.

Dưới đây là một bản phác thảo tương đương.

#include <plcLib.h>

/* Programmable Logic Controller Library for the Arduino and Compatibles

Inverted Input Logic - Boolean logic operations using inverted inputs (equivalent to normally closed input switches)

Connections:

Input - switch connected to input X0 (Arduino pin A0) Input - switch connected to input X1 (Arduino pin A1)

Output - ANDed output - LED connected to output Y0 (Arduino pin 3) Output - ORed output - LED connected to output Y1 (Arduino pin 5)

Software and Documentation:

*/

void setup() {

setupPLC(); // Setup inputs and outputs }

void loop() {

in(X0); // Read Input 0

andNotBit(X1); // AND with Input 1 (inverted) out(Y0); // Send result to Output 0

in(X0); // Read Input 0

orNotBit(X1); // OR with Input 1 (inverted) out(Y1); // Send result to Output 1

}

Liệt kê 5. Logic đầu vào đảo ngược (Nguồn: Tệp> Ví dụ> plcLib> Logic>

InvertedInputLogic)

Cũng có thể thực hiện các phép toán logic liên quan đến trạng thái của các tiếp điểm đầu ra, có hiệu lực áp dụng phản hồi từ đầu ra đến đầu vào. Tất nhiên, đây là cơ sở của

logic tuần tự , đơn giản nhất của đó là chốt Cài đặt-Đặt lại - sẽ được xem xét tiếp theo.

Một phần của tài liệu Hướng dẫn lập trình PIC với arduino (Trang 53 - 58)

Tải bản đầy đủ (DOCX)

(137 trang)
w