這是一款A(yù)T89C51單片機直流電機PWM調(diào)速程序,程序可以直接用于AT89C52、AT89S51、AT89S51,STC89C51、STC89C52單片機中,單片機晶振采用11.0592M,直流電機由L298集成電路控制,產(chǎn)生的PWM的頻率約為91Hz。L298各引腳已在程序中標明,原理圖大家可以自己畫一下,這里就不具給出。下面是源程序。
#include[reg52.h》//注意請把‘ [ ’換成 “《”,下同。否則編譯時會出錯。
#include [intrins.h》//
#define uchar unsigned char
#define uint unsigned int
sbit en1=P2^0;
sbit en2=P2^1;
sbit s1=P2^2;
sbit s2=P2^3;
sbit s3=P2^4;
sbit s4=P2^5;
uchar t=0;
uchar m1=0;
uchar m2=0;
uchar tmp1,tmp2;
void motor(uchar index, char speed)
{
if(speed》=-100 && speed《=100)
{
if(index==1)
{
m1=abs(speed);
if(speed《0)
{
s1=0;
s2=1;
}
else
{
s1=1;
s2=0;
}
}
if(index==2)
{
m2=abs(speed);
if(speed《0)
{
s3=0;
s4=1;
}
else
{
s3=1;
s4=0;
}
}
}
}
void delay(uint j)
{
for(j;j》0;j--);
}
void main()
{
char i;
TMOD=0x02;
TH0=0x9B;
TL0=0x9B;
EA=1;
ET0=1;
TR0=1;
while(1)
{
for(i=0;i《=100;i++)
{
motor(1,i);
motor(2,i);
delay(5000);
}
for(i=100;i》0;i--)
{
motor(1,i);
motor(2,i);
delay(5000);
}
for(i=0;i《=100;i++)
{
motor(1,-i);
motor(2,-i);
delay(5000);
}
for(i=100;i》0;i--)
{
motor(1,-i);
motor(2,-i);
delay(5000);
}
}
}
voidtimer0() interrupt 1
{
if(t==0)
{
tmp1=m1;
tmp2=m2;
}
if(t
if(t
t++;
if(t》=100) t=0;
}
上一篇:單片機IO口另外三種狀態(tài)
下一篇:51單片機4種簡單的擴展方法
推薦閱讀
史海拾趣
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 人形機器人馬拉松背后的思考,兆易創(chuàng)新如何賦能機器人產(chǎn)業(yè)
- 一種基于STM32的智能柜控制器設(shè)計
- 小型傾轉(zhuǎn)旋翼機的無刷直流電機驅(qū)動器設(shè)計
- 超高速攝影機電控系統(tǒng)設(shè)計
- 基于GPS自動授時的無線智能控制器的設(shè)計
- 基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無人飛行器機載穩(wěn)定云臺控制系統(tǒng)的設(shè)計
- 匠芯創(chuàng)推出面向具身智能高性能實時處理器M7000
- 技術(shù)迭代/平臺升級,AI座艙「平權(quán)」時代來了?
- 全固態(tài)電池最新進展,技術(shù)再度突破,即將量產(chǎn)!
- 汽車巨頭殺入機器人賽道
- UTD發(fā)現(xiàn)“空間電荷層”效應(yīng) 可提升固態(tài)電池性能
- 通過自主運動規(guī)劃 機器人可進行高速跑酷導(dǎo)航
- 全民智駕,宣告結(jié)束
- 巴斯夫推出全新Ultramid? Advanced N材料 適用于電動汽車高壓連接器
- 人形機器人公司加速進化已完成A輪融資
- 車載語音知多少:語音控制基本已成為20萬元以上車型標配
- 車規(guī)SoC核間通信技術(shù):智能汽車的"神經(jīng)脈絡(luò)"如何高效協(xié)同