Tham chiếu lệnh

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

Trang này liệt kê tất cả các lệnh được hỗ trợ bởi phần mềm plcLib.

25.1 Cấu hình chung

Lệnh Mô tả Ví dụ Phần

setupPLC(); Định cấu hình cài đặt PLC cơ bản setupPLC(); Định cấu hình phần cứng

25.2 Đầu vào / đầu ra kỹ thuật số một bit

Lệnh Mô tả Ví dụ Phần

in(input); Đọc đầu vào kỹ

thuật số. in(X0); Đầu vào / đầu ra bitđơn out(output); Kết quả đầu ra kỹ

thuật số.

out(Y0); Đầu vào / đầu ra bit đơn

inNot(input); Đọc đầu vào kỹ thuật số đảo ngược.

inNot(X0); Đầu vào / đầu ra bit đơn

outNot(output); Đầu ra tín hiệu ngược sang kỹ thuật số đầu ra.

outNot(Y0); Đầu vào / đầu ra bit đơn

25.3 Logic kết hợp

Lệnh Mô tả Ví dụ Phần

andBit(input); Logical AND với đầu vào kỹ thuật số.

in(X0); andBit(X1); out(Y0);

Thực hiện các phép toán Boolean orBit(input); Logical OR với đầu

vào kỹ thuật số. in(X0); orBit(X1);out(Y0); Thực hiện các phép toán Boolean xorBit(input); Logical XOR với đầu

vào kỹ thuật số. in(X0); xorBit(X1);out(Y0); Thực hiện các phép toán Boolean andNotBit(input); Logical AND với đầu

vào kỹ thuật số đảo ngược. in(X0); andNotBit(X1); out(Y0); Thực hiện các phép toán Boolean orNotBit(input); Logical OR với đầu

vào kỹ thuật số đảo ngược. in(X0); orNotBit(X1); out(Y0); Thực hiện các phép toán Boolean

25.4 Đầu vào / đầu ra tín hiệu tương tự

Lệnh Mô tả Ví dụ Phần

inAnalog(input); Đọc đầu vào tương

tự. inAnalog(X0); Làm việc với tínhiệu tương tự outPWM(output); Xuất ra dạng sóng outPWM(Y0); Làm việc với tín

PWM. hiệu tương tự outServo(output); Xuất ra servo. outServo(Y0); Làm việc với tín

hiệu tương tự

25.5 So sánh các tín hiệu tương tự

Lệnh Mô tả Ví dụ Phần

compareGT(input); So sánh đầu vào tương tự với giá trị tương tự thứ hai, trả về 1 nếu giá trị trước lớn hơn inAnalog(X0); compareGT(X1); out(Y0); So sánh các giá trị tương tự

compareLT(input); So sánh đầu vào tương tự với giá trị tương tự thứ hai, trả về 1 nếu giá trị trước nhỏ hơn inAnalog(X0); compareLT(X1); out(Y0); So sánh các giá trị tương tự 25.6 Chốt Lệnh Mô tả Ví dụ Phần latch(latch_output,

reset_input); Chốt giá trị đầu vàokỹ thuật số trước đó. in(X0);X1); latch(Y0,

Kết quả đầu ra atchKey(set_key, reset_key, output); Chốt đầu ra kỹ thuật số dựa trên mục nhập bàn phím.

latchKey('1', '2', Y0); Kết quả đầu ra set(latch_output); Chốt (đặt) một đầu

ra kỹ thuật số nếu giá trị trước đó là true.

in(X0); set(Y0); Kết quả đầu ra

reset(latch_output); Xóa (hủy đặt) đầu ra đã chốt nếu giá trị trước đó là true.

in(X0); reset(Y0); Kết quả đầu ra

25.7 Bộ hẹn giờLệnh Mô tả Ví dụ Phần Lệnh Mô tả Ví dụ Phần timerOn(timer_variable, delay_ms); Tạo ra một đầu ra bị trễ sau khi một đầu vào được bật. in(X0); timerOn(TIMER0, 2000); out(Y0) Sản xuất dạng sóng lặp lại timerOff(timer_variable, delay_ms); Trì hoãn tắt đầu ra sau khi đầu vào bị xóa. in(X0); timerOff(TIMER0, 2000); out(Y0) Sản xuất dạng sóng lặp lại timerPulse(timer_variable,

pulse_ms); Tạo ra xung độ rộng cố định

in(X0);

được kích hoạt 2000); out(Y0); lặp lại bởi một đầu vào

ngắn gọn timerCycle(low_variable, low_ms, high_variable, high_ms); Tạo một dạng sóng xung lặp lại, nếu được bật. in(X0); timerCycle(AUX0, 900, AUX1, 100); out(Y0); Sản xuất dạng sóng lặp lại 25.8 Xung kích hoạt cạnh Lệnh Mô tả Ví dụ Phần

Pulse pulse_name; Tạo một đối tượng xung.

Pulse pulse1; Xung kích hoạt cạnh

pulse_name.inClock(); Kết nối tín hiệu đầu vào với đối tượng

xung.

in(X0);

pulse1.inClock(); Xung kích hoạtcạnh pulse_name.rising(); Đọc cạnh tăng của

dạng sóng xung pulse1.rising();out(Y0); Xung kích hoạtcạnh pulse_name.falling(); Đọc cạnh rơi của

dạng sóng xung pulse1.falling();out(Y1); Xung kích hoạtcạnh

25.9 Bộ đếm

Lệnh Mô tả Ví dụ Phần

counter_name(preset

_value [, direction]); Tạo và cấu hình một đối tượng bộ đếm. CounterCounter ctr2(10,1);ctr1(5); Đếm vàBộ đếm counter_name.count

Up(); Đếm lên, nếu số đếm nhỏ hơn giá trị đặt trước. in(X0);ctr1.countUp(); Đếm vàBộ đếm counter_name.count

Down(); Đếm ngược, nếu số đếm lớn hơn 0 in(X0);ctr1.countDown(); Đếm vàBộ đếm counter_name.preset(

); Đặt số lượng nội bộ thành giá trị đặt trước, kích hoạt đầu ra Q trên

in(X1);

ctr1.preset(); Đếm vàBộ đếm counter_name.clear()

; Đặt số lượng nội bộ thành 0, kích hoạt đầu ra Q thấp hơn

in(X2); ctr1.clear(); Đếm và Bộ đếm counter_name.upper

Q();

Bằng 1 nếu số lượng bên trong bằng giá trị đặt trước, bằng 0 nếu không ctr1.upperQ(); out(Y0); Đếm và Bộ đếm counter_name.lower

Q(); Bằng 1 nếu số đếm bên trong bằng 0, ngược lại bằng 0.

ctr1.lowerQ();

out(Y0); Đếm vàBộ đếm counter_name.count(

); Trả về giá trị đếm bên trong. Serial.println(ctr1.count());

Đếm và Bộ đếm counter_name.preset

Value();

Trả về giá trị đặt trước. Serial.println(ctr1.p resetValue());

Đếm và Bộ đếm

25.10 Dịch chuyển vị trí thanh ghiLệnh Mô tả Ví dụ Phần Lệnh Mô tả Ví dụ Phần Shift register_name([start_value]); Tạo và cấu hình một đối tượng thanh ghi shift

Shift shift1(); Shift shift2(0x8888); Dịch chuyển và xoay dữ liệu nhị phân register_name.inputBit(); Đặt bit đầu vào

nối tiếp dựa trên đầu vào trước đó.

in(X0);

shift1.inputBit(); Dịch chuyểnvà xoay dữ liệu nhị phân register_name.shiftLeft(); Di chuyển dữ liệu

sang trái một chỗ, trên cạnh lên của đầu vào trước đó.

in(X0);

shift1.inputBit();

Dịch chuyển và xoay dữ liệu nhị phân register_name.shiftRight(); Di chuyển dữ liệu

sang phải một nơi, trên cạnh lên của đầu vào trước đó. in(X2); shift1.shiftRight( ); Dịch chuyển và xoay dữ liệu nhị phân register_name.reset(); Đặt lại giá trị

thanh ghi dịch chuyển nội bộ về 0 nếu đầu vào trước đó bằng. in(X3); shift1.reset(); Dịch chuyển và xoay dữ liệu nhị phân register_name.bitValue(bit_posi tion); Trả về giá trị của bit thanh ghi dịch chuyển tại vị trí đã chỉ định.

shift1.bitValue(0

); out(Y0); Dịch chuyểnvà xoay dữ liệu nhị phân register_name.value(); Trả về giá trị của

thanh ghi shift dưới dạng số nguyên không dấu. Serial.println(shi ft1.value()); delay(200); Dịch chuyển và xoay dữ liệu nhị phân

25.11 Logic ngăn xếp và khối

Lệnh Mô tả Ví dụ Phần

Stack stack_name; Tạo một ngăn xếp

32 cấp, một bit. Stack stack1; Logic ngăn xếpvà khối stack_name.push(); Đẩy scanValue,

được biểu thị dưới dạng số bit đơn, lên ngăn xếp.

stack1.push(); Logic ngăn xếp và khối

stack_name.pop(); Cập nhật

scanValue với một giá trị bit đơn bị xóa khỏi ngăn xếp.

stack1.pop(); Logic ngăn xếp và khối

Kết Luận

Như vậy, với đề tài đồ án : Hướng dẫn lập trình PIC với Arduino, nhóm thực hiện đã hiểu được những vấn đè căn bản đối với thiết kế và lập trình một số loại bo mạch Arduino. Ngoài ra cung cấp những kiến thức về các phần mềm ứng dụng trong thiết kế mạch phần cứng. Nhưng một điều quan trọng không thể nói đến đó là tạo cho em những kỹ năng mềm của bản than, khả năng tư duy và làm việc độc lập. Với sự nỗ lực trong việc tìm hiểu nghiên cứu các linh kiện, thiết bị cần thiết cho đề tài, cừng với vận dụng các kiến thức đã học vào công việc thiết kế, lắp đặt, và sự giúp đỡ, hướng dẫn nhiệt nhiệt tình của thầy giáo Triệu Việt Linh, nhóm em đã hoàn thành được đề tài đồ án.

Do đây mới là lần đầu tiên những thành viên trong nhóm làm một đề tài đồ án, cộng với kiến thức còn nhiều hạn chế, chúng em thấy đề tài của mình thực hiện vẫn còn rất nhiều sai sót, khiếm khuyết. Chúng em tự rất mong được sự ủng hộ và giúp đỡ của thầy giáo để đè tài chúng em thực hiện được hoàn thiện hơn và có thêm nhiều cải tiến đáng kể và ứng dụng tốt hơn và thực tiễn.

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

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

(137 trang)
w