回 帖 发 新 帖 刷新版面

主题:求助~有在玩8051...(解)

以下是小弟注解,请大大指教(有些还未填);并且请大大能说明一下流程与以下码是作何功能[em18] 麻烦加以说明~  感谢[em2]
-------------------------------------------       
       ORG  0H    --程式由位址:0开始
       JMP  BEGIN
       ORG  03H  --:设定外部中断INT0向量位址
       JMP  INTO
BEGIN:
       MOV  IE,#10000001B    --:允许产生中断
       SETB  IT0   --:外部中断0致能
       MOV  SP,#70H   --:设定推叠位址
       SETB  C   ---:把进位旗标的内容设定为1
       CLR   A     ---:把累积器的内容清除为0
LOOP:
       MOV  R3,#08  ---:设定闪烁次数
ROTATELEFT:
       RLC   A   ---:包含进位旗标的左旋转
       MOV  P1,A   ---:输出灯号
       MOV  R5,#10  ------:设定闪烁次数
       CALL  DELAY
       DJNZ  R3,ROTATELEFT --:判断暂存器内容减1,若结果不等于零则跳
       MOV  R3,#08
ROTATERIGHT:
       RRC  A   ---:包含进位旗标的右旋转
       MOV  P1,A   ---:输出灯号
       MOV  R5,#10   -----:设定闪烁次数
       CALL  DELAY
       DJNZ  R3,ROTATERIGHT --:判断暂存器内容减1,若结果不等于零则跳
       JMP  LOOP  ---:在执行回圈一次
;
INT0:             ---:外部中断INT0服务程式
       PUSH PSW   ---:保存程式状态字语
       SETB RS0
       CLR  RS1
       MOV  R3,#05
FLASH:
       MOV  P1,#00000000B
       MOV  R5,#20
       CALL DELAY
       MOV  P1,#11111111B
       MOV  R5,#20
       CALL DELAY
       DJNZ R3,FLASH
       POP  PSW
       MOV  P1,A
       RETI
DELAY:
       MOV  R7,#100
DLY1:
       MOV  R6,#100
DLY2:
       DJNZ R6,DLY2
       DJNZ R7,DLY1
       DJNZ R5,DELAY
       RET
       END
------------------------------

回复列表 (共5个回复)

沙发


应该是控制外设。另外设处于另一种状态,延时一下后又回到原来状态。大概是个开关量输出。

板凳


应该是控制外设。令外设处于另一种状态,延时一下后又回到原来状态。大概是个开关量输出。

3 楼

这个程序头四句就错两句,你还是不要研究了吧.

4 楼

ORG  0H    --程式由位址:0开始
       JMP  BEGIN
       ORG  03H  --:设定外部中断INT0向量位址
       JMP  INTO
BEGIN:
       MOV  IE,#10000001B    --:允许产生中断

这边就已经是错的了,应该是org 0000h
然后bengin 的部分也要用org 来定位地址
不然会连在 03后面占用中断向量

5 楼

你应该是刚玩单片机是吧!!
你的程序有很多的问题!!

       ORG  0H    --程式由位址:0开始  ;0H改为0000H,养成习惯好!
       JMP  BEGIN ;虽然理论上没有错
       ORG  03H  --:设定外部中断INT0向量位址
       JMP  INTO
ORG 0030H ;程序真正程序开始要定义起始位置!虽然你这样没有错,但是习惯写一下好;
;你这样虽然没有错,但是是说,习惯问题
BEGIN:
 MOV  P1,#00000000B;如果没有特别要求最好还是写成16进制的好
       MOV  R5,#20



还有的就是RS0,RS1如果没有一定的经验,还是不要修改的好,弄不好,很容易出错!!
最后,在中断程序里面增加较长时间的延时,一般来说这个是大忌!!
而且flash似乎并没有闪烁的功能!!(不要以为px的没有端口不给加高电平后就自动跳变为低电平!!)
这个要注意!!

这个大概是一个循环闪烁的灯控制程序(经验)

我来回复

您尚未登录,请登录后再回复。点此登录或注册