资源描述:
《八路抢答器程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、OKEQU20H;抢答开始标志位RINGEQU22H;铃声标志位ORG0000HAJMPMAINORG00003HAJMPINTOSUBORG000BHAJMPTOINTORG0013HAJMPINTISUBORG001BHAJMPT1INTORG0040HMAIN:MOVR1,#3O;初设抢答时间30SMOVR2,#60;初设答题时间60SMOVTMOD,#11H;设置未定时器/模式1MOVTH0,#0F0HMOVTL0,#0FFH;越高发生频率越高、越尖MOVTH1,#3CHMOVTLl,#0B0H;5Oms为一次溢出中断S
2、ETBEASETBET0SETBET1SETBEX0SETBEX1;允许四个中断TO、Tl、INTO、INTICLROKCLRRINGSETBTR1SETBTRO;开始就运行定时器,以开始显示FFF,如果想耍重新计数,重置TH1/TL1就可以了;=====查询程»======START:MOVR5,#0BHMOVR4,#0BHMOVR3,#0BHACALLDISPLAY;未开始抢答时显示FFFJBP3.0,NEXT;ACALLDELAYJBP3.0,NEXT;去抖动,如果“开始键”按下就向下执行,否则跳到非法抢答查询ACALLB
3、ARK;按键发声MOVA,R1MOVR6,A港R1到R6,因为R1中保存了抢答时间SETBOK;抢答标志位,用于COUNT子程序中判断是否查询抢答MOVR7,#01H;读抢答键数据信号标志,这里表示只读一次有用信号MOVR3,#0AH;抢答只显示计时,灭号数AJMPCOUNT;进入倒计时程序,“查询有效抢答的程序”在COUNT里面NEXT:JNBP1.0,FALSE1JNBP1.1,FALSE2JNBP1・2,FALSE3JNBP1.3,FALSE4JNBP1.4,FALSE5JNBP1・5,FALSE6JNBP1・6,FALS
4、E7JNBP1.7,FALSE8AJMPSTART===二非法抢答处理程序=======FALSE1:MOVR3,#01HAJMPERRORFALSE2:MOVR3,#02HAJMPERRORFALSE3:MOVAJMPFALSE4:MOVAJMPFALSE5:MOVAJMPFALSE6:MOVAJMPFALSE7:MOVAJMPFALSE8:MOVAJMPR3,#O3HERRORR3,#04HERRORR3,#05HERRORR3,#06HERRORR3,#07HERRORR3,#O8HERROR===INTO(抢答时间Rl调
5、整程序)======INTOSUB:MOVARIMOVB,#OAHDIVABMOVR5,AMOVR4,BMOVR3,#0AHACALLDISPLAY;先在两个时间LED上显示RlJNBJNBJNBAJMPP3.4JNC0;P3.4为加Is键,如果按下跳到INCOP3・5,DEC0;P3.5为减Is键,如果按下跳到DECOP3・l,BACK0;P3.1为确定键,如果按下跳到BACKOINTOSUBINCO:MOVA,R1CJNEA,#63H,ADD0;如果不是99,R2加到99,Rl就置0重新加起MOVR1,#00HACALLDE
6、LAY1AJMPINTOSUBADDO:INCR1ACALLDELAY1AJMPINTOSUBDECO:MOVA,R1JZSETR;如果R1为0,R1就DECR1ACALLDELAY1AJMPINTOSUBSETR1:MOVR1,#63HACALLDELAY1AJMPINTOSUBBACKO:RETI====INT1(回答时间R2调整程序)INT1SUB:MOVA,R2MOVB,#OAHDIVABMOVR5,AMOVR4,BMOVR3,#0AHACALLDISPLAYJNBP3.4JNC1JNBP3・5,DEC1JNBP3.1,
7、BACK1AJMPINT1SUBINC1:MOVA,R2CJNEA,#63H,ADD1MOVR2,#00HACALLDELAY1AJMPINT1SUBADD1:INCR2ACALLDELAY1AJMPINTISUBDECI:MOVA,R2JZSETR2DECR2ACALLDELAY1AJMPINT1SUBSETR2:MOVR2,#63HACALLDELAY1AJMPINTISUBBACK1:RETI尸二==倒计时程序(抢答倒计时和回答倒计时都跳到该程序)REPEAT:MOVMOVCLRCOUNT:MOVMOVMOVA,R2;使用
8、锦囊是重新计时R6,ARINGR0,#00H;重新定时器中断次数TH1,#3CHTL1,#OBOH;重置定时器RECONT:MOVA,R6;R6保存了倒计时的时间,之前先将抢答时间或回答时间给R6MOVDIVMOVMOVMOVMOVMOVB,#0AHAB;除十分