永发信息网

51单片机4路抢答器,求大神帮我做一个,急需。要求用汇编语言。还要有protues的仿真图!!!

答案:1  悬赏:30  手机版
解决时间 2021-01-06 18:23
  • 提问者网友:不要迷恋哥
  • 2021-01-06 07:59
51单片机4路抢答器,求大神帮我做一个,急需。要求用汇编语言。还要有protues的仿真图!!!
最佳答案
  • 五星知识达人网友:酒醒三更
  • 2021-01-06 08:30
ORG   0000H
     JMP   BEGIN
     ORG 0030H
TABLE:      ; 共阴极数码管显示代码表
          DB    3FH,06H,5BH,4FH,66H ;01234
          DB    6DH,7DH,07H,7FH,6fh ;56789
DELAY:  MOV   R5,#20
LOOP4:  MOV   R6,#50H        ;延时20x20ms
LOOP5:  MOV   R7,#100
        DJNZ  R7,$
        DJNZ  R6,LOOP5
        DJNZ  R5,LOOP4
        RET
;---------------------------------------
BEGIN:  MOV   P2,#0FFH      ;P2口置高电平,准备接收信号
        MOV   R4,#0
        MOV   A,R4          ;R4位标志值送A寄存器
AGAIN:  MOV   DPTR,#TABLE
        MOVC  A,@A+DPTR
        MOV   P1,A
LOOP1:  MOV   A,P3          ; 接收p3口的抢答信号
        CPL   A
        JZ    LOOP1
LOOP2:  RRC   A        ;有人抢答信号则逐次移动判断哪一位抢答
        INC   R4
        JNC   LOOP2
;********************
        MOV   A,R4
        CJNE A,#5,LOOP3
  LOOP3:
        JC LOOP4
        MOV R4,#0
        SJMP LOOP1
  LOOP4:
        MOVC  A,@A+DPTR  ;找到相应位显示代码
        MOV   P1,A
LEDDIS:
         MOV A,#0FFH
         CLR C
LEDDIS1:
         RLC A
         DJNZ R4,LEDDIS1
         MOV P0,A
LOOP3:  JNB P2.2,BEGIN ;若主持人按下复位信号键,则转向主程序
        CPL   P2.0       ;若没按复位信号键,则通过p2.2口给出高低信号驱动蜂鸣器
        LCALL DELAY      ;调用延时子程序
        SJMP  LOOP3      ;p2.2口反复间隔0.4s变化,驱动蜂鸣器
        END追问大神,可能附张protues图啊
大神,这是不是你做的8路抢答器如果是四路的话我们怎么判定是哪一位选手按的键
追答     ORG   0000H
     JMP   BEGIN
     ORG 0030H
TABLE:
          DB    3FH,06H,5BH,4FH,66H ;01234
          DB    6DH,7DH,07H,7FH,6fh ;56789
DELAY:  MOV   R5,#20
DLY1:  MOV   R6,#50H        
DLY2:  MOV   R7,#100
        DJNZ  R7,$
        DJNZ  R6,DLY2
        DJNZ  R5,DLY1
        RET

BEGIN:  MOV   P2,#0FFH  
MOV   P0,#0FFH
        MOV   R4,#0
        MOV   A,R4 
AGAIN:  MOV   DPTR,#TABLE
        MOVC  A,@A+DPTR
        MOV   P1,A
LOOP1:  MOV   A,P3
        CPL   A
        JZ    LOOP1
LOOP2:  RRC   A  
        INC   R4
        JNC   LOOP2

        MOV   A,R4
        CJNE A,#5,LOOP3
LOOP3:
        JC LOOP4
        MOV R4,#0
        SJMP LOOP1
LOOP4:
        MOVC  A,@A+DPTR
        MOV   P1,A
LEDDIS:
         MOV A,#0FFH
         CLR C
LEDDIS1:
         RLC A
         DJNZ R4,LEDDIS1
         MOV P0,A
LOOP5:  JNB P2.2,BEGIN 
        CPL   P2.0 
        LCALL DELAY 
        SJMP  LOOP5
        END
追问谢谢谢谢了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯