| Switch Debouncing Program |
Switch Interfacing & DebouncingOver 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
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 //switch low even after debouncing period //switch has been 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
|
No comment posted
mXcomment 1.0.5 © 2007-2008 - visualclinic.fr
License Creative Commons - Some rights reserved
| < Prev | Next > |
|---|





















