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

📄 08111-081121c18.c

📁 实现电动机的软启动控制
💻 C
📖 第 1 页 / 共 5 页
字号:

#include "p18f4680.h" 
#include "stdio.h"
#include "string.h"

#pragma config OSC = HSPLL

#pragma config IESO = OFF
#pragma config PWRT = ON
#pragma config WDT = ON
#pragma config LVP = OFF
#pragma config FCMEN = OFF
#pragma config BOREN = BOHW
#pragma config BORV = 2
#pragma config WDTPS = 1024
#pragma config MCLRE = ON
#pragma config LPT1OSC = OFF
#pragma config PBADEN = OFF
#pragma config DEBUG = OFF
#pragma config XINST = OFF
#pragma config STVREN = ON

#define _40M
#define BufMax 39
#define SD 	    PORTCbits.RC5
#define SCK 	PORTCbits.RC3

#define KEYUP     6//0x01
#define KEYENTER  5//0x02
#define KEYDOWN   3//0x03
#define KEYSET    0x55//0x04
#define KEYSTART  0xaa//0x05
#define KEYSTOP   0x5a//0x06
#define KEYRESET  0xa5//0x07

/* register x_number[0x17] is stored,the default value is 0 */
#define MainSlaveMode x_number[0x17]
#define AloneMode  0
#define MainMode   4
#define Slave1Mode 1
#define Slave2Mode 2
#define Slave3Mode 3

#define E2RAM ee_toram()
#define E2CRC eecrc()

#define CLRWDT() ClrWdt()
#define bug
#define line1 0x80 //80 81 82 83 84 85 86 87
#define line2 0x90 //90 91 92 93 94 95 96 97
#define line3 0x88 //88 89 8a 8b 8c 8d 8e 8f
#define line4 0x98 //98 99 9a 9b 9c 9d 9e 9f

/* 200ms,if Focs is 20MHz,the value is 85ee,if Focs is 40MHz,the value is 0x0bdc */
#define T0LValue 0xdc
#define T0HValue 0x0b

/* 100us,if Focs is 20MHz,the value is fe0b,if Focs is 40MHz,the value is  fc18*/
#define T1LValue 0x18
#define T1HValue 0xfc

/* 5ms,if Focs is 20MHz,the value is 9e58,if Focs is 40MHz,the value is 0x3cb0 */
#define T3LValue 0x01//0xb0
#define T3HValue 0x00//0x3c

#define CURRENT  0x1c
#define VOLTAGE  0x1b

#define KEYMASK 0x07

#define uchar unsigned char
#define uint  unsigned int

#pragma udata bank3=0x100
static uchar data_bufx[11];
static uchar data_buf0x[11];
static uchar Bufferx[40];
static uchar NumberBufferx[20];
static uchar *data_buf=&data_bufx[0];
static uchar *data_buf0=&data_buf0x[0];
static uchar *Buffer=&Bufferx[0];
static uchar *NumberBuffer=&NumberBufferx[0];
static uchar  *DataPoint;
static uchar *BufferPointIn;
static uchar *BufferPointOut;
static uchar address,MainSlaveModeBuf;
static uchar rece_timer;
static uchar wait_redo=0;
static uchar rece_counter=0;
static uchar send_number=0;
static uchar send_counter=1;
static uchar Flag10ms=0;
static uchar Counter10ms=0;
static uchar KeyScanCnt=0;
static uchar ControlStation;
static uchar MenuId=0;
static uchar KeyPressed=0,KeyValue=0;
static uchar ModbusReturnFlag;
static uchar CommunicationErrFlag=0;
static uchar DorrFlag=0;
static uchar SendFlag=0;
static uchar Delay200=0;
static uchar KeyValueBuf;
static uchar LcdScanTime=0; 
static uchar num_xix[8];
static uchar *num_xi=&num_xix[0];
static uint  x_numberx[40];
static uint  *x_number=&x_numberx[0];
static uint  DorrCounter;
static uint  *point; 
static uint ReadReturn;
 /* a=0x1234,b[0]=0x34 is low,b[1]=0x12 is high */
static union data
     {
       uint a;
       uchar b[2];     
     }buffer;
static uchar  rece_start;
static uchar  MainSendNoack;
static uchar  rece_ok;
static uchar  send_ok;
static uchar  LcdFlag;
static uchar KeyScanFlag;
static uchar KeyPress,time;
static uchar FactorySetFlag,EquipmentStartFlag;
static uchar ErroLcdFlag=0;
static uchar OneBuf,TowBuf,ThreeBuf,Fourbuf;
static uchar CheckForbid=0;
static uchar xm=0,ym=0;
#ifdef bug
static uchar KeySetFlag,KeyHHH;
#endif
#pragma udata

void GlobalInit(void);
void UsartInit(void);
void UsartSendSlave(uchar n);
void UsartSendMain(uchar n);
void UsartReceveSlave(void);
void Function_slave(void);
uint get_crc(uchar n);
uchar Function_03(uchar addr_8);
uchar Function_06(uchar addr_8);
void LcdInit(void);
void WriteCommand(uchar value);
void WriteData(uchar value);
void ErroStore(uint value);
void writeee2b(uint eevalue,uchar eeaddr);
void eecrc(void);
void ee_toram(void);
uchar readee(uchar eeaddr);
void None(void);
void writee(uchar eevalue,uchar eeaddr);
void ram_toee(uchar u);
void rom_toram(uchar u);
void delay(uint t);
void WriteByte(uchar value);
void WriteCommand(uchar value);
void WriteData(uchar value);
void KeyScan(void);
void KeyFunction(void);
void ChangeF(void);
void Init(void);
uint readee2b(uchar eeaddr);
void NumberDivide(uint n);
void NumberNoPointMain(uint number);
void LcdSelectBrush(uchar line,uchar num);
void LcdMain(void);
void LcdSlave(void);
void None(void);
void BrushValue(uchar line,uint value);
void PowerOn(void);
void RunModleSetLcd(void);
void SelectAsAloneLcd(void);
void LcdPageBrush(uchar one,uchar two,uchar three,uchar four);
uchar ModBusCommandWrite(uchar station,uint valueaddress,uint value);
uchar ModBusCommandRead(uchar station,uint valueaddress);
void None(void);
void SelectAsMainLcd(void);
void SelectAsAloneLcd(void);
void SelectAsSlave1Lcd(void);
void SelectAsSlave2Lcd(void);
void SelectAsSlave3Lcd(void);
void RunModleSetLcd(void);
void SetTheMainLcd(void);
void SetTheSlave1Lcd(void);
void SetTheSlave2Lcd(void);
void SetTheSlave3Lcd(void);
void SetTheValueLcd(void);
void SetTheAloneLcd(void);
void SetVoltagePercentageLcd(void);
void SetSoftStartTimeLcd(void);
void SetRatingCurrentLcd(void);
void SetCurrentLimitTimesLcd(void);
void SetCommunicationModleLcd(void);
void SetCh4ProtectLcd(void);
void MainSlaveDelay_LCD(void);
void SetGEquipmentLcd(void);
void SetCommunicationModleLcd(void);
void SetTemperatureProtectLcd(void);
void SetCh4ProtectLcd(void);
void SetBypassSwitchLcd(void);
void SetSoftStopTimeLcd(void);
void SetStartModLcd(void);
void SetSpeedValueLcd(void);
void SetSpeedProportionLcd(void);
void SetSpeedIntegralLcd(void);
void SetCurrentSelectLcd(void);
void SetCurrentProportionLcd(void);
void SetCurrentIntegralLcd(void);
void SetProtectShieldLcd(void);
void SetInductLcd(void);
void SetOverVoltageLcd(void);
void SetUnderVoltageLcd(void);  
void SoftStartTimeLcd(void);
void SoftStartTimeDec(void);
void SoftStartTimeInc(void);
void SoftStartTimeSet(void);
void VoltagePercentageLcd(void);
void VoltagePercentageDec(void);
void VoltagePercentageInc(void);
void VoltagePercentageSet(void);
void SelectOkLcd(void);
void RatingCurrentLcd(void);
void RatingCurrentDec(void);
void RatingCurrentInc(void);
void RatingCurrentSet(void);
  
void CurrentLimitTimesLcd(void);
void CurrentLimitTimesDec(void);
void CurrentLimitTimesInc(void);
void CurrentLimitTimesSet(void); 
void GEquipmentLcd(void);
void GEquipmentDec(void);
void GEquipmentInc(void);
void GEquipmentSet(void); 
void CommunicationModleLcd(void);
void CommunicationModleDec(void);
void CommunicationModleInc(void);
void CommunicationModleSet(void);  
void TemperatureProtectLcd(void);
void TemperatureProtectDec(void);
void TemperatureProtectInc(void);
void TemperatureProtectSet(void); 
void Ch4ProtectLcd(void);
void Ch4ProtectDec(void);
void Ch4ProtectInc(void);
void Ch4ProtectSet(void);  
void BypassSwitchLcd(void);
void BypassSwitchDec(void);
void BypassSwitchInc(void);
void BypassSwitchSet(void);
  
void SoftStopTimeLcd(void);
void SoftStopTimeDec(void);
void SoftStopTimeInc(void);
void SoftStopTimeSet(void);
  
void StartModLcd(void);
void StartModDec(void);
void StartModInc(void);
void StartModSet(void);  
void SpeedValueLcd(void);
void SpeedValueDec(void);
void SpeedValueInc(void);
void SpeedValueSet(void);  
void SpeedProportionLcd(void);
void SpeedProportionDec(void);
void SpeedProportionInc(void);
void SpeedProportionSet(void);
void SpeedIntegralLcd(void);
void SpeedIntegralDec(void);
void SpeedIntegralInc(void);
void SpeedIntegralSet(void);
void CurrentSelcetLcd(void);
void CurrentSelectDec(void);
void CurrentSelectInc(void);
void CurrentSelectSet(void);  
void CurrentProportionLcd(void);
void CurrentProportionDec(void);
void CurrentProportionInc(void);
void CurrentProportionSet(void);
void CurrentIntegralLcd(void);
void CurrentIntegralDec(void);
void CurrentIntegralInc(void);
void CurrentIntegralSet(void);
void ProtectShieldLcd(void);
void ProtectShieldDec(void);
void ProtectShieldInc(void);
void ProtectShieldSet(void);  
void InductLcd(void);
void InductDec(void);
void InductInc(void);
void InductSet(void);
void OverVProtectLcd(void);
void OverVProtectDec(void);
void OverVProtectInc(void);
void OverVProtectSet(void);  
void UnderVProtectLcd(void);
void UnderVProtectDec(void);
void UnderVProtectInc(void);
void UnderVProtectSet(void);
void MainSlaveDelaySetLcd(void);
void MainSlaveDelaySetLcd(void);
void MainSlave1DelayLcd(void);
void MainSlave1DelayDec(void);
void MainSlave1DelayInc(void);
void SetMainSlave1Delay(void);
  
void MainSlave1SelectLcd(void);
void MainSlave2SelectLcd(void);
void MainSlave3SelectLcd(void);
void ReturnValueSet(void);
void ReturnMainSlave(void);
  
void MainSlave2DelayLcd(void);
void MainSlave2DelayDec(void);
void MainSlave2DelayInc(void);
void SetMainSlave2Delay(void);
  
void MainSlave3DelayLcd(void);
void MainSlave3DelayDec(void);
void MainSlave3DelayInc(void);
void SetMainSlave3Delay(void);
  
void FactorySetValueLcd(void);
void Yes(void);
void Cancel(void);
void Yes(void);
void FactorySetValue(void);
void ErroViewLcd(void);
void Erro1Lcd(void);
void Erro2Lcd(void);
void Erro3Lcd(void);
void Erro4Lcd(void);
void Erro5Lcd(void);
void Erro6Lcd(void);
void Erro7Lcd(void);
void Erro8Lcd(void);
void Erro9Lcd(void);
void Erro10Lcd(void);

void ErroReturnLcd(void);
void EscLcd(void);
void Running(void);
void StopRunning(void); 
void MainResetLcd(void);
void MainResetLcd(void);
void Slave1ResetLcd(void);
void Slave2ResetLcd(void);
void Slave3ResetLcd(void);
void ResetSlave1(void);
void ResetSlave2(void);
void ResetSlave3(void);
void ResetMain(void);
void ValuePointBrush(uint n,uchar PointPosition,uchar line);

⌨️ 快捷键说明

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