Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduction to Microcontroller
It typically includes:
Timers
Interrupt controller
Basics of Microcontroller.
a. Architectural features
Von-Neuman Architecture
Harvard Architecture
CISC
RISC
SISC
b. Memory options
FLASH (EPROM)
Field programming/reprogramming
c. I/O
UART
USART
SCI
Flash A/D
Pulse accumulator
Input Capture
Comparator
f. Interrupts
Polling
Interrupts
Maskable Interrupts
Vectored Interrupts
i. Machine/Assembly language
ii. Interpreters
iii. Compiler
Due to both its popularity and its slow speed, it was only
logical that BASIC would appear as a compiled language. A few
companies supply a BASIC compiler for several of the more
popular microcontrollers. Execution speed is drastically
increased over interpreted BASIC since the microcontroller is
freed from the task of interpreting the statements as the
program runs.
h. Development Tools
Simulators
Emulators
i. Applications
Peripheral Features:
The Special Function Registers are registers used by the CPU and
peripheral modules for controlling the desired operation of the device. These
registers are implemented as static RAM. The Special Function Registers
can be classified into two sets: core (CPU) and peripheral. Those registers
associated with the core functions are described in detail in this section.
Those related to the operation of the peripheral features are described in
detail in the peripheral features section.
Status register
The STATUS register contains the arithmetic status of the ALU, the
RESET status and the bank select bits for data memory. The STATUS
register can be the destination for any instruction, as with any other register.
If the STATUS register is the destination for an instruction that affects the Z,
DC or C bits, then the write to these three bits is disabled. These bits are set
or cleared according to the device logic. Furthermore, the TO and PD bits
are not writable, therefore, the result of an instruction with the STATUS
register as destination may be different than intended.
Bit 7 IRP: Register Bank Select bit (used for indirect addressing)
1 = Bank 2, 3 (100h - 1FFh)
0 = Bank 0, 1 (00h - FFh)
Bit 6-5 RP1:RP0: Register Bank Select bits (used for direct addressing)
11 = Bank 3 (180h - 1FFh)
10 = Bank 2 (100h - 17Fh)
01 = Bank 1 (80h - FFh)
00 = Bank 0 (00h - 7Fh)
Each bank is 128 bytes
Bit 4 TO: Time-out bit
1 = after power-up, CLRWDT instruction, or SLEEP instruction
0 = A WDT time-out occurred
Bit 3 PD: Power-down bit
1 = after power-up or by the CLRWDT instruction
0 = by execution of the SLEEP instruction
Some pins for these I/O ports are multiplexed with an alternate function
for the peripheral features on the device. In general, when a peripheral is
enabled, that pin may not be used as a general purpose I/O pin. Additional
information on I/O ports may be found in the PIC micro™ Mid-Range
Reference Manual, (DS33023).
This will end the mismatch conditions) Clear flag bit RBIF.A
mismatch condition will continue to set flag bit Reading PORTB will end
the mismatch condition and allow flag bit RBIF to be cleared.
The Analog-to-Digital (A/D) Converter module has five inputs for the
28-pin devices and eight for the other devices. The analog input charges a
sample and holds capacitor. The output of the sample and hold capacitor is
the input into the converter. The converter then generates a digital result of
this analog level via successive approximation. The A/D conversion of the
analog input signal results in a corresponding 10-bit digital number. The
A/D module has high and low voltage reference input that is software
selectable to some combination of VDD, VSS, RA2, or RA3.The A/D
converter has a unique feature of being able to operate while the device is in
SLEEP mode. To operate in SLEEP, the A/D clock must be derived from the
A/D’s internal RC oscillator
The port pins can be configured as analog inputs (RA3 can also be the
voltage reference),or as digital I/O. Additional information on using the A/D
module can be found in the PIC micro™ Mid-Range MCU Family
Reference Manual (DS33023).These steps should be followed for doing an
A/D conversion:
• Oscillator Selection
• RESET
- Power-on Reset (POR)
- Power-up Timer (PWRT)
- Oscillator Start-up Timer (OST)
- Brown-out Reset (BOR)
• Interrupts
• Watchdog Timer (WDT)
• SLEEP
• Code Protection
• ID Locations
• In-Circuit Serial Programming
• Low Voltage In-Circuit Serial Programming
• In-Circuit Debugger
PIC16F87X devices have a Watchdog Timer, which can be shut-
off only through configuration bits. It runs off its own RC oscillator for
added reliability. There are two timers that offer necessary delays on power-
up. One is the Oscillator Start-up Timer (OST), intended to keep the chip in
RESET until the crystal oscillator is stable. The other is the Power-up Timer
(PWRT), which provides a fixed delay of 72 ms (nominal) on power-up
only. It is designed to keep the part in RESET while the power supply
stabilizes.
The instruction set is highly orthogonal and is grouped into three basic
categories:
• Byte-oriented operations
• Bit-oriented operations
• Literal and control operations
For byte-oriented instructions, ’f’ represents a file register designator
and’d’ represents a destination designator. The file register designator
specifies which file register is to be used by the instruction.The destination
designator specifies where the result of the operation is to be placed. If’d’ is
zero, the result is placed in the W register. If’d’ is one, the result is placed in
the file register specified in the instruction.
For literal and control operations, ’k’ represents an eight or eleven bit
constant or literal value. All instructions are executed within one single
instruction cycle, unless a conditional test is true or the program counter is
changed as a result of an instruction. In this case, the execution takes two
instruction cycles with the second cycle executed as a NOP. One instruction
cycle consists of four oscillator periods. Thus, for an oscillator frequency of
4 MHz, the normal instruction execution time is 1 μs. If a conditional test is
true, or the program counter is changed as a result of an instruction, the
instruction execution time is 2 μs.