Design and Implementation of Electronic Control Trainer with PIC Microcontroller

Abstract

This paper describes the implementation of a PIC microcontroller in a conventional laboratory-type electronic trainer. The work comprises software for the PIC and hardware for the software. The PIC controller uses an EasyPIC6 board and includes a PC-interfaced programmer for the PIC chip. It has many external modules: 128 × 64 graphic LCD display, 2 × 16 LCD display, 4 × 4 keypad, and port expander, all in the same bench. The trainer is capable of 36 experiments in logic/analogue electronic and control systems. A 5-sided approximate sensor, two photoelectric sensors (BR56-DDT-P and BEN9M-TFR), four CMOS, four BCD-7-segment driven by CD4511B, two relays (2-pole and 3-pole), six voltages, ammeter measurement, DC motor, and 24VDC power supply, connect through connectors and pinions. Results of all the experiments show the trainer satisfying requirements of undergraduate and postgraduate projects involving conventional electronic and classical control systems.

Share and Cite:

Mashhadany, Y. (2012) Design and Implementation of Electronic Control Trainer with PIC Microcontroller. Intelligent Control and Automation, 3, 222-228. doi: 10.4236/ica.2012.33025.

1. Introduction

Modern microcontroller chips can store hundreds of thousands of transistors each. The first microprocessors had external peripherals such as memory, input-output lines, and timers (Matic, 2003). In time came a new device called integrated circuit (IC), which contains both processor and peripherals. Also called a microcontroller, this was the first chip with a microcomputer [1,2].

Peripheral Interface Controller (PIC) is new to electronics control. Providing complete control in a single chip, a PIC microcontroller has special function registers, power on reset, interrupts, user RAM for storing of program data, EPROM program memory, timer circuits, instruction set, low power consumption, and on-board Ato-D converters. It replaces conventional control of industrial machinery (e.g., motor-speed control) [2,3].

Microcontroller and microprocessor differ in many ways. In functionality, a microprocessor needs external components for receiving/sending data, and memory. A microcontroller does not need external components because all the necessary peripherals are built-in, saving time and space (see Figure 1 for microcontroller set [4- 7]).

The EasyPIC-6 by MikroElektronika (see Figure 2) is an extraordinary development tool for programming and experimenting with PIC® microcontrollers. It supports over 160 MCUs in PIC10, PIC12, PIC16, and PIC18 families, in DIP packages from 8 to 40 pins. The board comes installed with PIC16F887. An impressive array of peripherals and expansion connectors are available onboard, as are optional LCD displays and temperature sensor [8,9].

An on-board programmer and mikroICD debugger allow direct connection to PC via USB cable. Fully functional demo versions of MikroElektronika’s C, Pascal, and BASIC compilers are included (hex output limited to 2K program words), complete with documentation and dozens of sample programs. The EasyPIC-6 also includes an external ICD connector compatible with MPLAB ICD2 and ICD3, allowing full compatibility with MPLAB Integrated Development Environment (IDE) [10,11].

Its main problem is lack of facility for external experiments to be implemented in many undergraduate laboratory applications; it is also daunting to beginner designers. This paper presents a practical implementation of EasyPIC-6-based electronic control trainer able to execute about 36 experiments, and rearrangement of the EasyPIC-6 power supply to extend the trainer’s capability to AC-DC-current applications.

1.1. Integrated Development Environment (IDE)

The core development tool set operates under the IDE umbrella called MPLAB. The tools look and feel the same,

Figure 1. Microcontroller set [7].

Figure 2. EasyPIC-6 cart by MikroElektronika [11].

so learning of new tool interface is minimized. These are the development capabilities of the MPLAB IDE:

Ø Source-code editing;

Ø Project management;

Ø Machine-code generation (from assembly or “C”);

Ø Device simulation;

Ø Device emulation;

Ø Device programming.

The comprehensive tool suite allows complete project development without leaving the MPLAB environment [12]. The MPLAB IDE software eases software development as never before in 8-bit microcontroller. MPLAB is a Windows application that contains:

o  A full-features editor;

o  Three operating modes:

■  Editor

■  Emulator

■  Simulator o  A project manager;

o  Extensive online help;

MPLAB allows o  Editing of source files (ASM and C files);

o  One-touch assembly (or compiling) and download to PIC16/17 tools;

o  Debugging via:

■  Source files

■  Absolute listing file

■  Program memory o  Run-up to four emulators on the same PC;

o  Run or single-step;

■  Program memory

■  Source file

■  Absolute listing The microchip simulator, MPLAB-SIM, operates under the same platform as the PICMASTER emulator, so the user need only learn a single tool set that functions equally in both the simulator and the full-features emulator [13].

1.2. MPLAB-SIM Simulator Software

The software simulator is a no-cost tool for evaluating Microchip’s products and designs. Its use greatly helps debug software, particularly algorithms. Depending on a project’s design complexity, a time/cost benefit comparing simulator with emulator should be looked into. Projects with multiple development engineers can keep costs down by using both simulator and emulator, allowing speedy debugging of tough problems. MPLAB-SIM Simulator simulates PICmicro series microcontrollers at instruction level. With any given instruction, the user may examine or modify any of the data or provide external stimulus to any of the pins. The input/output radix can be set by the user, the execution performed as either single step, execute until break, or trace. MPLAB-SIM supports symbolic debugging via MPLAB-C and MPASM. The software simulator’s low-cost flexibility in developing and debugging code outside laboratory environment makes it excellent multi-project development tool [14,15].

PIC ranges very broadly, from tiny 6-pin 8-bit devices with just 16 bytes of data memory performing only basic digital I/O, to 100-pin 32-bit devices with 512 kilobytes of memory and many integrated peripherals for communications, data acquisition, and control. Newcomers may be confused by an aspect of PIC programming: the lowend devices have entirely separate addresses and data buses for data and program instructions. 8-bit or 16-bit refers to the amount of data that can be processed at once, i.e., the width of the data memory (in microchip terminology, “registers”) and the ALU (Arithmetic and Logic Unit). Low-end PICs, operating 8-bit data at any one time, have three architectural families [16,17].

1.2.1. Baseline (12-Bit Instructions)

These PICs are based on the original PIC architecture, going back to the 1970’s and General Instrument’s “Peripheral Interface Controller”. They are rather limited, but within their limits (such as no interrupts) are simple to work with (particularly in modern assemblers such as 6-pin 10F series, 8-pin 12F509, and 14-pin 16F506).

1.2.2. Midrange (14-Bit Instructions)

An extension of the baseline architecture, it supports interrupts, has more memory and on-chip timers and peripherals, includes PWM (pulse width modulation) for motor control, supports serial, I2C, and SPI interfaces, and has LCD controllers. Modern examples include 8-pin 12F629, 20-pin 16F690, and 40-pin 16F887.

1.2.3. High-End (16-Bit Instructions)

Otherwise known as 18F series, this architecture overcomes some limits of the midrange devices. It has more memory (up to 128k program memory and almost 4k data memory) and advanced peripherals (including USB, Ethernet, and CAN or controller area network) connectivity. The 18F architecture supports C programming and is, among 8-bit PIC families, the only one with C compiler. Examples include 18-pin 18F1220, 28-pin 18F2455, and 80-pin 18F8520. Maybe a little confusing is that PIC18F series has 16-bit program instructions operating on 8-bits of data at a time, and is considered an 8-bit chip [12,18].

BASIC programming language is known to users as the easiest and is the most used. The reputation is increasingly transferred onto microcontrollers. PIC BASIC enables quicker and relatively easier program writing for PIC microcontrollers, as compared with Microchip’s assembly language MPASM. During program writing, the programmer encounters the same problems always: serial sending of messages, writing of variable on LCD display, generating of six PWM signals, etc. [16].

Facilitating programming are PIC BASIC’s built-in commands, which are intended to solve problems typically found in praxis. Where execution speed and program size are concerned, MPASM is less advantaged than PIC BASIC (therefore giving rise to the possibility of combining PIC BASIC and assembler). The part of the program where the same commands are executed many times or the execution time is critical is usually written in assembler. Modern microcontrollers such as PIC execute the instructions in a single cycle lasting 4 tacts of the oscillator. If the microcontroller oscillator is 4 MHz (one tact lasts 250 nS), then one assembler instruction requires 250 nS × 4 = 1 uS for the execution. Each BASIC command is actually a sequence of assembler instructions; the exact time necessary for execution of a BASIC command is simply the sum of the times necessary for execution of assembler instructions within one BASIC command [17,19].

2. Hardware Design of the PIC Trainer Model

Figure 3 is a laboratory model of the trainer design hardware. The model has three main parts: board for applied experiments, PIC microcontroller simulator, and interfacing board with PC computer. There is also a built-in power supply.

Conflicts of Interest

The authors declare no conflicts of interest.

References

[1] N. Barsoum, “Speed Control of the Induction Drive by Temperature and Light Sensors via PIC,” Transaction in Controllers and Drives, 2010, pp. 35-59.
[2] M. Bates, “Interfacing PIC Microcontrollers Embedded Design by Interactive Simulation,” Elsevier, Amsterdam, 2006.
[3] F. J. Diaz, F. J. Azcondo, R. Casanueva and C. Branas, “Microcontroller Software Applied to Electronic Ballast Design,” 13th European Conference on Power Electronics and Applications, Barcelona, 8-10 September 2009, pp. 1-8.
[4] H. W. Huang, “PIC Microcontroller: An Introduction to Software and Hardware Interfacing,” 2005. http://www.delmar.com.
[5] J. Main, “Measuring Resistance Using Digital I/O Using a Microcontroller for Measuring Resistance without Using an ADC,” 2008. http://www.best-microcontroller-projects.com
[6] C. Singh and K. Agarwal, “Design of Reactive PIC Microcontroller,” Proceedings of International Symposium on Signals, Systems and Electronics, Pilani, 17-20 September 2010, pp. 1-4.
[7] H. Rongen, “Introduction to PIC Microcontroller,” Forschungszentrum Jülich Zentrallabor für Elektronik, Jülich, 2009.
[8] N. Gardner, “An introduction to Programming the Microchip PIC in CCS C,” Ccs Inc., Christiansburg, 2002.
[9] B. Hossain, N. Hossain, M. Hossen and H. Rahman, “Design and Development of Microcontroller Based Electronic Queue Control Systems,” Proceeding of the 2011 IEEE Students’ Technology Symposium, Kharagpur, 14-16 January 2011, pp. 48-52. doi:10.1109/TECHSYM.2011.5783862
[10] T. Wilmshurst, “Designing Embedded Systems with PIC Microcontrollers Principles and Applications,” Elsevier Ltd., New York, 2007.
[11] N. Matic and G. Maneger, “EasyPIC Microcontroller Board User Manual,” 2008.
[12] D. Ibrahim, “Advanced PIC Microcontroller Projects in C from USB to RTOS with the PIC18F Series,” Elsevier, Amsterdam, 2008.
[13] F. H. Fahmy, S. M. Sadek, N. M. Ahamed, M. B. Zahran, and A. El-S. A. Nafeh, “Microcontroller-Based Moving Message Display Powered by Photovoltaic Energy,” International Conference on Renewable Energies and Power Quality, Granada, 23-25 March 2010. http://www.icrepq.com/icrepq'10/726-Sadek.pdf
[14] Y. Aye, “Design and Construction of LAN Based Car Traffic Control System,” World Academy of Science, Engineering and Technology, Vol. 46, 2010, pp. 586-591.
[15] N. Matic, “BASIC for PIC Microcontrollers,” 2001. http://scalak.elektroda.eu/html/pliki/BasicforPICMicrocontrollers.pdf
[16] F. J. Díaz, F. J. Azcondo, R. Casanueva and Ch. Bra?as, “Microcontroller Software Applied to Electronic Ballast Design,” University of Cantabria, Cantabria, 2010.
[17] S. C. Hsiung, “The Use of PIC Microcontrollers in Multiple DC Motors Control Applications,” Journal of Industrial Technology, Vol. 23, No. 3, 2007, pp. 2-3.
[18] S. Huseinbegovic and O. Tanovic, “Development of a Distributed Elevator Control System Based on the Microcontroller PIC 18F458,” 2010 IEEE Region 8 International Conference on Computational Technologies in Electrical and Electronics Engineering, Irkutsk, 11-15 July 2010, pp. 858-863.
[19] L. D. Jasio, et al., “PIC Microcontrollers,” Elsevier Inc., New York, 2008.

Copyright © 2024 by authors and Scientific Research Publishing Inc.

Creative Commons License

This work and the related PDF file are licensed under a Creative Commons Attribution 4.0 International License.