www.pudn.com > stepper_motor_controller.rar > head.h


//********* interrupt entry *********** 
// 0   EXTERNAL INT 0   0003h 
// 1   TIMER/COUNTER 0  000Bh 
// 2   EXTERNAL INT 1   0013h 
// 3   TIMER/COUNTER 1  001Bh 
// 4   SERIAL PORT      0023h 
//************************************** 
 
//*** 函数定义*** 
void long_delay(void); 							//长延时 
void short_delay(void); 						//短延时 
void delay5p5ms(unsigned char); 					//10MS延时KEY_ 
void write7279(unsigned char, unsigned char);	//写HD7279 
unsigned char read7279(unsigned char);			//读HD7279 
void send_byte(unsigned char); 					//发送一个字节 
unsigned char receive_byte(void); 				//接收一个字节 
void led0_show(int dis ); 
void led1_show(unsigned int dis);							//控制输入角度的数码管显示 
void data_shift(unsigned char *p,unsigned char ); 
void key_int(void); 
void int0_serv( void )  ;				//key and led show 
void stepping(unsigned char delay_n ); 
 
//*** I/O定义 *** 
unsigned char digit[5]; 
unsigned char key_number; 
unsigned int  tmr; 
 
//*** 有关步进电机控制定义 
	unsigned char keyin_data[3];				//BCD of keyin_angle 键入角度的BCD码 
	unsigned int  step_angle;					//keyin_cnt :counte the times of key pressed.键入的次数 
	unsigned int  keyin_angle;					//keyin_angle :保存键入的角度  angle:实际转的总过角度和 
	unsigned int  real_angle;					// real_angle :动态转过的角度 
	int angle;											//step_angle:keep the actual angle that the motor has roated for. 
	unsigned int delay;							// 控制步进电机的转速 
	 
	bit	 flag_cw;								//正转反转标志位 
	bit  flag_run;								//停止位 
	bit  flag_sign;								//角度正负标志 
	 
//****** HD7279A ****** 
	sbit cs=P1^4; 				// cs at P1.4 
	sbit clk=P1^5;				// clk P1.5 
	sbit dat=P1^2; 				// dat P1.2 
	sbit key=P1^3; 				// key P1.3 
 
 
//****** HD7279A指令 ****** 
	#define CMD_RESET 0xa4 
	#define CMD_TEST 0xbf 
	#define DECODE0 0x80		//十进制编码,0x0f消隐 
	#define DECODE1 0xc8		//十六进制编码 
	#define CMD_READ 0x15 
	#define UNDECODE 0x90 
	#define RTL_CYCLE 0xa3 
	#define RTR_CYCLE 0xa2 
	#define RTL_UNCYL 0xa1 
	#define RTR_UNCYL 0xa0 
	#define ACTCTL 0x98 
	#define SEGON 0xe0 
	#define SEGOFF 0xc0 
	#define BLINKCTL 0x88 
	 
	#define	NNN	0x40 
 
 
//******* L297 ************** 
	sbit l297_cw=P1^0; 
	sbit l297_clk=P2^1; 
	sbit l297_half=P2^2; 
	sbit l297_en=P2^3; 
	sbit l297_ref=P2^4; 
	sbit l297_ctrl=P2^5; 
	sbit l297_rst=P2^6; 
 
 
//*******键值************** 
#define KEY_1 0x24 
#define KEY_2 0x2C 
#define KEY_3 0x34 
#define KEY_4 0x3C 
#define KEY_5 0x25 
#define KEY_6 0x2D 
#define KEY_7 0x35 
#define KEY_8 0x3D 
#define KEY_9 0x26 
#define KEY_0 0x2E 
#define KEY_A 0x36 
#define KEY_B 0x3E 
#define KEY_C 0x27 
#define KEY_D 0x2F 
#define KEY_E 0x37 
#define KEY_F 0x3F