Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

How can we keep count of button clicks in verilog? The idea is that everytime on

ID: 2082741 • Letter: H

Question

How can we keep count of button clicks in verilog?

The idea is that everytime one button (btn3) is pressed we need to add a "quarter" to the total for the vending machine.

- so when you press btn3, the number "25" will be displayed on the 7segment display (seg0 and seg1)

- then if button is pressed a 2nd time it we will display "50" on seg0 and seg1

- then if button is pressed a 3rd time it we will display "75" on seg0 and seg1

- if the button is pressed a 4th time we will display "10" on seg0 and seg1

Explanation / Answer

Solution:

Verilog Code: (count of button Press)

int number1 =25;

int number2=50;

int number3=75;

int number4=10;

int button1=2;

int button2=3;

int button3=4;

int button4=5;

int button1state=0;

int button2state=0;

int button3state=0;

int button4state=0;

int segment0=0;

int segment1=0;

void setup()

{

                pinmode(button1,input);

                pinmode(button2,input);

                pinmode(button3,input);

pinmode(button4,input);

}

void loop()

{

button1state = digitalread(button1);

if(button1state == high && segment0<=350)

{

                segment0=segment0+1;

                digitalwire(number1,segment0);

                delay(350);

}

button2state = digitalread(button2);

if(button2state == high && segment0<=350 && segment1<=350)

{

                segment0=segment0+1;

                segment1=segment1+1;

                digitalwire(number2,segment0,segment1);

                delay(350);

}

button3state = digitalread(button3);

if(button3state = =high && segment0<=350 && segment1<=350)

{

                segment0=segment0+1;

                segment1=segment1+1;

                digitalwire(number3,segment0,segment1);

                delay(350);

}

button4state = digitalread(button4);

if(button4state = =high && segment0<=350 && segment1<=350)

{

                segment0=segment0+1;

                segment1=segment1+1;

                digitalwire(number4,segment0,segment1);

                delay(350);

}

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote