资源简介
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格式\程序\Unti
文件 368 2015-03-16 16:50 新建文件夹\1_源程序\keil格式\程序\Unti
文件 4096 2015-03-16 16:50 新建文件夹\1_源程序\keil格式\程序\Unti
文件 368 2015-03-16 16:50 新建文件夹\1_源程序\keil格式\程序\Unti
文件 4 2015-03-17 15:47 新建文件夹\1_源程序\keil格式\程序\Unti
文件 776 2015-03-17 15:47 新建文件夹\1_源程序\keil格式\程序\Unti
文件 824 2015-03-16 16:50 新建文件夹\1_源程序\keil格式\程序\Unti
文件 2536 2015-03-16 16:50 新建文件夹\1_源程序\keil格式\程序\Unti
文件 8940 2015-03-18 14:14 新建文件夹\1_源程序\keil格式\程序\Unti
文件 119 2015-03-17 15:45 新建文件夹\1_源程序\keil格式\程序\Unti
文件 21785 2015-03-18 14:14 新建文件夹\1_源程序\keil格式\程序\Unti
文件 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个文件信息
- 上一篇:不错的简历模板程序员专用
- 下一篇:Luaxm
l工具
相关资源
- 基于STM32RCT6的步进电机驱动程序
- E4A无障碍跨程序操作类库(带源码、
- 设备管理系统源码
- 安卓wifi直连app源码
- 我的世界源码(易语言版)
- labview编程软件滤波器以及编写程序设
- 我的界面(visual foxpro)源码
- 易语言:一键cf基址源码
- The Secret Path 3D 3D魔方迷宫[源码][scra
- scratch垃圾分类源码(最终版本).sb
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 安卓QQ6.71协议源码易语言,qq协议源码
- 编译原理实验工具及参考源码(lex&
- E盾偷后台工具源码
- 51单片机PWM程序,占空比、周期可调整
- UNIX/LINUX编程实践教程的源码
- 十以内加减法练习 powerbuilder源码
- 51单片机多功能自行车测速仪
- 农场开发项目
- OCR源码
- PLC上位机编程软件
- 用foobar2000听google音乐[更新一下]
- 学生信息管理系统源码
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 用VC 编写的仿QQ聊天室程序源代码
- 毕业论文之温度传感器DS18B20(源码
- 可自定义导航网站源码
评论
共有 条评论