智能车改舵机中值步骤_智能小车舵机控制

1

//

只利用一个定时器

T0

,定时时间为

,定义一个角度标识,数值为

1

2

3

4

5

//

实现

1ms

2ms

高电平的输出,再定义一个变量,数值最大为

40

,实现周期为

20ms

//

每次进入定时中断,判断此时的角度标识,进行

//

相应的操作。比如此时为

5

,则进入的前

5

次中断期间,信号输出为高电平,即为

//

高电平。剩下的

35

次中断期间,信号输出为低电平,即为

的低电平。这样总的时间

//

20ms

,为一个周期。

//

51

板上

s1

s2

按键

//

P1^7

输出

PWM

信号控制舵机

#include ""

unsigned char count;      //

次数标识

sbit pwm =P1^7 ;          //PWM

信号输出

sbit jia =P3^0;           //

角度增加按键检测

IO

sbit jan =P3^1;           //

角度减少按键检测

IO

sbit jianwei=P3^4;    //

按键位

unsigned char jd;         //

角度标识

sbit dula=P2^6;

sbit wela=P2^7;

unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,

0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e

void delay(unsigned char i)//

延时

{

unsigned char j,k;

for(j=i;j>0;j--)

for(k=125;k>0;k--);

}

void Time0_Init()            //

定时器初始化

{

TMOD = 0x01;             //

定时器

0

工作在方式

1

IE= 0x82;

TH0= 0xfe;

TL0= 0x33;               //

晶振,

TR0=1;                   //

定时器开始

}

void Time0_Int() interrupt 1 //

中断程序

{

TH0  = 0xfe;             //

重新赋值

TL0  = 0x33;

if(count

判断次数是否小于角度标识

pwm=1;                  //

确实小于,

PWM

输出高电平

else

pwm=0;                  //

大于则输出低电平

count=(count+1);          //

次数加

1

count=count%40;     //

次数始终保持为

40

即保持周期为

20ms

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值