跪求大神帮忙解释一下这一段单片机汇编程序的每一句详细解释!!!万分感谢!!!在线等~
ORG 0000H 主函数地址
LJMP MAIN 进入主函数
ORG 0003H 外部中断0入口地址
LJMP SUM 进入中断
ORG 1000H
GW EQU 20H 用GW 表示20H
SW EQU 21H 如上
BW EQU 22H 如上
MAIN:CLR P1.0 进入主函数。将P1.0位清0
MOV GW,#FFH 给GW 即20H赋初值,,这是立即寻址,你可以百度一下寻址方式
MOV SW,#00H
MOV DPTR,#8002H
MOV A,#0FFH
MOVX @DPTR,A 将A的值送往DPTR所指向的地址, DPTR是指针
MOV DPTR,#8004H
MOV A,#3FH
MOVX @DPTR,A
SETB IT0 下面三句是开中断
SETB EX0
SETB EA
LDO:
MOV DPTR,#8002H
MOVX @DPTR,A
MOV A,@RO 将R0所指向的地址的内容送给A
MOV DPTR,#TABLE 这是查表, 你也可以去翻翻资料,具体说不清
DIRO:MOVC A,@A+DPTR 查表指令。。。就是把下面TABLE里面的值送给A
MOV DPTR,#8004H
MOVX @DPTR,A 把A的值送往外部RAM,即DPTR指针所指向的地址
ACALL DL 调用指令 ,调用DL
INC R0 指针加一
MOV A,R1 将R1的值送往累加器A
JB ACC.2,DIR 判断累加器A的第2位为1吗?为1则转移到DIR函数,不为1执行下面的语句
RL A 左移A
MOV R1,A
AJMP LD0 跳转到LD0,与调用指令有区别
SUM:JB P1.1,JIAN 中断函数。 同上
INC GW
MOV A,GW
CJNE A,#10,QUIT 比较A里面的值与10相等吗?不相等则跳转到QUIT
MOV GW,#00H
INC SW
MOV A,#10,QUIT
MOV SW,#00H
INC BW
MOV A,BW
CJNE A,#2,QUIT
SETB P1.0 将P1.0置1
AJMP QUIT
JIAN: DEC GW GW减一
MOV A,GW
CJNE A,#0FFH,QUIT
MOV GW,#09
DEC SW
MOV A,BW
CJNE A,#1,QUIT
CLR P1.0
QUIT:RET1 reti 是中断返回的结束语。。调用的函数是用RET返回
DL:MOV R6,#10
DL0:MOV R7,#100
DL1:DJNE R7,#DL1
DJNE R6,DL0 这里是个延时函数
RET
TABLE: 表哥数据,用于查表
DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
END
一、end和ending的区别是:
1、当end和ending都是名词时,当意思都表示结束,结尾的时候 end 是指时间或动作的末尾、结束。 ending是指故事、小说、**、戏剧等的结尾。
二、end和ending的区别例句:
1、ending n. 结尾,结局
He was so miserable that he seriously thought about ending it all.
他难受得甚至认真考虑过要自杀。
2、end ?n. 结束,终点,目标,末端
The battle finally brought the war to an end. 这一仗使这场战争终告结束。
3、end?v. 结束,终结
The debate ended in uproar. 那场争辩以大吵大闹收场。
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!