数据传送不对

[复制链接]
2846|17
 楼主| mugangzhu 发表于 2010-4-24 11:12 | 显示全部楼层 |阅读模式
;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 | 显示全部楼层
gongche 发表于 2010-4-24 16:16 | 显示全部楼层
冒号和P连一起就是笑脸了
 楼主| mugangzhu 发表于 2010-4-24 16:20 | 显示全部楼层
请问带输出数据和输出来的数据如何才能一样???
ch8110 发表于 2010-4-24 18:29 | 显示全部楼层
有用的谢谢
 楼主| mugangzhu 发表于 2010-4-24 21:08 | 显示全部楼层
什么用的,我的问题还没回答呢
bananarer 发表于 2010-4-25 09:00 | 显示全部楼层
不好意思,是哪棵IC, PD_OUT, PDCR, PORTD是什么东西?
 楼主| mugangzhu 发表于 2010-4-25 09:38 | 显示全部楼层
中颖69P42啊,PORTD是PD   I/O口,PDCR是输入输出控制寄存器,PD_OUT是我设置的PD口暂存器
比如我想传送1100  0101 这两组数据,是通过怎么的移位、判断和传送指令来实现的并且传送完后也是1100
0101
happy_10 发表于 2010-4-25 17:24 | 显示全部楼层
楼上分析的很好
 楼主| mugangzhu 发表于 2010-4-25 19:54 | 显示全部楼层
??????
 楼主| mugangzhu 发表于 2010-4-26 08:32 | 显示全部楼层
???
juginhine 发表于 2010-4-26 08:48 | 显示全部楼层

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 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了啊?
 楼主| mugangzhu 发表于 2010-4-26 11:31 | 显示全部楼层
????
 楼主| mugangzhu 发表于 2010-4-26 14:08 | 显示全部楼层
????
juginhine 发表于 2010-4-26 17:53 | 显示全部楼层
1:首先LZ你這兩個通訊口是否是輸出狀態?
2:通訊中有沒有中斷?中斷中有沒有可能修改通訊寄存器?
請LZ再檢查一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

70

主题

358

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部