標(biāo)題:
51單片機(jī)為基礎(chǔ),紅外傳感模塊控制舵機(jī)旋轉(zhuǎn) 源程序
[打印本頁]
作者:
于麗華
時間:
2022-2-13 12:10
標(biāo)題:
51單片機(jī)為基礎(chǔ),紅外傳感模塊控制舵機(jī)旋轉(zhuǎn) 源程序
在51單片機(jī)控制系統(tǒng)的基礎(chǔ)上,通過紅外感應(yīng)模塊控制9g舵機(jī)旋轉(zhuǎn),舵機(jī)旋轉(zhuǎn)角度可以在程序上調(diào)節(jié),該設(shè)計可以用于只能垃圾桶設(shè)計或者感應(yīng)門設(shè)計,程序親測可用,有問題可以找我呦!小姐姐一定會傾囊相授!
dd38d67c5d39ffe596b630477cb4da4.png
(186.75 KB, 下載次數(shù): 35)
下載附件
2022-2-13 12:06 上傳
單片機(jī)源程序如下:
#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; //舵機(jī)的控制引腳
uchar control;
uchar servorTime=0;
uint time;
void delay(uint time){ //延遲函數(shù)
uchar i;
for(;time>0;time--)
{
for(i=0;i<255;i++);
}
}
void main() //中斷程序 初始化賦值 重新計數(shù) 超聲波模塊用 計算時間
{
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; //使舵機(jī)向正擺動
delay(100);
}
}
}
void T1_int(void) interrupt 3 //產(chǎn)生舵機(jī)所需要的脈沖
{
TH1=(65536-100)/256; //0.1ms為一次溢出
TL1=(65536-100)%256;
servorTime++;
if(servorTime<=control)
PWM=1;
else
PWM=0;
if(servorTime>=200)
{
servorTime=0;
}
}
復(fù)制代碼
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1