汇编语言如何转换成c语言,求把以下程序从汇编语言转换成C语言

求把以下程序从汇编语言转换成C语言

ORG 0000H

LJMP MAIN

ORG 0003H

LJMP PINT0

ORG 000BH

LJMP TINT

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

;10S钟定时:

MOV 51H,#14H ;10S循环次数

MOV TMOD,#01H ;定时器T0定时 方式1

MOV TL0,#0CEH ;置50ms定时初值

MOV TH0,#0FFH

SETB ET0

SETB EA

SETB TR0 ;启动T0

TINT: CPL P3.1

MOV TL0,#0CEH

MOV TH0,#0FFH ;启动T0

L2:JBC TF0,L1 ;查询记数溢出

SJMP L2

L1: MOV TL0,#0CEH

MOV TH0,#0FFH

SETB P3.0 ;10s到关闭报警

CPL P3.0

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值