如何使用51单片机定时器方式1如何实现外接并入串出的移位寄存

如何使用51单片机定时器方式1如何实现外接并入串出的移位寄存,第1张

如何使用51单片姿携扰机定时器方式迹旦1实现外接并入串出的移位寄存,第一个位进去的到最后会在最高位。对于串入并出移位寄存器以下是我个人的理解和实际开发工程中得出的经验。一个8位隐空串入数据输入,8位并行输出。可以看出先移的是高位,就是第一个位进去的到最后会在最高位。

该程序使用的是串口的工作方式0,在该方式下,串行口本身相当于“并入串出”或“串入并出”的移位寄存器串行移位脉冲从TXD引脚发出,频率是系统时钟孝悉的频率的12分频,而八位串行数据b0-b7依次从RXD引脚输出或输入。

该程序就是利用该功能发送八个数。

mov a,#00h

mov scon,a

-------串口的工作模式设置在0模式

mov ro,#30h

-------八个数存放在内部RAM中,从30h开始放

mov r7,#8

-------八个数一共发送八次

start:mov a,@r0

mov sbuf,a

-------把要发送的数放入SBUF寄存器

wait1: jbc ti,loop1

sjmp wait1

-------等一个字节数发送完成,通过TI的值,如果为1则发送完成。如果不为1,则一直等待

loop1:inc r0

djnz r7,start

ret

-------RAM地址巧早乎加1,发送第二个数,同时次数加1,一直到八个数发送完成

-------另外该程序好像忘了在每次发送完成后把发送完成标志TI清零

-------另外通过该方式串口发送一个二进制的数的间睁答隔频率是系统频率的1/12(对于兼容51系列的)

严格来说,51单片机的串口方式0,并不是用于串口通信的,只用于在RXD,TXD引脚上接有74LS164,串入/并出,或74LS165,并入串出。也就是只能与串行芯片配合使用的。

而真正用串口实现串行通信的是方式1。所以,你的程序要改成方式1。在方式1时,只有开中断简卜游允许标志位和接收到数据弊轮后,才拦销会申请中断,单片机才会响应中断。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12216433.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存