资源描述:
《源程序及功能介绍》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、源程序及功能介绍一、功能介绍1、如果想调节抢答时间或答题时间,按"抢答时间调节"键或"答题时间调节"键进入调节状态,此时会显示现在设定的抢答时间或回答时间值,如想加一秒按一下"加1s"键,如果想减一秒按一下"-1s"键,时间LED上会显示改变后的时间,调整范围为0s~99s,0s时再减1s会跳到99,99s时再加1s会变到0s。2、主持人按"抢答开始"键,会有提示音,并立刻进入抢答倒计时(预设30s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预设60s抢答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。倒数时间到小于5
2、s会每秒响一下提示音。3、如倒计时期间,主持人想停止倒计时可以随时按"停止"按键,系统会自动进入准备状态,等待主持人按"抢答开始"进入下次抢答计时。4、如果主持人未按"抢答开始"键,而有人按了抢答按键,犯规抢答,LED上不断闪烁FF和犯规号数并响个不停,直到按下"停止"键为止。5、P3.0为开始抢答,P3.1为停止,p1.0-p1.7为八路抢答输入数码管段选P0口,位选P2口低3位,蜂鸣器输出为P3.6口。P3.2抢答时间调整结,P3.3回答时间调整,P3.4为时间加1调整,P3.5为时间减1调整。二、流程图三、程序OKEQU20H;抢答开始标志位RING
3、EQU22H;响铃标志位ORG0000HAJMPMAINORG0003HAJMPINT0SUBORG000BHAJMPT0INTORG0013HAJMPINT1SUBORG001BHAJMPT1INTORG0040HMAIN:MOVR1,#30;初设抢答时间为30sMOVR2,#60;初设答题时间为60sMOVTMOD,#11H;设置未定时器/模式1MOVTH0,#0F0HMOVTL0,#0FFH;越高发声频率越高,越尖MOVTH1,#3CHMOVTL1,#0B0H;50ms为一次溢出中断SETBEASETBET0SETBET1SETBEX0SETBEX1
4、;允许四个中断,T0/T1/INT0/INT1CLROKCLRRINGSETBTR1SETBTR0;一开始就运行定时器,以开始显示FFF.如果想重新计数,重置TH1/TL1就可以了;=====查询程序=====START:MOVR5,#0BHMOVR4,#0BHMOVR3,#0BHACALLDISPLAY;未开始抢答时候显示FFFJBP3.0,NEXT;dddddddACALLDELAYJBP3.0,NEXT;去抖动,如果"开始键"按下就向下执行,否者跳到非法抢答查询ACALLBARK;按键发声MOVA,R1MOVR6,A;送R1->R6,因为R1中保存了
5、抢答时间SETBOK;抢答标志位,用于COUNT只程序中判断是否查询抢答MOVR3,#0AH;抢答只显示计时,灭号数AJMPCOUNT;进入倒计时程序,"查询有效抢答的程序"在COUNT里面NEXT:JNBP1.0,FALSE1JNBP1.1,FALSE2JNBP1.2,FALSE3JNBP1.3,FALSE4JNBP1.4,FALSE5JNBP1.5,FALSE6JNBP1.6,TZ1JNBP1.7,TZ2AJMPSTARTTZ1:JMPFALSE7TZ2:JMPFALSE8;=====非法抢答处理程序=====FALSE1:ACALLBARK;按键发声
6、MOVR3,#01HAJMPERRORFALSE2:ACALLBARKMOVR3,#02HAJMPERRORFALSE3:ACALLBARKMOVR3,#03HAJMPERRORFALSE4:ACALLBARKMOVR3,#04HAJMPERRORFALSE5:ACALLBARKMOVR3,#05HAJMPERRORFALSE6:ACALLBARKMOVR3,#06HAJMPERRORFALSE7:ACALLBARKMOVR3,#07HAJMPERRORFALSE8:ACALLBARKMOVR3,#08HAJMPERROR;=====INT0(抢答时间R1
7、调整程序)=====INT0SUB:MOVA,R1MOVB,#0AHDIVABMOVR5,AMOVR4,BMOVR3,#0AHACALLDISPLAY;先在两个时间LED上显示R1JNBP3.4,INC0;P3.4为+1s键,如按下跳到INCOJNBP3.5,DEC0;P3.5为-1s键,如按下跳到DECOJNBP3.1,BACK0;P3.1为确定键,如按下跳到BACKOAJMPINT0SUBINC0:MOVA,R1CJNEA,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。MOVR1,#00HACALLDELAY1AJMP
8、INT0SUBADD0:INCR1ACALLDELAY1AJMPI