欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
51單片機控制步進電機正反轉
[打印本頁]
作者:
小小飛飛飛
時間:
2019-6-11 10:14
標題:
51單片機控制步進電機正反轉
單片機控制電機正反轉及加減速控制
單片機源程序如下:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula = P2^6;//數碼管段選
sbit wela = P2^7;//數碼管位選
sbit key1 = P3^4;//啟動
sbit key2 = P3^5;//正轉/反轉
sbit key3 = P3^6;//加速
sbit key4 = P3^7;//減速
sbit pul = P2^0;//脈沖
sbit dir = P2^1;//方向
sbit ena = P2^2;//使能
int flag=0;//計數、正反轉標志
int V = 0;//速度
uint T,ge,shi;
uchar temp,key;
uchar code display[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//數碼管顯示0-9
//........................延時函數...........................//
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
//........................定時器0/1初始化函數...........................//
void T0_T1_init()
{
TMOD=0x01;//設置定時器為工作方式1
TH0=(65536-30000)/256;//定時器0定時30ms
TL0=(65536-30000)%256;
TH1=(65536-T)/256;//定時器1定時30ms
TL1=(65536-T)%256;
EA=1; //開總中斷
ET0=1; //開定時器0中斷
ET1=1; //開定時器1中斷
TR0=1; //啟動定時器0
TR1=0; //啟動定時器1
}
//........................按鍵函數...........................//
void keys()
{
if(key1 == 0)
{
delayms(5);
if(key1 == 0)//消抖
{
TR1=~TR1;//開啟定時器1
}
while(!key1);
}
if(key2 == 0)
{
delayms(5);
if(key2 == 0)
{
dir=~dir;//正轉,反轉
flag++;
if(flag>1)flag=0;
}
while(!key2);
}
if(key3 == 0)
{
delayms(5);
if(key3 == 0)//消抖
{
V=V+5;
if(V>60)V=60;//加速
}
while(!key3);
}
if(key4 == 0)
{
delayms(5);
if(key4 == 0)//消抖
{
V=V-5;
if(V<0)V=0;//減速
}
while(!key4);
}
}
void main()
{
T0_T1_init();
while(1)
{
dula = 1;
P0 = display[flag];//顯示正反轉
dula = 0;
P0 = 0xff;
wela = 1;
P0 = 0xfe;
wela = 0;
keys();
T= 125000/V;
}
}
void T0_time()interrupt 1
{
TH0=(65536-30000)/256;//定時器0定時30ms
TL0=(65536-30000)%256;
shi = V/10;
ge = V%10;
dula = 1;
P0 = display[shi]; //顯示速度十位
dula = 0;
P0 = 0xff;
wela = 1;
P0 = 0xfb;
wela = 0;
delayms(10);
dula = 1;
P0 = display[ge];//顯示速度個位
dula = 0;
P0 = 0xff;
wela = 1;
P0 = 0xf7;
wela = 0;
delayms(10);
}
//........................定時器1函數,控制電機頻率...........................//
void T1_time()interrupt 3
{
TH1 = (uint)(65536-T)/256;
TL1 = (uint)(65536-T)%256;
pul=~pul;//脈沖反轉
}
復制代碼
所有資料51hei提供下載:
伺服.rar
(18.2 KB, 下載次數: 21)
2019-6-11 10:14 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
admin
時間:
2019-6-12 01:15
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1