Introduction to Microprocessors Number Systems and Conversions Chapter 1: Introduction to 68HC11 The 68HC11 Microcontroller No. 1-1 9/6/00 Introduction to Microprocessors Number Systems and Conversions What is a computer? Software Hardware Computer Hardware Organization Control unit common bus Arithmetic logic unit memory Registers program data storage storage output input unit unit Figure 1.1 Computer hardware organization No. 1-2 9/6/00 The processor Introduction to Microprocessors Number Systems and Conversions Registers -- storage locations in the processor Arithmetic logic unit Control unit program counter keeps track of the address of the next instruction to be executed status register flags the instruction execution result The microprocessor A processor implemented on a very large scale integration (VLSI) chip Peripheral chips are needed to construct a product The Microcontroller The processor and peripheral functions implemented on one VLSI chip No. 1-3 9/6/00 Introduction to Microprocessors Number Systems and Conversions Features of the 68HC11A8 microcontroller - 8-bit CPU - 256 bytes SRAM - 512 bytes EEPROM - 8 KB ROM - 3 input capture channels - 5 output compare functions - one 8-bit pulse accumulator - one serial communication interface (SCI) - one serial peripheral interface (SPI) - real-time interrupt (RTI) circuit - 8-channel 8-bit A/D converter - computer operate properly (COP) watchdog system No. 1-4 9/6/00 P ULSE ACCUMULAT OR O C 1 RAM-256 bytes P ERIODIC INT ERRUP T EEPROM-512 bytes COP WAT CHDOG P E7 P E6 P E5 P E4 P E3 P E2 P E1 P E0 SS SCK MOSI SPI PORT E MISO A/D CONVERTER T xD SCI RxD VREFH VREFL P A0 P ORT D P D5 P D4 P D3 P D2 P D1 P D0 ADDRESS DATA BUS INTERRUPTS IRQ HANDSHAKE I/O (VPPBULK ) DAT A DIRECT ION C XT AL EXT AL P A2 P A1 M68HC11 CPU RESET XIRQ A DATA DIRECTION ROM-8KB Introduction to P A7 Microprocessors P A6 NumberP A5Systems and P A4 PORT Conversions P A3 P AI OC2 OC3 OC4 OC5 IC1 IC2 IC3 OSCILLATOR PORT B PORT C P ARALLEL I/O E MODA LIR MODB (VSTBY) VDD VSS MODE SELECT POWER P P P P P P P P B B B B B B B B 7 6 5 4 3 2 1 0 P P P P P P P P S S C C C C C C C C T T 7 6 5 4 3 2 1 0 R R B A AA AA AA AA A A AA AA AA 1 1 1 1 1 1 9 8 D D DD DD DD 5 4 3 2 1 0 7 6 5 4 3 2 1 0 R/W AS Figure 1.2 68HC11A8 block diagram (redrawn with permission of Motorola) SINGLE CHIP EXP AND No. 1-5 9/6/00 Introduction to Microprocessors Number Systems and Conversions Examples of microcontroller applications - Displays Printers Keyboards Modems Charge card phones Refrigerators Washing machines Microwave ovens Automobile engine fuel injection Fax machines Motor speed control etc. No. 1-6 9/6/00 Semiconductor memory Introduction to Microprocessors Number Systems and Conversions - Random-access memory (RAM): same amount of time - is required to access any location on the same chip Read-only memory (ROM): can only be read but not written by the processor Random-access memory - Dynamic random-access memory (DRAM): periodic - refresh is required to maintain the contents of a DRAM chip Static random-access memory (SRAM): no periodic refresh is required Read-only memory - Mask-programmed read-only memory (MROM): programmed when being manufactured - Programmable read-only memory (PROM): the memory chip can be programmed by the end user No. 1-7 9/6/00 - Erasable programmable ROM (EPROM) Introduction to Microprocessors Number Systems and Conversions 1. electrically programmable many times 2. erased by ultraviolet light (through a window) 3. erasable in bulk (whole chip in one erasure operation) - Electrically erasable programmable ROM (EEPROM) 1. electrically programmable many times 2. electrically erasable many times 3. can be erased one location, one row, or whole chip in one operation - Flash memory 1. electrically programmable many times 2. electrically erasable many times 3. can only be erased in bulk No. 1-8 9/6/00 Computer software - Introduction to Microprocessors Number Systems and Conversions Computer programs are known as software A program is a sequence of instructions Machine instruction - A sequence of binary digits which can be executed by the processor Hard to understand for human being Assembly language - Defined by assembly instructions An assembly instruction is a mnemonic representation of a machine instruction Assembly programs must be translated before it can be executed -translated by an assembler No. 1-9 9/6/00 High-level language - Introduction to Microprocessors Number Systems and Conversions Syntax of a high-level language is similar to English A translator is required to translate the program written in a high-level language -- done by a compiler Source code - A program written in assembly or high-level language Object code - The output of an assembler or compiler No. 1-10 9/6/00 Introduction to Microprocessors Number Systems and Conversions 7 Accumulator A 0 7 Accumulator B 0 A:B 15 Double Accumulator D 0 D 15 Index Register IX 0 IX 15 Index Register IY 0 IY 15 Stack pointer 0 SP 15 Program Counter 0 PC S X H I N Z V C CCR Carry Overflow Zero Negative I interrupt mask Half-Carry (from bit 3) X Interrupt Mask Stop Disable Figure 1.3 MC68HC11 Programmer's model No. 1-11 9/6/00 Introduction to Microprocessors Number Systems and Conversions Memory Addressing Memory consists of addressable locations A memory location has 2 components: address and contents address contents Data transfer between CPU and memory involves address bus and data bus address bus lines CPU memory data bus lines Figure 1.5 Data transfer between CPU and memory No. 1-12 9/6/00 Introduction to Microprocessors Number Systems and Conversions NUMBER SYSTEMS, CONVERSIONS and CODES No. 1-13 9/6/00 Goals Upon Completion Introduction to Microprocessors Number Systems and Conversions • Understand Positional Number Systems • Convert from one base to another • Add, Subtract using Binary Numbers No. 1-14 9/6/00 Chapter Overview Introduction to Microprocessors Number Systems and Conversions • Binary Number Representation Sign & Magnitude Ones Complement Twos Complement • Codes • Binary Addition Using Ones and Twos Complement Using BCD Nines and Tens Complement • Binary Subtraction No. 1-15 9/6/00 Binary Weights Introduction to Microprocessors Number Systems and Conversions • In Base 10 the weights in positional notation are: a0 is units weight a1 is 10 units weight a2 is 100 units weight or 10 * a1 weight ... • In Base 2 the weights in positional notation are: a0 is units weight a1 is 2 units weight a2 is 4 units weight or 2 * a1 weight ... No. 1-16 9/6/00 Positional Notation Introduction to Microprocessors Number Systems and Conversions BASE 10 953.7810 = 9 x 102 + 5 x 101 + 3 x 100 + 7 x 10-1 + 8 x 10-2 BASE 2 1011.112 = 1x23 + 0x22 + 1x21 + 1x20 + 1x2-1 + 1x2-2 = 8 + 0 + 2 + 1 + 1/2 + 1/4 = 11 3/4 = 11.75 No. 1-17 9/6/00 Conversion Introduction to Microprocessors Number Systems and Conversions EXAMPLE (repeated division) Convert 5310 to binary 2 53 2 26 divided by 2 leaves 26 2’s with 1 leftover which forms least significant bit remainder = 1 = a0 2 13 remainder = 0 = a1 26 remainder = 1 = a2 23 remainder = 0 = a3 21 remainder = 1 = a4 0 remainder = 1 = a5 most significant digit 53 base 10 equals 110101 No. 1-18 9/6/00 32 + 16 + 4 + 1 = 53 Introduction to Microprocessors Number Systems and Conversions EXAMPLE (fractional portion requires repeated multiplication) Convert .62510 to binary .625 X 2 = 1.250 .250 X 2 = 0.500 .500 x 2 = 1.000 a-1 = 1 remainder = .250 after 1.0 subtraction ms digit a-2 = 0 remainder = .500 a-3 = 1 remainder = .000 Finished - No further multiplication possible! .1012 = .5 + 0 + .125 =.62510 No. 1-19 9/6/00 Introduction to Microprocessors Number Systems and Conversions • EXAMPLE Convert 0.710 to binary .700 X 2 = 1.400 .400 X 2 = 0.800 .800 X 2 = 1.600 .600 X 2 = 1.200 .200 X 2 = 0.400 .400 X 2 = 0.800 a-1 = 1 remainder = .400 a-2 = 0 remainder = .800 a-3 = 1 remainder = .600 a-4 = 1 remainder = .200 a-5 = 0 remainder = .400 a-6 = 0 remainder = .800 Process starts to repeat 0.710 = 0.10110011001100.........(base 2) No. 1-20 9/6/00 HEXADECIMAL NUMBERS Code Introduction to Microprocessors Number Systems and Conversions WRITING one’s and zero’s can be error prone when dealing with large numbers. IBM came up with the following method of dealing with these numbers. BASE 16 with digits 0 - 15 in base 10 are represented by the following notation in Hexadecimal. 016 = 00002 = 010 116 = 00012 = 110 216 = 00102 = 210 316 = 00112 = 310 416 = 01002 = 410 516 = 01012 = 510 616 = 01102 = 610 716 = 01112 = 710 816 = 10002 = 810 916 = 10012 = 910 A16 = 10102 = 1010 B16 = 10112 = 1110 C16 = 11002 = 1210 D16 = 11012 = 1310 E16 = 11102 = 1410 F16 = 11112 = 1510 No. 1-21 9/6/00