亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
51單片機控制步進電機數碼管顯示(按鍵控制啟動反向加速減速)
[打印本頁]
作者:
zqy181818
時間:
2017-5-27 16:35
標題:
51單片機控制步進電機數碼管顯示(按鍵控制啟動反向加速減速)
51單片機控制步進電機數碼管顯示,按鍵控制啟動反向加速減速。
單片機源程序如下:
/****************************************Copyright (c)**************************************************
**
** -----------------------------------------------------------------------------------------------------
** File Name :
** Version : V1.0.0
** Description :
* 【外部晶振】: 11.0592mhz
* 【主控芯片】: STC89C52
* 【編譯環境】: Keil μVisio4
* 【程序功能】:
* 【使用說明】:
** -----------------------------------------------------------------------------------------------------
** Author : Creavalia
** Date : 10月19日
** -----------------------------------------------------------------------------------------------------
** Modify Person:
** Modify Date :
** Description :
*********************************************************************************************************/
// Includes --------------------------------------------------------------------------------------------
#include<reg51.h>
/********************************************************************************************************
** Marcos define
*********************************************************************************************************/
#define MotorTabNum 5
unsigned char T0_NUM;
//IO設置
sbit K1 = P3^5; // 啟動
sbit K2 = P3^4; // 反向
sbit K3 = P3^3; // 加速
sbit K4 = P3^2; // 減速
sbit FX = P2^4; // 方向
sbit MotorEn = P2^5; // 使能
sbit CLK = P2^6; // 脈沖
//----數碼管---------------
sbit SMG1 = P2^0; //數碼管第一位定義
sbit SMG2 = P2^1; //數碼管第二位定義
sbit SMG3 = P2^2; //數碼管第三位定義
sbit SMG4 = P2^3; //數碼管第四位定義
int table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //共陰極數碼管段值
//int table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,}; //共陽極數碼管段值
unsigned char g_MotorSt = 0; // 啟停
unsigned char g_MotorDir = 0; // 正反
//unsigned char MotorTab[6] = {200, 160, 120, 80, 40, 20};
unsigned char MotorTab[6] = {12, 10, 8, 6, 4, 2};
//unsigned char MotorTab[6] = {6, 5, 4, 3, 2, 1};
signed char g_MotorNum = 0;
//--------------
void delayms(xms);
void mDelay(unsigned int DelayTime); //延時函數
void T0_Init();
void KeyScan(void);
void Display(void);
// 主程序 main()
void main(void)
{
unsigned char i;
T0_Init(); // 定時器0 初始化
MotorEn = 0; // L297 使能(只有智能,才能正常工作,否則停止)
FX = 0;
while(1)
{
KeyScan(); // 按鍵
for(i=0; i<10; i++)
Display();
}
}
/********定時器初始化***********************************************************/
void T0_Init()
{
TMOD = 0x01;
TH0 = (65535-100)/256; // 1ms
TL0 = (65535-100)%256;
EA = 1;
ET0 = 1;
// TR0 = 1;
}
/********定時器中斷*****************/
void T0_time() interrupt 1
{
// TR0 = 0;
TH0 = (65535-100)/256;
TL0 = (65535-100)%256;
T0_NUM++;
if(T0_NUM >= MotorTab[g_MotorNum]) // 增加按鍵g_MotorNum++ 減小按鍵g_MotorNum--
{
T0_NUM = 0;
CLK=CLK^0x01; // 輸出脈沖
}
// TR0 = 1;
}
//-----按鍵控制---------------------
void KeyScan(void)
{
if(K1 == 0)
{
delayms(5); // 軟件延時消抖
if(K1 == 0)
{
while(!K1){Display();};
g_MotorSt = g_MotorSt ^ 0x01;
MotorEn ^= 1;
TR0 = 1;
}
}
if(K2 == 0)
{
delayms(10); // 軟件延時消抖
if(K2 == 0)
{
// while(!K2){Display();};
g_MotorDir = g_MotorDir ^ 0x01;
FX ^= 1;
while(!K2){Display();};
}
}
if(K3 == 0) // 加速
{
delayms(5); // 軟件延時消抖
if(K3 == 0)
{
while(!K3){Display();};
g_MotorNum++;
if(g_MotorNum > MotorTabNum)
g_MotorNum = MotorTabNum;
}
}
if(K4 == 0) // 減速
{
delayms(5); // 軟件延時消抖
if(K4 == 0)
{
while(!K4){Display();};
g_MotorNum--;
if(g_MotorNum < 0)
g_MotorNum = 0;
}
}
}
/******************************************************************************
* 名稱: Set_Display()
* 功能: 數碼管顯示函數
* 輸入: 無
* 輸出: 無
* 說明:
******************************************************************************/
void Display(void)
{
unsigned char b1, b2;
b1=g_MotorNum/10;
b2=g_MotorNum%10;
if(FX == 0)
P0=0x71;//顯示F
else
P0=0x79;
SMG1=0;
delayms(3);
SMG1=1;
P0=0x40;
SMG2=0; //顯示--
delayms(3);
SMG2=1;
P0=table[b1];
SMG3=0; //顯示十位
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
51單片機控制步進電機數碼管顯示.zip
(1.75 KB, 下載次數: 181)
2017-5-27 16:33 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
admin
時間:
2017-6-11 03:20
好資料,51黑有你更精彩!!!
作者:
faridzled
時間:
2017-6-11 05:01
thanks for sharing
作者:
xymiss
時間:
2017-7-17 23:33
新手需要多看。看讀。。謝謝分享。下來學習一下。。
作者:
yyyttt_2007
時間:
2017-12-18 15:50
請問,剛開始時轉速慢,抖動,電機發熱如何處理?使用42步進電機及驅動器
作者:
yyyttt_2007
時間:
2017-12-18 15:51
請問,42步進電機發熱,抖動怎么解決,謝謝!
作者:
yyyttt_2007
時間:
2017-12-18 15:52
請問,42步進電機發熱,抖動如何解決,謝謝!
作者:
zqy181818
時間:
2018-1-8 12:15
yyyttt_2007 發表于 2017-12-18 15:52
請問,42步進電機發熱,抖動如何解決,謝謝!
看看電機在不在合理的范圍發熱。電機表面60度到70度是正常。抖動的話。就我個人認為,原因和對應的解決方法陳訴如下:
1、馬達選小了,慣量不夠,解決就是更換相應型號的馬達了
2、電流設小了,將電流設成對應值
3、旋鈕未調,將旋鈕調至相應的檔位了
4、處于共振區,建議調節細分或繞開此區
5、馬達接線錯誤(主要是8引線馬達),將馬達引線接對
如果是步進伺服,振動一般是:
1、增益未調對,需調節增益
2、馬達選小了,更換合適的馬達
作者:
mj愛人
時間:
2019-12-10 21:42
要開始每天簽到,攢黑幣了
作者:
xuxuxuxuxuxuxu
時間:
2021-5-22 20:57
有PROTEUS圖嗎
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1