ATmega88 Atmel Corporation, ATmega88 Datasheet - Page 13
![no-image](/images/manufacturer_photos/0/0/79/atmel_corporation_sml.jpg)
ATmega88
Manufacturer Part Number
ATmega88
Description
Manufacturer
Atmel Corporation
Specifications of ATmega88
Flash (kbytes)
8 Kbytes
Pin Count
32
Max. Operating Frequency
20 MHz
Cpu
8-bit AVR
# Of Touch Channels
12
Hardware Qtouch Acquisition
No
Max I/o Pins
23
Ext Interrupts
24
Usb Speed
No
Usb Interface
No
Spi
2
Twi (i2c)
1
Uart
1
Graphic Lcd
No
Video Decoder
No
Camera Interface
No
Adc Channels
8
Adc Resolution (bits)
10
Adc Speed (ksps)
15
Analog Comparators
1
Resistive Touch Screen
No
Temp. Sensor
No
Crypto Engine
No
Sram (kbytes)
1
Eeprom (bytes)
512
Self Program Memory
YES
Dram Memory
No
Nand Interface
No
Picopower
No
Temp. Range (deg C)
-40 to 85
I/o Supply Class
1.8 to 5.5
Operating Voltage (vcc)
1.8 to 5.5
Fpu
No
Mpu / Mmu
no / no
Timers
3
Output Compare Channels
6
Input Capture Channels
1
Pwm Channels
6
32khz Rtc
Yes
Calibrated Rc Oscillator
Yes
Available stocks
Company
Part Number
Manufacturer
Quantity
Price
Part Number:
ATmega88-15AT
Manufacturer:
ATMEL/爱特梅尔
Quantity:
20 000
Company:
Part Number:
ATmega88-15AT1
Manufacturer:
ATMEL
Quantity:
1 000
Part Number:
ATmega88-15AT1
Manufacturer:
ATMEL/爱特梅尔
Quantity:
20 000
Company:
Part Number:
ATmega88-15ATI
Manufacturer:
ATMEL
Quantity:
5 510
Company:
Part Number:
ATmega88-15ATI
Manufacturer:
LT
Quantity:
5 510
Company:
Part Number:
ATmega88-15AZ
Manufacturer:
ATMEL
Quantity:
2 000
Company:
Part Number:
ATmega88-15AZ
Manufacturer:
ATMEL
Quantity:
120
Part Number:
ATmega88-15AZ
Manufacturer:
ATMEL/爱特梅尔
Quantity:
20 000
Part Number:
ATmega88-20AU
Manufacturer:
ATMEL/爱特梅尔
Quantity:
20 000
8. Instruction set summary
2545TS–AVR–05/11
ARITHMETIC AND LOGIC INSTRUCTIONS
ADD
ADC
ADIW
SUB
SUBI
SBC
SBCI
SBIW
AND
ANDI
OR
ORI
EOR
COM
NEG
SBR
CBR
INC
DEC
TST
CLR
SER
MUL
MULS
MULSU
FMUL
FMULS
FMULSU
BRANCH INSTRUCTIONS
RJMP
IJMP
JMP
RCALL
ICALL
CALL
RET
RETI
CPSE
CP
CPC
CPI
SBRC
SBRS
SBIC
SBIS
BRBS
BRBC
BREQ
BRNE
BRCS
BRCC
BRSH
BRLO
BRMI
BRPL
BRGE
BRLT
BRHS
BRHC
BRTS
BRTC
BRVS
BRVC
Mnemonics
(1)
(1)
Rd, Rr
Rd, Rr
Rdl,K
Rd, Rr
Rd, K
Rd, Rr
Rd, K
Rdl,K
Rd, Rr
Rd, K
Rd, Rr
Rd, K
Rd, Rr
Rd
Rd
Rd,K
Rd,K
Rd
Rd
Rd
Rd
Rd
Rd, Rr
Rd, Rr
Rd, Rr
Rd, Rr
Rd, Rr
Rd, Rr
k
k
k
k
Rd,Rr
Rd,Rr
Rd,Rr
Rd,K
Rr, b
Rr, b
P, b
P, b
s, k
s, k
k
k
k
k
k
k
k
k
k
k
k
k
k
k
k
k
Operands
Add two registers
Add with carry two registers
Add immediate to word
Subtract two registers
Subtract constant from register
Subtract with carry two registers
Subtract with carry constant from reg.
Subtract immediate from Word
Logical AND registers
Logical AND register and constant
Logical OR registers
Logical OR register and constant
Exclusive OR registers
One’s complement
Two’s complement
Set bit(s) in register
Clear bit(s) in register
Increment
Decrement
Test for zero or minus
Clear register
Set register
Multiply unsigned
Multiply signed
Multiply signed with unsigned
Fractional multiply unsigned
Fractional multiply signed
Fractional multiply signed with unsigned
Relative jump
Indirect jump to (Z)
Direct jump
Relative subroutine call
Indirect call to (Z)
Direct subroutine call
Subroutine return
Interrupt return
Compare, skip if equal
Compare
Compare with carry
Compare register with immediate
Skip if bit in register cleared
Skip if bit in register is set
Skip if bit in I/O register cleared
Skip if bit in I/O register is set
Branch if status flag set
Branch if status flag cleared
Branch if equal
Branch if not equal
Branch if carry set
Branch if carry cleared
Branch if same or higher
Branch if lower
Branch if minus
Branch if plus
Branch if greater or equal, signed
Branch if less than zero, signed
Branch if half carry flag set
Branch if half carry flag cleared
Branch if T flag set
Branch if T flag cleared
Branch if overflow flag is set
Branch if overflow flag is cleared
Description
Rd ← Rd + Rr
Rd ← Rd + Rr + C
Rdh:Rdl ← Rdh:Rdl + K
Rd ← Rd - Rr
Rd ← Rd - K
Rd ← Rd - Rr - C
Rd ← Rd - K - C
Rdh:Rdl ← Rdh:Rdl - K
Rd ← Rd • Rr
Rd ← Rd • K
Rd ← Rd v Rr
Rd ← Rd v K
Rd ← Rd ⊕ Rr
Rd ← 0xFF − Rd
Rd ← 0x00 − Rd
Rd ← Rd v K
Rd ← Rd • (0xFF - K)
Rd ← Rd + 1
Rd ← Rd − 1
Rd ← Rd • Rd
Rd ← Rd ⊕ Rd
Rd ← 0xFF
R1:R0 ← Rd x Rr
R1:R0 ← Rd x Rr
R1:R0 ← Rd x Rr
R1:R0 ← (Rd x Rr)
R1:R0 ← (Rd x Rr)
R1:R0 ← (Rd x Rr)
PC ← PC + k + 1
PC ← Z
PC ← k
PC ← PC + k + 1
PC ← Z
PC ← k
PC ← STACK
PC ← STACK
if (Rd = Rr) PC ← PC + 2 or 3
Rd − Rr
Rd − Rr − C
Rd − K
if (Rr(b)=0) PC ← PC + 2 or 3
if (Rr(b)=1) PC ← PC + 2 or 3
if (P(b)=0) PC ← PC + 2 or 3
if (P(b)=1) PC ← PC + 2 or 3
if (SREG(s) = 1) then PC←PC+k + 1
if (SREG(s) = 0) then PC←PC+k + 1
if (Z = 1) then PC ← PC + k + 1
if (Z = 0) then PC ← PC + k + 1
if (C = 1) then PC ← PC + k + 1
if (C = 0) then PC ← PC + k + 1
if (C = 0) then PC ← PC + k + 1
if (C = 1) then PC ← PC + k + 1
if (N = 1) then PC ← PC + k + 1
if (N = 0) then PC ← PC + k + 1
if (N ⊕ V= 0) then PC ← PC + k + 1
if (N ⊕ V= 1) then PC ← PC + k + 1
if (H = 1) then PC ← PC + k + 1
if (H = 0) then PC ← PC + k + 1
if (T = 1) then PC ← PC + k + 1
if (T = 0) then PC ← PC + k + 1
if (V = 1) then PC ← PC + k + 1
if (V = 0) then PC ← PC + k + 1
Operation
<< 1
<< 1
<< 1
ATmega48/88/168
Z, C, N, V, H
Z, C, N, V, H
Z, C, N, V, S
Z, C, N, V, H
Z, C, N, V, H
Z, C, N, V, H
Z, C, N, V, H
Z, C, N, V, S
Z, N, V
Z, N, V
Z, N, V
Z, N, V
Z, N, V
Z, C, N, V
Z, C, N, V, H
Z, N, V
Z, N, V
Z, N, V
Z, N, V
Z, N, V
Z, N, V
None
Z, C
Z, C
Z, C
Z, C
Z, C
Z, C
None
None
None
None
None
None
None
I
None
Z, N, V, C, H
Z, N, V, C, H
Z, N, V, C, H
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
Flags
#Clocks
1/2/3
1/2/3
1/2/3
1/2/3
1/2/3
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
3
3
3
4
4
4
1
1
1
13