|
寫(xiě)的兩個(gè)方法想拼在一起,主函數(shù)是獨(dú)立按鍵的程序,里面當(dāng)按鍵按下K1去調(diào)用另一個(gè)程序(步進(jìn)電機(jī)轉(zhuǎn)動(dòng)的程序),為什么調(diào)用不了, 請(qǐng)幫忙看看, 調(diào)用motor_ccw()失敗。
單片機(jī)源程序:
- #include "reg52.h"
- #include "motor.c"
- void delaynms(uint aa);
- void motor_ccw();
- void motor_cw();
- typedef unsigned int u16;
- typedef unsigned char u8;
- sbit led=P2^0;
- sbit K1=P3^1;
- void delay(u16 i)
- {
- while(i--);
- }
- void keypros()
- {
- if(K1==0)
- {
- delay(1000);
- if(K1==0)
- {
- led=~led;
- motor_ccw;
- }
- while(!K1);
- }
- }
- void main()
- {
- while(1)
- {
- keypros();
- }
- }
- ---------------------------------------------------------------------------------------------------------------------------------------------------------
- #include<reg52.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
-
- uchar code CCW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; //逆時(shí)鐘旋轉(zhuǎn)相序表
- uchar code CW[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08}; //正時(shí)鐘旋轉(zhuǎn)相序表
-
- void delaynms(uint aa)
- {
- uchar bb;
- while(aa--)
- {
- for(bb=0;bb<115;bb++) //1ms基準(zhǔn)延時(shí)程序
- {
- ;
- }
- }
-
- }
- void motor_ccw()
- {
- uchar i,j,k;
- for(k=0;k<128;k++)
- {
- for(j=0;j<8;j++) //電機(jī)旋轉(zhuǎn)一周,不是外面所看到的一周,是里面的傳動(dòng)輪轉(zhuǎn)了一周
- {
- for(i=0;i<8;i++) //旋轉(zhuǎn)45度
- {
- P1=CCW[i];
- delaynms(1); //調(diào)節(jié)轉(zhuǎn)速
- }
- }
- }
- P1=0xf0;
- }
- void motor_cw()
- {
- uchar i,j,k;
- for(k=0;k<128;k++)
- {
- for(j=0;j<8;j++)
- {
- for(i=0;i<8;i++) //旋轉(zhuǎn)45度
- {
- P1=CW[i];
- delaynms(1); //調(diào)節(jié)轉(zhuǎn)速
- }
- }
- }
- P1=0xf0;
- }
復(fù)制代碼
|
|