Professional Documents
Culture Documents
ATmega-Chap6-IO - Interface H
ATmega-Chap6-IO - Interface H
ATmega-Chap6-IO - Interface H
Chapter 6
IO Interface
Input Output
1, 0
Schmitt Trigger
1, 0
Schmitt Trigger
1, 0
Output
• VOLmax (Max Voltage Output Low - 0): 0.9 V
• VOHmin (Min Voltage Output High - 1): 4.2 V
• IOL (Current Output Low - 0): + 20 mA
• IOH (Current Output High - 1): -20 mA
No pull up resistor
CBI DDRB,0
SBI PORTB,0
LOOP: SBIC PINB, 0
RJMP LOOP
(Statement)
PUSHED UNPUSHED
Lê Chí Thông 16
Debouncing Algorithm
Check if SW is pushed:
Method:
Delay through bouncing time
CHANGE
STATE
Nguyễn Trung Hiếu 21
EXAMPLE
DELAY100MS:
LDI R22,4 FOSC = 8MHz 1MC = 0.125 µs
L1: LDI R21,200 T = 100 000 µs = 800 000 MCs
L2: LDI R20,250 = 4.250.200.4
L3: NOP
DEC R20
BRNE L3
DEC R21
BRNE L2
DEC R22
BRNE L1
RET
Nguyễn Trung Hiếu 22
DEBOUNCE IN HARDWARE
PUSHED UNPUSHED
PORT IN
Current flows
when ON
PORT OUT
R 330
R 220
.ORG 0 DELAY1S:
LDI R16,$FF …
OUT DDRC,R16 RET
LDI R16,$00
OUT PORTC,R16
LDI R16,$01
LOOP: OUT PORTC,R16
All LEDs turn off one
CALL DELAY1S
time in a period
ROL R16
RJMP LOOP Can you do better?
Only 1 LED
LOOK UP
Lê Chí Thông 55