资源简介

4按键控制,分别是启停、正反转、+速、-速。51单片机控制板电路图,程序源码+注解下载

资源截图

代码片段和文件信息

#include 

#define MotorTabNum 5

unsigned char T0_NUM;


sbit K1 = P3^0;
sbit K2 = P3^1;
sbit K3 = P3^2;
sbit K4 = P3^3;


sbit MotorEn = P2^1;     // 使能
sbit FX = P2^0;          // 方向
sbit CLK = P2^2;         // 脉冲


//----数码管---------------
sbit SMG1 = P1^4; //数码管第一位定义
sbit SMG2 = P1^5; //数码管第二位定义
sbit SMG3 = P1^6; //数码管第三位定义
sbit SMG4 = P1^7; //数码管第四位定义

int table[]={0x3f0x060x5b0x4f 0x660x6d0x7d0x07 0x7f0x6f0x40};    //共阴极数码管段值

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};


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;   // 0.5S 中断计数一次   t_500ms++ (即每0.5S  t_500ms加1)
TL0 = (65535-100)%256;
T0_NUM++;
if(T0_NUM >= MotorTab[g_MotorNum])
{
T0_NUM = 0;
CLK=CLK^0x01;        //   输出脉冲
}
// TR0 = 1;
}  


//-----按键控制---------------------
void KeyScan(void)
{
if(K1 == 0)
{
delayms(10);   // 软件延时消抖
if(K1 == 0)
{
while(!K1){Display();};  // 等待K1松开
g_MotorSt = g_MotorSt ^ 0x01;
MotorEn ^= 1;
TR0 = 1; 
}
}

if(K2 == 0)
{
delayms(10);   // 软件延时消抖
if(K2 == 0)
{
while(!K2){Display();}; // 等待K1松开
g_MotorDir = g_MotorDir ^ 0x01;
FX ^= 1;
}
}

if(K3 == 0)  // 加速
{
delayms(10);   // 软件延时消抖
if(K3 == 0)
{
while(!K3){Display();}; // 等待K1松开
g_MotorNum++;
if(g_MotorNum > MotorTabNum)
g_MotorNum = MotorTabNum;
}
}

if(K4 == 0)  // 减速
{
delayms(10);   // 软件延时消抖
if(K4 == 0)
{
while(!K4){Display();}; // 等待K1松开
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;  //显示十位
delayms(3);
SMG3=1;

P0=table[b2];

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       6590  2015-03-17 15:45  新建文件夹\1_源程序\keil格式\程序\jiweijiu

     文件       1724  2015-03-17 15:45  新建文件夹\1_源程序\keil格式\程序\jiweijiu.hex

     文件         44  2015-03-17 15:45  新建文件夹\1_源程序\keil格式\程序\jiweijiu.lnp

     文件       9695  2015-03-17 15:45  新建文件夹\1_源程序\keil格式\程序\jiweijiu.M51

     文件        874  2015-03-17 15:55  新建文件夹\1_源程序\keil格式\程序\jiweijiu.plg

     文件      55208  2015-03-16 23:12  新建文件夹\1_源程序\keil格式\程序\jiweijiu.uvopt

     文件      13230  2015-02-28 21:07  新建文件夹\1_源程序\keil格式\程序\jiweijiu.uvproj

     文件      55210  2015-03-03 20:21  新建文件夹\1_源程序\keil格式\程序\jiweijiu_uvopt.bak

     文件          0  2015-02-28 20:34  新建文件夹\1_源程序\keil格式\程序\jiweijiu_uvproj.bak

     文件       3441  2015-03-17 15:45  新建文件夹\1_源程序\keil格式\程序\main.c

     文件       8630  2015-03-17 15:45  新建文件夹\1_源程序\keil格式\程序\main.LST

     文件       7247  2015-03-17 15:45  新建文件夹\1_源程序\keil格式\程序\main.OBJ

     文件       4096  2015-03-16 16:50  新建文件夹\1_源程序\keil格式\程序\Untitled Project.IAB

     文件        368  2015-03-16 16:50  新建文件夹\1_源程序\keil格式\程序\Untitled Project.IAD

     文件       4096  2015-03-16 16:50  新建文件夹\1_源程序\keil格式\程序\Untitled Project.IMB

     文件        368  2015-03-16 16:50  新建文件夹\1_源程序\keil格式\程序\Untitled Project.IMD

     文件          4  2015-03-17 15:47  新建文件夹\1_源程序\keil格式\程序\Untitled Project.PFI

     文件        776  2015-03-17 15:47  新建文件夹\1_源程序\keil格式\程序\Untitled Project.PO

     文件        824  2015-03-16 16:50  新建文件夹\1_源程序\keil格式\程序\Untitled Project.PR

     文件       2536  2015-03-16 16:50  新建文件夹\1_源程序\keil格式\程序\Untitled Project.PRI

     文件       8940  2015-03-18 14:14  新建文件夹\1_源程序\keil格式\程序\Untitled Project.PS

     文件        119  2015-03-17 15:45  新建文件夹\1_源程序\keil格式\程序\Untitled Project.SearchResults

     文件      21785  2015-03-18 14:14  新建文件夹\1_源程序\keil格式\程序\Untitled Project.WK3

     文件       3590  2015-03-18 13:25  新建文件夹\1_源程序\记事本格式\程序.txt

     文件      12110  2015-03-18 15:36  新建文件夹\2_原理图\Backup of Sheet1.Sch

     文件     456049  2015-03-18 16:07  新建文件夹\2_原理图\原理图.jpg

     文件        590  2015-03-18 16:06  新建文件夹\2_原理图\接线.txt

     文件        238  2015-03-18 15:48  新建文件夹\3_操作说明\操作说明.txt

     目录          0  2018-03-22 15:21  新建文件夹\1_源程序\keil格式\程序

     目录          0  2018-03-22 15:21  新建文件夹\1_源程序\keil格式

............此处省略8个文件信息

评论

共有 条评论