[其它应用] 模拟SPI

[复制链接]
491|9
 楼主| songqian17 发表于 2020-11-5 23:26 | 显示全部楼层 |阅读模式
有哪位大神帮忙看下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
有什么问题没有
chenho 发表于 2020-11-5 23:31 | 显示全部楼层
没毛病
zhuhuis 发表于 2020-11-5 23:35 | 显示全部楼层
楼主看看,程序跑飞了吧?
tian111 发表于 2020-11-5 23:38 | 显示全部楼层
选的4个IO口,作模拟用,分别模拟CS、SCLK、SI、SO。。。。。
chenho 发表于 2020-11-5 23:45 | 显示全部楼层
看不出有啥问题,楼主问题解决的怎么样了呢?
huwr 发表于 2020-11-5 23:45 | 显示全部楼层
当用软件模拟SPI时序时,一般情况都是主机模拟SPI时序,从机有硬件的SPI寄存器
huanghuac 发表于 2020-11-5 23:50 | 显示全部楼层
你可以先了解spi通信协议。然后根据你从机spi模式来模拟。
bqyj 发表于 2020-11-5 23:53 | 显示全部楼层
楼主,为什么想到拉低时钟信号呢??
zhanglli 发表于 2020-11-5 23:57 | 显示全部楼层
很久不用汇编了
 楼主| songqian17 发表于 2020-11-16 19:30 | 显示全部楼层
唉,还是没有什么结果,算了,先结贴吧,多谢大家啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

463

主题

5749

帖子

1

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