求教使用UART 模式0来作SPI驱动74164获595做IO扩展

2020-01-22 12:01发布

单片机没有多余的IO口,也没有SPI,只留一个UART

网上有人说可以用模式0来代替SPI,看手册“模式0:串行数据通过RxD进出,TxD输出移位时钟。每次发送和接收8位,波特率固定为CPU 1/16”

但没有任何例子来说明怎么使用...

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
takashiki
1楼-- · 2020-01-23 02:23
 精彩回答 2  元偷偷看……
takashiki
2楼-- · 2020-01-23 03:13
贴完了才发现,那是输入的,下面是输出的:
  1. START: MOV R7,#02H ;设置要发送的字节个数
  2. MOV R0,#30H ;设置地址指针
  3. MOV SCON,#00H ;设置串行口方式 0
  4. SEND: MOV A,@R0
  5. MOV SBUF,A ;启动串行口发送过程
  6. WAIT: JNB TI,WAIT ;一帧数据未发送完,循环等待
  7. CLR TI
  8. INC R0 ;取下一个数
  9. DJNZ R7,SEND
  10. RET
复制代码
老妖的例程是汇编的,你自己改成C的吧,反正就这么个意思。
duedue
3楼-- · 2020-01-23 06:53
takashiki 发表于 2014-10-25 08:25
贴完了才发现,那是输入的,下面是输出的:
老妖的例程是汇编的,你自己改成C的吧,反正就这么个意思。 ...

非常非常感谢

学习了!

一周热门 更多>