Abstract
In this article, a methodology for the generation of programs in assembly language for microcontroller-based systems is proposed, applying a many-objective cooperative co-evolutionary linear genetic programming based on the decomposition of a program into segments, which evolve simultaneously, collaborating with each other in the process. The starting point for the program generation is a table of input/output examples. Two methods of fitness evaluation are also proposed. When the objective is to find a binary combination, the authors propose fitness evaluation with an exhaustive search for the output of each bit of the binary combination in the genetic program. On the other hand, when the objective is to generate specific variations of the logical values in the pins of the microcontroller’s port, the authors propose calculating the fitness, comparing the timing diagrams generated by the genetic program with the desired timing diagrams. The methodology was tested in the generation of drivers for the 4x4 matrix keyboard and character LCD module devices. The experimental results demonstrate that for certain tasks, the use of the proposed method allows for the generation of programs capable of competing with programs written by human programmers.
Highlights
A microcontroller is an integrated circuit with the basic characteristics of a computer
The methodology is based on the application of the manyobjective cooperative co-evolutionary linear genetic programming, whose realization will be described in detail
In the present work MaOCCLGP is applied in the generation of the programs: 1) 4x4 matrix keyboard scanning program, and 2) two-digit decimal number display on LCD module program
Summary
A microcontroller is an integrated circuit with the basic characteristics of a computer. Microcontrollers perform specific tasks in various types of hardware, from generalconsumption electronic hardware to industrial electronic hardware. There are microcontrollers of different architectures currently on the market: Intel 8051, Microchip PIC, Atmel AVR, ARM Holdings ARM, etc. In the current research project, an 8-bit 8051 architecture is employed, which is frequently used in embedded systems. An AT89S52 microcontroller, belonging to this architecture, was utilized. The electronic circuit within which the microcontroller functions is called amicrocontroller-based system‘ (MBS) or anembedded system‘. Depending on the function that it performs, the MBS includes other peripheral devices such as matrix keyboard, LCD screen, physical-magnitude sensors, switches, etc. During the functioning of a MBS, the microcontroller‘s central processing unit (CPU) executes the programs stored in machine language in the program memory
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have