|
- //軟件模擬pwm
- #include "reg52.h"
- unsigned int num=0;
- //舵機(jī)
- sbit DJ1=P3^6;
- sbit DJ2=P3^7; /*引腳定義*/
- int DJ(int a); //函數(shù)聲明
- timerinit() //定時(shí)器中斷初始化
- {
- TMOD=0x01; //設(shè)置定時(shí)器0為工作方式1
- EA=1; //開總中斷
- ET0=1; //定時(shí)器0中斷允許
- TH0 = (65536-500)/256; //初值使得定時(shí)器0.5毫秒溢出
- TL0 = (65536-500)%256;
- TR0=0;
- }
- main()
- {
- timerinit();
- while(1)
- {
- }
- }
- timer() interrupt 0 //0.5ms發(fā)生一次中斷,20ms后定時(shí)器置0重新計(jì)數(shù)
- {
- num++;
- DJ1=DJ(3);
- DJ2=DJ(3);
- if(num>=40)
- {
- num=0;
- TH0 = (65536-500)/256; //初值使得定時(shí)器0.5毫秒溢出
- TL0 = (65536-500)%256;
- return;
- }
- }
- int DJ(char a) //當(dāng)a=3舵機(jī)所在的位置是0度a=2 a=1分別對(duì)應(yīng)的位置是-45 -90度a=4 a=5對(duì)應(yīng)位置為45 90度
- {
- if(num>=a||num>=5)
- return 0;
- if(num>=1)
- return 1;
- }
復(fù)制代碼
51單片機(jī)驅(qū)動(dòng)伺服電機(jī)程序
http://www.torrancerestoration.com/mcu/2555.html
單片機(jī)控制松下伺服電機(jī)正反轉(zhuǎn)程序
http://www.torrancerestoration.com/mcu/991.html
|
|