久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51控制舵機無法實現轉固定角度,為什么,求大神指點?
[打印本頁]
作者:
20151470
時間:
2017-2-12 14:44
標題:
51控制舵機無法實現轉固定角度,為什么,求大神指點?
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit KEY1 = P3^2; //定義調速的按鍵
sbit DC = P1^0; //定義直流電機的控制端口
uchar CYCLE; //定義周期
uchar PWM; //定義低電平時間
/*********************************
函數:Delay_1ms()
參數:t
返回:無
功能:延時子程序,延時時間為 1ms * del。
使用晶振是11.0592M。
**********************************/
void Delay_1ms(uint t)
{
uint i,j;
for(i=0;i<t;i++)
{
for(j=0;j<=100;j++)
{
_nop_();
}
}
}
/*********************************
函數:Time0Init()
參數:無
返回:無
功能:設置定時器0的工作方式2定時時長為100微秒,
并打開中斷和啟動定時器。
該例中使用的單片機晶振為11.0592M。
**********************************/
void Time0Init(void)
{
TMOD = 0x02; //設定定時器0工作在方式2模式
TH0 = 0xA3; //定時時長為100微秒的初值自動重載
TL0 = 0xA3; //定時時長為100微秒的初值
ET0 = 1; //打開定時器0中斷
EA = 1; //打開總中斷
TR0 = 1; //啟動定時器
}
/*********************************
函數:Time0Int()
參數:無
返回:無
說明:定時器0中斷函數。用于處理PWM的信號。
**********************************/
void Time0Int(void) interrupt 1 using 1
{
static uchar Count; //當前處于周期的什么時刻
if(Count == PWM) //判斷低電平時間是否結束
{
DC = 1; //直流電機轉
}
Count++;
if(Count == CYCLE) //一個周期結束
{
Count=0;
if(PWM != 0) //如果左右時間是0 保持原來狀態
{
DC = 0; //直流電機不轉
}
}
}
/*********************************
函數:Key()
參數:無
返回:無
功能:判斷KEY1是否按下并讓數碼管顯示和給PWM提供低電平時長。
**********************************/
void Key(void)
{
static uchar Number = 1; //定義檔位,初始化為1檔
if(KEY1 == 0) // 判斷是否有按鍵按下
{
Delay_1ms(15); //延時抗干擾信號
if(KEY1 == 0) //再次判斷是否有按鍵按下
{
Number++; //按一下P3.2口,就給直流電機換一個檔位
if(Number == 6) //等于6時,給檔位重新賦值1
{
Number = 1;
}
switch(Number)
{
case 1:
{
P0=0x06; //數碼管顯示1
PWM=175; //高電平2.5毫秒,舵機旋轉到右極限(為+90度)
break;
}
case 2:
{
P0=0x5B; //數碼管顯示2
PWM=180; //高電平2毫秒,舵機旋轉角度為+45度
break;
}
case 3:
{
P0=0x4F; //數碼管顯示3
PWM=185; //高電平1.5毫秒,舵機旋轉角度為0度
break;
}
case 4:
{
P0=0x66; //數碼管顯示4
PWM=190; //高電平1毫秒,舵機旋轉角度為-45度
break;
}
case 5:
{
P0=0x6d; //數碼管顯示5
PWM=195; //高電平0.5毫秒,舵機旋轉角度為-90度
break;
}
default:
break;
}
while(1) //按鍵釋放
{
if(KEY1 == 1) //判斷是否釋放
{
break;
}
}
}
}
}
/*********************************
函數:Main()
參數:無
返回:無
功能:主函數
**********************************/
void main(void)
{
Time0Init(); //定時器0初始化
CYCLE = 200; //定義PWM周期為20毫秒
P2 = 0xfe; //數碼管最后一位亮
while(1)
{
Key();
}
}
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
午夜一区二区三区在线观看
|
久久精品免费看
|
wwwsihu
|
国产精品久久久久久一区二区三区
|
免费精品久久久久久中文字幕
|
亚洲午夜精品在线观看
|
欧美精品一区二区三区在线播放
|
蜜桃视频在线观看免费视频网站www
|
卡通动漫第一页
|
成人午夜在线
|
精品国产视频
|
国产91网址
|
久久天堂网
|
欧美一区二区在线观看视频
|
91在线精品视频
|
av网站免费看
|
久久99久久99精品免视看婷婷
|
不卡的av在线
|
日本精品一区
|
91欧美精品成人综合在线观看
|
在线一区视频
|
成人国产精品
|
超碰最新在线
|
精品一区二区在线视频
|
国产 欧美 日韩 一区
|
久久国产成人
|
www.性色
|
成人一区二区在线
|
成人国产精品入口免费视频
|
久久日韩精品一区二区三区
|
国产精品日日摸夜夜添夜夜av
|
欧洲一级视频
|
日本一道本视频
|
亚洲入口
|
一级全黄视频
|
久久一区
|
三级av免费
|
亚洲精品日韩欧美
|
黄色片免费在线观看
|
欧美日韩在线播放
|
日韩免费高清视频
|