button
button control leds
hardware
- STC89C52RC
code
/************************
button
press K1 2x red LED ON
press K2 2x green LED ON
press K3 2x yellow LED ON
press K4 2x blue LED ON
*************************/
#include <reg52.h>
sbit led1 = P1^0; // RED
sbit led2 = P1^1; // RED
sbit led3 = P1^2; // GREEN
sbit led4 = P1^3; // GREEN
sbit led5 = P1^4; // YELLOW
sbit led6 = P1^5; // YELLOW
sbit led7 = P1^6; // BLUE
sbit led8 = P1^7; // BLUE
sbit k1 = P3^4;
sbit k2 = P3^5;
sbit k3 = P3^6;
sbit k4 = P3^7;
void main()
{
P1 = 0xff; // turn off all LED
while(1)
{
led1 = k1;
led2 = k1;
led3 = k2;
led4 = k2;
led5 = k3;
led6 = k3;
led7 = k4;
led8 = k4;
}
}
/************************
button
press K1 and release led1 change status
*************************/
#include <reg52.h>
sbit led1 = P1^0; // RED
sbit k1 = P3^4;
void delay(unsigned int xms)
{
unsigned int i,j;
for (i = xms; i > 0; i--)
for(j = 112; j < 0; j--);
}
void main()
{
P1 = 0xff; // 1111 1111 // turn off all leds
while(1)
{
delay(10); // delay 10ms debounce
if (k1 == 0) // if button was pressed
{
while (k1 == 0); // until release
led1 = ~led1; // reserse led status
}
}
}