程序一:(二相励磁法) #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit d1=P1^0; sbit d2=P1^1; sbit d3=P1^2; sbit d4=P1^3; #define A {d1=1,d2=0,d3=0,d4=0;} #define B {d1=0,d2=1,d3=0,d4=0;} #define C {d1=0,d2=0,d3=1,d4=0;} #define D {d1=0,d2=0,d3=0,d4=1;} #define E {d1=0,d2=0,d3=0,d4=0;} #define AB {d1=1,d2=1,d3=0,d4=0;} #define BC {d1=0,d2=1,d3=1,d4=0;} #define CD {d1=0,d2=0,d3=1,d4=1;} #define DA {d1=1,d2=0,d3=0,d4=1;} void delay(uchar t) { while(--t); } void delayMS(uchar t) { while(t--) { delay(245); delay(245); } } uchar speed; void main() { uint i=512; speed=8; E while(i--) { AB delayMS(speed); BC delayMS(speed); CD delayMS(speed); DA delayMS(speed); } i=512; E while(i--) { DA delayMS(speed); CD delayMS(speed); BC delayMS(speed); AB delayMS(speed); } } 程序二:(一相励磁法) #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit d1=P1^0; sbit d2=P1^1; sbit d3=P1^2; sbit d4=P1^3; #define A {d1=1,d2=0,d3=0,d4=0;} #define B {d1=0,d2=1,d3=0,d4=0;} #define C {d1=0,d2=0,d3=1,d4=0;} #define D {d1=0,d2=0,d3=0,d4=1;} #define E {d1=0,d2=0,d3=0,d4=0;} void delay(uchar t) { while(--t); } void delayMS(uchar t) { while(t--) { delay(245); delay(245); } } uchar speed; void main() { uint i=512; speed=8; E while(i--) { A delayMS(speed); B delayMS(speed); C delayMS(speed); D delayMS(speed); } i=512; E while(i--) { D delayMS(speed); C delayMS(speed); B delayMS(speed); A delayMS(speed); } }