?? chengxu.c
字號:
/********************************************************
實現(xiàn)功能:電機正轉(zhuǎn)5轉(zhuǎn),停3秒,再反轉(zhuǎn)7轉(zhuǎn),停止,依次循環(huán)
使用芯片:AT89S52
晶振:11.0592MHZ
編譯環(huán)境:Keil
作者:zhangxinchunleo
網(wǎng)站:www.ourhc.cn
淘寶店:匯誠科技 http://shop36330473.taobao.com
【聲明】此程序僅用于學(xué)習(xí)與參考,引用請注明版權(quán)和作者信息!
********************************************************/
#include<reg52.h> //庫文件
#define uchar unsigned char //字符型宏定義
#define uint unsigned int //整型宏定義
uint cnt=0; //設(shè)定轉(zhuǎn)動脈沖數(shù)值
/********************************************************
控制位定義
********************************************************/
sbit shi_neng=P1^0; // 使能控制位
sbit fang_shi=P1^1; // 工作方式控制位
sbit fang_xiang=P1^2;// 旋轉(zhuǎn)方向控制位
sbit mai_chong=P1^3; // 脈沖控制位
sbit qi_dong=P2^0;//啟動按鍵
sbit ting_zhi=P2^1;//停止按鍵
/********************************************************************
時間延時函數(shù)
*********************************************************************/
void Tdelay(uchar i)//延時程序
{
uchar m,n,s;
for(m=i;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
/********************************************************
脈沖延時函數(shù)
********************************************************/
void Mdelay(uint y)//延時函數(shù)
{
uchar j,k;
for(j=0;j<y;j++)
for(k=0;k<250;k++);
}
/********************************************************
主函數(shù)
********************************************************/
main()
{
shi_neng=0; // 使能控制位
fang_shi=1; // 工作方式控制
fang_xiang=1;// 控制方向為正轉(zhuǎn)
mai_chong=1; // 脈沖控制位
cnt=800;
while(1)
{
if(qi_dong==0)
{
Mdelay(3);
while(!qi_dong)
{
while(1)
{
shi_neng=1;
fang_xiang=1;
cnt=4000;
while(cnt--)
{
mai_chong=~mai_chong; //輸出時鐘脈沖
Mdelay(3);
}
shi_neng=0;
Tdelay(300);//毫秒
shi_neng=1;
fang_xiang=0;
cnt=5600;
while(cnt--)
{
mai_chong=~mai_chong; //輸出時鐘脈沖
Mdelay(3);
}
shi_neng=0;
Tdelay(20);//毫秒
} }
}
}
}
/********************************************************
結(jié)束
********************************************************/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -