#include 'WZ01_SN_A_V1.0.h' #include 'Uart3.h'

ulong System1MsCnt = 0; ulong SystemSecond = 0; uchar CmdFFlag = 0;

void Timer0Init() { AUXR |= 0x80;

TMOD = 0x00;
TL0 = T1MS;
TH0 = T1MS >> 8;
TR0 = 1;
ET0 = 1;
EA = 1;

}

void Timer0_ISR() interrupt 1 using 1 { static uint counter0 = 0; static uint second = 0; counter0++; System1MsCnt++;

if (System1MsCnt % 1000 == 0)
{

// BUZZER=!BUZZER; second++; if(second%2 == 0) { if(CmdFlag == 1) { OledClearHalf(1); OledSprintf(1,1,' 继电器控制 '); CmdFlag = 0; } } } } void main(void) { char *ptrTemp = NULL; uint i=0; uint temp=0; uchar buff[20]={0};

SetBit(P1M0,1); //配置 DATA_IO1 为强推挽输出,用于控制继电器 ClrBit(P1M1,1); DATA_IO1 = 0; //低电平

BUZZER_INIT(); LED_INIT(); KEY_INIT();

Timer0Init();

OledInit(); OledClear(); OledSprintf(1,1,' 继电器控制 '); OledSprintf(3,1,'关');

while(1) { if(KEY1==0) { DelayMs(20); if(KEY1==0) { temp++; OledClearHalf(2); if(temp%2==0) { LED2_OFF(); LED3_ON(); DATA_IO1 = 0; BUZZER_ON(); DelayMs(100); BUZZER_OFF(); OledSprintf(3,1,'关'); } else { LED2_ON(); LED3_OFF(); DATA_IO1 = 1; BUZZER_ON(); DelayMs(300); BUZZER_OFF(); OledSprintf(3,1,'开'); } } } if(gUart3_RecvFlag==1) gUart3_RecvFlag = 1; strncpy(gUart3_RecvBuf,gUart1_RecvBuf,gUart1_RecvBuf[0]); memset(gUart1_RecvBuf,0,SIZEOF(gUart1_RecvBuf)); gUart3_RecvFlag = 0; { Send1String(gUart3_RecvBuf+1); CmdFlag = 1; OledClearHalf(1); //显示前先清除 OledSprintf(1,1,gUart3_RecvBuf+1);

if(strncmp(gUart3_RecvBuf+1,'#var 1',6)==0) { OledClearHalf(2); if(gUart3_RecvBuf[8]=='1') { DATA_IO1 = 1; LED2_ON(); LED3_OFF(); BUZZER_ON(); DelayMs(300); BUZZER_OFF(); OledSprintf(3,1,'开'); } else { DATA_IO1 = 0; LED2_OFF(); LED3_ON(); BUZZER_ON(); DelayMs(100); BUZZER_OFF(); OledSprintf(3,1,'关'); } } else if(strncmp(gUart3_RecvBuf+1,'#key 1',6)==0)//键值方式控制继电器 { OledClearHalf(2); DATA_IO1 = 1; LED2_ON(); LED3_OFF(); BUZZER_ON(); DelayMs(300); BUZZER_OFF(); OledSprintf(3,1,'开'); } else if(strncmp(gUart3_RecvBuf+1,'#key 2',6)==0) { OledClearHalf(2); DATA_IO1 = 0; LED2_OFF(); LED3_ON(); BUZZER_ON(); DelayMs(100); BUZZER_OFF(); OledSprintf(3,1,'关'); } memset(gUart3_RecvBuf,0,SIZEOF(gUart3_RecvBuf)); gUart3_RecvFlag = 0; } } }

STC 单片机继电器控制程序 - 基于按键和串口指令

原文地址: https://www.cveoy.top/t/topic/nw7T 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录