大哈欠E 发表于 2013-8-5 21:00:06

怎么会错呢?小生愚笨。。。(点阵)

本帖最后由 大哈欠E 于 2013-8-5 21:59 编辑

没用过点阵,看了下驱动原理,做了个仿真,但是怎么达不到效果了?不知是程序 还是硬件?小弟刚学汇编,请高手帮忙。。 但是用c写也是一样效果 麻烦大神看看。。
想达到的效果如图一
实际效果如图二

           ORG 0000H
START: MOV R0,#00H
           MOV R2,#08H
LOOP1: MOV DPTR,#PORT2
       MOV A,R0
           MOVC A,@A+DPTR
           MOV P2,A
           MOV A,R0
           MOV DPTR,#PORT3
           MOVC A,@A+DPTR
           MOV P3,A
           INC R0
           DJNZ R2,LOOP1
           SJMP START
PORT2:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
PORT3:        DB01H,00H,00H,18H,18H,00H,00H,00H
      END
;----------------------------------------------



#include<reg52.h>
unsigned char port[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0x01,0x00,0x00,0x18,0x18,0x00,0x00,0x00};
int main(void)
{
unsigned char i;
while(1)
{
        for(i=0;i<8;i++)
        {
          P2=port;
          P3=port;
           }
   }
}

little_Monkey 发表于 2013-8-5 21:29:53

P2=port?P2=port吧?另外,P2=1<<i也行

大哈欠E 发表于 2013-8-5 21:43:20

little_Monkey 发表于 2013-8-5 21:29 static/image/common/back.gif
P2=port?P2=port吧?另外,P2=1

诶?我程序上是port【i】的 可能是复制错了 可是还是不行啊。。

大哈欠E 发表于 2013-8-5 21:58:14

little_Monkey 发表于 2013-8-5 21:29 static/image/common/back.gif
P2=port?P2=port吧?另外,P2=1

P2=1<<i??不是这样的他是移动的是0 其余的都是1

little_Monkey 发表于 2013-8-5 22:26:25

大哈欠E 发表于 2013-8-5 21:58 static/image/common/back.gif
P2=1

不好意思看错了 ,那P2=~(1<<i)就行了

大哈欠E 发表于 2013-8-5 22:36:36

little_Monkey 发表于 2013-8-5 22:26 static/image/common/back.gif
不好意思看错了 ,那P2=~(1

嗯 怎么这样就行了 我分别赋值就不行 纳闷????
页: [1]
查看完整版本: 怎么会错呢?小生愚笨。。。(点阵)