ASEE-NMWSC2013-0052
The First Lecture on Microcontrollers for Students
with Limited Background in Electrical and Computer
Engineering Foundations
Majura F. Selekwa
Department of Mechanical Engineering; North Dakota State University
[email protected]
Abstract
In the modern world, microcontrollers are found in almost every device with mechanical, chemical, and electrical applications. In general these are single chip computers integrated with various
input-output interface ports. There are thousands of microcontrollers in the market, and each has
its own way of manipulating its input-output interfaces. Teaching the topic of microcontrollers
has never been uniform across the board since various instructors tailor their lectures on the
particular type of microcontrollers used in their classes. Although many students with a good
background in electrical, electronic and computer engineering can easily assimilate the material
and extend the knowledge to other types of microcontrollers, it tends to be very difficult for students of non-electrical backgrounds such as mechanical and chemical engineering to respond in
a similar fashion. This paper discusses one of the effective ways of approaching the the topic
teaching students of non-electrical backgrounds using different types of microcontrollers in the
same environment. Typically, the topic is simplified by combining the common characteristics
of all microcontrollers and presenting them generically in a way that enables students to translate
those characteristics to various types of microcontrollers when needed to.
1 Introduction
The title of this article is deliberately exaggerated to stress on what needs to be done in the
early stages of the topic before students are exposed to any specific microcontroller classes. This
information is not covered in a single first lecture only, but rather in the first two or three lectures
on the subject.
Today, there are many systems that are controlled using microcontrollers; such systems, better known as embedded systems, constitute the largest share of modern consumer and industrial
systems. As such knowledge of using microcontrollers in design and development of mechanical
systems has become an increasingly important subject. Generally, the subject of microcontrollers
is taught as Embedded Systems for electrical and computer engineering students, and mainly as
part of Mechatronics for mechanical and chemical engineering students. Students in electrical
425
engineering, electronic engineering, computer engineering and computer science tend to have a
greater leverage in understanding microcontrollers. There are many other subjects in their fields
of study that help them better understand microcontrollers. On the opposite side, however, students in mechanical engineering and chemical engineering who also need to know how to use
microcontrollers in their fields tend to remain disadvantaged by the way the subject is taught.
While the Embedded Systems subject is dedicated to microcontrollers only, see fo example 1 , on
the other hand mechatronics covers microcontrollers as just one topic among many other topics,
see for example 2–5 . Perhaps, because of the number of topics involved, the subject of mechatronics does not normally cover microcontrollers in as detailed manner as the embedded systems
subject does. As such, many existing mechatronics textbooks also tend to cover this topic by using a single specific microcontroller, following the tradition set by early authors on the subject,
for example 6 . Although some authors, see for example 2 , start the topic by discussing the general
microcontroller structure, most of others just jump to the particular microcontroller used by the
book. And even those that discuss the general microcontroller structure, they do so very sparingly without planting the necessary seeds to make the topic understandable to students. This in
effect is reflected in how the class ends up being taught in many schools, see for example 7–12 . As
such students are forced to learn on type of microcontroller as if it is the only one in the market.
These student tend to get stuck when required to decide for themselves which microcontroller to
use in a particular design, or when required to work with a different type of a microcontroller.
Their knowledge tend to remain limited to the type of microcontroller taught in class. A recent
survey paper has indicated that 13 while mechanical engineering students have been increasingly
becoming more interested in microcontrollers, they also have been left blind on the hardware
structure common to all microcontrollers, as such students have been always looking at the final
end use of particular microcontrollers only.
The objective of this paper is to provide some guidelines for instructors who teach the subject
of microcontrollers to students who do not have the electrical, electronics or computer engineering background; particularly those in mechanical and chemical engineering. Although these
students learn the basic principles of electrical circuit analysis in their fields of study, in general
such knowledge does not prepare them well to absorb the subject of microcontrollers as presented
in many textbooks without a hassle. The paper discusses how the topic should be approached
step by step, starting with preparatory stages, taking students up the learning ladder from the
structure of the personal computer, which is well known to students up to the general structure
of microcontrollers. It is only after students have the “big picture” about microcontrollers when
they can start to learn about specific microcontrollers.
2 The Microcontroller Lesson Plan
2.1 Prerequisites and Preparatory Information
All students of microcontroller systems must have some prerequisite knowledge on basic digital electronics and number systems used in digital computing. Typically students with limited
background in electrical and electronics must be taught these topics prior to microcontrollers;
a separate paper 14 , discusses the experience of the author in preparing mechanical engineering
students for microcontrollers. To prepare students who have a limited background in electronics,
426
first, they must be introduced to the concept of binary numbers through simple ON and OFF
operations; this introduction can then be extended to basic combinational logic gates, i.e., the
AND, OR, NOT, NAND and NOR gates; this preparation can run for about thirty minutes. After
this basic digital electronics introduction, students can be introduced to sequential logic systems
starting with the basic S-R flip flop and its evolution into the the T and D flip flops; it is from
this introduction when the concept of digital clocks, memory cells and registers will discussed
along with their associated key terminologies such as bytes and word. At that point, the binary
number system can be discussed further extending to hexadecimal numbers system. Details of
arithmetical manipulations of binary and hexadecimal numbers are not necessary, however the
knowledge to use standard calculators such as the Microsoft Windows calculator in performing
such operations is expected. This minimal preparatory work, which can run for up to two classes,
is sufficient to put students at the right footing to understand microcontrollers.
2.2 Dissecting the Microcontroller for Students to Understand
With students who are equipped with the necessary prerequisites as discussed in the previous
subsection, the first lecture on microcontrollers should start by dissecting the structure of the
microcontroller into three parts: the microprocessor, the system memory, the Input/Output Interfaces. The system memory should be presented to show that there is a limit on the size of
the information that can be handled by the microcontroller. The microprocessor part should
show how data is handled within the heart of the microcontroller, while the discussion on the
Input/Output Interfaces should show how the microprocessor interacts with the external world to
complete the microcontroller structure. In general, this discussion can be carried out by looking
at what students know best, i.e., the personal computer. The instructor needs to introduce the
topic by using the structure of a normal personal computer and break it into its key six sections
as follows 15 :
1. The Input Unit as the ‘receiving’ section of the computer, which receives data from various input devices such as the mouse, keyboard, scanner, and input ports for audio, video,
etc., and places that data at the disposal of other parts of the computer.
2. The Arithmetic and Logic Unit (ALU) as the ‘manufacturing’ section of the computer,
which processes the input data by performing arithmetic calculations (+, −, ×, ÷) between
two numbers and logical operations of AND, OR and NOT as necessary.
3. The Registry Unit as the ‘scratch pad’ section of the computer where immediate data
used by the ALU is stored. Students need to know that this unit contains memory cells
or registers that keep a record of the ALU activities, and temporarily store data that flow
between the ALU and other parts of the computer. The registry may be viewed as the
“personal secretary” of the ALU, which controls how data is handled by both the ALU
and other parts of the computer.
4. The Memory Unit as the ‘warehouse’ section of the computer. It is important to clarify
the difference between the system memory unit and the registry unit although both are
memory spaces. Unlike registers, which are accessed only by the ALU, this memory is
receives information from all other parts.
427
5. The Control Unit as the ‘administrative’ section of the computer, which instructs all other
parts on how to handle data; for example when data should be loaded into the memory unit
from the input unit, when the ALU should pick up that data from the memory unit. It is
worth mentioning that the control unit is basically a clock that manages the timing and the
sequence of the computer operations. Its frequency determines the speed of the computer.
6. The Output Unit as the ‘shipping’ section of the computer, which takes information that
has been processed by the ALU and places it on various output devices to make it available
for use outside the computer; output devices include the computer screen, printer, our
sound card.
The organization of the personal computer sections is illustrated in Figure 1. From here, students
should be taught that the trio of the Control Unit, ALU and the registers together form what is
known as a Microprocessor or a Central Processing unit (CPU). Each set of this trio is also known
as core, and one microprocessor (µ P) can have one or more cores, e.g., the Duo Core processor
has two cores. It is common to put the input units and output units into one group known as
input/output interfaces so that the three main parts of a computer become:
1. The Input/Output Interfaces,
2. The Memory,
3. The Microprocessor.
THE MICROPROCESSOR
ARITHMETIC
LOGIC UNIT
REGISTERS
DATA FROM
OUTSIDE
WORLD
A CORE
DATA TO OUTSIDE
WORLD
INPUT
UNITS
CONTROL
OUTPUT
UNITS
UNIT
Control Signal
flow
MEMORY
UNIT
DATA
flow
Figure 1: The Computer Organization
2.2.1 The Microprocessor
As stated earlier, many textbooks that discuss microcontrollers tend to either skip discussing
microprocessors or simply do it very lightly, probably either by assuming that the reader has
428
some knowledge on microprocessors or by erroneously assuming that such knowledge is not
necessary. Unfortunately, this is probably the critical part of the whole subject that lays out
a groundwork for the student to understand how the microcontroller works and how to use it.
The microprocessor implements a set of instructions known as a program, which is stored in the
memory unit. Students need to know that each microprocessor is built with a set of instructions
in binary digits, which specify how the microprocessor manipulates the data in the program.
A computer program, written by the user is a series of microprocessor instructions arranged in
a way that achieves a particular intended objective. In implementing a computer program, the
microprocessor reads one instruction at a time sequentially; that is why it is known as a sequential
machine.
After students understand the meaning of a computer program, specifics on how the processor
interacts with the memory, input and the output units can be described. Importantly is the fact
that these units are assigned unique integer identifiers known as as addresses; so in order for
the processor to access a particular unit, it has to locate its address first and use it to access
and implement the intended operation on the unit. The information flow paths between the
microprocessor and other parts of the computer are known as buses, which can be data buses,
control buses or address buses.
Finally, the discussion on microprocessor is closed by discussing the core registers found
in the microprocessor. It is important to stress that the registry unit of each microprocessor
has several registers, and different microprocessors can have different registers. Common core
registers found in all microprocessors must be described as follows:
1. The Instruction register (IR) for storing the instruction that is being implemented by the
core. Normally, each instruction to be executed is loaded into this register and stays there
while being decoded and prepared prior to being executed.
2. The Accumulator Register (A) for storing the data that is manipulated by the core; its
size determines the word size of the processor, i.e. the number of bits that can be handled
by the processor at any given instant. Data from the memory unit must pass through the
accumulator in order to be manipulated by the microprocessor.
3. The Index Register (I) for modifying the address of the operand in a way that makes
the operand easily accessible by the processor; they can also be used as accumulators.
Typically, there can be more than one index registers in one microprocessor.
4. The Program Counter (PC) for keeping track of the CPU position in the program. The
program counter register contains the memory address of the next program instruction.
5. The Condition Code (CC) Register or Status Register for storing information about the
results of the last ALU operation. Its size can be one or two bytes; each of its bits is known
as flag, which has a unique function. Common CC flag functions are summarized in Table
1.
6. Stack Pointer (SP): Stack is a special area in memory used by the processor for temporary
storage of data; is is configured as a data structure that grows downward from high memory
address to low memory address. The stack data is normally accessed by the last in first out
429
Center
C
Name
Carry
V
Overflow
Z
Zero
N
Negative
I
Interrupt
H
Half Carry
X
X-Interrupt
S
Stop Disable
Function
Stores a ‘carry’ bit of the last operation.
It indicates whether the result had a carry,
or the operation borrowed one bit
When set HIGH, it indicates that the actual
result exceeded the capacity of the processor
and therefore this result is not correct
When set HIGH, it indicates that the
final result was zero
This flag is set when the arithmetic operation
produced a negative result
Maskable (that can be ignored) interrupts enabled.
Programmer sets this flag, if set to 1, it means
the CPU can ignore certain interrupts if set to 0,
then the CPU cannot ignore these interrupts
This flag is set if the operation produced a
carry from the lower 4-bits (nibble) to the higher 4-bits.
It is useful for arithmetic operations using BCD
Non-maskable (not to be ignored) external interrupts
enabled. This flag is set by the programmer
This flag is also set by the programmer to
disable the STOP instruction
Table 1: Typical Contents of the Condition Code register
(LIFO) philosophy.The stack pointer contains an address to the next free location in the
stack.
The structure of the core registers defines what is known as the microprocessor’s programming
model. Although the presence of many high level programming languages have eliminated the
need to know the programming model of the processor, developers of those high level languages
must know the programming model for the intended microprocessor. It is important for students
to know this model even if they will be developing their microcontroller applications using a
higher level language. Debugging microcontroller programs requires investigating the contents
of its core registry, which is possible only if the students know what register to investigate.
2.2.2 The System Memory
The system memory refers to an onboard memory used by the CPU to store data and the program
that is immediately used by the CPU. It does not include hard disks or optical drives, which are
regarded as part of the input/output units. Since students are assumed to have knowledge of
D-flip flops and memory cells, it should be clear to them that the memory stores a series of
binary digits only. The concepts of memory sizes in terms of nibbles, bytes words, dwords and
qwords should be known to students at this time. Important is to inform them that the system
memory appears in two forms: volatile system memory and non-volatile system memory, all
microcontrollers are equipped with both.
430
Additionally, students must know the differences between the two forms of system memory.
That the volatile memory is popularly known as RAM (Random Access Memory) although the
term random access is misleading, because any addressable memory can be accessed randomly.
This memory does not keep its data after the power is turned off. On the other hand, non-volatile
memory, which is popularly known as ROM (Read Only Memory), does keep its data even
after power is turned off; however, special facilities are required to transfer data to this type of
memory. Several types of non-volatile system memory exist; for example:
1. ROM (Read Only Memory) are factory-preprogrammed memory spaces containing programs that are used by the microprocessor, and cannot be reprogrammed. Programs stored
on ROM get the most direct access to the microprocessor than programs from elsewhere.
2. PROM (Programmable ROM) are ROM areas that are designed to be programmed by
the end user. However, after programming them, the user can not erase the program. In
other words, they are one time programming chips.
3. EPROM (Erasable PROM) are PROM areas that can be erased and reprogrammed by
the end user. Normally, erasure is carried out by subjecting them to ultra violet light, or to
some electrical or magnetic field.
4. EEPROM (Electrically Erasable PROM) are PROM areas that can be erased and reprogrammed by subjecting them to high voltages, which makes programming the EEPROM
a slow process. There are special types of EEPROM known FLASH memory units, these
memories use simple special circuits for fast erasing and transferring data to the unit.
Since many microcontrollers are equipped with RAM, EEPROM and FLASH altogether, this
knowledge enables students to figure out what memory to use and under what conditions.
2.2.3 The I/O Ports
The usefulness of any computer lies in its ability to interact with the user. The computer should
be able to read information from the user and should also display results to the user. Information
from the user is passed through the input units of the computer and the information to the user
is passed through the output units. Common input units include keyboards, microphone and
webcams; the output units include the monitor, audio speakers, and the printers. Data storage
devices such as hard disks, and optical drives can serve as both input and output units. The
means by which the computer communicates with the user are grouped together as I/O ports. At
this stage, students need to understand that while the personal computer is built mainly to be a
personal device interacting only with the person who is using it, microcontrollers are meant to
mainly interact with the physical environment only getting back to the user as a way of accepting
user inputs and probably displaying user results. As such it has to have plenty of flexibility in its
I/O port structure.
2.2.4 The Basic Structure of a Microcontroller
Once students have a full understanding of a computer structure and microprocessors, they can
now be taught that a microcontroller is a compact computer in which the microprocessor, system memory and the I/O interface units are packaged together in one very large scale integrated
431
11111111111111111111111
00000000000000000000000
00000000000000000000000
11111111111111111111111
00000000000000000000000
11111111111111111111111
00000000000000000000000
11111111111111111111111
00000000000000000000000
11111111111111111111111
00000000000000000000000
11111111111111111111111
00000000000000000000000
11111111111111111111111
00000000000000000000000
11111111111111111111111
The Microprocessor
00000000000000000000000
11111111111111111111111
00000000000000000000000
11111111111111111111111
00000000000000000000000
11111111111111111111111
00000000000000000000000
11111111111111111111111
00000000000000000000000
11111111111111111111111
00000000000000000000000
11111111111111111111111
00000000000000000000000
11111111111111111111111
00000000000000000000000
11111111111111111111111
00000000000000000000000
11111111111111111111111
SFR
SFR
SFR
SFR
I/O
I/O
I/O
I/O
I/O
SFR
I/O
I/O
SFR
I/O
I/O
SFR
SFR
I/O
SFR
SFR
SFR
SFR
I/O
I/O
I/O
System Memory
SFR
(VLSI) circuit. Microcontroller I/O interface units are known as Ports; typically, one microcontroller can perform a variety of functions on its input/output ports depending on how their
programmed. Between the microprocessor and the I/O ports, there is an array of registers known
as Special Function Registers (SFR), which control the behavior of the I/O ports. The microprocessor accesses the I/O port and can modify the behavior of the I/O port through the ports’ SFR.
As such, each port can be made to serve as an input port or an output port performing one of the
many possible I/O function of that particular microcontroller.
Figure 2: The general structure of any microcontroller
Figure 2 illustrates the general I/O structure of any microcontroller. Class experience with
students who lack background in microprocessor systems has shown that Figure 2 sends a very
clear image to students on how microcontrollers work, and also it heavily simplifies the learning
process in the next topics on microcontrollers.
Since there are many types of microcontrollers in the market with different capabilities depending on the number and functions of its I/O ports and system memory, students must be taught
to understand that each manufacturers provides all details on the critical information about each
of their microcontrollers. To that end, students will be told that the microcontroller specific information found in textbooks is not universal, but it is rather provided by the manufacture for that
specific microcontrollers. At this point students must be shown typical examples of manufacture
data sheets, for example, for the MC9S12DP256 microcontroller by Freescale Semiconductor
Inc 16 , typical information include the I/O interface structure (Figure 3) which includes the pin
assignments of the microcontroller, the system memory structure ( Figure 4), and the programming model (Figure 5). Unfortunately, most textbooks on microcontrollers, tend to start at this
stage only.
At this moment, students must be taught to understand that SFR bits have specific functions as
determined by the manufacture; these functions are not universal for all microcontrollers, so for
each microcontroller, the manufacturers data sheets must be consulted. Normally manufacturers
provide such information in both graphical and textual forms. A typical SFR description for
432
Figure 3: A Specific Structure of the MC9S12DP256 microcontroller by Freescale Semiconductor Inc 16
the MC9S12DP256 microcontroller by Freescale Semiconductor is illustrated in Figure 6 for the
general I/O port A of the MC9S12DP256 microcontroller 16 .
By explaining such critical information about microcontrollers to students, they get to clearly
know to figure out by themselves on how to choose and use particular microcontrollers for their
applications.
433
Figure 4: A specific memory structure
of the MC9S12DP256 microcontroller by
Freescale Semiconductor Inc 16
Figure 5: A specific programming model
structure of the MC9S12DP256 microcontroller by Freescale Semiconductor Inc 16
2.2.5 Microntroller Programming
Although plenty of high level programming languages exist, the training is more effective when
students are first taught microcontroller programming by using assembly language. Despite its
seemingly complexity, it provides a clear image to students on what is happening inside the
microcontrollers. Fortunately, many instructors and text books tend to approach the subject in
that way.
On teaching students how to program a microcontroller, first they must be informed that the
process of programming any microcontrollers is primarily to instruct the microprocessor to either
write to or read from the system memory or any of its SFRs. It involves setting ON or OFF certain
bits of the microcontroller SFRs, and also reading certain bits of the microcontroller SFRs. Since,
each cell of the system memory and all of the SFRs are assigned unique addresses, it is important
for the programmer to know those addresses as provided by the manufacture. Later on students
may learn that certain high level programming compilers have such information predefined, so
the program can still be developed even if the programmer does not know all addresses. However,
effective training must make it clear that such information is required.
Probably, the main reason microcontrollers are used in many real time control systems is not
only their simplicity and speed but also their ability to flexibly manipulate any device connected
on their I/O ports. As such, programming the microcontroller on how to interact with its I/O
ports should be the primary learning objective for students. At that level, the instructor need to
make it clear to students that I/O port programming for any microcontroller has two stages; the
434
Figure 6: Typical description of specific PORT SFRs of the MC9S12DP256 microcontroller as
provided by manufacturer: Freescale Semiconductor Inc 16
first stage is port initialization which is done once, and the second stage is port data transfer
which can be repeated as many times as may be needed.
The initialization of an I/O port can be a simple process using only one SFR, or can be very
complex process involving several SFRs; the programmer has to get all the necessary initialization information from the manufacturer’s data sheet. There are up to three levels of initialization
processes:
1. Level 1: The I/O port is initialized in one step only by configuring the port functionality. A typical example of this level is in using the general parallel I/O port A of the
MC9S12DP256 microcontroller described in the previous subsection by defining whether
the port is an input or an output by using the corresponding data direction register.
2. Level 2: The I/O functionality is activated in two steps: Configure the port functionality
and enable it. A typical example of level 2 initialization is on setting up the pulse width
modulation signal (PWM) ports for most microcontrollers. Although several SFRs are
involved in setting up a PWM signal, the user needs to configure the desired PWM features
such as frequency, polarity, and alignment; then enable the port to generate PWM signal
continuously.
3. Level 3: The functionality is activated in three steps: Configure the functionality, enable
it, and set up a monitoring mechanism so the functionality remains active. All interrupt
driven functionalities fall in this level. For example, the RTI is configured by defining
435
its frequency and shape, then it is enabled; however, whenever the interrupt happens, the
interrupt flags must be cleared in order for the functionality to continue running.
3 Experimenting with Specific Microcontrollers
With all the general information common to all microcontrollers provided to students as outlined
in the previous section, the instructor can start to focus on a specific microcontroller used in the
class. At this moment, it is possible to use two or more different microcontrollers in the same
class as long as students understand the structure of their particular microcontroller and how
to find the manufacturer’s specific programming information. Best way to start playing with
microcontrollers is to read and write on the general parallel I/O ports (GPIO); the experiment
becomes more interesting and successful if the microcontroller has two or more GPIO ports. One
port is configured to serve as an input while another one serves as an output, and the program
becomes to read the input port and write the result to the output port. To run this experiment,
dip switches need to be connected at the input pot while an array of LEDs are connected at the
output port. By manipulating the dip switch, the LED should light to show the position of the
dip switches.
4 Preliminary Effectiveness Evaluation
In fall of 2012, the author taught the topic to two groups of mechanical engineering students.
These students needed knowledge of microcontrollers for use in their senior design projects. On
the first group, the author used the standard approach of presenting the microcontroller, discuss
and explain how to program it. Although in the end students were able to use the microcontroller
in their project, they always had many questions to ask. The second group realized very late
that they would need a microcontroller, so the author had to prep[are also a special training; that
is when the author used the approach presented in this paper. The first group of students were
invited again to sit in this session. After six days of discussing microcontrollers, al;l students
were satisfied and with the knowledge, and continued working independently to the end of the
semester. Although no statistical data was collected to evaluate the student perception, the fact
that the first group struggled for most of the time until after sitting in the session of the second group is an indication that this approach may be effective. Future plans include rigorous
evaluation of this approach using a big sample and better statistical methods.
5 Summary and Conclusion
This paper has outlined critical steps that must be followed by the instructor who teaches the
subject of microcontrollers to students who have a limited background in electrical , electronic
and computer engineering. It stresses on the need for students to be taught the general internal structure of microcontrollers and where to find specific programming information for any
particular microcontroller. The paper believes that it is through careful lesson planning by the
instructor that will make it easy for students who do not have any background in electrical an
computer engineering to smoothly learn and understand how to design microcontroller based
436
systems specific for their areas of expertise, for example chemical and mechanical engineering.
The proposals made by the paper are supported by preliminary effectiveness evaluation results
conducted by the author on a limited group of students; further evaluation results on the proposed
approach are planned.
References
[1] S. F. Barrett, D. J. Pack, Embedded Systems Design and Applications with the 68HC12 and HCS12,
Pearson/Prentice Hall, Upper Saddle River, NJ, 2005.
[2] D. G. Alciatore, M. B. Histand, Introduction to mechatronics and measurement systems, McGrawHill Inc., Boston, 2007.
[3] W. Bolton, Mechatronics: Electronic Control Systems in Mechanical and Electrical Engineering,
Pearson Education, Pearson/Prentice Hall, 2003.
[4] S. Cetinkunt, Mechatronics, Patria, 2007.
[5] A. Smaili, F. Mrad, Applied Mechatronics, Oxford University Press, 2008.
[6] A. K. Stiffler, Design with Microprocessors for Mechanical Engineers, McGraw-Hill Inc., New
York, 1992.
[7] V. Giurgiutiu, J. Lyons, D. Rocheleau, W. Liu, Mechtronics/microcontroller education for mechanical engineering students at the University of South Calorina, Mechatronics 15 (2005) 1025–1036.
[8] D. G. Alciatore, Integrating Mechatronics Into a Mechanical Engineering Curriculum, IEEE
Robotics & Automation Magazine (2001) 35–38.
[9] J. B. Hargrove, Curriculum, equipment and student project outcomes for mechatronics education in
the core mechanical engineering program at Kettering University, Mechatronics 12 (2002) 343–356.
[10] A. B.Wright, Planting the seeds for Mechatronic curriculum at UALR, Mechatronics 12 (2002) 271–
280.
[11] S. Meek, S. Field, S. Devasia, Mechatronics Education in the Department of Mechanical Engineering
at the University of Utah, Mechatronics 13 (2003) 1–11.
[12] T. R. Hsu, Development of an Undergraduate Currculum in Mechatronics Systems Engineering,
Journal of Engineering Education (1999) 173–179.
[13] N. Salzman, P. H. Meckl, Microcontrollers for Mechanical Engineers: From Assembly Language to
Controller Implementation, Paper ID #6559, in: 120th ASEE Annual Conference and Exposition,
Frankly We do Dive a D*mn, Atlanta, GA, June 23-26, 2013.
[14] M. F. Selekwa, Teaching Mechatronics Effectively in a Mechanical Engineering Program Under
Limited Time, in: Proceedings of the 2013 ASEE North Midwest Section Conference, Fargo, North
Dakota, 2013, Paper Number ASEE-NMWSC2013-0033.
437
[15] Unknown Author, The terms receiving section, wharehouse, administrative unit, and shipping section as used in this description were picked by the author from the internet several years ago. although the exact originator of the terms could not be known at this time, the author does not claim
be the originator of these useful terms.
[16] Freescale Semiconductor, Inc., MC9S12DP256 Advance Information, Reveision 1.1, Technical
Manual (2000).
438
Powered by TCPDF (www.tcpdf.org)