一.学习笔记 HC-06控制舵机(51版)

这篇学习笔记主要讲解如何使用HC-06蓝牙模块与51单片机进行串口通信,控制舵机工作。内容涉及到51单片机的RXD/TXD引脚、SBUF寄存器的作用,以及舵机角度与脉冲宽度的关系。还提供了一段基础代码,可用于控制多路舵机,强调了在实际应用中需要对代码进行适当的重定义。
摘要由CSDN通过智能技术生成

一.学习笔记 HC-06控制舵机(51版)

要学习HC-06蓝牙模块与51单片机互相通信以控制舵机首先了解51内部RXD与TXD的关系(如下图):51内部TXD/RXD关系
通过此图可以清晰了解51与TXD/RXD数据传输方式,都是通过TXD/RXD传输至51内部SBUF,通过SBUF中的数据,执行控制舵机动作。
什么是SBUF
SBUF是指串行口中的两个缓冲寄存器,一个是发送寄存器,一个是接收寄存器,在物理结构上是完全独立的,但地址是重叠的。它们都是字节寻址的寄存器,字节地址均为99H
发送指令时: MOV SBUF,A ;CPU把累加器A中的内容写入发送的SBUF(99H),再由TXD引脚一位一位地向外发送,
接收指令时: MOV A, SBUF ;接收端RXD一位一位地接收数据,直到收到一个完整的字符数据后,则通知CPU,再通过这条指令CPU从SBUF(99H)中读出数据,并送到累加器中.

关于舵机大家百度吧
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;

了解这些这些知识下面直接上代码:

#include <reg52.h>
sbit  PWM= P2^7;
unsigned char set_count=5;
unsigned char count=0;
unsigned char RxdByte = 0;  //串口接收到的字节
void ConfigTimer0();
void ConfigUART0(unsigned int baud);
 
void PWM1(unsigned char x)
{
   
	set_count=x;
}
 
void main()
{
   
    EA = 1;       //使能总中断
    
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值