?? chengxu.c
字號:
/********************************************************
實現功能:按下正轉正轉90度,然后再按反轉,回原位
使用芯片:AT89S52
晶振:11.0592MHZ
編譯環境:Keil
作者:zhangxinchunleo
網站:www.ourhc.cn
淘寶店:匯誠科技 http://shop36330473.taobao.com
【聲明】此程序僅用于學習與參考,引用請注明版權和作者信息!
********************************************************/
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
/********************************************************
控制位定義
********************************************************/
sbit shi_neng=P1^0; // 使能控制位
sbit fang_shi=P1^1; // 工作方式控制位
sbit fang_xiang=P1^2;// 旋轉方向控制位
sbit mai_chong=P1^3; // 脈沖控制位
sbit zrun=P2^0; // 正轉選擇
sbit frun=P2^1; // 反轉選擇
uint y=0; //設定轉動脈沖數值
uchar bzw=1;
/********************************************************
延時函數
********************************************************/
void delay(uint i)//延時函數
{
uchar j,k;
for(j=0;j<i;j++)
for(k=0;k<250;k++);
}
/********************************************************
主函數
********************************************************/
main()
{
shi_neng=0; // 使能控制位
fang_shi=1; // 工作方式控制位
fang_xiang=1;// 旋轉方向控制位
mai_chong=1; // 脈沖控制位
while(1)
{
if(bzw==1){if(zrun==0){while(!zrun){shi_neng=1;y=48;fang_xiang=0;bzw=2;}}} //如果正轉按鍵按下,電機正轉
if(bzw==2){if(frun==0){while(!frun){shi_neng=1;y=48;fang_xiang=1;bzw=1;}}} //如果反轉按鍵按下,電機反轉
if(y>=1) //執行轉動條件
{ y--;
mai_chong=~mai_chong; //輸出時鐘脈沖
delay(15);}
if(y==1){shi_neng=0;}//如果y等于1,關閉使能。 //延時 (括號內數值越小,電機轉動速度越快)
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -