📄 main_new_5_test.c
字号:
}
if((COUNT2_5>150)&&(COUNT2_5<199)) // 低电平
{
OUT2 = 0;
}
break;
//**********************************************************************************************************
// 波形2_6
// 与波形五类似,不过是连续脉冲,脉冲的形式与波形五一致。
//**********************************************************************************************************
case 6: //放在循环中外执行
//强度调整
// INTENSE_2 =(DISP_INTENSE_2*3)/4+1;
COUNT2_5++;
COUNT2_5 %=200;
if(COUNT2_5 == 25)
{
GATE1 = !GATE1;
if(GATE1 == 1)
GATE2 = 0;
else
GATE2 = 1;
}
//INTENSE_2 = INTENSE_2 +3;
//i=20;
if(COUNT2_5<100)
{
//if(COUNT2_5%2) //脉冲前半段
// {
if(INTENSE_2==1)
j = 1;
//else
else
// j = 0;
// TEMP2_5=j++;
j =( COUNT2_5 %INTENSE_2) + 4;
// else
// j = COUNT2_5-INTENSE_2 ;
//if(intense<10)
// i = intense;
// else
// {
// i = (intense/5)*(COUNT[type]/temp);
// }
OUT2 =1;
while(--j);
OUT2 = 0;
// }
}
if((COUNT2_5>150)&&(COUNT2_5<199)) // 低电平
{
OUT2 = 0;
}
break;
//**********************************************************************************************************
// 波形2_2
// 波形七:T=10s。疏密波。前9秒为疏密波,后1秒为低电平。前9秒分为9部分,
//每1秒为一个部分,九个部分为疏密间隔的波。疏波的频率为38HZ,密波的频率为92HZ。
//疏密波的脉冲宽度随强度增加而增加,对应关系与波形一相同
//(但是在每一秒内,脉冲的宽度不保持不变
//**********************************************************************************************************
case 2:
//强度调整
// INTENSE_2 =(DISP_INTENSE_2*3)/4+1;
GATE2 = 0;
GATE2 = 0;
COUNT2_7 ++;
COUNT2_7= COUNT2_7 % 200;
i = INTENSE_2+3;
if(COUNT2_7 <150)
{
if(COUNT2_7 % 50 ==0) //1S为一段
{
FLAG2_7 = !FLAG2_7;
}
if(FLAG2_7 ==1) //疏波
{
if(COUNT2_7 %2==0)
{
OUT2 =1;
while(--i); //宽度可调的高电平
OUT2 = 0;
}
}
if(FLAG2_7 ==0) //疏波
{
//if(COUNT2_7 %1==0)
// {
OUT2 =1;
while(--i); //宽度可调的高电平
OUT2 = 0;
// }
}
}
if((COUNT4 >=150)&&(COUNT4 <200))
OUT2 = 0;
break;
//**********************************************************************************************************
// 波形2_8
// 波形七:T=10s。疏密波。前9秒为疏密波,后1秒为低电平。前9秒分为9部分,
//每1秒为一个部分,九个部分为疏密间隔的波。疏波的频率为38HZ,密波的频率为92HZ。
//疏密波的脉冲宽度随强度增加而增加,对应关系与波形一相同
//(但是在每一秒内,脉冲的宽度不保持不变
//**********************************************************************************************************
case 8:
//强度调整
//INTENSE_2 =(DISP_INTENSE_2*3)/4+1;
COUNT2_7 ++;
COUNT2_7= COUNT2_7 % 300;
i = INTENSE_2;
if(COUNT2_7 <200)
{
if(COUNT2_7 % 50 ==0) //1S为一段
{
FLAG2_7 = !FLAG2_7;
GATE1 = !GATE1;
if(GATE1 == 1)
GATE2 = 0;
else
GATE2 = 1;
}
if(FLAG2_7 ==1) //疏波
{
if(COUNT2_7 %4==0)
{
OUT2 =1;
while(--i); //宽度可调的高电平
OUT2 = 0;
}
}
if(FLAG2_7 ==0) //疏波
{
if(COUNT2_7 %2==0)
{
OUT2 =1;
while(--i); //宽度可调的高电平
OUT2 = 0;
}
}
}
if((COUNT4 >=200)&&(COUNT4 <300))
OUT2 = 0;
break;
//**********************************************************************************************************
// 波形2_3
// 波形七:T=10s。疏密波。前9秒为疏密波,后1秒为低电平。前9秒分为9部分,
//每1秒为一个部分,九个部分为疏密间隔的波。疏波的频率为38HZ,密波的频率为92HZ。
//疏密波的脉冲宽度随强度增加而增加,对应关系与波形一相同
//(但是在每一秒内,脉冲的宽度不保持不变
//**********************************************************************************************************
case 3:
//i = INTENSE_2;
//强度调整
// INTENSE_2 =(DISP_INTENSE_2*3)/4+1;
GATE1 = 0;
GATE2 = 0;
COUNT2_9 ++;
//if( COUNT2_9 % (12 - INTENSE_2/10)==0)
if( COUNT2_9 % 8==0)
{
for(i=0;i<(INTENSE_2/2+1);i++)
{
k = INTENSE_2;
OUT2 =1;
while(--k);
OUT2 = 0;
k = INTENSE_2*2;
while(--k);
k = INTENSE_2*2;
while(--k);
//k = INTENSE_2*2;
// while(--k);
// k = INTENSE_2*2;
// while(--k);
//OUT2 = 0;
}
}
break;
//**********************************************************************************************************
// 波形2_10
// 波形七:T=10s。疏密波。前9秒为疏密波,后1秒为低电平。前9秒分为9部分,
//每1秒为一个部分,九个部分为疏密间隔的波。疏波的频率为38HZ,密波的频率为92HZ。
//疏密波的脉冲宽度随强度增加而增加,对应关系与波形一相同
//(但是在每一秒内,脉冲的宽度不保持不变
//**********************************************************************************************************
case 10:
//i = INTENSE_2;
//强度调整
// INTENSE_2 =(DISP_INTENSE_2*3)/4+1;
COUNT2_10 ++;
if( COUNT2_10 % (12 - INTENSE_2/10)==0)
{
GATE1 = !GATE1;
if(GATE1 == 1)
GATE2 = 0;
else
GATE2 = 1;
for(i=0;i<INTENSE_2*3;)
{
OUT2 =1;
OUT2 = 0;
i ++;
}
}
break;
//**********************************************************************************************************
// 波形2_11
// 波形七:T=10s。疏密波。前9秒为疏密波,后1秒为低电平。前9秒分为9部分,
//每1秒为一个部分,九个部分为疏密间隔的波。疏波的频率为38HZ,密波的频率为92HZ。
//疏密波的脉冲宽度随强度增加而增加,对应关系与波形一相同
//(但是在每一秒内,脉冲的宽度不保持不变
//**********************************************************************************************************
case 11:
//i = INTENSE_2;
COUNT2_11 ++;
if( COUNT2_11 %20==0)
{
GATE2 = 0;
GATE2 = 0;
for(i=0;i<INTENSE_2*5;)
{
OUT2 =1;
OUT2 = 0;
i ++;
}
}
break;
//**********************************************************************************************************
// 波形2_12
// 波形七:T=10s。疏密波。前9秒为疏密波,后1秒为低电平。前9秒分为9部分,
//每1秒为一个部分,九个部分为疏密间隔的波。疏波的频率为38HZ,密波的频率为92HZ。
//疏密波的脉冲宽度随强度增加而增加,对应关系与波形一相同
//(但是在每一秒内,脉冲的宽度不保持不变
//**********************************************************************************************************
case 12:
//强度调整
// INTENSE_2 =(DISP_INTENSE_2*3)/4+1;
//i = INTENSE_2;
COUNT2_12 ++;
if( COUNT2_12 % 20==0)
{
GATE1 = !GATE1;
if(GATE1 == 1)
GATE2 = 0;
else
GATE2 = 1;
for(i=0;i<INTENSE_2*5;)
{
OUT2 =1;
OUT2 = 0;
i ++;
}
}
break;
}
}
ET1 =1;
EA=1;
}
/******************************************************************************************************
系统初始化函数
作用:对全局变量,串口,定时器初始化设置
******************************************************************************************************/
void SystemInitial()
{
P2_6 = 0;
P2_7 = 0;
//全局变量初始化
SYS_STATE = 0;
WAVE_TYPE_1 = 1;
WAVE_TYPE_2 = 1;
DISP_INTENSE_1 =0;
DISP_INTENSE_2 =0;
SET_MINUTE = 20;
LED_1 = 1;
LED_2 = 0;
LED_3 = 0;
//P2_6 = 0;
//P2_7 = 0;
//P2_4 = 1;
//P2_5 = 1;
// P2 = 0;
//定时器初始化
TMOD=0x11;
TF0=0;
TH0 = 0x3C;
TL0 = 0xB0;
TR0=0;
TF1 = 0;
TH1 = (65536-20000)/256;
TL1 = (65536-20000)%256;
TR1 = 0;
//串口初始化,串口工作在方式0
SCON = 00;
DisplayChar(SET_MINUTE,0);
DisplayChar(DISP_INTENSE_1,4);
DisplayChar( DISP_INTENSE_2,2);
//蜂鸣器发声
BUZZER = 1;
delay200ms();
delay200ms();
delay200ms();
delay200ms();
BUZZER = 0;
}
/******************************************************************************************************
主函数
******************************************************************************************************/
void main()
{
//P2_7 = 0;
//unchar temp;
//unchar i,j;
//i = 2;
//for(TEMP=0;TEMP<5;TEMP++)
//{
/*
P2_7 = 0;
P2_7 =1;
P2_7 = 0;
P2_7 =1;
P2_7 = 0;
P2_7 =1;
P2_7 = 0;
*/
SystemInitial();
EX0 = 1;
ET0 = 1;
ET1 = 1;
PT1 = 1;
//PX0 = 1;
EA = 1;
//P2_6 = 0;
//P2_7 = 0;
while(1)
{
if((DISP_INTENSE_1 || DISP_INTENSE_2)&& SET_MINUTE) //强度不为0且设置时间不为0时,系统才有输出
{
TR0 = 1;
TR1 = 1;
}
else
{
TR0 = 0;
TR1 = 0;
}
if(SET_MINUTE == 0) //设置时间到,蜂鸣器发声提醒
{
BUZZER = 1;
}
//第一路输出波形
if((DISP_INTENSE_1 != 0)&&SET_MINUTE)
{
P2_3 = 0;
switch(WAVE_TYPE_1)
{
case 2: //波形1_2
/*
if(FLAG2 ==0)
OUT1 = 0;
if(FLAG2 ==1)
{
temp = INTENSE_1;
OUT1 =! OUT1;
while(--temp);
}
*/
break;
/*
case 5: //波形1_5
if(FLAG5 ==0)
OUT1 = 0;
if(FLAG5 ==1)
{
temp = 100-INTENSE_1;
OUT1 =! OUT1;
while(--temp);
}
break;
*/
}
}
//第二路波形输出
if((DISP_INTENSE_2 != 0)&&SET_MINUTE)
{
switch(WAVE_TYPE_2)
{
case 1:
GATE1 = 0;
GATE2 = 0;
break;
/*
case 2:
GATE1 = 0;
GATE2 = 1;
break;
case 3:
GATE1 = 0;
GATE2 = 0;
break;
*/
case 4:
//GATE1 = 0;
//GATE2 = 0;
break;
case 5:
GATE1 = 0;
GATE2 = 0;
break;
case 6:
// GATE1 = 0;
// GATE2 = 0;
break;
case 7:
// GATE1 = 0;
// GATE2 = 1;
break;
case 8:
// GATE1 = 1;
// GATE2 = 0;
break;
case 9:
GATE1 = 0;
GATE2 = 0;
break;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -