51单片机sg90舵机
51单片机按键控制舵机旋转
一、舵机工作原理
1、这里介绍的sg90的可旋转角度为 0~180°
2、sg90有三条线,橙色(PWM)红色(5V)棕色(GND)
3、PMW的范围为0.5ms2.5ms,相应的旋转角度为0180°
二、控制代码
1、接线图如下(这里用到的PWM引脚为at89c52中的 P2.1):
2、实现的功能介绍:按下k2旋转角度为0°(复位),按下k3旋转角度递增,按下k4旋转角度递减,按下k5旋转角度最大(180°)
3、代码如下:
#include<reg52.h>
#include<intrins.h>int count = 0; //全局变量,监控pwm周期
int jd=5; //初始化旋转角度,5是通过定时器定时长度和sg90高电平持续时间计算出来的(以下会说明)
sbit sg90=P2^1;
sbit key1 = P3^4;
sbit key2 = P3^5;
sbit key3 = P3^6;
sbit key4 = P3^7;//延时函数
void delay(unsigned char i){unsigned int j,k;for(j=i;j>0;j--)for(k=125;k>0;k--);
}//定时器初始化函数
void Time0_init(){TMOD=0X01; //T0定时方式1TL0 = 0xA4; //设置定时寄存器低八位初值TH0 = 0xFF; //设置定时寄存器高八位初值ET0=1; //打开定时器0的中断TR0=1; //打开定时器0EA=1; //开总中断
}void main(){delay(300);Time0_init(); while(1){//复位键if(key1 == 0){delay(50);if(key1 == 0){jd = 5;count = 0;}}//角度递增if(key2 == 0){delay(50);if(key2 == 0){if(jd>=5 && jd<=24){jd++;} count = 0;}}//角度递减if(key3 == 0){delay(50);if(key3 == 0){if(jd>=6 && jd<=25){jd--;} count = 0;}}//最大角度if(key4 == 0){delay(50);if(key4 == 0){jd = 25;count = 0;}}}
}void Time_server() interrupt 1{TL0 = 0xA4; //设置定时寄存器低八位初值TH0 = 0xFF; //设置定时寄存器高八位初值if(count<=jd){sg90 = 1;}else{sg90 = 0;}count++;if(count >= 200){sg90 = 0;count = 0;}
}
4、关于中断
定时器定时长度可通过工具算出:
51单片机sg90舵机相关推荐
- 最简单DIY基于51单片机的舵机控制器
51单片机物联网智能小车系列文章目录 第一篇:最简单DIY的51蓝牙遥控小车设计方案 第二篇:最简单DIY串口蓝牙硬件实现方案 第三篇:最简单DIY蓝牙PS2遥控器控制蓝牙智能小车 第四篇:最简单DI ...
- 最简单DIY基于蓝牙、51单片机和舵机的钢铁爱国者机关枪控制器
51单片机物联网智能小车系列文章目录 第一篇:最简单DIY的51蓝牙遥控小车设计方案 第二篇:最简单DIY串口蓝牙硬件实现方案 第三篇:最简单DIY蓝牙PS2遥控器控制蓝牙智能小车 第四篇:最简单DI ...
- 基于51单片机密码锁-舵机开锁-CXM
这个项目的起因还是因为每次进出寝室十分的麻烦才有了这个项目 所以我和我的铁子就决定搞个密码锁 我负责软件我的铁子负责硬件 目录 原理图 主要功能函数讲解 硬件 先简单介绍一下整个架构 原理图 主要功能 ...
- 使用51单片机控制舵机入门
舵机(sg90,板子是普中的51) 本人小白一枚,昨天用51实现了舵机的几个小功能,帮助和我一样初学的朋友~(。・`ω´・) 如有错误不足还请大家指点 接线 红电源 棕接地 橙色数据线 代码 希望实现 ...
- MSP430 STM32 单片机 SG90 舵机
接线: 注意: 1 工作电压:4.2-6V 2 PWM给20ms周期,也就是50HZ 3 手册可能写的是高电平是1ms到2ms,其实给0.5ms到2.5ms,还是要试试才知道. 4 给舵机直流电5V, ...
- 51单片机控制舵机,舵机不动的定时器原因
舵机: 红色:VCC 棕色:GND 黄色:PWM 这是定时器0初始化: unsigned cha count = 0; unsigned char timer1 ;void Timer1_Init() ...
- 基于51单片机的超声波避障小车(HC-SR04,SG90舵机)
+ 一.HC-SR04超声波模块 二.SG90舵机 三.总程序编写 一.HC-SR04超声波模块 HC-SR04时序图 触发信号输入端(Trig)输入一个10微秒以上的高电平信号,超声发送口收到信号自 ...
- 最简单DIY基于C#和51单片机上下位机一体化的PCA9685舵机控制程序
51单片机物联网智能小车系列文章目录 第一篇:最简单DIY的51蓝牙遥控小车设计方案 第二篇:最简单DIY串口蓝牙硬件实现方案 第三篇:最简单DIY蓝牙PS2遥控器控制蓝牙智能小车 第四篇:最简单DI ...
- 最简单DIY基于51单片机、PCA9685、IIC、云台的舵机集群控制程序
51单片机物联网智能小车系列文章目录 第一篇:最简单DIY的51蓝牙遥控小车设计方案 第二篇:最简单DIY串口蓝牙硬件实现方案 第三篇:最简单DIY蓝牙PS2遥控器控制蓝牙智能小车 第四篇:最简单DI ...
最新文章
- MySQL 5.1.40新特性及下载
- ASP.NET MVC3 301永久重定向实现程序
- layui 实现图片上传和预览
- 深度学习之卷积神经网络 AlexNet
- CSS 行内级元素和行内框
- django目录介绍
- vb6 怎么把一个数组的 0 值 去掉_解决逆向查找问题?VLOOKUP、CHOOSE、IF,索引数组,轻松解决...
- Foobar2000是一款完全可定制的音乐播放器
- 验证集精度高于训练集精度的原因分析
- MMORPG游戏框架图
- 信号跟单时提示mt4与服务器断开,MT4平台操作中遇到的一些常见问题和解决方法 -...
- spark大数据应用
- 华为手机什么时候更新鸿蒙系统_华为鸿蒙2.0系统什么时候可以用 华为鸿蒙2.0系统升级方法介绍[多图]...
- 支付宝小程序的开发笔记
- Java正则表达式(超详细)
- android dy 完结篇(0x3)
- 齐治堡垒机后台存在命令执行漏洞(CNVD-2019-17294)分析
- 浅谈文化创意产业与创意城市 | 上海城市规划
- L1-011~L1-015
- 黎明杀机无限连接服务器错误,更新黎明杀机时发生错误 无法连接到更新服务器 | 手游网游页游攻略大全...