单片机c语言有org吗,哪位大佬能帮在下翻译一下这段单片机的代码,顺便告诉我是用的什...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

哪位大佬能帮在下翻译一下这段单片机的代码,顺便告诉我是用的什么语言 是c语言吗

org 0000h

ajmp main

org 000bh

ajmp inti0

org 0030h

main:mov tmod,#01h

mov ie,#82h

mov th0,#4ch

mov tl0,#00h

mov sp,#60h

mov 31h,#30 ;东西绿灯初值30秒

mov 32h,#30 ;南北红灯初值30秒

clr 4fh ;清标志位

clr p1.1 ;开东西绿灯

clr p1.5 ;开南北红灯

setb tr0 ;启动T0

loop:lcall display ;调用显示子程序

lcall key ;调用应急按键判断

ajmp loop

inti0:push psw

clr ea

mov th0,#4ch

mov tl0,#00h

inc 35h

mov a,35h

cjne a,#20,out ;判1秒是否到时

mov 35h,#00

jb 4fh,yi ;判别标志位

dec 31h ;东西时间每秒减1

dec 32h ;南北时间每秒减1

mov a,31h

cjne a,#05,out ;判是否到25秒

setb p2.0 ;到25秒关时间显示

setb p2.1

setb p1.1 ;东西绿灯闪灭3秒

lcall del500ms

clr p1.1

lcall del500ms

setb p1.1

lcall del500ms

clr p1.1

lcall del500ms

setb p1.1

lcall del500ms

clr p1.1

lcall del500ms

setb p1.1 ;灭东西绿灯

sjmp er

out:setb ea

pop psw

reti

er:clr p1.2 ;东西黄灯亮2秒

mov 33h,#4 ;延时2秒

loop1:lcall del500ms

djnz 33h,loop1

setb p1.2 ;2秒后灭东西黄灯

clr p2.0 ;5秒后开时间显示

clr p2.1

mov 31h,#20 ;东西时间赋20秒初值

mov 32h,#20 ;南北时间赋20秒初值

setb 4fh

setb p1.5 ;关南北红灯

clr p1.0 ;点亮东西红灯

clr p1.6 ;点亮南北绿灯

sjmp out

yi:dec 31h ;东西时间每秒减1

dec 32h ;南北时间每秒减1

mov a,31h

cjne a,#5,out ;判是否到15秒

setb p2.6 ;到15秒关时间显示

setb p2.7 ;

setb p1.6 ;南北绿灯闪灭3秒

lcall del500ms

clr p1.6

lcall del500ms

setb p1.6

lcall del500ms

clr p1.6

lcall del500ms

setb p1.6

lcall del500ms

clr p1.6

lcall del500ms

setb p1.6 ;关南北绿灯

clr p1.7 ;南北黄灯亮2秒

mov 34h,#4 ;延时2秒

loop2:lcall del500ms

djnz 34h,loop2

setb p1.7 ;2秒后灭南北黄灯

clr p2.6 ;5秒后开时间显示

clr p2.7 ;

mov 31h,#30 ;东西时间重赋30秒初值

mov 32h,#30 ;南北时间重赋30秒初值

clr p1.1 ;点亮东西绿灯

clr p1.5 ;点亮南北红灯

setb p1.0 ;关东西红灯

clr 4fh

sjmp out

display:mov a,31h ;东西方向时间显示

mov b,#10

div ab

mov 20h,a

mov 21h,b

disp1:mov a,20h

mov dptr,#table

movc a,@a+dptr

mov p0,a

clr p2.0

lcall del1ms

setb p2.0

disp2:mov a,21h

mov dptr,#table

movc a,@a+dptr

mov p0,a

clr p2.1

lcall del1ms

setb p2.1

disp3:mov a,32h ;南北方向时间显示

mov b,#10

div ab

mov 22h,a

mov 23h,b

disp4:mov a,22h

mov dptr,#table

movc a,@a+dptr

mov p3,a

clr p2.6

lcall del1ms

setb p2.6

disp5:mov a,23h

mov dptr,#table

movc a,@a+dptr

mov p3,a

clr p2.7

lcall del1ms

setb p2.7

ret

table:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h ;0-9数字

del1ms:mov r7,#10 ;1ms延时子程序

d1:mov r6,#50

djnz r6,$

djnz r7,d1

ret

del500ms:mov r5,#5 ;500ms延时子程序

del3:mov r4,#200

del4:mov r3,#250

djnz r3,$

djnz r4,del4

djnz r5,del3

ret

key:jb p1.3,keyout

jnb p1.3,$

clr ea

inc 36h

mov a,36h

cjne a,#2,key4

mov 36h,#00

setb p1.6 ;东西绿灯闪灭3秒

lcall del500ms

clr p1.6

lcall del500ms

setb p1.6

lcall del500ms

clr p1.6

lcall del500ms

setb p1.6

lcall del500ms

clr p1.6

lcall del500ms

setb p1.6 ;灭东西绿灯

clr p1.7 ;东西黄灯亮2秒

mov 33h,#4 ;延时2秒

loop3:lcall del500ms

djnz 33h,loop3

setb p1.7 ;2秒后灭东西黄灯

setb p1.0 ;关东西红灯

setb p1.6 ;关南北绿灯

clr p1.1 ;开西绿灯

clr p1.5 ;开南北红灯

setb ea

sjmp keyout

key4:clr p1.6 ;;开南北绿灯

clr p1.0 ;开东西红灯

setb p1.1

setb p1.2

setb p1.3

setb p1.4

setb p1.5

setb p1.7

keyout:ret

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值