抢答器全功能供参习.docVIP

  • 10
  • 0
  • 约1.72万字
  • 约 16页
  • 2017-02-09 发布于江苏
  • 举报
抢答器全功能供参习

OK EQU 20H ;抢答开始标志位 RING EQU 22H ;响铃标志位 ORG 0000H AJMP MAIN ORG 0003H AJMP QTIME ORG 000BH AJMP OVERR ORG 0013H AJMP ASKTIME ORG 001BH AJMP OVERT ORG 0040H MAIN: MOV R1,#20 ;初设抢答时间为20s MOV R2,#60 ;初设答题时间为60s MOV 50H ,#10 MOV 52H ,#10 MOV 54H ,#10 MOV 56H ,#10 MOV 58H ,#10 MOV 60H ,#10 MOV 62H ,#10 MOV 64H ,#10 ;初始化各选说分数为10分 MOV TMOD,#11H ;设置定时器/模式1 MOV TH0,#0F0H MOV TL0,#0FFH ;越高发声频率越高,越尖 MOV TH1,#3CH MOV TL1,#0B0H ;50ms为一次溢出中断 SETB EA ;CPU开中断 SETB ET0 SETB ET1 SETB EX0 SETB EX1 ;允许四个中断,T0/T1/INT0/INT1 CLR OK CLR RING SETB TR1 SETB TR0 ;一开始就运行定时器,以开始显示E EE.如果想重新计数,重置TH1/TL1就可以了 ;*****查询程序***** START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL XIANSHI ;未开始抢答时候显示E EE JNB P3.6,SCOCHA JB P3.0,NEX ;如果开始键按下就向下执行,否者跳到非法抢答查询 ACALL BARK ;按键发声 MOV A,R1 MOV R6,A ;送R1-R6,因为R1中保存了抢答时间 SETB OK ;抢答标志位,用于BACKT只程序中判断是否查询抢答 MOV R7,#01H ;读抢答键数据信号标志,这里表示只读一次有用信号 MOV R3,#0AH ;抢答只显示计时,灭号数 AJMP BACKT ;进入倒计时程序,查询有效抢答的程序在BACKT里面 NEX: JMP NEXT ;*****分数查询****** SCOCHA: JNB P3.1,START JNB P1.0,S1 JNB P1.1,S2 JNB P1.2,S3 J

文档评论(0)

1亿VIP精品文档

相关文档