打印
[其它应用]

模拟SPI

[复制链接]
561|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
llia|  楼主 | 2016-6-11 18:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有哪位大神帮忙看下69P42模拟SPI的程序有木有问题?
SPI_SENDGET_BYTE:
        PUSH_A
        LDI SPI_COUNT,04H
        ANDIM SPI_FLAG,1101B
SPI_SEND_BYTE1:
        CLR_SCK                                ;拉低时钟信号        
        LDA SPI_TMP_H,0               
        BA3 SEND_DATA_1                        ;先发送高位
        CLR_SDI
        JMP SPI_SEND_BYTE2               
SEND_DATA_1:        
        SET_SDI
SPI_SEND_BYTE2:
        NOP
        NOP
        NOP
        SET_SCK
        LDA SPI_TMP_H,0                        ;发送的数据左移
        ADDM SPI_TMP_H,0
        LDA SPI_READBYTE_L,0                ;接收的数据左移
        ADDM SPI_READBYTE_L,0        
        LDA PD,0                        ;读取SDO
        BA3 GET_DATA_1
        ANDIM SPI_READBYTE_L,1110B
        JMP SPI_GET_BYTE1
GET_DATA_1:
        ORIM SPI_READBYTE_L,0001B
SPI_GET_BYTE1:
        SBIM SPI_COUNT,01H                ;判断4位是否发送完
        BNZ SPI_SEND_BYTE1        
        LDA SPI_FLAG,0
        BA1 SPI_SENDGET_END
        LDI SPI_COUNT,04H
        ORIM SPI_FLAG,0010B                ;4位接收/发送完置位
        LDA SPI_TMP_L,0                        ;把地位赋值给高位
        STA SPI_TMP_H,0
        LDA SPI_READBYTE_L,0                ;先接收的4位数据给高位
        STA SPI_READBYTE_H,0
        JMP SPI_SEND_BYTE1
SPI_SENDGET_END:
        CLR_SCK
        POP_A
        RTNI
有什么问题没有
沙发
wangpe| | 2016-6-11 18:40 | 只看该作者
没毛病

使用特权

评论回复
板凳
handleMessage| | 2016-6-18 11:34 | 只看该作者
楼主看看,程序跑飞了吧?

使用特权

评论回复
地板
laozhongyi| | 2016-6-18 23:16 | 只看该作者
选的4个IO口,作模拟用,分别模拟CS、SCLK、SI、SO。。。。。

使用特权

评论回复
5
_gege| | 2016-6-19 16:24 | 只看该作者
看不出有啥问题,楼主问题解决的怎么样了呢?

使用特权

评论回复
6
bbapple| | 2016-6-19 16:49 | 只看该作者
当用软件模拟SPI时序时,一般情况都是主机模拟SPI时序,从机有硬件的SPI寄存器

使用特权

评论回复
7
CallReceiver| | 2016-6-21 13:37 | 只看该作者
你可以先了解spi通信协议。然后根据你从机spi模式来模拟。

使用特权

评论回复
8
bbapple| | 2016-6-21 14:11 | 只看该作者
楼主,为什么想到拉低时钟信号呢??

使用特权

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

本版积分规则

961

主题

8893

帖子

4

粉丝