导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[求助]!!大家静下心来看看这段汇编!!!!![happysoc]

 *第9037篇: [求助]!!大家静下心来看看这段汇编!!!!!

  
楼 主:happysoc 2008年1月14日22:11
 [求助]!!大家静下心来看看这段汇编!!!!!
                  ORG 0000H
    MOV DPTR,#TAB//将数码显示的表的地址取出

LOP:   MOV P0,#0FEH//使p0口的第0位为零,以点亮第一个发光二极管

    ACALL DEL//调用延时子程序下同

    MOV P0,#0FDH//使p0口的第1位为零,以点亮第二个发光二极管
   ACALL DEL
   MOV P0,#0FBH
   ACALL DEL
   MOV P0,#0F7H
   ACALL DEL
   MOV P0,#0EFH
   ACALL DEL
   MOV P0,#0DFH
   ACALL DEL
   MOV P0,#0BFH
   ACALL DEL
   MOV P0,#7FH

   CLR A//将累加器A的内容清0
   MOVC A,@A+DPTR//将DPTR内容取出,既是每次要显示数字的八位码,先送入累加器A中
   CJNZ A,#00H,SHOWLED//如果累加器A中的不为0,则跳转至SHOWLED标识的子程序段执行
   JZ SHOW//若A为0则调用SHOW标识的子程序段执行;

LOP1:   ACALL DEL
   AJMP LOP

SHOW:   MOV DPTR,#TAB
   ACALL LOP1

SHOWLED:   MOV P1,A ;显示LCD  //将累加器A中内容送入P1口以使数码管显示
   INC DPTR//使DPTR地址加一,以使指向下一个要送入P1的码表中的码
   ACALL LOP1

DEL:   MOV R5,#01H//延时子程序begin

DEL3:   MOV R7,#FEH

DEL1:   MOV R6,#FEH

DEL2:   DJNZ R6,DEL2
   DJNZ R7,DEL1
   DJNZ R5,DEL3
   RET //延时子程序end


TAB:   DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
   DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H,00H ;不带小数点十六进制数字8--16对应的编码  
  END

由于初学,自己写的P0口控制流水灯,P1口控制一个数码管,仿真没有发现问题,下到板子上后,数码管只运行到F后,然后就停住了,流水等还继续走了几遍后,也停住了,不知为何?请高手赐教!!![/center]

[/color][/size]

[/size]


  
2楼:peaceliu 2008年1月18日12:35
 真够笨的。
伙计,DPTR的值在第二次循环后,已经飞到爪哇过了。需要在循环中重新赋值,即:加入
MOV DPTR,#TAB即可。刚学单片机编程的人一般可能出现类似错误。

>>>>>>对该主题发表你的看法

本主题贴数2,分页: [第1页]


[上一篇主题]:[求助]单片机发送数据时的编码问题

[下一篇主题]:欢迎访问 PCB网 http://www.PCBw.cn