Product categories

Have You Seen

B0505S-1WR3 MORNSUN Isolated DC - DC Converter

B0505S-1WR3 MORNSUN Isolated DC - DC Converter

Mornsun B0505S-1WR3 DC-DC Isolated ConverterMORNSUN B0505S 1WR3 1 watt, 5 Volts Isolated DC to DC Po..

Rs.106.20 (inc GST)
Rs.90.00 + GST

SKU: 2969 | DAE663
Stock: 100
XL1509-Adj E1 Buck DC to DC Converter IC (SOP8L Package)

XL1509-Adj E1 Buck DC to DC Converter IC (SOP8L Package)

XL1509-Adj E1 Buck DC to DC Converter IC (SOP8L Package)XL1509-Adj E1 Buck DC to DC Converter IC, Ad..

Rs.25.96 (inc GST)
Rs.22.00 + GST

SKU: 3657 | DAF397
Stock: 79

Switch Debouncing Program



Switch Interfacing & Debouncing

Over here we consider ONE Switch & TWO LED connected to a microcontroller. Please check the SWITCH INTERFACING and the LED INTERFACING article to see how to connect Switches & LED’s to a microcontroller.

Here is a program that will TURN ON A LED1 if a switch is debounced properly & will TOGGLE LED2 if there is some error in switch debouncing. LED1 will be ON until the switch is pressed & will turn OFF as soon as it’s released. We have taken the debounce period as 20ms. So once a LOW signal has been received from the switch the controller will again check the switch status after 20ms & if at that time the switch is high LED2 will be toggled and if the switch is LOW LED1 will be turned ON.

 

led1

bit P2.0

led2

bit P2.1

switch1

bit P1.0

ORG 0000h

setb switch1

//initialize switch 1 as input

setb led1

//Turn OFF LED1

setb led2

//Turn OFF LED2

wait:

jb switch1,wait

// Wait till switch1 has been pressed

call debounce_delay

jb switch1,c1_wait

//After debouncing period, switch is low hence switch succesfully debounced

clr led1

//Turn ON LED1

jnb switch1,$

//wait till switch has been released

setb led1

//Turn OFF LED1

ajmp wait

 

c1_wait:

//Switch PIN high after debounce period so error in debouncing

cpl led2

ajmp wait

 

debounce_delay:

//Subroutine for generating 20ms delay

mov r7,#245

l1_debounce_delay:

mov r6,#40

djnz r6,$

djnz r7,l1_debounce_delay

ret

END

Written by Administrator

Administrator

Administrator