Microcontrollers Microcomputers and Microprocessors Digital Electronics 2014 Project

  • Slides: 22
Download presentation
Microcontrollers, Microcomputers, and Microprocessors Digital Electronics © 2014 Project Lead The Way, Inc.

Microcontrollers, Microcomputers, and Microprocessors Digital Electronics © 2014 Project Lead The Way, Inc.

Microcontroller, Microcomputer, or Microprocessor? What is the difference? A microcontroller is a small, low

Microcontroller, Microcomputer, or Microprocessor? What is the difference? A microcontroller is a small, low cost computer on a single integrated circuit. ATmega 328 Microcontroller • Processor • Memory • Programmable Input/Output(I/O) Arduino Uno Microcontroller Board Spark. Fun Electronics, . Arduino Uno - R 3. 2013. Photograph. Wikipedia Commons Web. 7 Jan 2014. Microcontrollers are used to perform one dedicated task. One specific program. They are usually embedded in products. 2

Microcontroller, Microcomputer, or Microprocessor? What is the difference? A microcomputer is a small, relatively

Microcontroller, Microcomputer, or Microprocessor? What is the difference? A microcomputer is a small, relatively inexpensive computer with a microprocessor as its central processing unit. It includes: • a microprocessor • memory • input/output (I/O) facilities Commodore 64 Microcomputer Evan-Amos, . Commodore-64 -Computer. 2011. Photograph. Wikipedia Commons Web. 7 Jan 2014. <http: //en. wikipedia. org/wiki/File: Commodore-64 -Computer. jpg>. . 3

Microcontroller, Microcomputer, or Microprocessor? What is the difference? Why is it called a “micro”

Microcontroller, Microcomputer, or Microprocessor? What is the difference? Why is it called a “micro” computer? Early computers such as ENIAC filled entire rooms. A “micro”computer by comparison with a keyboard, monitor, and mouse are commonly referred to as a personal computer today. The prefix “micro” is not commonly used in describing computers anymore. U. S. Army Photo, . ENIAC. 197. Photograph. Wikipedia Commons Web. 7 Jan 2014. 4

Microcontroller, Computer, or Processor? What is the difference? Application Processors As the use of

Microcontroller, Computer, or Processor? What is the difference? Application Processors As the use of smart phones and mobile devices has expanded, a new type of processor has been defined. Intel® Quark So. C X 1000 Application Processor Today, microprocessors in computers are often just referred to as processors. All computers today have a processor as the CPU. Microprocessors designed for use in mobile applications are called application processors. 5

Microcontroller, Microcomputer, or Microprocessor? What is the difference? A microprocessor is an IC which

Microcontroller, Microcomputer, or Microprocessor? What is the difference? A microprocessor is an IC which has only the Central Processing Unit inside them. They only have processing powers. Microprocessors don’t have RAM, ROM, and other peripheral on the chip. A system designer has to add them externally to make them functional. Once again, the prefix “micro” is increasingly left today in favor of just processor. 6

What is a Microcontroller? Microcontrollers are used to control many everyday products like garage

What is a Microcontroller? Microcontrollers are used to control many everyday products like garage door openers, traffic lights, home thermostats, and robots. Embedded controllers are everywhere. 7

What are the Parts of a Microcontroller? Microcontrollers contain: • A Central Processing Unit

What are the Parts of a Microcontroller? Microcontrollers contain: • A Central Processing Unit • Some form of memory • Programmable Input / Output ATmega 328 Microcontroller (CPU) (MEMORY) (I/O) 8

What are the Parts of the Arduino Microcontroller Board? The Arduino Microcontroller Board Specifications:

What are the Parts of the Arduino Microcontroller Board? The Arduino Microcontroller Board Specifications: • (14) Digital I/O Pins: (6) are PWM Specific Digital / PWM • (6) Analog I/O Pins • Power: USB or external. If using power supply with 2. 1 mm center-positive plug, recommend range 7 V-12 V. • USB Connection: Type B • 5 V or 3. 3 V option Analog USB Power Vext 9

Programming a Microcontroller Programming languages have their own grammar called syntax. Programs written with

Programming a Microcontroller Programming languages have their own grammar called syntax. Programs written with the Ardiuno software called Sketches. A Sketch (program written with Arduino) will contain: • Variables • Functions • Setup() • Loop() • Structures • Comments 10

Programming a Microcontroller • The Arduino software consists of an Integrated development environment (IDE)

Programming a Microcontroller • The Arduino software consists of an Integrated development environment (IDE) and the core libraries. • The core libraries are written in C and C++ and compiled using avr-gcc and AVR Libc. • The Arduino software language you program in is very similar to C++ because it is derived from C/C++. 11

Example: Blink This sketch (program) will continue to turn on LED on for 1

Example: Blink This sketch (program) will continue to turn on LED on for 1 second and off for 1 second. The sketch (program) includes : setup() function - Initializes variables, pin modes, start using libraries, etc. loop() function - loops code consecutively. // Comments - Detailed descriptions not executed. 12

Example: Blink void - The void keyword is used only in function declarations. It

Example: Blink void - The void keyword is used only in function declarations. It indicates that the function is expected to return no information to the function from which it was called. 13

Example: Blink Syntax: { } Curly Braces (also referred to as just "braces" or

Example: Blink Syntax: { } Curly Braces (also referred to as just "braces" or as "curly brackets") Curly Braces are a major part of the C programming language. Balanced Braces - An opening curly brace "{" must always be followed by a closing curly brace "}". 14

Example: Blink Curly Braces – Beginning programmers, and programmers coming to C from the

Example: Blink Curly Braces – Beginning programmers, and programmers coming to C from the BASIC language often find using braces confusing or daunting. The same curly braces in C replace: the RETURN statement in a subroutine (function), the ENDIF statement in a conditional and the NEXT statement in a FOR loop in the BASIC language. 15

Example: Blink Syntax: The main uses of { } Curly Braces Functions void myfunction(datatype

Example: Blink Syntax: The main uses of { } Curly Braces Functions void myfunction(datatype argument){ statements(s) } Loops while (boolean expression) { statement(s) } do { statement(s) } while (boolean expression); for (initialisation; termination condition; incrementing expr) { statement(s) } Conditional statements if (boolean expression) { statement(s) } else { statement(s) } 16

Example: Blink /* Blink Turns on an LED on for one second, then off

Example: Blink /* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ // Pin 13 has an LED connected on most Arduino boards. // give the variable “integer” the name “led”: int led = 13; // the setup routine runs once to declare function when you press reset: void setup() { // initialize the digital pin “pin. Mode” you defined as “led” as an output. pin. Mode(led, OUTPUT); } // the void loop routine runs over and over again forever: void loop() { digital. Write(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digital. Write(led, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } 17

Example: Blink /* Blink Turns on an LED on for one second, then off

Example: Blink /* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ // Pin 13 has an LED connected on most Arduino boards. // give the variable “integer” the name “led”: int led = 13; A variable is a place for storing a piece of data. It has a type, a name, and a value. For example, the Blink sketch declares a variable with: the type “integer” int, name led, and an initial value = 13; 18

Example: Blink Variable Data Types Include: void boolean char unsigned char byte int unsigned

Example: Blink Variable Data Types Include: void boolean char unsigned char byte int unsigned int word unsigned long short float double string - char array String - object Array long 19

Example: Blink /* Blink Turns on an LED on for one second, then off

Example: Blink /* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ // Pin 13 has an LED connected on most Arduino boards. // give the variable “integer” the name “led”: int led = 13; // the setup routine runs once to declare function when you press reset: void setup() { // initialize the digital pin “pin. Mode” you defined as “led” as an output. pin. Mode(led, OUTPUT); } A function (also known as a sub-routine) is a named piece of code that can be used from elsewhere in the code. The setup() function in this example sets the variable led as an OUTPUT. 20

Example: Blink /* Blink Turns on an LED on for one second, then off

Example: Blink /* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ // Pin 13 has an LED connected on most Arduino boards. The loop() function loops consecutively, allowing your program to change and respond. Use it to actively control the Arduino board. // the void loop routine runs over and over again forever: void loop() { digital. Write(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digital. Write(led, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } 21

Your Turn Open Source Community Arduino Software is free. You can install it at

Your Turn Open Source Community Arduino Software is free. You can install it at home if you would like to continue work on your DE projects and/or create new projects of your own. For the newest version of Aurdino IDE visit their website. In the next activities, you will program a microcontroller to integrate new types of sensors and input devices. Memsic 2125 Dual-axis Accelerometer PIR Sensor (Passive Infra-Red) 2 -Axis Joystick 22