标题:
51单片机为基础,红外传感模块控制舵机旋转 源程序
[打印本页]
作者:
于丽华
时间:
2022-2-13 12:10
标题:
51单片机为基础,红外传感模块控制舵机旋转 源程序
在51单片机控制系统的基础上,通过红外感应模块控制9g舵机旋转,舵机旋转角度可以在程序上调节,该设计可以用于只能垃圾桶设计或者感应门设计,程序亲测可用,有问题可以找我呦!小姐姐一定会倾囊相授!
dd38d67c5d39ffe596b630477cb4da4.png
(186.75 KB, 下载次数: 35)
下载附件
2022-2-13 12:06 上传
单片机源程序如下:
#include <REGX51.H>
#include<stdio.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit in=P1^3; //控制端
sbit PWM =P1^0; //舵机的控制引脚
uchar control;
uchar servorTime=0;
uint time;
void delay(uint time){ //延迟函数
uchar i;
for(;time>0;time--)
{
for(i=0;i<255;i++);
}
}
void main() //中断程序 初始化赋值 重新计数 超声波模块用 计算时间
{
TMOD=0x11;
TH1=(65536-100)/256; //0.1ms为一次溢出
TL1=(65536-100)%256;
ET1=1;
EA=1;
TR1=1;
servorTime=0;
while(1)
{
if(in==0) //如果距离小于30cm 蜂鸣器响
{
control=5;
//LED=0;
delay(2000);
}
else
{
//LED=1;
control=15; //使舵机向正摆动
delay(100);
}
}
}
void T1_int(void) interrupt 3 //产生舵机所需要的脉冲
{
TH1=(65536-100)/256; //0.1ms为一次溢出
TL1=(65536-100)%256;
servorTime++;
if(servorTime<=control)
PWM=1;
else
PWM=0;
if(servorTime>=200)
{
servorTime=0;
}
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1