打印

数据传送不对

[复制链接]
2005|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
;74HC164送数据到I/O口 Data0:1011 Data1:0001
SONG:
    LDI    PDCR        ,1111B ;
    ldi    TEMP      ,08H ;        
SONG_1:
    LDA    Data0    ,00H
    ADDM   Data0    ,00H
    LDA    Data1    ,00H
    ADCM   Data1    ,00H
    BC     SONG_2                   
SONG_3:
    ANDIM  PD_OUT     ,1101  ;送0到PD.1口
    JMP    $+2
SONG_2:        
    ORIM   PD_OUT       ,0010  ;送1到PD.1口
    STA    PORTD        ,00H;
    nop
    nop
    nop
    nop
    orim   PD_OUT       ,0001B;PD.0输出高电平传送PD.1的数据
    sta    PORTD        ,0
    nop
    nop
    nop
    nop
    andim  PD_OUT       ,1110B;PD.0输出低电平等待下次传送数据
    nop
    sbim   TEMP      ,01H
    bnz    SONG_1
;数据传送完毕之后是0101 1000和开始的Data0、Data1不一致?
沙发
chenho| | 2010-4-24 11:43 | 只看该作者
笑脸是啥意思?

使用特权

评论回复
板凳
mugangzhu|  楼主 | 2010-4-24 14:05 | 只看该作者
PD.0和PD.1  I/O口

使用特权

评论回复
地板
mugangzhu|  楼主 | 2010-4-24 15:52 | 只看该作者
??

使用特权

评论回复
5
gongche| | 2010-4-24 16:16 | 只看该作者
冒号和P连一起就是笑脸了

使用特权

评论回复
6
mugangzhu|  楼主 | 2010-4-24 16:20 | 只看该作者
请问带输出数据和输出来的数据如何才能一样???

使用特权

评论回复
7
ch8110| | 2010-4-24 18:29 | 只看该作者
有用的谢谢

使用特权

评论回复
8
mugangzhu|  楼主 | 2010-4-24 21:08 | 只看该作者
什么用的,我的问题还没回答呢

使用特权

评论回复
9
bananarer| | 2010-4-25 09:00 | 只看该作者
不好意思,是哪棵IC, PD_OUT, PDCR, PORTD是什么东西?

使用特权

评论回复
10
mugangzhu|  楼主 | 2010-4-25 09:38 | 只看该作者
中颖69P42啊,PORTD是PD   I/O口,PDCR是输入输出控制寄存器,PD_OUT是我设置的PD口暂存器
比如我想传送1100  0101 这两组数据,是通过怎么的移位、判断和传送指令来实现的并且传送完后也是1100
0101

使用特权

评论回复
11
happy_10| | 2010-4-25 17:24 | 只看该作者
楼上分析的很好

使用特权

评论回复
12
mugangzhu|  楼主 | 2010-4-25 19:54 | 只看该作者
??????

使用特权

评论回复
13
mugangzhu|  楼主 | 2010-4-26 08:32 | 只看该作者
???

使用特权

评论回复
14
juginhine| | 2010-4-26 08:48 | 只看该作者

1:如上图,LZ在修改了数据的缓冲后,并没有直接送到端口。也就是后面还需要增加一条语句: STA    PORTD
2:74HC164传输是上升沿,LZ在传输第一个bit的时候不知道clock线是低电平还是高电平啊,请LZ  check一下。
请LZ用示波器配合调试一下就明白了。

使用特权

评论回复
15
mugangzhu|  楼主 | 2010-4-26 09:37 | 只看该作者
CLOCK:
      ANDIM FLAG,1101B;清时间标志位
      LDI TEMP1,08H
      LDI DATA0,0111B
      LDI DATA1,0100B
CLOCK_1:
      LDA DATA0,00H
      ADDM DATA0,00H
      LDA DATA1,00H
      ADCM DATA1,00H
      BC CLOCK_2
      ANDIM PD_BACK,1101B
      JMP $+2
CLOCK_2:
      ORIM PD_BACK,0010B
      STA PD,00H
      NOP
      NOP
      NOP
      ORIM PD_BACK,0001B;.PD.1输出高电平传送数据
      STA PD,00H
      NOP
      NOP
      ANDIM PD_BACK,1110B;.PD.1输出低电平等待下次传送
      STA PD,00H
      SBIM TEMP1,01H
      BNZ CLOCK_1
      JMP MAIN      
那个我已经改了,164的时钟先不管,传完之后也不是这样也不是所要的  0111B 0100B反而成了1110B 0010B了啊?

使用特权

评论回复
16
mugangzhu|  楼主 | 2010-4-26 11:31 | 只看该作者
????

使用特权

评论回复
17
mugangzhu|  楼主 | 2010-4-26 14:08 | 只看该作者
????

使用特权

评论回复
18
juginhine| | 2010-4-26 17:53 | 只看该作者
1:首先LZ你這兩個通訊口是否是輸出狀態?
2:通訊中有沒有中斷?中斷中有沒有可能修改通訊寄存器?
請LZ再檢查一下。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

70

主题

358

帖子

1

粉丝