用CEC—I中华学习机作定时器时间测定

🏠 首页 《无线电》杂志 1993年 🔗 第4期 🔗 第27页 分类:无线电技术自学经验交流 🔗 孟艾平 🔗

电子爱好者在制作定时器等一类作品时,调整定时时间是一件非常麻烦的事,尤其对比较长的定时时间,调整时精神需高度集中,并且不能离开。本文介绍的程序,充分利用了CEC—Ⅰ的游戏插口,对计算机不进行任何改动即可构成简单实用、经济方便的“定时器时间测定”系统。它可以在屏幕上直观地显示出所测定的时间。

一、原理

在CEC—Ⅰ中华学习机上,设有一只游戏插口,它提供有三个开关量(SW0、SW1、SW2)、四个模拟量(PDL0、PDL1、PDL2、PDL3)共七个输入端口(见图1)。我们可利用三个开关量中的任意一个(本程序为SW1)进行数据采集,通过PEEK(-16287+n)或PEEK(49249+n)读出(n为开关编号,0~2)。

图1
图1 🔍原图 (374×392)

游戏插口(九针)的具体接线办法见图2。图2中右边的继电器为定时电路的执行部分。当继电器吸合时,SW1为高电平,此时通过S=PEEK(—16286)完成对SW1地址访问,S的值应大于128;若继电器释放,则SW1为低电平,S值小于128。这样通过程序对PEEK(-16286)的访问,并经过计时、判断、显示等过程,便可在屏幕上读出定时器的定时时间。

图2
图2 🔍原图 (578×408)

二、程序(清单见后)

10句 时间系数

30句 进入中文

40~90句 屏幕显示

100~110句 判断。若继电器释放则转去执行320句

200~230句 继电器吸合时间计数、显示

240句 访问SW1

300~470句 与100~270句类同,区别仅是判断继电器释放时间计数、显示

三、使用说明

将九针插头焊好引线并插入计算机游戏插口,打开计算机电源开关。键入程序,确认无误(为今后使用方便可把程序存入磁盘),即可运行程序,这时就可以进行时间测定了。

使用中如果发现计时时间不准确(计算机每分钟“嘟”叫一声),可通过改变10句X或Y的值(X的值影响开启计时时间;Y值影响关闭计时时间)进行调整,X(Y)值越大,软件的计时时间越慢,反之越快。

本文介绍的方法,可对定时器、延时器、循环定时器等装置进行时间测定。但由于计算机及所用BASIC语言的限制,软件中的计时时间存在一定的误差(尤其是秒位),使用中应给予注意,但做为一般情况下的时间测定,还是有一定实用价值的。如对程序进行修改后,还可做到当停止测定时,计算机将本次的所有测定结果显示(打印)出来,以利于分析、检查。

程序清单:

10 X=1149:Y=1121

20 X2=X/59:Y2=Y/59

3O PRING CHR$(4);“PR#3”:HOME:HGR2

40 VTAB 1:HTAB 8

50 PRINT“定时器时间测定”

60 VTAB 4:HTAB 3

70 PRINT“开启时间: 分 秒”

80 VTAB 6:HTAB 3

90 PRINT“关闭时间: 分 秒”

100 S=PEEK(-16286)

110 IF S<128 THEN 320

120 VTAB 4:HTAB 13

130 PRINT“ ”

140 FOR A=0 TO 59

150 VTAB 4: HTAB 13

160 PRINT A;

170 HTAB 19

180 PRINT“ ”

190 PRINT CHR$(7):X1=0

200 X1=X1+1

210 VTAB 4:HTAB 19

220 PRINT INT(X1/X2)

230 IF X1>X THEN 270

240 S=PEEK(-16286)

250 IF S>127 THEN 200

260 GOTO 320

270 NEXT A

300 S=PEEK(-16286)

310 IF S>127 THEN 120

320 VTAB 6:HTAB 13

330 PRINT“ ”

340 FOR A=0 TO 59

350 VTAB 6:HTAB 13

360 PRINT A;

370 HTAB 19

380 PRINT“ ”

390 PRINT CHR$(7):Y1=0

400 Y1=Y1+1

410 VTAB 6:HTAB 19

420 PRINT INT(Y1/Y2)

430 IF Y1>Y THEN 470

440 S=PEEK(-16286)

450 IF S<128 THEN 400

460 GOTO 120

470 NEXT A

(孟艾平)