51单片机做四路抢答器,要求如下,求C语言程序(做了两天了,心累)

51单片机做四路抢答器,要求如下,求C语言程序(做了两天了,心累),第1张

先来个汇编的程序,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语言编的四路抢答器程序转变成汇编语言的程序(程序如下)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/10048415.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存