
先来个汇编的程序,P1接一个共阳极数码管,P0低4位接4个抢答按键,主持人复位采用单片机复位按钮实现。 ORG 0000HSTART: MOV A,P0 ORL A,#0F0H CJNE A,#0FFH,PL0 SJMP STARTPL0: LCALL DELAY MOV A,P0 ORL A,#0F0H CJNE A,#0FFH,PL1 SJMP STARTPL1: JNB ACC0,K1 JNB ACC1,K2 JNB ACC2,K3 JNB ACC3,K4 LJMP STARTK1: MOV P1,#0F9H SJMP $K2: MOV P1,#0A4H SJMP $K3: MOV P1,#0B0H SJMP $K4: MOV P1,#99H SJMP $DELAY: MOV R6,#15DEL2: MOV R7,#200 DJNZ R7,$ DJNZ R6,DEL2 RET END
ORG 0000H
SETB P37 ;P37置1
MOV R0, #00H ;工作寄存器R0送0
MOV A , #0FFH ;累加器送FFH
MOV P2 , A ;P2送FFH
L1: MOV A , P1 ;读P1口到累加器
XRL A , #0FFH ;与FFH做异或运算
JZ L1 ;结果为0则转L1继续读P1口
L2: MOV B , #02H ;B寄存器送2
DIV AB ;除法运算
INC R0 ;R0加1
JNZ L2 ;累加器不为0继续做除2运算
MOV DPTR,#TABLE ;显示表首址送DPTR
MOV A,R0 ;R0送累加器
MOVC A , @A+DPTR ;取显示值
MOV P2 ,A ;送显示值入P2口
MOV R3 , #0FFH ;R3送FFH
SS: CLR P37 ;P37清0
ACALL DELAY ;调用延时
SETB P37 ;P37置1
ACALL DELAY ;调用延时
DJNZ R3,SS R3不为0转SS
L4: SJMP L4 ;死循环
DELAY: MOV R1, #249 ;R1=249
L3: NOP ;空 *** 作
NOP
DJNZ R1, L3 ;R1减1不为0则继续
RET
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;0-9共阴段码
END
SW1 BIT P30
SW2 BIT P31
SW3 BIT P32
SW4 BIT P33
ORG 0000H
LJMP MAIN
ORG 0030H
DELAY: ;延时1毫秒
MOV R3,#2
DELAY1:
MOV R4,#250
DJNZ R4,$
DJNZ R3,DELAY1
DJNZ R2,DELAY
RET
MAIN:
JB SW1,MAIN1
MOV P2,#7FH
MOV P0,#0F9H
SJMP $
MAIN1:
JB SW2,MAIN2
MOV P2,#7FH
MOV P0,#0A4H
SJMP $
MAIN2:
JB SW3,MAIN3
MOV P2,#7FH
MOV P0,#0B0H
SJMP $
MAIN3:
MOV P2,#7FH
MOV P0,#99H
SJMP $
END
以上就是关于51单片机做四路抢答器,要求如下,求C语言程序(做了两天了,心累)全部的内容,包括:51单片机做四路抢答器,要求如下,求C语言程序(做了两天了,心累)、求注释下面的汇编语言 这是一个简单的8人抢答器的题目、怎么把用c语言编的四路抢答器程序转变成汇编语言的程序(程序如下)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)