问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

重赏!!哪位高手哦帮忙翻译一下这个汇编程序。

发布网友 发布时间:2024-03-17 05:03

我来回答

2个回答

热心网友 时间:2024-08-13 13:39

;///////////////////////////////////////////////////////
; USE BY :超声波测距器
; IC :AT89C51
; TEL :
; OSCCAL :XT (12M)
; display :共阳LED显示
;///////////////////////////////////////////////////////
;测距范围7CM-11M,堆栈在4FH以上,20H用于标志
;显示缓冲单元在40H-43H,使用内存44H、45H、46H用于计算距离
;
VOUT EQU P1.0 ; 红外脉冲输出端口
speak equ p1.1
;********************************************
;* 中断入口程序 *
;********************************************
;
ORG 0000H
LJMP START
ORG 0003H
LJMP PINT0
ORG 000BH
reti
ORG 0013H
RETI
ORG 001BH
LJMP INTT1
ORG 0023H
RETI
ORG 002BH
RETI
;
;********************************************
;* 主 程 序 *
;********************************************
;
START: MOV SP,#4FH
MOV R0,#40H ;40H-43H为显示数据存放单元(40H为最高位)
MOV R7,#0BH
CLEARDISP: MOV @R0,#00H
INC R0
DJNZ R7,CLEARDISP
MOV 20H,#00H
MOV TMOD,#11H ;T1为 T0为16位定时器
MOV TH0,#00H ;65毫秒初值
MOV TL0,#00H
MOV TH1,#00H
MOV TL1,#00H
MOV P0,#0FFH
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#0FFH
MOV R4,#04H ;超声波肪冲个数控制(为赋值的一半)
SETB PX0
SETB ET1
SETB EA
SETB TR1 ;开启测距定时器
start1: LCALL DISPLAY
JNB 00H,START1 ;收到反射信号时标志位为1
CLR EA
LCALL WORK ;计算距离子程序
clr EA
MOV R2,#32h;#64H ;测量间隔控制(约4*100=400MS)
LOOP: LCALL DISPLAY
DJNZ R2,LOOP
CLR 00H
setb et0
mov th0,00h
mov tl0,00h
SETB TR1 ;重新开启测距定时器
SETB EA
SJMP Start1
;
;****************************************************
;* 中断程序* *
;****************************************************

;T1中断,发超声波用 ;T1中断,65毫秒中断一次
INTT1: CLR EA
CLR TR0
clr ex0
MOV TH0,#00H
MOV TL0,#00H
MOV TH1,#00H
MOV TL1,#00H
SETB ET0
SETB EA
SETB TR0 ;启动计数器T0,用以计
intt11:
CPL VOUT ;40KHZ
nop
nop
nop
nop
nop
nop
nop
nop
nop
DJNZ R4,intt11
;超声波发送完毕,
MOV R4,#04H
lcall delay_250 ;延时,避开发射的直达声波信号
SETB EX0 ;开启接收回波中断

RETIOUT: RETI
;外中断0,收到回波时进入
PINT0: nop
jb p3.2,pint0_exit
CLR TR0 ;关计数器

CLR EA ;
CLR EX0 ;
MOV 44H,TL0 ;将计数值移入处理单元
MOV 45H,TH0 ;
mov th0,#00h
mov tl0,#00h
jnb p3.2,$
SETB 00H ;接收成功标志
pint0_exit:
RETI
;
;****************************************************
;* 显示程序 *
;****************************************************
; 40H为最高位,43H为最低位,先扫描高位
DISPLAY: MOV R1,#40H;G
MOV R5,#7fH;G
PLAY: MOV A,R5
MOV P0,#0FFH
MOV P2,A
MOV A,@R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
LCALL DL1MS
INC R1
MOV A,R5
JNB ACC.4,ENDOUT;G
RR A
MOV R5,A
AJMP PLAY
ENDOUT: MOV P2,#0FFH
MOV P0,#0FFH
RET
;
; TAB: DB 18h, 7Bh, 2Ch, 29h, 4Bh, 89h, 88h, 3Bh, 08h, 09h,0ffh
; TAB: DB 0A0h,0BEh, 62h, 32h, 3Ch, 31h, 21h, 0BAh, 20h, 30h,0ffh
;共阳段码表 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮""A""-"
TAB: DB 0C0h,0F9h,0A4h,0B0h,099h,092h,082h,0F8h,080h,090h,0ffh

;****************************************************
;* 延时程序 *
;****************************************************
;
DL1MS:
push 06h
push 07h

MOV R6,#14H
DL1: MOV R7,#19H
DL2: DJNZ R7,DL2
DJNZ R6,DL1
pop 07h
pop 06h
RET

;
;****************************************************
;* 距离计算程序 (=计数值*17/1000cm) *
;****************************************************
;
work: PUSH ACC
PUSH PSW
PUSH B
MOV PSW, #18h
MOV R3, 45H
MOV R2, 44H
MOV R1, #00D
MOV R0, #17D
LCALL MUL2BY2
MOV R3, #03H
MOV R2, #0E8H
LCALL DIV4BY2
LCALL DIV4BY2
MOV 40H, R4
MOV A,40H
JNZ JJ0
MOV 40H,#0AH ;最高位为零,不点亮
JJ0: MOV A, R0
MOV R4, A
MOV A, R1
MOV R5, A
MOV R3, #00D
MOV R2, #100D
LCALL DIV4BY2
MOV 41H, R4
MOV A,41H
JNZ JJ1
MOV A,40H ;次高位为0,先看最高位是否为不亮
SUBB A,#0AH
JNZ JJ1
MOV 41H,#0AH ;最高位不亮,次高位也不亮
JJ1: MOV A, R0
MOV R4, A
MOV A, R1
MOV R5, A
MOV R3, #00D
MOV R2, #10D
LCALL DIV4BY2
MOV 42H, R4
MOV A,42H
JNZ JJ2
MOV A,41H ;次次高位为0,先看次高位是否为不亮
SUBB A,#0AH
JNZ JJ2
MOV 42H,#0AH ;次高位不亮,次次高位也不亮
JJ2: MOV 43H, R0
POP B
MOV A,#0AH
CJNE A,41H,JJ3
MOV A,42H
SUBB A,#4
JNC JJ3
CLR speak
JJ3: POP PSW
POP ACC
RET
;
;****************************************************
;* 两字节无符号数乘法程序 *
;****************************************************
; R7R6R5R4 <= R3R2 * R1R0
;
MUL2BY2: CLR A
MOV R7, A
MOV R6, A
MOV R5, A
MOV R4, A
MOV 46H, #10H
MULLOOP1: CLR C
MOV A, R4
RLC A
MOV R4, A
MOV A, R5
RLC A
MOV R5, A
MOV A, R6
RLC A
MOV R6, A
MOV A, R7
RLC A
MOV R7, A
MOV A, R0
RLC A
MOV R0, A
MOV A, R1
RLC A
MOV R1, A
JNC MULLOOP2
MOV A, R4
ADD A, R2
MOV R4, A
MOV A, R5
ADDC A, R3
MOV R5, A
MOV A, R6
ADDC A, #00H
MOV R6, A
MOV A, R7
ADDC A, #00H
MOV R7, A
MULLOOP2: DJNZ 46H, MULLOOP1
RET

;
;****************************************************
;* 四字节/两字节无符号数除法程序 *
;****************************************************
;R7R6R5R4/R3R2=R7R6R5R4(商)...R1R0(余数)
;
DIV4BY2: MOV 46H, #20H
MOV R0, #00H
MOV R1, #00H
DIVLOOP1: MOV A, R4
RLC A
MOV R4, A
MOV A, R5
RLC A
MOV R5, A
MOV A, R6
RLC A
MOV R6, A
MOV A, R7
RLC A
MOV R7, A
MOV A, R0
RLC A
MOV R0, A
MOV A, R1
RLC A
MOV R1, A
CLR C
MOV A, R0
SUBB A, R2
MOV B, A
MOV A, R1
SUBB A, R3
JC DIVLOOP2
MOV R0, B
MOV R1, A
DIVLOOP2: CPL C
DJNZ 46H, DIVLOOP1
MOV A, R4
RLC A
MOV R4, A
MOV A, R5
RLC A
MOV R5, A
MOV A, R6
RLC A
MOV R6, A
MOV A, R7
RLC A
MOV R7, A
RET
;
delay_250:

push psw
push 07h
mov r7,#0ffh
delay_250_1:
nop
nop
nop
nop
djnz r7,delay_250_1
pop 07h
pop psw

ret
;-----------------------
END

热心网友 时间:2024-08-13 13:33

楼主的程序在何处?
就是一楼显示的吗?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 好像一个只能做5个公众号的管理员,那么用自己的其他可以做... 说下深圳的特点 如何解决微信支付异常问题? 绝地求生进游戏黑屏绝地求生进游戏黑屏怎么办 黑色T恤搭配什么样鞋子和裤子比较好看3 白衣服配黑色鞋子好看吗21 黑色短袖T恤,浅色牛仔裤,加白色帆布鞋,这样搭配好看吗?5 白色衬衣搭配牛仔裤和黑色帆布鞋怎么样?18 一个可以绑定几个公众号管理员? 珍视明洗眼液的小知识 战队队长如何同意别人加入战队 小心你的身份信息被别人再利用注册 不同绑一个身份证可以看另一个的消费记录吗? 白色和黑色的经典样式匡威帆布鞋,都与什么衣服搭配呢? 白色帆布鞋搭配有哪些诀窍?白色帆布鞋怎样穿才显个性? 【图】白色鞋子配什么裤子?白色鞋子搭配技巧111 在平面直角坐标系中,O为坐标原点,A,B,C三点满足OC=13OA+23OB... 水银碰到金子怎么清洗水银碰到金子如何清洗 在平面直角坐标系中,O为坐标原点,A、B、C三点满足 (1)求证:A、B、C三... 福建有什么门票免费的春日赏花胜地? 一个能管理几个微信公众号? swisse胶原蛋白男性可以喝吗 我做的是超声波测距每次测程序蜂鸣器会响,数码管也不会亮,这属于什么情... raze彩色口罩好用吗? 冒险岛140级眼饰怎么获得 ...江苏省通州市西亭镇亭东村树上有很多很大的鸟窝,这种鸟类是叫什么名... 简体字:干 繁体字:干/是什么意思 《窃仙天帝》txt下载在线阅读全文,求百度网盘云资源 司法考试大揭秘! 修改未满一年怎么修改 上海市金山区朱泾镇万安街中规汽修电话 ...青森街到西航港 机场路 土桥段的那个 申蓉汽修店 坐几路车 越详细... 哪里汽车维修 ...想下元旦联欢会主持人的台词。有四个人。两男两女,我现在初三要写深... 改错了未满一年怎么改回来 ...的主持词 !(要有开头和结尾) 4个主持人 2男2女 。 ...6年级毕业联欢会主持词,最好甲乙丙丁4人的,2男2女!!!急 ...主持词及节目串词!!!急注:主题是社团迎新。主持人四个两男两女... 宝骏730防撞梁怎么加装 雪为什么是六个角的