// Counter up and down counter
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
void setup(){
lcd.begin(16,2);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, INPUT_PULLUP);
lcd.setCursor(4,0);
lcd.print("COUNTER");
lcd.setCursor(4,1);
lcd.print("-------");
delay(2000);
}
void loop(){
lcd.clear();
lcd.setCursor(0,0);
int i,b;
int s=digitalRead(6);
if(s==1){
for(i=0;i<16;i++)
{
lcd.clear();
lcd.setCursor(0,1);
lcd.print(i);
digitalWrite(2,(1<<0)&i);
digitalWrite(3,(1<<1)&i);
digitalWrite(4,(1<<2)&i);
digitalWrite(5,(1<<3)&i);
lcd.setCursor(0,0);
lcd.print("UP-Counter");
lcd.setCursor(4,1);
lcd.print(digitalRead(5));
lcd.print(digitalRead(4));
lcd.print(digitalRead(3));
lcd.print(digitalRead(2));
delay(1000);
int s=digitalRead(6);
if(s==0)
{
while(i>=0){
lcd.clear();
lcd.setCursor(0,1);
lcd.print(i);
digitalWrite(2,(1<<0)&i);
digitalWrite(3,(1<<1)&i);
digitalWrite(4,(1<<2)&i);
digitalWrite(5,(1<<3)&i);
lcd.setCursor(0,0);
lcd.print("Down-Counter");
lcd.setCursor(4,1);
lcd.print(digitalRead(5));
lcd.print(digitalRead(4));
lcd.print(digitalRead(3));
lcd.print(digitalRead(2));
delay(1000);
i--;
}
}}}}