8) Lines 82 and 83 of the program limit the Timer0 value
between 0 and 74 and make the “pointer” variable equal to
whatever value Timer0 is at that point. The pointer plus 1
will be our BINGO number.
Verify 44 YES
Verify 01 NO
IF TMR0 => 75 THEN TMR0 = 0
pointer = TMR0
9) The next actions of the program depend solely on which
buttons are pushed.
A) If the Pick button is pushed, the value of the pointer is
used to reference that location of the BINGO array. If the
value of that variable is 0, that means the number has
already been used and the program loops back to step 7
discussed previously. If the value is 1, that means the
number has not been picked and the program displays the
number on the LCD with the correct BINGO letter in front
of it (Lines 93 through 99 of the program). The program
then goes back to the Pick location (Line 81).
The use of the unit is really quite simple. The caller pushes the Pick button every time he needs to call a new number.
When someone yells out BINGO, the caller first pushes the
Reset Verify Number button and then can increase that
number by either 1 or 10. A YES verifies the number; a NO
means that number has not been picked, so the caller can go
back to Picking numbers until the next BINGO is called. Since
the Verify number cannot be decreased, a bit of manipulation
is required to go back to a lower number than the one last
verified. A Verify Number reset is required; increments of 1 or
10 to get to the next number will enable the verification.
B) If the Reset Verify pushbutton is selected, the verify
number is reset to 0 and the BINGO number displayed is
01. In addition, the program checks this array
location and displays a YES if the location
contains 0 or a NO if the location contains 1
(Lines 120 through 131). After this, the program
goes back to the Pick location (Line 81).
The final requirement to play BINGO is having the
proper playing cards for the game. I found a solution for this
by using a Microsoft Excel spreadsheet. Figure 4 is a graphical representation of this. (The actual Excel spreadsheet is
included with the files on the Nuts & Volts website.) As you
can see, there are six cards on the spreadsheet which may
C) If the Increase Verify by 1 button is pushed,
the verify number is increased by 1 and this
number plus 1 is displayed as the verified BINGO
number. Now the program jumps back to the YES
and NO checking routine and then returns to the
Pick location (Line 81).
Qty Item Description Part #
❑ 1 U1 16F870 PIC 579-PIC16F870-I/SP
❑ 1 U2 LM78L05 5V regulator 512-LM78L05ACZX
❑ 1 U3 20 char x 2 line LCD display LCD1022 (B.G. Micro;
❑ 1 Red LED 10 mA 606-4304H1
D) If Increase Verify by 10 button is pushed, the
verify number is increased by 10 and this number
plus 1 is displayed as the verified BINGO number.
Again, the program jumps back to the YES and
NO checking routine and returns to Line 81.
28 pin DIP socket (for PIC)
Double sided Cu board
SPST toggle switch
When the Bingo unit is first turned on, the
display appears as follows:
❑ 5 R1-R5
❑ 1 R6
❑ 1 R7
33K ohm resistor (pkg of 10) 299-33K-RC
5.6K ohm resistor (pkg of 10) 299-5.6K-RC
1M ohm resistor (pkg of 10) 299-1M-RC
10 Turn Trimpot
❑ 1 Tp1 25K (for LCD contrast adj.)
When the first number is picked, the display
❑ 1 C1
❑ 2 C2-C3
❑ 1 C4
22 pF ceramic (for oscillator)
10 μF electrolytic
1 μF electrolytic
Ferric chloride etchant
When one of the Verify buttons is pushed, the
display appears as one of the following options:
All part numbers listed are from Mouser Electronics ( www.mouser.com)
with the exception of U3.
October 2007 55