|
例1:用INP(N)语句从16个输入开关得到开关状态,若某个开关按下,则显示该开关的号码(状态值)
并把该开关号输出到对应的输出开关
AUTO
10 CLS
20 START 'G代码启动命令
30 K$="K="
40 FOR K=1 TO 16 '循环检测16个开关
50 A=INP(K) '读取K号输入开关的状态
60 IF A=K THEN GOSUB 100 '若开关状态A=K,说明开关按下,调用100子程序
70 NEXT '循环到20行检测下个输入开关
80 GOTO 40 '16个开关循环检测完,则转移到10行进行下一轮检测
100 OUT (A):PRINT @ 3,15,K$;A; '显示K号输入开关的状态值A,开关号输出到对应的输出开关,请注
'意,冒号不能少,它说明该行是多语句行
110 IF A=INP(K) THEN 110 '若开关号K=状态值A,说明开关按下后,未释放该键,则等待按键释放
120 OUT (-A) '关闭输出开关
130 RET '若按键已释放,则返回(即返回到40行)
140 `END 'G代码结束命令
150 END '程序结束语句
RUN(或按下F10,在按Enter键)
在输入程序时,每输入完一行,按一次回车键(Enter键)确认,输入程序时,若发现某行有输入错误,
可通过光标键(↑→↓←)把光标移到错误字符处修改,修改完,必须按回车键(Enter键)确认,否则修
改无效。
以上程序永远重复检测输入开关,若要退出程序,请先按下Pause键,此时程序暂停,再按下Esc键,
则退出程序。
程序在运行时,可以采用先按下Pause键,再按下Esc键的方法退出程序,退出程序后,若未改动程序,可用输入
CONT 命令在断点处恢复运行。
例2:ON 表达式 GOSUB 行号1,……行号K
从INP(N)语句从1─3号输入开关得到开关状态,
若1号输入开关按下,则显示 1
若2号输入开关按下,则显示 2
若3号输入开关按下,则显示 3
5 TT=500 '500行子程序的入口变量
10 FOR J=1 TO 3 '循环检测1--3号输入开关
20 A=INP(J) '读取J号输入开关的状态,赋值给变量A
30 ON A GOSUB 100,200,300 '当状态A=1或2或3时,分别调用100,200,300子程序
40 NEXT '循环到20行检测下个输入开关
50 GOTO 10 '3个开关循环检测完,则转移到10行进行下一轮检测
100 ? A :GOSUB TT '输入开关1按下时的子程序
110 RET
200 ? A :GOSUB TT '输入开关2按下时的子程序
210 RET
300 ? A :GOSUB TT '输入开关3按下时的子程序
310 RET
500 IF A=INP(J) THEN GOTO TT '500行子程序功能是等待按键释放
510 RETURN
RUN(或按下F10,在按Enter键)
以上程序通过运行后,可以把它存储,例如把它存储为"INP"文件名的文件,文件名的字符长度要小于
15个字母。
SAVE "INP"
下次要使用时,用以下命令调入内存
LOAD "INP"
可以用DEL命令删除它
DEL "INP"
用DIR命令文件名列表
DIR
例3:ON 表达式 GOTO 行号1,行号2,…… 行号n
用INP(N)语句从1─3号输入开关得到开关状态,
若1号输入开关按下,则显示 1
若2号输入开关按下,则显示 2
若3号输入开关按下,则显示 3
5 TT=500 '500行子程序的入口变量TT
10 FOR J=1 TO 3 '循环检测1--3号输入开关
20 A=INP(J) '读取J号输入开关的状态,赋值给变量A
30 ON A GOTO 100,100,100 '当状态A=1或2或3时,分别调用100,200,300子程序
40 NEXT '循环到20行检测下个输入开关
50 GOTO 10 '3个开关循环检测完,则转移到10行进行下一轮检测
100 ? A; : GOSUB TT '输入开关1按下时的子程序
110 GOTO 40
500 IF A=INP(J) THEN GOTO TT '500行子程序的功能是等待按键释放
510 RETURN
RUN(或按下F10,在按Enter键)
例4:用INP(0)语句从1─3号输入开关得到开关状态,
若1号输入开关按下,则显示"1"
若2号输入开关按下,则显示"2"
若3号输入开关按下,则显示"3"
5 TT=500 '500行子程序的入口变量
10 A=INP(0) '读取输入开关的二进制状态位,赋值给变量A
20 IF (A AND 1) =1 THEN B=1:GOTO 100 '当1开关接通时,D0位对应开关1,二进制数=1
30 IF (A AND 2) =2 THEN B=2:GOTO 100 '当2开关接通时,D1位对应开关2,二进制数=2
40 IF (A AND 4) =4 THEN B=3:GOTO 100 '当3开关接通时,D3位对应开关3,二进制数=4
50 GOTO 10 '3个开关循环检测完,则转移到10行进行下一轮检测
100 ? B : GOSUB TT 'TT=500 输入开关按下时的子程序
110 GOTO 10
500 IF INP(0)<>0 THEN GOTO TT '500行子程序的功能是等待按键释放
510 RETURN
RUN(或按下F10,在按Enter键)
|