📄 star_ctl.c
字号:
#include "set_port.h"
#include <REG51.h>
void Tmr_Init(void) ;
void port_Init(void);
void UART_Init(void);
void T5_DO(void);
void send_mode(uint8 i);
void enable_send(void);
uint8 modesel=1;
uint8 T5COUT=0;
uint16 KEY_COUT=0;
uint16 t0_cout=0;
uint16 KEY2_COUT=0;
uint16 KEY3_COUT=0;
uint8 send_sig=0;
uint8 modeoff=0;
main()
{
UART_Init();
port_Init();
Tmr_Init();
while(1)
{if(T5COUT==1)
T5_DO();
}
}
void Tmr_Init(void)
{IP=0;
IPH=0;
TMOD=0x21; //定时1自动重载,定时0 16位定时
TCON=0; //启动定时1,定时0,启动定时1即启动波特率
TH0=0xd4;
TL0=0x0d; //定时0延迟5MS
TH1=0xF9;
TL1=0xF9;
EA=1;
ET0=1;
ET1=0;
ES=0;
TR1=1;
TR0=1;
}
void port_Init(void)
{RT_CON=1; //控制485芯片发送信号
P1M1=0XF0; //p1高四位推挽输出
P1M0=0X00;
P3M1=0; //P3准双向I/O
P3M0=0;
LED1=1;
LED2=0;
LED3=0;
LED4=0;
TX=1;
}
void UART_Init(void)
{ SCON=0X70;
AUXR=0;
}
void Timer0_Interrupt(void) interrupt 1
{
TH0=0xd4;
TL0=0x0d;
T5COUT++;
}
void T5_DO(void)
{
T5COUT=0;
if(KEY1==0&KEY2==1)
{KEY_COUT=0;KEY2_COUT=0;}
if(modeoff==1)
{KEY_COUT=0;KEY2_COUT=0;}
if(KEY1==0)
KEY_COUT++;
else
{if(KEY_COUT>20)
{modesel++;
t0_cout=0;
if(modesel==6)
modesel=1;
send_sig=1;
}
KEY_COUT=0;
}
/*if(KEY2==0)
KEY2_COUT++;
else
{if(KEY2_COUT>20)
{modesel--;
t0_cout=0;
if(modesel==0)
modesel=5;
send_sig=1;
}
KEY2_COUT=0;
} */
if(KEY2==1)
KEY2_COUT++;
else
{if(KEY2_COUT>20)
{modesel++;
t0_cout=0;
if(modesel==6)
modesel=1;
send_sig=1;
}
KEY2_COUT=0;
}
if(KEY3==1)
KEY3_COUT++;
else
{if(KEY3_COUT>20)
{ t0_cout=0;
if(modeoff==1)
modeoff=0;
else
modeoff=1;
send_sig=1;
}
KEY3_COUT=0;
}
enable_send();
t0_cout++;
if(t0_cout>580)
{t0_cout=0;
if(modeoff==0)
send_mode(0);
}
}
void enable_send(void)
{if(send_sig)
{ if(modeoff==1)
{LED1=0;LED2=0;LED3=0;LED4=0;send_mode(6);}
else
{if(modesel==1)
{LED1=1;LED2=0;LED3=0;LED4=0;send_mode(1);}
else if(modesel==2)
{LED1=0;LED2=1;LED3=0;LED4=0;send_mode(2);}
else if(modesel==3)
{LED1=0;LED2=0;LED3=1;LED4=0;send_mode(3);}
else if(modesel==4)
{LED1=0;LED2=0;LED3=0;LED4=1;send_mode(4);}
else if(modesel==5)
{LED1=1;LED2=1;LED3=1;LED4=1;send_mode(5);}
}
send_sig=0;
}
}
void send_mode(uint8 i)
{ ES=0;TI=0;SBUF=i;
while(!TI)
{;}
TI=0;
TX=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -