求MCS-51中断系统设计1个4人抢答器软件设计流程图!程序如下 20
ORG0000HAJMPSTARTORG0003H;外部中断0的入口地址LJMPINTOORG0100HSTART:SETBIT0;设置外部中断0为负边沿触发SETBEX...
ORG 0000H
AJMP START
ORG 0003H ;外部中断0的入口地址
LJMP INTO
ORG 0100H
START: SETB IT0 ;设置外部中断0为负边沿触发
SETB EX0 ;打开外部中断0
SETB EA ;开所有中断
MOV 20H,#80H
MAIN: MOV P1,20H ;没有按钮按下时,显示“.”
AJMP MAIN
INTO: PUSH PSW ;保护状态寄存器
PUSH ACC ;保护A
JNB P0.7,DV1
JNB P0.6,DV2
JNB P0.5,DV3
JNB P0.4,DV4
BACK: POP ACC ;弹出A
POP PSW ;弹出状态寄存器
CLR EA ;关所有中断
RETI ;中断程序返回
DV1: MOV 20H,#06H ;第1个按钮按下时,显示“1”
AJMP BACK
DV2: MOV 20H,#5BH ;第2个按钮按下时,显示“2”
AJMP BACK
DV3: MOV 20H,#4FH ;第3个按钮按下时,显示“3”
AJMP BACK
DV4: MOV 20H,#66H ;第4个按钮按下时,显示“4”
AJMP BACK
END 展开
AJMP START
ORG 0003H ;外部中断0的入口地址
LJMP INTO
ORG 0100H
START: SETB IT0 ;设置外部中断0为负边沿触发
SETB EX0 ;打开外部中断0
SETB EA ;开所有中断
MOV 20H,#80H
MAIN: MOV P1,20H ;没有按钮按下时,显示“.”
AJMP MAIN
INTO: PUSH PSW ;保护状态寄存器
PUSH ACC ;保护A
JNB P0.7,DV1
JNB P0.6,DV2
JNB P0.5,DV3
JNB P0.4,DV4
BACK: POP ACC ;弹出A
POP PSW ;弹出状态寄存器
CLR EA ;关所有中断
RETI ;中断程序返回
DV1: MOV 20H,#06H ;第1个按钮按下时,显示“1”
AJMP BACK
DV2: MOV 20H,#5BH ;第2个按钮按下时,显示“2”
AJMP BACK
DV3: MOV 20H,#4FH ;第3个按钮按下时,显示“3”
AJMP BACK
DV4: MOV 20H,#66H ;第4个按钮按下时,显示“4”
AJMP BACK
END 展开
展开全部
这个简单,
开始
中断初始化
显示初始化
MAIN:将20H地址内容送显示
跳转MAIN
进入中段服务程序
判断P0.7(写按键名字)是否按下? 是 跳转DIV1
否
判断P0.6(写按键名字)是否按下? 是 跳转DIV2
否
判断P0.5(写按键名字)是否按下? 是 跳转DIV3
否
判断P0.4(写按键名字)是否按下? 是 跳转DIV4
否
关中断
中断程序返回
DIV1:将1送P1口显示
跳转 MAIN
DIV2:将2送P1口显示
跳转 MAIN
DIV3:将3送P1口显示
跳转 MAIN
DIV4:将4送P1口显示
跳转 MAIN
开始
中断初始化
显示初始化
MAIN:将20H地址内容送显示
跳转MAIN
进入中段服务程序
判断P0.7(写按键名字)是否按下? 是 跳转DIV1
否
判断P0.6(写按键名字)是否按下? 是 跳转DIV2
否
判断P0.5(写按键名字)是否按下? 是 跳转DIV3
否
判断P0.4(写按键名字)是否按下? 是 跳转DIV4
否
关中断
中断程序返回
DIV1:将1送P1口显示
跳转 MAIN
DIV2:将2送P1口显示
跳转 MAIN
DIV3:将3送P1口显示
跳转 MAIN
DIV4:将4送P1口显示
跳转 MAIN
追问
能不能制作一个简单的流程图 再加流程描述呢?
追答
这个你自己弄吧,这么简单!实在不知道了我再给你做流程图
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询