Вы находитесь на странице: 1из 8

CHAPTER 2 INTRODUCTION TO MICROCONTROLLERS

2.1 Introduction
A microcontroller is a computer with most of the necessary support chips onboard. All computers have several things in common, namely: o A central processing unit (CPU) that executes programs. o Some random-access memory (RAM) where it can store data that is variable. o Some read only memory (ROM) where programs to be executed can be stored. o Input and output (I/O) devices that enable communication to be established with the outside world i.e. connection to devices such as keyboard, mouse, monitors and other peripherals.

There are a number of other common characteristics that define microcontrollers. If a computer matches a majority of these characteristics, then it can be classified as a microcontroller. Microcontrollers may be: o Embedded inside some other device (often a consumer product) so that they can control the features or actions of the product. Another name for a Microcontroller is therefore an embedded controller. o Dedicated to one task and run one specific program. The program is stored in ROM and generally does not change. o A low-power device. A battery-operated microcontroller might consume as little as 50 mill watts.

A microcontroller may take an input from the device it is controlling and controls the device by sending signals to different components in the device. A microcontroller is often small and low cost. The components may be chosen to minimize size and to be as inexpensive as possible.

The actual processor used to implement a microcontroller can vary widely. In many products, such as microwave ovens, the demand on the CPU is fairly low and price is an important consideration. In these cases, manufacturers turn to dedicated microcontroller chips devices that were originally designed to be low-cost, small, low-power, embedded CPUs. The Motorola 6811 and Intel 8051 are both good examples of such chips. A typical low-end microcontroller chip might have 1000 bytes of ROM and 20 bytes of RAM on the chip, along with eight I/O pins. In large quantities, the cost of these chips can sometimes be just a few pence.

2.2 Microcontroller types


The predominant families of microcontrollers are 8-bit types since this word size has proved popular for the vast majority of tasks the devices have been required to perform. The single byte word is regarded as sufficient for most purposes and has the advantage of easily interfacing with the variety of IC memories and logic circuitry currently available. The serial ASCII data is also byte sized making data communications easily compatible with the microcontroller devices. Because the type of application for the microcontroller may vary enormously most manufacturers provide a family of devices, each member of the family capable of fitting neatly into the manufacturers requirements. This avoids the use of a common device for all applications where some elements of the device would not be used; such a device would be complex and hence expensive. The microcontroller family would have a common instruction subset but family members differ in the amount, and type, of memory, timer facility, port options, etc. possessed, thus producing costeffective devices suitable for particular manufacturing requirements. Memory expansion is possible with off- chip RAM and/or ROM; for some family members there is no onchip ROM, or the ROM is either electrically programmable ROM (EPROM) or electrically erasable PROM (EEPROM) known as flash EEPROM which allows for the program to be erased and rewritten many times. Additional on-chip facilities could include analogue-to-digital conversion (ADC), digital-to-analogue conversion (DAC) and analogue comparators. Some family members include versions with lower pin count for more basic applications to minimize costs.

The XA architecture supports: o o o o o o 16-bit fully static CPU with a 24-bit program and data address range; eight 16-bit CPU registers, each capable of performing all arithmetic and logic operations as well as acting as memory pointers; both 8-bit and 16-bit CPU registers, each capable of performing all arithmetic and logic operations; an enhanced instruction set that includes bit-intensive logic operations and fast signed or unsigned 16_16 multiplies and 32/16 divide; instruction set tailored for high-level language support; multitasking and real-time executives that include up to 32 vectored interrupts, 16 software traps, segmented data memory and banked registers to support context switching.

FIGURE 2.1 The microcontrollers have four 8-bit ports: port 0, port 1, port 2 and port 3. Traditionally in the 8051 microcontroller , the function of port 0 and port 2 is primarily to allow for connection to an external PROM (code memory chip). Port 0 provides both

the 8-bit data and the lower 8 bits of the address bus, A0 to A7. Port 2 provides the upper 8 address bits, A8 to A15. All of the flash microcontrollers referred to in this text have onboard code memory, this can be as much as 64 KB. Port 0 pins are all from open-drain transistors and the port pins should have pull-up resistors (e.g. 2.7 k_ from pin to 5V DC supply) if the port is to be used as a general purpose interface. Port 3 has some special function pins, e.g. pins 0 and 1 of port 3 may be used as receive and transmit for the UART. In the 8051 family of microcontrollers the RAM is organized into 8-bit locations.

The bits are numbered 7, 6, 5, 4, 3, 2, 1, and 0 where bit 7 is the most significant bit (MSB) and bit 0 the least significant bit (LSB). A bit (binary digit) has two values, logic 0 or logic 1. Electrically logic 0 is 0V whereas logic 1 is the value of the microcontroller IC positive supply voltage. Logic 1 is usually 5V but nowadays with increasing use of batteries for power supplies logic 1 could be 3V or 1.8 V. Power depends on the square of the voltage and there is a significant saving in power (i.e. battery lasts longer) if the microcontroller is powered by 3V or 1.8V power supplies. The maximum number that can be stored in an 8-bit memory location is 28 _ 1, which equals 255. This would occur when all the bits are equal to 1 i.e.:

Binary is a base 2 number system and the electronic devices in the microcontrollers logic circuits can be set to logic 0 and logic 1. The value of each bit is:

2.4 Bits, Nibbles, Bytes and Number Conversions


2.4.1 Bits, Bytes and Nibbles A bit is a single binary digit of value logic 1 or logic 0. A nibble is a group of 4 bits, e.g. 1010 is a nibble. A byte is a group of 8 bits e.g. 10100111 is a byte and the byte is made up of two nibbles 1010 and 0111. 2.4.2 Decimal to Binary Conversion A decimal number may be converted to binary by dividing the number by 2,giving a quotient with a remainder of 0 or 1. The process repeats until the final quotient is 0. The remainders with the first remainder being the least significant digit determines the binary value. The process is best explained with an example. The binary equivalent of a decimal number i.e. to break the decimal number down to those weighted elements, which have logic 1 level. 2.4.3 Binary, Hexadecimal (Hex) and Decimal When working out values at the port pins, the tendency is to think in binary, E.g. which LED to turn on, the logic level on a switch, etc. The assembly language software tends to use hexadecimal, a base 16 number system useful for grouping nibbles. Since childhood we have been taught to become familiar with the base 10 decimal system. It is useful to be able to work between the three number systems:

2.5 Inside Microcontrollers


Microcontrollers normally contain RAM, ROM (EEPROM, EPROM, PROM), logic circuits designed to do specific tasks (UART, I2C, SPI) and Square-wave oscillator (clock). Built from the logic circuitry the microcontroller has two parts, the processor core and the onboard peripherals.

FIGURE 2.2 Constituent parts of microcontroller

RAM locations that have special functions and support the processor core and onboard peripheral circuitry are called special function registers (SFRs) and are reserved areas. The program instructions provide the primary inputs to the processor core circuitry. The microcontroller program resides in the PROM (programmable ROM), which, in the microcontrollers we are considering, uses Flash technology and is located in the microcontroller IC.

FIGURE 2.3 Block Diagram of a Microcontroller

2.6 Microcontroller Programming


The microcontroller program comprises a set of instructions written by the program designer. There are four classes of instructions: o Arithmetic operations o Logic operations o Data transfer operations o Branch operations. 2.6.1 Arithmetic Operations Arithmetic instructions operate on whole numbers only and support addition, subtraction, multiplication and division. o Addition ADD A, #66H; add the hex number 66 to the accumulator A This is an example of immediate addressing. The # sign is important, if it were omitted the operation would have a different meaning. ADD A, 66H; add to accumulator A the contents of RAM address 0066H This is an example of direct addressing. Accumulator A is an SFR; it is an 8-bit register and its RAM address is 00E0H. A large number of instructions use accumulator A, but not all. INC 66H; increment (add 1) the contents of address 0066H o Subtraction

SUBB A, #66H; subtract hex66 from the contents of A The extra B in the instruction implies Borrow. If the contents of A are less than the number being subtracted then bit 7 of the program status word (PSW) SFR will be set. DEC A ; decrement A by 1, put result into A o Multiplication MUL AB; multiply the contents of A and B, put the answer in AB A is the accumulator and B is another 8-bit SFR provided for use with the instructions multiply and divide. A and B are both 8-bit registers. The product of the multiplication process could be a 16-bit answer. o Division DIV AB; divide A by B, put quotient in A and remainder in B o Logic Operations The set of logic functions include: ANL AND Logic ORL OR Logic XRL exclusive OR Logic CPL Complement (i.e. switch to the opposite logic level) RL Rotate Left (i.e. shift byte left) RR Rotate Right (i.e. shift byte right) SETB Set bit to logic 1 CLR Clear bit to logic 0 o Data Transfer Instruction MOV: used for data transfer from one register to other. o Conditional Branch Operations JZ Jump if zero JNZ Jump if not zero DJNZ Decrement and jump if not zero Other instructions are: JC jump if carry is 1 JNC jump if carry is 0 JB jump if bit = 1 JNB jump if bit=0

Вам также может понравиться