|

單片機(jī)源程序如下:
- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- #define key P3
- #define MotorData P2 //步進(jìn)電機(jī)控制接口定義
- uchar dzheng[4]={0x18,0x24,0x42,0x81}; // 兩步進(jìn)電機(jī)正轉(zhuǎn)數(shù)組
- uchar dfan[4]={0x81,0x42,0x24,0x18}; // 兩步進(jìn)電機(jī)反轉(zhuǎn)數(shù)組
- uchar keyval; // 鍵值
- void Delay_xms(uint x)
- {
- uint i,j;
- for(i=0;i<x;i++)
- for(j=0;j<112;j++);
- }
- void Delay10ms(void) //誤差 0us
- {
- unsigned char a,b,c;
- for(c=1;c>0;c--)
- for(b=38;b>0;b--)
- for(a=130;a>0;a--);
- }
- //鍵掃
- void keyscan(void)
- {
- char a;
- key=0x07;
- if(key!=0x07)
- {
- Delay10ms();//延時(shí)10ms進(jìn)行消抖
- if(key!=0x07)
- {
- switch(key)
- {
- case(0X06): keyval=1;break;
- case(0X05): keyval=2;break;
- case(0X03): keyval=3;break;
-
- }
- while((a<50)&&(key!=0x3f)) //檢測(cè)按鍵松手檢測(cè)
- {
- Delay10ms();
- a++;
- }
- a=0;
- }
- }
-
- }
- void Open()
- {
- uint i,j;
- for(j=0;j<255;j++) // 控制步進(jìn)電機(jī)正轉(zhuǎn)
- {
- for(i=0;i<4;i++)
- {
- P2=dzheng[i];
- Delay_xms(3);
- }
- }
-
- }
- void main(void)
- {
- uint i;
- Delay_xms(50);//等待系統(tǒng)穩(wěn)定
- while(1)
- {
- keyscan();
- if(keyval==1)
- {
- Open();
- }
-
- }
- }
復(fù)制代碼 |
|