一.学习笔记 HC-06控制舵机(51版)
要学习HC-06蓝牙模块与51单片机互相通信以控制舵机首先了解51内部RXD与TXD的关系(如下图):
通过此图可以清晰了解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; //使能总中断