Muutke küpsiste eelistusi

PIC16F1847 Microcontroller-Based Programmable Logic Controller: Hardware and Basic Concepts [Kõva köide]

(Department of Electrical and Electronics Engineering, Meliksah University in Kayseri, Turkey (Retired))
  • Formaat: Hardback, 494 pages, kõrgus x laius: 234x156 mm, kaal: 870 g, 142 Tables, black and white; 421 Illustrations, black and white
  • Ilmumisaeg: 23-Oct-2020
  • Kirjastus: CRC Press
  • ISBN-10: 0367506394
  • ISBN-13: 9780367506391
  • Formaat: Hardback, 494 pages, kõrgus x laius: 234x156 mm, kaal: 870 g, 142 Tables, black and white; 421 Illustrations, black and white
  • Ilmumisaeg: 23-Oct-2020
  • Kirjastus: CRC Press
  • ISBN-10: 0367506394
  • ISBN-13: 9780367506391
Programmable logic controllers (PLCs) have been used extensively and are offered in terms of functions, program memories, and the number of inputs/outputs (I/Os), ranging from a few to thousands. With a focus on how to design and implement a PLC, this volume explains hardware and associated basic concepts of PLC. Authors have used PIC16F1847 microcontroller with: 8192 words of Flash program memory, 1024 bytes of SRAM data memory, 256 bytes of EEPROM data memory, the maximum operating speed of 32 MHz, 16-level deep hardware stack, an enhanced instruction set consisting of 49 single-word instructions. Flowcharts are provided to help the understanding of macros (instructions). Aimed at researchers and graduate students in electrical engineering, power electronics, robotics and automation, sensors, this book:

Explains how to design and use a PIC16F1847 microcontroller-based PLC.

Provides easy to use software structures written by using the PIC Assembly programming language.

Describes a PLC from a designer's perspective.

Explains the basic hardware and basic software structures of the PIC16F1847 based PLC.

Focuses on concepts like Contact and Relay Based Macros, Flip-Flop Macros, Timer Macros, Counter Macros and Comparison Macros.
Prologue xiii
Preface xv
About the Author xvii
Background and Use of the Book xix
Chapter 1 Hardware of the PIC16F1847-Based PLC
1(12)
Chapter 2 Basic Software
13(92)
Introduction
13(1)
2.1 Definition and Allocation of Variables
14(15)
2.2 Contents of the File "PICPLC_PIC16F1847_memory.inc"
29(1)
2.3 Contents of the File "PICPLC_PIC16F1847_main.asm"
30(8)
2.4 Contents of the File "PICPLC_PIC16F1847_user_Bsc.inc"
38(1)
2.5 Contents of the File "PICPLC_PIC16F1847_subr.inc"
38(3)
2.6 Contents of the File "PICPLC_PIC16F1847_macros_Bsc.inc"
41(46)
2.6.1 Macro "initialize"
43(3)
2.6.2 Macro "ISR"
46(1)
2.6.3 Elimination of Contact Bouncing Problem in the PIC16F1847-Based PLC
47(1)
2.6.3.1 Contact Bouncing Problem
47(1)
2.6.3.2 Understanding a Generic Single I/O Contact Debouncer
48(4)
2.6.3.3 Debouncer Macro "dbncrN"
52(3)
2.6.4 Macro "get_inputs"
55(15)
2.6.5 Low-Pass Digital Filter Macro "lpf_progs"
70(7)
2.6.6 Macro "send_outputs"
77(10)
2.7 Example Programs
87(17)
2.7.1 Example 2.1
88(1)
2.7.2 Example 2.2
89(1)
2.7.3 Example 2.3
90(2)
2.7.4 Example 2.4
92(3)
2.7.5 Example 2.5
95(4)
2.7.6 Example 2.6
99(5)
Reference
104(1)
Chapter 3 Contact and Relay-Based Macros
105(66)
Introduction
105(1)
3.1 Macro "Id" (load)
106(1)
3.2 Macro "Id_not" (load_not)
107(1)
3.3 Macro "not"
108(1)
3.4 Macro "or"
108(1)
3.5 Macro "or_not"
109(2)
3.6 Macro "nor"
111(1)
3.7 Macro "and"
111(2)
3.8 Macro "and_not"
113(2)
3.9 Macro "nand"
115(1)
3.10 Macro "xor"
116(1)
3.11 Macro "xor_not"
116(2)
3.12 Macro "xnor"
118(1)
3.13 Macro "out"
118(1)
3.14 Macro "out_not"
119(3)
3.15 Macro "mid_out" (Midline Output)
122(1)
3.16 Macro "mid_out_not" (Inverted Midline Output)
122(1)
3.17 Macro "in_out"
123(2)
3.18 Macro "inv_out"
125(1)
3.19 Macro "_set"
126(1)
3.20 Macro "_reset"
127(1)
3.21 Macro "SR." (Set-Reset)
128(1)
3.22 Macro "RS" (Reset-Set)
128(2)
3.23 Macro "r_edge" (Rising Edge Detector)
130(2)
3.24 Macro "f_edge" (Falling Edge Detector)
132(1)
3.25 Macro "r_toggle" (Output Toggle with Rising Edge Detector)
132(1)
3.26 Macro "f_toggle" (Output Toggle with Falling Edge Detector)
133(1)
3.27 Macro "adrs_re" (Address Rising Edge Detector)
134(1)
3.28 Macro "adrs_fe" (Address Falling Edge Detector)
135(1)
3.29 Macro "setBF" (Set Bit Field)
136(13)
3.30 Macro "resetBF" (Reset Bit Field)
149(1)
3.31 Examples for Contact and Relay-Based Macros
149(22)
3.31.1 Example 3.1
156(1)
3.31.2 Example 3.2
157(2)
3.31.3 Example 3.3
159(1)
3.31.4 Example 3.4
160(5)
3.31.5 Example 3.5
165(1)
3.31.6 Example 3.6
165(1)
3.31.7 Example 3.7
165(2)
3.31.8 Example 3.8
167(4)
Chapter 4 Flip-Flop Macros
171(116)
Introduction
171(1)
4.1 Macro "latch1" (D Latch with Active High Enable)
171(1)
4.2 Macro "latch0" (D Latch with Active Low Enable)
172(1)
4.3 Macro "dff_r" (Rising Edge-Triggered D Flip-Flop)
173(1)
4.4 Macro "dff_r_SR" (Rising Edge-Triggered D Flip-Flop with Active High Preset [ S] and Clear [ R] Inputs)
174(3)
4.5 Macro "dff_f" (Falling Edge-Triggered D Flip-Flop)
177(2)
4.6 Macro "dff_f_SR" (Falling Edge-Triggered D Flip-Flop with Active High Preset [ S] and Clear [ R] Inputs)
179(3)
4.7 Macro "tff_r" (Rising Edge-Triggered T Flip-Flop)
182(1)
4.8 Macro "tff_r_SR" (Rising Edge-Triggered T Flip-Flop with Active High Preset [ S] and Clear [ R] Inputs)
182(3)
4.9 Macro "tff_f" (Falling Edge-Triggered T Flip-Flop)
185(2)
4.10 Macro "tff_f_SR" (Falling Edge-Triggered T Flip-Flop with Active High Preset [ S] and Clear [ R] Inputs)
187(1)
4.11 Macro "jkff_r" (Rising Edge-Triggered JK Flip-Flop)
188(3)
4.12 Macro "jkff_r_SR" (Rising Edge-Triggered JK Flip-Flop with Active High Preset [ S] and Clear [ R] Inputs)
191(2)
4.13 Macro "jkff_f" (Falling Edge-Triggered JK Flip-Flop)
193(1)
4.14 Macro "jkff_f_SR" (Falling Edge-Triggered JK Flip-Flop with Active High Preset [ S] and Clear [ R] Inputs)
194(3)
4.15 Examples for Flip-Flop Macros
197(90)
4.15.1 Example 4.1
203(3)
4.15.2 Example 4.2
206(3)
4.15.3 Example 4.3
209(2)
4.15.4 Example 4.4
211(1)
4.15.5 Example 4.5: 4-Bit Asynchronous Up Counter
212(5)
4.15.6 Example 4.6: 4-Bit Asynchronous Down Counter
217(3)
4.15.7 Example 4.7: Asynchronous Decade Counter
220(2)
4.15.8 Example 4.8: 4-Bit Asynchronous Up/Down Counter
222(5)
4.15.9 Example 4.9: Synchronous Decade Counter
227(5)
4.15.10 Example 4.10: 4-Bit Synchronous Up/Down Counter
232(4)
4.15.11 Example 4.11: 4-Bit Serial-in, Parallel-out Shift Right Register
236(6)
4.15.12 Example 4.12: 4-Bit Serial-in, Serial-out Shift Right Register
242(3)
4.15.13 Example 4.13: 4-Bit Serial-In, Parallel-Out Shift Right or Shift Left Register
245(4)
4.15.14 Example 4.14: 4-Bit Parallel-in, Serial-out Shift Right Register
249(2)
4.15.15 Example 4.15: 4-Bit Parallel-in, Parallel-out Register
251(1)
4.15.16 Example 4.16: 74164 8-Bit Serial-in, Parallel-out Shift Register
252(5)
4.15.17 Example 4.17: 74165 8-Bit Parallel-in, Serial-out Shift Register
257(4)
4.15.18 Example 4.18: 74194 4-Bit Bidirectional Universal Shift Register
261(5)
4.15.19 Example 4.19: 74595 8-Bit Serial-in, Serial- or Parallel-out Shift Register
266(5)
4.15.20 Example 4.20: 4-Bit Johnson Counter
271(7)
4.15.21 Example 4.21: 8-Bit Ring Counter
278(9)
Chapter 5 Timer Macros
287(100)
Introduction
287(1)
5.1 On-Delay Timer (TON)
288(1)
5.2 Macro "TON_8" (8-Bit On-Delay Timer)
288(8)
5.3 Macro "TON_16" (16-Bit On-Delay Timer)
296(5)
5.4 Retentive On-Delay Timer (RTO)
301(1)
5.5 Macro "RTO_8" (8-Bit Retentive On-Delay Timer)
302(4)
5.6 Macro "RTO_16" (16-Bit Retentive On-Delay Timer)
306(5)
5.7 Off-Delay Timer (TOF)
311(1)
5.8 Macro "TOF_8" (8-Bit Off-Delay Timer)
311(5)
5.9 Macro "TOF_16" (16-Bit Off-Delay Timer)
316(5)
5.10 Pulse Timer (TP)
321(1)
5.11 Macro "TP_8" (8-Bit Pulse Timer)
321(5)
5.12 Macro "TP_16" (16-Bit Pulse Timer)
326(5)
5.13 Extended Pulse Timer (TEP)
331(1)
5.14 Macro "TEP_8" (8-Bit Extended Pulse Timer)
332(4)
5.15 Macro "TEP_16" (16-Bit Extended Pulse Timer)
336(5)
5.16 Oscillator Timer (TOS)
341(1)
5.17 Macro "TOS_8" (8-Bit Oscillator Timer)
342(5)
5.18 Macro "TOS_16" (16-Bit Oscillator Timer)
347(6)
5.19 Examples for Timer Macros
353(34)
5.19.1 Example 5.1
353(6)
5.19.2 Example 5.2
359(5)
5.19.3 Example 5.3
364(6)
5.19.4 Example 5.4
370(5)
5.19.5 Example 5.5
375(6)
5.19.6 Example 5.6
381(6)
Chapter 6 Counter Macros
387(98)
Introduction
387(3)
6.1 Up Counter (CTU)
390(5)
6.2 Macro "CTU_8" (8 Bit Up Counter)
395(7)
6.3 Macro "CTU_16" (16 Bit Up Counter)
402(5)
6.4 Down Counter (CTD)
407(1)
6.5 Macro "CTD_8" (8 Bit Down Counter)
407(6)
6.6 Macro "CTD_16" (16 Bit Down Counter)
413(4)
6.7 Up/Down Counter (CTUD)
417(1)
6.8 Macro "CTUD_8" (8 Bit Up/Down Counter)
418(8)
6.9 Macro "CTUD_16" (16 Bit Up/Down Counter)
426(9)
6.10 Generalized Up/Down Counter (GCTUD)
435(2)
6.11 Macro "GCTUD_8" (Generalized 8 Bit Up/Down Counter)
437(7)
6.12 Macro "GCTUD.16" (Generalized 16 Bit Up/Down Counter)
444(9)
6.13 Examples for Counter Macros
453(32)
6.13.1 Example 6.1
454(6)
6.13.2 Example 6.2
460(6)
6.13.3 Example 6.3
466(5)
6.13.4 Example 6.4
471(5)
6.13.5 Example 6.5
476(3)
6.13.6 Example 6.6
479(6)
About the Downloadable Files for Hardware and Basic Concepts 485(2)
Index 487
Murat Uzam was borned in Söke, Turkey, in 1968. He received the B.Sc. and M.Sc. degrees from Electrical Engineering Department, Yldz Technical University, stanbul, Turkey, 1989 and 1991, respectively, and the Ph.D. degree from University of Salford, Salford, U.K., in 1998. He was with Nigde University, Turkey, from 1993 to 2010 in the Department of Electrical and Electronics Engineering as a Research Assistant, Assistant Professor, Associate Professor and Professor. He was a Professor in the Department of Electrical and Electronics Engineering, at Melikah University in Kayseri, Turkey from 2011 to 2016. He was a Visiting Researcher with INRIA, University of Metz and University of Rennes, France, in 1999, with University of Toronto, Toronto, ON, Canada, in 2003, and with Xidian University, Xian, China, in 2013, 2015 and 2019. Since 15 April 2020, he has been serving as a Professor in the Department of Electrical and Electronics Engineering, at Yozgat Bozok University in Yozgat, Turkey. He has published 50 conference papers and 85 journal and magazine papers, 70 of which are indexed by Science Citation Index Expanded (SCIE). He has published two books in Turkish and one book in English by CRC Press (Taylor & Francis Group). According to Publons, his H-Index is 15 and his papers have been cited 1269 times by the papers indexed in the SCIE. His current research interests include design and implementation of discrete event control systems modeled by Petri nets and, in particular, deadlock prevention/liveness enforcing in flexible manufacturing systems, programmable logic controllers (PLCs), microcontrollers (especially PIC microcontrollers), and design of microcontroller-based PLCs. Dr. Uzam has been serving as a reviewer for prestigious journals and conferences. According to Publons, the number of his verified reviews is 70.