0% found this document useful (0 votes)
66 views

Microcontrollers: A Practical Approach

The document discusses microcontrollers, which are mini computers that contain a microprocessor, program and data storage, and input/output peripherals on a single chip. Microcontrollers are widely used for embedded systems in devices like cars, airplanes, medical equipment, and more. Examples of microcontroller applications are provided, along with information on programming languages, compilers, development boards, and the process for writing, compiling, and debugging microcontroller programs.

Uploaded by

Adelon_Zeta_5128
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
66 views

Microcontrollers: A Practical Approach

The document discusses microcontrollers, which are mini computers that contain a microprocessor, program and data storage, and input/output peripherals on a single chip. Microcontrollers are widely used for embedded systems in devices like cars, airplanes, medical equipment, and more. Examples of microcontroller applications are provided, along with information on programming languages, compilers, development boards, and the process for writing, compiling, and debugging microcontroller programs.

Uploaded by

Adelon_Zeta_5128
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 23

Microcontrollers

A Practical Approach

Ernesto Arroyo
earroyo@media.mit.edu
What is a Microcontroller?

 Mini-Computer
– Microprocessor
 The Brains
 Arithmetic Logic Unit (ALU)
 Control Unit
 Program/ Data Storage
 Peripherals (Input/Output)

Low-Cost
Why Important?
 Embedded Inside:
– Automotive systems
– Airplanes
– Toys
– Medical Devices
– Furniture

 Billions of units
iSphere
Augmented Reality Kitchen
Augmented Reality Kitchen
Talking Trivet
WaterBot
EyeR
Thermo Mouse Pad
Spatula
Spatula
PIC16F88
 Microchip
 8 bit
 Memory
– 68 bytes of RAM Execution Memory
– 68 bytes of EEPROM Program Memory
 Retention > 40 years
 2-5.5v
 18 Pins
– 13 I/O pins www.microchip.com
I/O
Programming Languages
 ASM  C
– Low level – Most used
– Full Control – HiTech C
 BASIC, Forth, LOGO – Microchip C
– Interpreted – CCS PIC C
– Easy to use
 We will this
– Slow
Program Example: Loop
/* pulses pin PORTB<3> /* pulses pin PORTB<3>
eight times */ eight times */

pulse: void pulse()


movlw 0x08 {
movwf counter int i;
for (i=0; i<8; i++)
pulse_lp0: { output_high(PIN_B3);
bsf PORTB, 3 output_low(PIN_B3);
}
bcf PORTB, 3
decfsz counter, F return;
goto pulse_lp0 }
return

ASM Code C Code


Compilers’ Inefficiency
/* pulses pin PORTB<3> /* pulses pin PORTB<3> eight
times */
eight times */
0005: CLRF 21
0006: MOVF 21,W
0000: movlw 0x8 0007: SUBLW 07
0008: BTFSS 03,0
0001: movwf 0009: GOTO 014
0x20 000A: BSF 03,5
0002: bsf 0x6,0x3 000B: BCF 06,3
0003: 000C: BCF 03,5
000D: BSF 06,3
bcf 0x6,0x3
000E: BSF 03,5
0004: decfsz 000F: BCF 06,3
0x20 0010: BCF 03,5
0011: BCF 06,3
0012: INCF 21,F
0013: GOTO 006

Our Code Compiler’s ASM Code


See http://www.ccsinfo.com/picc.shtml for compiler’s info
IRX Board
 PIC16F84
 RS-232 Serial Port
 Visible LED
 Infrared LED
 Infrared Detector
 8 I/O Available
 Prototyping Area
What you need
 PIC C/ASM Compiler http://www.ccsinfo.com/
 PIC Programmer
 MPLAB IDE
 Free http://www.microchip.com
What is the Process ?
1. Write you program 4. Insert your PIC
 MPLAB – Face pin 1 to resistor
 C or ASM

2. Compile your program 5. Power it Up


• CCS PCM
– Connect 9V Battery
3. Transfer your program
 Puts HEX file into the PIC 6. Debug your program
 Use PICSTART and MPLAB – Never works a the first time
 “Burns your app into the PIC”
7. Repeat step 1
Tips

Programming Debugging

 Flash LED at start up for  Make sure the PIC is


500 mSec or longer inserted properly and pin 1
 Program all unused I/O pins facing the resistor
to be outputs  Verify you have power
 Check the oscillator
Hands on

Make an led flash out a pattern


LED / Photdiode pair to measure something
      a. variables and values
      b. calibration phase
4. make a context aware something:
      ideas?
      sunshine alarm
      headlight alarm
      finger bend
      back slouch measurer
      curve into a paint program (button and bendy black tube)
      door stop release when light turned out.

You might also like