資源簡介
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工具
評論
共有 條評論