⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex06 - las vegas.bs2

📁 这是proteus得一些经典例子 供大家学习参考
💻 BS2
字号:
' {$STAMP BS2}
' ==============================================================================
'
' File...... Ex06 - Las Vegas.BS2
' Purpose... Stamp Game
' Author.... Parallax
' E-mail.... stamptech@parallaxinc.com
' Started...
' Updated... 01 MAY 2002
'
'
' ==============================================================================
' ------------------------------------------------------------------------------
' Program Description
' ------------------------------------------------------------------------------
' Stamp-based slot machine game that uses lights and sound.
' ------------------------------------------------------------------------------
' I/O Definitions
' ------------------------------------------------------------------------------
LEDs VAR OutL ' LED outputs
Speaker CON 6 ' speaker output
PlayBtn CON 7 ' button input to play game
' ------------------------------------------------------------------------------
' Variables
' ------------------------------------------------------------------------------
randW VAR Word ' random number
pattern VAR Byte ' light pattern
tone VAR Word ' tone output
swData VAR Byte ' workspace variable for BUTTON
delay VAR Word ' delay while "spinning"
spin1 VAR Byte ' loop counter
spin2 VAR Byte ' loop counter
' ------------------------------------------------------------------------------
' Initialization
' ------------------------------------------------------------------------------
Initialize:
DirL = %00111111 ' make LEDs outputs
' ------------------------------------------------------------------------------
' Program Code
' ------------------------------------------------------------------------------
Main:
GOSUB Get_Random ' get a random number and tone
FREQOUT Speaker,35,tone ' sound the tone
PAUSE 100
BUTTON PlayBtn, 0, 255, 10, swData, 1, Spin ' check for play
GOTO Main
Spin:
LEDs = %00111111 ' simulate machine reset
PAUSE 750
LEDs = %00000000
PAUSE 500
delay = 75 ' initialize delay
FOR spin1 = 1 TO 25 ' spin the wheel
GOSUB Get_Random ' get random number
FREQOUT Speaker, 25, 425 ' wheel click
PAUSE delay ' pause between clicks
delay = delay */ $0119 ' multiply delay by 1.1
NEXT
IF pattern = %00111111 THEN You_Win ' if all lit, you win
FREQOUT Speaker, 1000, 150 ' otherwise, groan...
LEDs = %00000000 ' clear LEDs
PAUSE 1000
GOTO Main ' do it again
You_Win: ' winning lights/sound display
FOR spin1 = 1 TO 5
FOR spin2 = 0 TO 3
LOOKUP spin2, [$00, $0C, $12, $21], LEDs
LOOKUP spin2, [665, 795, 995, 1320], tone
FREQOUT Speaker, 35, tone
PAUSE 65
NEXT
NEXT
LEDs = %00000000 ' clear LEDs
PAUSE 1000
GOTO Main ' do it again
END
' ------------------------------------------------------------------------------
' Subroutines
' ------------------------------------------------------------------------------
Get_Random:
RANDOM randW ' get pseudo-random number
tone = randW & $7FF ' don't let tone go too high
pattern = randW & %00111111 ' mask out unused bits
LEDs = pattern ' show the pattern
RETURN

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -