视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
51单片机八路抢答器汇编程序
2025-10-05 01:35:07 责编:小OO
文档
ORG    0000H

        LJMP    MAIN        ;设置主程序入口

        ORG    0003H

        LJMP    INTSEV          ;设置外部中断入口

        ORG    0030H        ;设置主程序的实际开始地址

MAIN:        SETB    IT0        ;设置外部中断0为边沿触发方式

        SETB    EX0        ;允许外部中断0中断

        SETB    EA        ;开中断总开关,中断开放

        MOV    A,#0FEH        ;设LED初值,最低位亮,“0”亮

LOOP:        MOV    P1,A        ;输出,点亮LED

        MOV    30H,#10        ;设置延时时间,0.5秒

        LCALL    DELAY        ;延时

        RL    A        ;左移一位,为下一位点亮做准备

        SJMP    LOOP        ;循环

        ;--------中断服务子程序----------------------------

INTSEV:    CLR    EA        ;关中断

        PUSH    ACC        ;保护现场

        MOV    30H,#1        ;设置消抖动时间

        LCALL    DELAY        ;延时50ms

        JB    P3.2,INTRET    ;若主持人键没按下,认为是一次干扰,中断返回

        JNB    P3.2,$        ;按下,等待释放

        MOV    P2,#0BFH    ;主持人键已按下,显示“-”

AAA:        MOV    A,P0        ;读P0口的内容

        JNB    ACC.0,LP1    ;若S1开关按下,转LP1

        JNB    ACC.1,LP2    ;若S2开关按下,转LP2

        JNB    ACC.2,LP3    ;若S3开关按下,转LP3

        JNB    ACC.3,LP4    ;若S4开关按下,转LP4

        SJMP    AAA        ;返回,继续等待抢答

LP1:        MOV    P2,#0F9H    ;显示“1”

        SJMP    LP_COM

LP2:        MOV    P2,#0A4H    ;显示“2”

        SJMP    LP_COM

LP3:        MOV    P2,#0B0H    ;显示“3”

        SJMP    LP_COM

LP4:        MOV    P2,#99H        ;显示“4”

LP_COM:    CLR    P3.4        ;开蜂鸣器

        MOV    30H,#20        ;设置蜂鸣器鸣响时间

        LCALL    DELAY        ;延时1秒

        SETB    P3.4        ;关蜂鸣器

        MOV    30H,#60H    ;设置结果显示时间

        LCALL    DELAY        ;延时

        MOV    P2,#0FFH    ;数码管全黑

INTRET:    SETB    EA        ;开中断

        POP    ACC        ;恢复现场

        RETI            ;中断返回

        ;-----------延时子程序---------------------

DELAY:    MOV    R4,30H

DEL0:        MOV    R5,#50

DEL1:        MOV    R6,#250

DEL2:        NOP

        NOP

        DJNZ    R6,DEL2

        DJNZ    R5,DEL1

        DJNZ    R4,DEL0

        RET    

        END下载本文

显示全文
专题