⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 all.h

📁 数控系统的模拟系统,用SSTC51仿真单片机,仿真数控机床切割,能执行数控机床代码.
💻 H
字号:


#define LOWBYTE(v)    ((unsigned char)(v))               /*双字节取低8位*/
#define HIGHBYTE(v)  ((unsigned char)(((unsigned int)(v))>>8))  /*双字节取高8  位*/
//#define R_1   //遥控器1
//#define R_2  //遥控器2
#define R_3  //遥控器3
#define T2
//#define Y12                 /*11.0592M晶振*/
#define Y22               /*22.1184M晶振*/

#if 0
sfr  T2CON	=	0xC8;
sfr  T2MOD	=	0xC9;
sfr  RCAP2L =	0xCA;
sfr  RCAP2H =	0xCB;
sfr  TL2	=0xCC;
sfr  TH2	=	0xCD;
#endif
sfr  SFAL	=	0xB3;
sfr  SFAH=0xB4;
sfr  SFCF	=0xB1;
sfr  SFCM =0xB2;
sfr  SFDT=0xB5;
sfr  SFST	=0xB6;

#ifdef  T2
sfr     T2CON = 0xC8;
sfr    T2MOD = 0xC9;
sfr     RCAP2H=0xcb;
sfr    RCAP2L=0xcA;
sfr    TL2  = 0xCC;
sfr    TH2   = 0xCD;
sbit   TF2=T2CON^7; 
sbit    EXF2=T2CON^6; 
sbit   RCLK=T2CON^5; 
sbit   TCLK=T2CON^4;
sbit   EXEN2=T2CON^3;
sbit   TR2=T2CON^2; 
sbit    C_T2=T2CON^1;
sbit    CP_RL2=T2CON^0;
unsigned char u=0x30,v=0x30;
#define TF2_VECTOR  5
#define MSB_reload_value 0x04 /* msb reload 4value exemple 高位重载值:延时1s*/
 #define LSB_reload_value 0x00 /* lsb reload value exemple 低位重载值*/
#endif
unsigned char interrupt_flag=0;/*中断标志,为1时停止输出*/

//按键定义
//遥控器1
#ifdef  R_1
#define  The_user_code_of_I2C 0x12
#define FuHao      0X0B
#define RUN      0X49
#define MDI      0X14
#define KEY_ManualOperation   0X1F 
#define GB_UP      0X1A
#define GB_DOWN    0X1E
#define UP         0X1B
#define DOWN       0X1F
#define K0         0X00
#define K1         0X01
#define K2         0X02
#define K3		   0X03									     
#define K4         0x04
#define K5         0X05
#define K6         0X06
#define K7         0X07
#define K8         0X08
#define K9         0X09
#define G00        0X58  
#define G01        0X13
#define G02        0X54
#define G03        0X0E
#define G04        0X0F
#define M02        0X4F
#define  G91           0x56
#define ENTER      0X52
#define X1		   0X1D
#define Y1		   0X51
#define DEL	       0X10
#define KEY_Y_PMove	   0X57
#define KEY_Y_NMove   0X56
#define KEY_X_NMove	   0X5B
#define KEY_X_PMove	   0X5F
#define TING       0X5C
#define	 ORIGIN  0X17
#define	 F  0X17
#endif
#ifdef  R_2
//遥控器2
//#define  Edit  0x12
#define FuHao      0X33
#define RUN      0X06
#define MDI      0X54
#define  NEW_CODE 0X10
#define KEY_ManualOperation   0X0c
#define GB_UP      0X1E
#define GB_DOWN    0X48
//#define UP         0X1e
//#define DOWN       0X48
#define LEFT	   0X1C
#define RIGHT  0X0F
#define K0         0X12
#define K1         0X09
#define K2         0X1d
#define K3		   0X1f									     
#define K4         0x0d
#define K5         0X19
#define K6         0X1b
#define K7         0X11
#define K8         0X15
#define K9         0X17
#define G00        0X40 
#define G01        0X4c
#define G02        0X54
#define G03        0X0a
#define G04        0X10
#define M02        0X0e
#define M46        0X1A //
#define M47        0X0C//
#define  G90           0x1c
#define  G91           0x0f
#define ENTER      0X14
#define X1		   0X16
#define Y1		   0X4d
#define DEL	       0X03
#define KEY_Y_PMove	   0X1e
#define KEY_Y_NMove   0X48
#define KEY_X_NMove	   0X1c
#define KEY_X_PMove	  0X0f
#define TING       0X14
#define ORIGIN  0X05
#define  EXIT  0x05
#define  STOP 0x14
#define  SPEED 0x59
#define GET_G_FROM_24C02 0X1a
#endif
#ifdef  R_3
#define FuHao      0X16
#define RUN      0X47
#define MDI      0X10
#define  NEW_CODE 0X10
#define KEY_ManualOperation   0X5A
#define GB_UP      0X0b
#define GB_DOWN    0X13
//#define UP         0X0B
//#define DOWN       0X13
#define K0         0X45
#define K1         0X00
#define K2         0X01
#define K3		   0X42									     
#define K4         0x43
#define K5         0X02
#define K6         0X03
#define K7         0X41
#define K8         0X40
#define K9         0X06
#define G00        0X1a  
#define G01        0X1b
#define G02        0X59
#define G03        0X58
#define G04        0X1E
#define M02        0X5c
#define M46        0X50
#define M47        0X54
#define  G90           0x1f
#define  G91           0x5d
#define ENTER      0X0f
#define X1		   0X0a
#define Y1		   0X49
#define DEL	       0X44
#define KEY_Y_PMove	   0X0b
#define KEY_Y_NMove   0X13
#define KEY_X_NMove	   0X4d
#define LEFT	   0X0e
#define RIGHT  0X4d
#define KEY_X_PMove	  0X0e
#define TING       0X0f
#define ORIGIN  0X15
#define  EXIT  0x5f
#define  STOP 0x46
#define  C_STOP 0x05
#define  SPEED 0x17
#define  INSERT 0x55
#define  I 0x12
#define  K 0x51
#define JINTING 0x04
#endif

#define LENTH    180
unsigned char idata xunhao1=0x30;
unsigned char  idata xunhao=0x30; 
unsigned char idata buf[LENTH];//={G02,X1,FuHao,0X00,0X04,0X01,Y1,0X00,0X03,0X05,I,FuHao,0X00,0X03,0x06,K,0X00,0X00,0X01,SPEED,1,ENTER,M02,0XFF,0XFF,0xFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0xFF,0XFF};
unsigned char  *s;
unsigned char    idata  i=4;
unsigned char  F;
unsigned int  kc=0;
#define Busy          0x80         //用于检测LCM状态字中的Busy标识  
#ifdef Y22
#define DELAY  24
#define  ir_time    900   //红外脉冲时间定义22.1184M
#endif
#ifdef Y12
#define DELAY  12
#define  ir_time    450   //红外脉冲时间定义22.1184M
#endif
unsigned char   idata  ir_data[4];                //红外数据
unsigned char   idata  ir_signtime;               //脉冲宽度计数器
unsigned char   idata  ir_sign_count=0;         //脉冲记数
unsigned char    idata ir_temp ;               //临时红外数据
unsigned char    idata    ir_rpt1,ir_rpt2;        //红外脉冲复计数器
bit 	         ir_start_flag=1,ir_flag;        //引导信号标记//红外数据解码成功标记
bit  lf_flag=0;//连发标志
 //电机信号脚定义
sbit X_F=P1^0;
sbit X_M=P1^1;
sbit Y_F=P1^2;
sbit Y_M=P1^3;
sbit TAI_BI=P1^6;
sbit Y_DIAN=P1^4;
sbit X_DIAN=P1^5;
#if 1
#define  LCM_Data  P2
sbit LCM_RW=P0^6;        //定义引脚
sbit LCM_RS=P0^5;
sbit LCM_E=P0^7;
#endif
#if 0
#define  LCM_Data  P2
sbit LCM_RW=P3^5;        //定义引脚
sbit LCM_RS=P3^4;
sbit LCM_E=P1^7;
#endif

///sbit   sda=P3^6; //I2C 引脚定义
//sbit   scl=P3^7;
#if 0
//圆插补
int idata XE=0;  /*终点横坐标*/
int idata YE=3000;/*终点纵坐标*/
int  idata XS=3000;/*起点横坐标*/
int  idata YS=0;/*起点纵坐标*/
int  idata FM;
int  idata ny;
int  idata STEP=1;
int  idata NR=1;
int  idata XOYY;
#endif
 unsigned char  idata NR=1;
signed int n;                                           /*总步数*/
int  idata XS=0;/*起点横坐标*/
int  idata YS=0;/*起点纵坐标*/
int  idata FM;
int  idata ny;
 //子函数声明
 void Jamp_to_user_pragram(void);
void WriteDataLCM(unsigned char WDLCM);
void WriteCommandLCM(unsigned char WCLCM,BuysC);
unsigned char ReadStatusLCM(void);
void LCMInit(void);
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);
void  Interrupt_DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData) ;
void Delay5Ms(void);
void Delay400Ms(void);
void Lcd_print(unsigned char *DData); 
void key_handle(void);
void Lcd_print1(unsigned char h,unsigned char s,unsigned char DData[5]);
void serial_number_down(void);
void serial_number_up(void);
void number_input(void);
void LocateXY( char posx,char posy);
unsigned char ReadLCM(void);
void   pre_up(void);
void  forward_down(void);
void  ManualOperation(void);
void  Y_PMove(void);
void  Y_NMove(void);
void  X_PMove(void);
void X_NMove(void);
void  Y_Reset(void);
void X_Reset(void);
void  G_translation(void);
void get_xyf(void);
void display_first_buf(void);
void displayY(void);
void displayX(void);
void displayXY(void);
void DelayXS(unsigned char x);        //延时x秒
void TandC_Tnit(void);
void  display_buf(void);
  void Del_one_char(void);
  void Insert_one_char(void);
void Opreation(void);
void circle_interpolation(int XS,int YS,int XE,int YE);
void  start_handler(void);
void getin_system(void) ;         /*进入系统5秒到计时*/
void main(void);

void SaveXYToNVRAM(void);
void ReadXYFromNVRAM(void);
void    SaveGcodeToI2C(void);
void ReadGcodeToI2C(void);
void buf_0xff(void);

#define  xadd   0x01;
#define  yadd  0x02;
#define  user1_add  0x0A;
#define  user2_add  0x300;
#define  CODEEND  0xEF;

unsigned int  idata  Pref_x;
 unsigned int  idata  Pref_y;


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -