?? chengxu.c
字號:
/********************************************************
實現功能:正轉_反轉_按下轉松開停止
使用芯片:AT89S52
晶振:11.0592MHZ
編譯環境:Keil
作者:zhangxinchunleo
網站:www.ourhc.cn
淘寶店:匯誠科技 http://shop36330473.taobao.com
【聲明】此程序僅用于學習與參考,引用請注明版權和作者信息!
********************************************************/
#include<reg52.h> //庫文件
#define uchar unsigned char //字符型宏定義
#define uint unsigned int //整型宏定義
uchar tcnt; //定時器計數初值定義
uint sec; //速度值定義
/********************************************************
控制位定義
********************************************************/
sbit shi_neng=P1^0; // 使能控制位
sbit fang_shi=P1^1; // 工作方式控制位
sbit fang_xiang=P1^2;// 旋轉方向控制位
sbit mai_chong=P1^3; // 脈沖控制位
sbit zheng_zhuan=P2^0; //正轉
sbit fang_zhuan=P2^1; //反轉
/********************************************************************
延時函數
*********************************************************************/
void delay(uchar t)
{
uchar i,j;
for(i=0;i<t;i++)
{
for(j=13;j>0;j--);
{ ;
}
}
}
/********************************************************************
定時中斷服務函數
*********************************************************************/
void t0(void) interrupt 1 using 0 //定時中斷服務函數
{
tcnt++; //每過250ust tcnt 加一
if(tcnt==1) //當tcnt滿足條件時
{
tcnt=0; //計滿重新再計
sec++;
if(sec==20) //括號內數值越小,電機轉動速度越快
{
sec=0; //計滿重新再計
mai_chong=~mai_chong; //脈沖輸出
}
}
}
/********************************************************
初始化
********************************************************/
void init()
{
TMOD=0x02; //定時器工作在方式2
ET0=1;
EA=1;
TH0=0x06; //對TH0 TL0 賦值
TL0=0x06;
TR0=1; //開始定時
sec=0;
mai_chong=1; // 脈沖控制位
}
/********************************************************
主函數
********************************************************/
main()
{
init(); //程序初始化
shi_neng=0; // 使能控制位
fang_shi=1; // 工作方式控制
fang_xiang=1;// 控制方向為正轉
while(1)
{
if(zheng_zhuan==0){delay(100);shi_neng=1;fang_xiang=0;while(!zheng_zhuan);delay(100);shi_neng=0;fang_xiang=0;}
if(fang_zhuan==0){delay(100);shi_neng=1;fang_xiang=1;while(!fang_zhuan);delay(100);shi_neng=0;fang_xiang=1;}
}
}
/********************************************************
結束
********************************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -