40
Pushbuttons

03e Digital Inputs - Push Buttons and 4x4 Keypad

Embed Size (px)

Citation preview

Page 1: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Pushbuttons

Page 2: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Pushbuttons in Real Life

� Computer

� Mouse

� Calculator

� Microwave oven

� Handheld remote

� Handheld games

� VCR

Page 3: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Testing a Pushbutton with an

LED Circuit

Page 4: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Pushbutton Test Circuit

Page 5: 03e Digital Inputs - Push Buttons and 4x4 Keypad

A Short-Circuit

Page 6: 03e Digital Inputs - Push Buttons and 4x4 Keypad

The 4x4 Keypad

Page 7: 03e Digital Inputs - Push Buttons and 4x4 Keypad

The 4×4 Keypad Block

C2R1

R303

10k

SW9

SW2

SW12

C0

SW3

SW11SW10

SW7

R2

R2

C3

3.KEYPAD 4*4

SW8

C1

J301

2 4 6 8 10

12

14

16

1 3 5 7 9 11

13

15

R1

SW6

SW11 3

2 4

C0

SW14

R301

10k

R0

SW16

SW4

R0

SW13

C2

C1

R304

10k

R302

10k

VCC

R3

SW5

SW15

C3

R3

Page 8: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Testing the 4×4 Keypad

� Try to connect the Keypad jumpers R0-R3 to

the LED array to make sure that there is a

current goes through them

Page 9: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Example:

Reading a Pushbutton

Page 10: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Problem Description

� Develop a program to check the pushbutton

(R0, C0). If it is pressed, light up a LED. Turn

off the LED if the button is released

Page 11: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Schem

atic

C1

SW

3

C101

20pF

D207

SW

15

R3

D203

J301

246810121416

13579111315

VC

C

R1

D205

D206

R301

10k

R304

10k

R203

330

SW

2

SW

5

C3

D204

R0

SW

9

SW

14

R205

330

R208

330

C102

20pF

R302

10k

PIC16F877A

MCLR/VPP

RA0/AN0

RA1/AN1

RA2/AN2/VREF-/CVREF

RA3/AN3/VREF+

RA4/T0CKI/C1OUT

RA5/AN4/SS/C2OUT

RE0/RD/AN5

RE1/WR/AN6

RE2/CS/AN7

VDD

VSS

OSC1/CLKI

OSC2/CLKO

RC0/T1OSO/T1CKI

RC1/T1OSI/CCP2

RC2/CCP1

RC3/SCK/SCL

RD0/PSP0

RD1/PSP1

RD2/PSP2

RD3/PSP3

RC4/SDI/SDA

RC5/SDO

RC6/TX/CK

RC7/RX/DT

RD4/PSP4

RD5/PSP5

RD6/PSP6

RD7/PSP7

VSS

VDD

RB0/INT

RB1

RB2

RB3/PGM

RB4

RB5

RB6/PGC

RB7/PGD

U101

1

234567

8910

11

12

1314

15161718

19202122

23242526

27282930

31

32

3334353637383940

C0

1.PIC BLOCK

SW

8

R201

330

2.LED BLOCK

R101

100

R207

330

D202

C2

SW

11

3

24

R2

C2

SW

6

SW

11

SW

4

SW

7

C1

SW

16

D201J201

910111213141516

12345678

R1

C3

SW

10

VC

C

R3

SW

12

C0

D208

R2

R303

10k

SW

13

R204

330

SW

7

3.KEYPAD 4*4

R202

330

R0

R206

330

Y101

4M

Page 12: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Cable Wiring

B0B1

C0

R0

GND

Page 13: 03e Digital Inputs - Push Buttons and 4x4 Keypad
Page 14: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Example: Two Pushbuttons

Controlling Two LEDs

Page 15: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Problem Description

� Develop a program to make 2 pushbuttons

controlling two different LEDs. For example,

� If button (R0, C0) is pressed, light up LED0. When (R0, C0) is released, turn off LED0

� If button (R1, C0) is pressed, light up LED1. When (R1, C0) is released, turn off LED1

Page 16: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Cable Wiring

B0-B1

A1-A2

C0

R0-R1

GND

L0-L1

Page 17: 03e Digital Inputs - Push Buttons and 4x4 Keypad
Page 18: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Interesting Exercise

� Try to press the two buttons at once. What do

you see?

� Modify the program so that if both buttons are

pressed, both LEDs are to be on

� Present your solution to the class

� Can your program handle well the following situation: The first button is pressed, this button is still kept pressed, then the second button is

pressed

Page 19: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Solution

Page 20: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Example:

Displaying Key Code

Page 21: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Problem Description

� Develop a program to display the key code

to the LED array when a button is pressed

Page 22: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Electro

nic S

chem

a

R205

330

R2

SW

6

R2

C3

D204

R206

330

C0

SW

14

SW

4

R0

R201

330

J301

246810121416

13579111315

SW

11

SW

16

3.KEYPAD 4*4

R3

D208

D202

SW

11

3

24

VC

C

SW

7

Y101

4M

VC

C

C1

R101

100

SW

8

J201

910111213141516

12345678

R1

SW

13

SW

10

C3

PIC16F877A

MCLR/VPP

RA0/AN0

RA1/AN1

RA2/AN2/VREF-/CVREF

RA3/AN3/VREF+

RA4/T0CKI/C1OUT

RA5/AN4/SS/C2OUT

RE0/RD/AN5

RE1/WR/AN6

RE2/CS/AN7

VDD

VSS

OSC1/CLKI

OSC2/CLKO

RC0/T1OSO/T1CKI

RC1/T1OSI/CCP2

RC2/CCP1

RC3/SCK/SCL

RD0/PSP0

RD1/PSP1

RD2/PSP2

RD3/PSP3

RC4/SDI/SDA

RC5/SDO

RC6/TX/CK

RC7/RX/DT

RD4/PSP4

RD5/PSP5

RD6/PSP6

RD7/PSP7

VSS

VDD

RB0/INT

RB1

RB2

RB3/PGM

RB4

RB5

RB6/PGC

RB7/PGD

U101

1

234567

8910

11

12

1314

15161718

19202122

23242526

27282930

31

32

3334353637383940

C102

20pF

R0

R208

330

D203

C2

R304

10k

SW

3

R203

330

C2

SW

7

1.PIC BLOCK

D205

C1

R1

R204

330

SW

12

C101

20pF

SW

15

SW

5

R207

330

D207

D201

D206

R3

R303

10k

SW

2

2.LED BLOCK

R202

330

R301

10kS

W9

R302

10k

C0

Page 23: 03e Digital Inputs - Push Buttons and 4x4 Keypad
Page 24: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Exercise

� Observe the LEDs while running the program

Page 25: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Exercise

� Develop a program to control the blink of

eight LEDs. The blinking pattern can be

changed with 4 pushbuttons

� Pattern 0:

� Pattern 1:

� Pattern 2:

� Pattern 3:

Page 26: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Example: Displaying Key

Pressed on LCD

Page 27: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Problem Description� Develop a program to echo a 4x4 keypad

entry to the LCD display. All keys are echoed

except * that will clear the display

Page 28: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Electro

nic S

chem

a

C2

Y101

4M

R1

R303

10k

SW

9

SW

2

SW

12

C0

SW

3

SW

11

VSS

VDD

V0

RS

R/W

EAK

B0

B1

B2

B3

B4

B5

B6

B7 U

1

LC

D

1 2

3456

78910

11

12

13

14

15

16

SW

10

SW

7

R2

R2

C101

20pF

1.PIC BLOCK

C3

R1

RE

SIS

TO

R V

AR

R101

100

3.KEYPAD 4*4

VC

C

SW

7

SW

8

C1

J301

246810121416

13579111315

R1

VC

C

SW

6

SW

11

3

24

C0

SW

14

R301

10k

C102

20pF

R0

SW

16

SW

4

R0

SW

13

C2

C1

R304

10k

R302

10k

VC

C

PIC16F877A

MCLR/VPP

RA0/AN0

RA1/AN1

RA2/AN2/VREF-/CVREF

RA3/AN3/VREF+

RA4/T0CKI/C1OUT

RA5/AN4/SS/C2OUT

RE0/RD/AN5

RE1/WR/AN6

RE2/CS/AN7

VDD

VSS

OSC1/CLKI

OSC2/CLKO

RC0/T1OSO/T1CKI

RC1/T1OSI/CCP2

RC2/CCP1

RC3/SCK/SCL

RD0/PSP0

RD1/PSP1

RD2/PSP2

RD3/PSP3

RC4/SDI/SDA

RC5/SDO

RC6/TX/CK

RC7/RX/DT

RD4/PSP4

RD5/PSP5

RD6/PSP6

RD7/PSP7

VSS

VDD

RB0/INT

RB1

RB2

RB3/PGM

RB4

RB5

RB6/PGC

RB7/PGD

U101

1

234567

8910

11

12

1314

15161718

19202122

23242526

27282930

31

32

3334353637383940

R3

SW

5

SW

15

C3

R3

Page 29: 03e Digital Inputs - Push Buttons and 4x4 Keypad
Page 30: 03e Digital Inputs - Push Buttons and 4x4 Keypad
Page 31: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Example: Displaying Numeric

Key on 7-Segment LED

Page 32: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Problem Description

� Develop a program to echo digit-key presses

(0 to 9) of a 4x4 keypad to the 7-segment

LED

Page 33: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Electronic Schema

C102

20pF

A

U605

A B C D E F G H

VC

C

VC

C

R0

R601100

C0

Q602A1015

31

2R614

1k

R302

10k

D

R101

100

R612

1k

SW7

Q605 A1015

31

2

R608100

SW7

SW2

Q604 A1015

31

2

J301

2 4 6 8 10

12

14

16

1 3 5 7 9 11

13

15

E

SW4SW11 3

2 4

R1

SW3

C2

H

R1

R602100

SW6

R301

10k

R607100

C2

R0

C0

SW10

R6091k

VCC

U604

A B C D E F G H

VC

C

VC

C

SW8

C3

C1

SW9

PIC16F877A

MCLR/VPP

RA0/AN0

RA1/AN1

RA2/AN2/VREF-/CVREF

RA3/AN3/VREF+

RA4/T0CKI/C1OUT

RA5/AN4/SS/C2OUT

RE0/RD/AN5

RE1/WR/AN6

RE2/CS/AN7

VDD

VSS

OSC1/CLKI

OSC2/CLKO

RC0/T1OSO/T1CKI

RC1/T1OSI/CCP2

RC2/CCP1

RC3/SCK/SCL

RD0/PSP0

RD1/PSP1

RD2/PSP2

RD3/PSP3

RC4/SDI/SDA

RC5/SDO

RC6/TX/CK

RC7/RX/DT

RD4/PSP4

RD5/PSP5

RD6/PSP6

RD7/PSP7

VSS

VDD

RB0/INT

RB1

RB2

RB3/PGM

RB4

RB5

RB6/PGC

RB7/PGD

U101

1

234567

89

10

11

12

1314

15161718

19202122

23242526

27282930

31

32

3334353637383940

C5

SW11

R6131k

SW14

C3

SW12

C3

6.LED 7_SEGMENT BLOCK

R603100

R3

R6111k

U606

A B C D E F G H

VC

C

VC

C

J602

HEADER 8X2

2 4 6 8 10

12

14

16

1 3 5 7 9 11

13

15

C101

20pF

U601

A B C D E F G H

VC

C

VC

C

3.KEYPAD 4*4

R605100

G

R3

R606100

Q601A1015

31

2

VCC

R2

C4

U603

A B C D E F G H

VC

C

VC

C

U602

A B C D E F G H

VC

C

VC

C

F

SW16

R604100

SW5

C1

R610

1k

1.PIC BLOCK

SW13

R2 C0

C

VCC

C1

VCC

C2

SW15

B

J601

HEADER 6X22 4 6 8 10

12

1 3 5 7 9 11

Y101

4M

Q606

A1015

31

2Q603

A1015

31

2

R304

10k

R303

10k

Page 34: 03e Digital Inputs - Push Buttons and 4x4 Keypad
Page 35: 03e Digital Inputs - Push Buttons and 4x4 Keypad
Page 36: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Switch Bounce

Page 37: 03e Digital Inputs - Push Buttons and 4x4 Keypad

Switch Bounce� When a pushbutton is pressed or released it is not usually a simple on-off

contact

� The contact usually bounces on and off a number of times before settling down

Page 38: 03e Digital Inputs - Push Buttons and 4x4 Keypad

How Long does It Take?

� How long this takes depends on the

construction of the switch, but 10

milliseconds is usually long enough unless

the switch is really poor

� We must also be concerned with bounce on

release

Page 39: 03e Digital Inputs - Push Buttons and 4x4 Keypad
Page 40: 03e Digital Inputs - Push Buttons and 4x4 Keypad

References

� What's a Microcontroller Student Guide v 2.2.

Parallax 2004

� PICC\Examples\EX_LCDKB.c

� PIC Circuits Gallery LED flasher.

http://www.interq.or.jp/japan/se-

inoue/e_pic6_1.htm

� Counting Presses of a Button.

http://www.piclist.com/techref/piclist/cheapic/s

wcnt.htm