日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

51单片机控制小舵机

發(fā)布時(shí)間:2023/12/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 51单片机控制小舵机 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

以前從沒(méi)有想過(guò)寫(xiě)博客,但是最近發(fā)現(xiàn)以前的代碼老是找不到,而且找到了也不一定想得起當(dāng)時(shí)的邏輯,很麻煩,所以打算寫(xiě)寫(xiě)提醒一下自己。
最近老板讓做一個(gè)掃描二維碼裝鑰匙的小盒子,就給個(gè)小舵機(jī)和3D打印機(jī),傳動(dòng)結(jié)構(gòu)啥的基本搞定了,就差程序了,所以打算先測(cè)試一下舵機(jī)
說(shuō)明一下舵機(jī)給20ms為周期高電平占0.5到2.5ms的的PWM波就能動(dòng),接下來(lái)上代碼

#include <reg52.h> #include <math.h> typedef unsigned char uchar; typedef unsigned int uint; sbit PWM_OUT=P2^7; //PWM輸出口 uint PWM_Value; //定義pwm值 uint flag; //中斷標(biāo)志 void Delay(unsigned int s); //延時(shí)函數(shù)聲明

用不到延時(shí)函數(shù)所以就沒(méi)寫(xiě)

void Init_Timer0() // 定時(shí)器初始化 {TMOD=0x01;//定時(shí)器0 工作模式一,16位計(jì)數(shù)TH0=(65535-10)/256;//應(yīng)該是每次10usTL0=(65535-10)%256;EA = 1;ET0 = 1;TR0 = 1;PT0=1; }

這里我剛開(kāi)始的時(shí)候?qū)懲瓿绦蚨鏅C(jī)總是不動(dòng),折騰了半個(gè)小時(shí)沒(méi)發(fā)現(xiàn)哪里有錯(cuò),所以就翻出了邏輯分析儀測(cè)了一下引腳的信號(hào),發(fā)現(xiàn)有點(diǎn)問(wèn)題,計(jì)算了一下一次定時(shí)中斷有0.4432ms所以把后面主函數(shù)的代碼也稍微改了改。因?yàn)榫陀眯《鏅C(jī)開(kāi)關(guān)門(mén),精度要求不高所以就不管這些了。我記得以前好像沒(méi)遇到過(guò)這樣的問(wèn)題,希望有人指點(diǎn)一下。

void timer0(void) interrupt1 //實(shí)測(cè)一次中斷0.04432ms { TH0=(65535-10)/256; TL0=(65535-10)%256; if (flag>PWM_Value){PWM_OUT=0;}else{PWM_OUT=1;}if (flag>451){flag=0;}flag++; }

主函數(shù)簡(jiǎn)單點(diǎn)

void main() {PWM_Value = 25; //pwm值為11-56,42時(shí)門(mén)框打開(kāi),25時(shí)門(mén)框閉合Init_Timer0();while(1);}

程序比較簡(jiǎn)單,打算留著,過(guò)些日子閑下來(lái)沒(méi)事干再做個(gè)4足。

總結(jié)

以上是生活随笔為你收集整理的51单片机控制小舵机的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。