求大神帮忙把下面汇编程序改成c语言程序,万分感谢! 10
ORG0000HLJMPMAINORG0003HLJMPPINT0ORG0200HMAIN:MOVIE,#81H;CPU开放中断,INT0允许中断SETBIT0;外部中断...
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP PINT0
ORG 0200H
MAIN: MOV IE,#81H ;CPU开放中断,INT0允许中断
SETB IT0 ;外部中断为边沿触发方式
MOV SP,#30H ;指针入口地址
SETB P3.0
CLR P3.1
MOV P1,#0FFH ;使P1口全部置1
MOV P2,#00H ;P2口清零
CLR P1.2
LP: JNB P1.0,LA ;监测输入信号,是否有输入信号
LA: ACALL DELAY ;延时消抖
JNB P1.0,ALARM ;再次监测输入信号,若有输入信号转入报警子程序
AJMP LP
DELAY:MOV R1,0AAH
LD2:MOV R2,0BBH
LD1:NOP
DJNZ R2,LD1
DJNZ R1,LD2
RET
ALARM:SETB P1.2 ;开始报警使运行正常绿指示灯熄灭,红灯和声报警启动
CPL P3.0
CPL P3.1
;10S钟定时:
MOV 51H,#14H ;10S循环次数
MOV TMOD,#01H ;定时器T0定时 方式1
MOV TL0,#0B0H ;置50ms定时初值
MOV TH0,#3CH
SETB TR0 ;启动T0
L2:JBC TF0,L1 ;查询记数溢出
SJMP L2
L1:MOV TL0 #0B0H
MOV TH0 #3CH
DJNZ 51H,L2 ;未到10S继续循环
SETB P3.0 ;10s到关闭报警
CLR P3.1
CLR P1.2 ;报警结束,正常运行绿指示灯亮
LJMP LP ;循环,继续工作
2. 外部中断INTO服务程序:
PINT0: CLR EX0 ;外部中断0服务程序开始,屏蔽外部中断
PUSH PSW
PUSH ACC
JNB P3.2,LN ;监测是否有中断输入
LN: LCALL DELAY ;延时消抖
JNB P3.2,LN1
AJMP LN2 ;无中断输入,中断返回
LN1: SETB P3.0
CLR P3.1
CLR P1.2 ;使报警结束,绿指示灯亮
POP ACC
POP PSW
SETB EX0 ;开放外部中断0
LCALL LP ;在中断继续检测是否有输入信号
LN2: RETI
END 展开
LJMP MAIN
ORG 0003H
LJMP PINT0
ORG 0200H
MAIN: MOV IE,#81H ;CPU开放中断,INT0允许中断
SETB IT0 ;外部中断为边沿触发方式
MOV SP,#30H ;指针入口地址
SETB P3.0
CLR P3.1
MOV P1,#0FFH ;使P1口全部置1
MOV P2,#00H ;P2口清零
CLR P1.2
LP: JNB P1.0,LA ;监测输入信号,是否有输入信号
LA: ACALL DELAY ;延时消抖
JNB P1.0,ALARM ;再次监测输入信号,若有输入信号转入报警子程序
AJMP LP
DELAY:MOV R1,0AAH
LD2:MOV R2,0BBH
LD1:NOP
DJNZ R2,LD1
DJNZ R1,LD2
RET
ALARM:SETB P1.2 ;开始报警使运行正常绿指示灯熄灭,红灯和声报警启动
CPL P3.0
CPL P3.1
;10S钟定时:
MOV 51H,#14H ;10S循环次数
MOV TMOD,#01H ;定时器T0定时 方式1
MOV TL0,#0B0H ;置50ms定时初值
MOV TH0,#3CH
SETB TR0 ;启动T0
L2:JBC TF0,L1 ;查询记数溢出
SJMP L2
L1:MOV TL0 #0B0H
MOV TH0 #3CH
DJNZ 51H,L2 ;未到10S继续循环
SETB P3.0 ;10s到关闭报警
CLR P3.1
CLR P1.2 ;报警结束,正常运行绿指示灯亮
LJMP LP ;循环,继续工作
2. 外部中断INTO服务程序:
PINT0: CLR EX0 ;外部中断0服务程序开始,屏蔽外部中断
PUSH PSW
PUSH ACC
JNB P3.2,LN ;监测是否有中断输入
LN: LCALL DELAY ;延时消抖
JNB P3.2,LN1
AJMP LN2 ;无中断输入,中断返回
LN1: SETB P3.0
CLR P3.1
CLR P1.2 ;使报警结束,绿指示灯亮
POP ACC
POP PSW
SETB EX0 ;开放外部中断0
LCALL LP ;在中断继续检测是否有输入信号
LN2: RETI
END 展开
展开全部
其实一个完整的产品是没有这么去写程序的,一般是用时间片轮寻方式,没有人用死循环去检测输入的!并且要一些程序复位和初始化的相关程序,要清RAM!这个大概是书上教你怎么认识指令和单片机结构的程序。要写一更程序主要是要有一个方法!我可以给你一个模板,你留下联系我发你!这个翻译成C也可以,只是没多大意义!
追问
用户名就是我qq号
你把他发给我吧,谢谢啦,,也拜托把这个程序翻译成c语言参考一下,,谢谢了,烧程序要用C语言烧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询