📄 pull in test.c
字号:
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
//#define VOL_CON 4095
#define VOL_CON 3412
#define TIME_CON_T0 240
#define TIME_CON_T1 1000
sbit S_NO=P1^0;
sbit S_NC=P1^1;
sbit HOLD_D=P1^2;
sbit FAST=P1^3;
sbit MID=P1^4;
sbit SLOW=P1^5;
sbit SQR=P1^6;
sbit RMP=P1^7;
sbit PULL_THR_IN=P3^2;
sbit D=P3^4;
sbit AB=P3^5;
sbit A=P3^6;
uchar SPEED;
uint Z=0;
uint DIGIT_VAL=0;
static bit RISE=0;
static char WAVE;
static uint Y=0;
static bit NO_JUGHT=0;
void DELAY(uint A);
void T0_SRV(void);
void T1_SRV(void);
void VOLT_OUT(void);
void HOLD(void);
void SCAN_INPUT(void);
void main(void)
{
bit data START=0;
P0=0;
P2=0;
TMOD=0X11;
ET0=1;
ET1=1;
EA=1;
PT1=1;
HOLD_D=1;
while(1)
{
SCAN_INPUT();
VOLT_OUT();
if(START==0&&(SQR==0||RMP==0))
{
TL0=-(SPEED*TIME_CON_T0)%256;
TH0=-(SPEED*TIME_CON_T0)/256;
TL1=-TIME_CON_T1%256;
TH1=-TIME_CON_T1/256;
TR0=1;
START=1;
}
if(SQR!=0&&RMP!=0)
{
START=0;
DIGIT_VAL=0;
}
}
}
void DELAY(uint A)
{
TR0=0;
TR1=1;
while(A!=Z);
TR1=0;
TR0=1;
Z=0;
}
void T1_SRV(void) interrupt 3 using 2
{
TL1=-TIME_CON_T1%256;
TH1=-TIME_CON_T1/256;
Z++;
}
void T0_SRV(void) interrupt 1 using 1
{
TL0=-(SPEED*TIME_CON_T0)%256;
TH0=-(SPEED*TIME_CON_T0)/256;
switch(WAVE)
{
case 0:
{
if(Y==VOL_CON)
{
DIGIT_VAL=DIGIT_VAL^0XFFFF;
Y=0;
}
else
{
Y++;
}
} break;
case 1:
{
if(RISE==0)
{
if(DIGIT_VAL>=VOL_CON)
{
RISE=1;
//DELAY(1);
}
else
{
DIGIT_VAL++;
}
}
if(RISE==1)
{
if(DIGIT_VAL==0)
{
RISE=0;
//DELAY(1);
}
else
{
DIGIT_VAL--;
}
}
} break;
}
}
void VOLT_OUT(void)
{
P0=DIGIT_VAL%256;
P2=DIGIT_VAL/256;
}
void HOLD(void)
{
HOLD_D=0;
DELAY(700);
HOLD_D=1;
}
void SCAN_INPUT(void)
{
if(FAST==0) SPEED=1;
if(MID==0) SPEED=2;
if(SLOW==0) SPEED=3;
if(SQR==0)
{
if(WAVE==1) DIGIT_VAL=0;
WAVE=0;
HOLD_D=0;
}
if(RMP==0)
{
WAVE=1;
if(D==0)
{
if(PULL_THR_IN==0)
{
HOLD();
}
}
if(AB==0)
{
if(NO_JUGHT==0)
{
if(S_NO==0)
{
NO_JUGHT=1;
HOLD();
}
}
if(NO_JUGHT==1)
{
if(S_NO==1)
{
NO_JUGHT=0;
HOLD();
}
}
}
if(A==0)
{
if(NO_JUGHT==0)
{
if(S_NO==0)
{
NO_JUGHT=1;
HOLD();
}
}
if(NO_JUGHT==1)
{
if(S_NO==1)
{
NO_JUGHT=0;
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -