⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lsj.asm

📁 抢答器电路+程序
💻 ASM
字号:
 ORG  0000H      
LJMP  MAIN                        ;设置主程序入口
ORG  0003H                       ;外部中断INT0
LJMP  INTO
ORG   0030H
MAIN:   SETB  IT0              ;设置边沿触发方式
SETB  EX0                         ;允许中断
SETB  EA
MOV   A,     #0FEH            ;设置LED最低位亮,”0“亮
LOOP:   MOV   P1,    A      ;输出P1口
MOV   30H,   #10              ;设置延时时间,0.5s
LCALL DELAY
RL    A                               ;左移1位
SJMP  LOOP
INTO:   CLR   EA                   ;关闭中断
PUSH  ACC
MOV   30H,   #1                      ;延时50ms
LCALL DELAY
JB    P3.2, INT0_RET             ;若主持人键没按下,认为是一次干扰,中断返回
JNB   P3.2, $                          ;按下,等待释放
MOV   P2,   #0BFH                 ;主持人键已按下,显示"-"
INT0_1:  MOV   A,    P0          ;读P0口内容
JNB   ACC.0,LP1                    ;若甲按下,转LP1
JNB   ACC.1,LP2                    ;若乙按下,转LP2
JNB   ACC.2,LP3                     ;若丙按下,转LP3
JNB   ACC.3,LP4                     ;若丁按下,转LP4
SJMP  INT0_1                         ;继续等待抢答
LP1:     MOV   P2,  #0F9H      ;显示"1"
SJMP  LP_C0M
LP2:     MOV   P2,  #0A4H      ;显示"2"
SJMP  LP_C0M
LP3:     MOV   P2,  #0B0H      ;显示"3"
SJMP  LP_C0M
LP4:     MOV   P2,  #99H       ;显示"4"
LP_C0M:CLR   P3.4             ;开喇叭
MOV   30H, #20                    ;设置喇叭响的时间
LCALL  DELAY                     ;延时1s
SETB  P3.4                           ;关喇叭
MOV   30H, #60H                 ;设置结果显示时间
LCALL  DELAY
MOV   P2,  #0FFH               ;数码管全黑
INT0_RET: SETB  EA          ;关中断
POP   ACC
RETI
;-------------------------------延时子程序---------------------------------
DELAY:  MOV R4, 30H        ;延时子程序, 延时时间=(30H)*50ms
DEL0:  MOV R5,#50
DEL1:  MOV R6,#250
DEL2:  NOP
NOP
DJNZ R6,DEL2
DJNZ R5,DEL1
DJNZ R4,DEL0
RET
END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -