📄 1t.c
字号:
/*四料配料机程序* W/ T
/*实重配料实重配料实实重配料实重配料*/
/*更新日期2005/12/6*/
/*应高永力公司左右卸料修改,修改后 改原来主机开门F2为卸料2 只有触发3被触发一下并且提升时间必须设置成大于1的数*/
/*F2有输出直到卸料完成,如果提升时间不为零,则计时满该点输出主机开门信号,搅拌+开门时间=0则不显示*/
/****************************debug**********************************************/
/********************SHURU输入重新定义*****/
#include<reg51.h>
#include<absacc.h>
#include <STRING.H>
#include<math.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define INBUF_LEN 14 /*/数据发送至少14个字节长度*/
/**************************/
/*0x0000--0x1fff 6264 0x2000--0x3fff 2864
//0x4000--0x4003 8255 0x6000--0xffff LCD*/
#define DOUT8255 XBYTE [0x4000] /*DOUT8255数据口A*/
#define DIN8255 XBYTE [0x4001] /*DIN8255数据口B*/
#define PC8255 XBYTE [0x4002]
#define COM8255 XBYTE [0x4003] /*8255命令口*/
#define LCDDATA XBYTE [0x6000] /*LCD数据口*/
/*6个按键键值*/
#define KEYUP 0xc0
#define KEYDOWN 0x80
#define KEYENTER 0x60
#define KEYESC 0xa0
#define KEYRUNSTOP 0x20
#define KEYZERO 0x40
#define UP_KEY 1
#define DOWN_KEY 2
#define ENTER_KEY 3
#define ESC_KEY 4
#define RUN_KEY 5
#define ZERO_KEY 6
/*3个按钮键值*/
#define BTNMIX 7
#define BTNSTOP 8
#define BTNUNLOAD 9
#define READY 1/*????0*/
#define MIX_PAUSE 2
#define ULD_PAUSE 3
#define MIXING 4
#define UNLOADING 5
#define ANSWER_MIX 6
#define ANSWER_ULD 7
#define PD_ANSWER_MIX 8
#define PD_ANSWER_ULD 9
#define ZERO_OVER 10
#define WAIT_MIX_EN 11
#define WAIT_ULD_EN 12
#define MIX_TIME_OV 13
#define ULD_TIME_OV 14
#define SENSOR_FAULT 16
#define MIX_PD_FLAG 0x55
#define ULD_PD_FLAG 0xaa
#define STAPLE1 1
#define STAPLE2 2
#define STAPLE3 3
#define STAPLE4 4
#define WAIT_STAPLE1 5
#define WAIT_STAPLE2 6
#define WAIT_STAPLE3 7
#define WAIT_STAPLE4 8
#define judge 9
#define WEIGHT_OVER 15/*pei配料超差*/
/**********控制模式定义*************/
#define MANUAL 1
#define HALF 2
#define ALL 3
#define CH_STP1 4
#define CH_STP2 3
#define CH_STP3 2
#define CH_STP4 0
#define CH_ULD 1
#define CH_ALM 5
#define CH_PX 6/*配卸完成信号*/
#define CH_RST7715 7
#define ON 1
#define OFF 0
/*********EEPROM********/
#define CURRENT_SCALE_NUM XWORD[0x1080]
#define ZERO_AD XWORD[0x1081]
#define REF_AD XWORD[0x1082]
#define UNIT_KG XWORD[0x1083]
#define MIXED_WEIGHT XWORD[0x1085]
#define SET_WEIGHT XWORD[0x1086]
#define GRAUTBAGE XWORD[0x1087]
#define WEIGHT_REF XWORD[0x1088]
#define STAPLE_STATUS XWORD[0x1089]
#define MIXED_GUD XWORD[0x108a]
#define WORK_STATUS XBYTE[0x108b]
/*********TONGXUN*************/
/*****************/
sbit SCLK=P1^0; /*AD7715 clock pin*/
sbit CSADC=P1^1; /*AD7715 chip select*/
sbit DRDY=P1^2; /*AD7715 ready*/
sbit SDIO=P1^3; /*AD7715 data pin*/
sbit WDI=P1^4; /*watch dog feed*/
sbit KN0=P1^5; /*KEY number uncode in data pin*/
sbit KN1=P1^6;
sbit KN2=P1^7;
sbit LCDRW=P3^3; /*LCD read or write sign*/
sbit LCDDI=P3^4; /*LCD data or instruction control*/
sbit Cflag=ACC^7;/*C标志*/
/******************/
bit TaskSampFlag=0;
bit TaskDispFlag=0;
bit TaskKeyFlag=0;
bit JSFlag=0;
bit JSFlag2=0;
bit MixEnable=0;
bit UldEnable=0;
bit BtnRls=0;
bit ULD_flag=0;
bit HIGH_flag=0;
bit TiSHeng_flag=0;
bit XW_flag=0;
bit CF2_flag=0;
bit HS_flag=0;/*HUSUO */
int xdata AD_flag=0;
/*********通讯参数*********/
uchar xdata inbuf1[INBUF_LEN];/*命令长度*/
uchar xdata zs;
uchar xdata ST1[4];
uchar xdata ST2[4];
uchar xdata ST3[4];
uchar xdata ADDR[4];
uchar xdata COMD1[4]={"0000"};
uchar xdata COMD2[2]={"PF"};
uchar xdata COMD3[2]={"ZS"};
uchar xdata COMD4[4];
uchar xdata REceTM=100;
uchar xdata DATA1[4];
uchar xdata DATA2[4];
uchar xdata SEND1[INBUF_LEN];
uchar xdata SEND[INBUF_LEN];
uchar xdata checksum;
bit read_flag=0;
bit txxh_flag=0;/*通讯循环*/
bit zc_flag=0;/*主机、从机标志*/
bit lj_flag=0;
sbit en=P3^5;
int xdata little1=0;
int xdata little2=0;
int xdata little3=0;
int xdata little4=0;
uchar SysStatus=READY;
uchar SysTick=0;
uchar xdata menu1=0;
uchar xdata menu2=0;
uchar xdata menu3=0;
char xdata button;
uchar xdata CtrlMode=0;
uchar xdata SampNum=0;
int xdata StepErr=0;
int xdata RefZero=0;
int xdata ZeroAd;
int xdata CurrentEditVar=0;
int xdata StapleWeight1=0;
int xdata StapleWeight2=0;
int xdata StapleWeight3=0;
int xdata StapleWeight4=0;
int CurrentWeight;
int xdata OldWeight;
int xdata RefAD;
int xdata UnitKG;
int xdata AdBuff[20];
long xdata SumAd=0;
int xdata fzero=0;/*零点偏差0x3000*/
int xdata ferro=0;/*报警范围0x3001*/
int xdata Piont=0; /*小数位数设定3004*/
int xdata MM; /*0X3006上升时间*/
int xdata ww; /*l落差补偿设定0X3005*/
int xdata px;
uchar xdata StapleStatus=0;
int xdata MixWaitTm=0;
int xdata UldWaitTm=0;
int xdata YXtm=0;/*延时卸料*/
int xdata testTM=0;
int xdata ErrCtr=0;
int xdata TimeFlag;
uchar xdata KeyNumber=0;
uchar xdata KeyPressTime[6];
uchar xdata CurrentScaleNum;
uchar xdata TempStatus=READY;
int xdata diffe;
int xdata diff;
int xdata WeightRef;
int xdata graduate;/*累计重量*/
int xdata graduate1; /*单次循环累计*/
int xdata SetWeight;/*设定总重*/
int xdata PerCubage;/*每斗料重*/
struct mixscales{int scl1;int scl2;int scl3;int scl4;
uchar ltl1;uchar ltl2;uchar ltl3;uchar ltl4;
}xdata MixScale[21];/*配方*/
/*内部参数2*/
int xdata XXX;
int xdata Dtime=0;
int xdata Time=0;
int xdata TimeJB;
int xdata TimeKM;
int xdata TimeTS;
int xdata xy;
/***********/
int xdata hh;
int xdata aut1;
int xdata aut2;
int xdata yx=0;/*延卸*/
int xdata aut4;
int xdata aul4;/*调试*/
/**************************/
int xdata Twencheng;
/******************/
void WaitDrdy(void);
void delay_5us(void){;;}
void DogFeed(void);
void BusyLCD(void);
void WriteCmdLCD(uchar i);
void WriteDataLCD(uchar i);
void initialize(void);
void SampDout(void);
void UpdateScreen(void);
void KeyBtnDin(void);
void DisplayMsg(uchar *msg);
void MenuCursor(uchar i);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -