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

📄 main_logic.c

📁 是基于单片机的温度控制程序
💻 C
字号:
void Main_Logic(void)
{
	/*
	***************************************************************
	定义局部变量
	***************************************************************
	*/    
	uint16 i=0,j=0,count,StartPage=0,StopPage=0;
	uint8 temp1HC148_Output=0x07,temp2HC148_Output=0x07;
	/*
	***************************************************************
	初始化输入管脚
	***************************************************************
	*/
	
	/*
	***************************************************************
	初始化项目中用到的其它硬件和变量
	***************************************************************
	*/ 
	SerialCount=20;		//此变量用于串口中断函数与定时器中断函数联系	
	//AT45DB161D_Erase();
	/*
	***************************************************************
	后台主循环
	***************************************************************
	*/	
	while(1)										
	{	
		/*
		***************************************************************
		在这里完成自己的项目逻辑
		***************************************************************
		*/
		/*for(i=0;i<=255;i++)
		{
			AT45DB161D_Buffer[i]=i;
		}
		AT45DB161D_WriteData(0,255);*/
		/*AT45DB161D_ReadData(0,256);
		for(i=0;i<=255;i++)
		{
			Uart0_SendByte(AT45DB161D_Buffer[i]);
			//XiaoYanHe+=AT45DB161D_Buffer[i];
		}
		AT45DB161D_ReadData(1,256);
		for(i=0;i<=255;i++)
		{
			Uart0_SendByte(AT45DB161D_Buffer[i]);
			//XiaoYanHe+=AT45DB161D_Buffer[i];
		}
		AT45DB161D_ReadData(2,256);
		for(i=0;i<=255;i++)
		{
			Uart0_SendByte(AT45DB161D_Buffer[i]);
			//XiaoYanHe+=AT45DB161D_Buffer[i];
		}

		while(1)
		{
			wdt_reset();
		}*/
		/*for(j=0;j<=255;j++)
		{
			AT45DB161D_ReadData(j,255);	//0-255
			//Uart0_SendByte(j);
			XiaoYanHe=0;
			for(i=0;i<=255;i++)
			{
				//Uart0_SendByte(AT45DB161D_Buffer[i]);
				XiaoYanHe+=AT45DB161D_Buffer[i];
			}
			Uart0_SendByte(XiaoYanHe);
			delay_1ms();
		}
		while(1)
		{
			wdt_reset();
		}*/
		HC148_A0_Test
		{
			SETBIT(temp1HC148_Output,BIT0);
		}
		else 
		{
			CLRBIT(temp1HC148_Output,BIT0);
		}
		HC148_A1_Test
		{
			SETBIT(temp1HC148_Output,BIT1);
		}
		else 
		{
			CLRBIT(temp1HC148_Output,BIT1);
		}
		HC148_A2_Test
		{
			SETBIT(temp1HC148_Output,BIT2);
		}
		else 
		{
			CLRBIT(temp1HC148_Output,BIT2);
		}
		if (temp1HC148_Output != HC148_Output)
		{
			delay_20ms();
			HC148_A0_Test
			{
				SETBIT(temp2HC148_Output,BIT0);
			}
			else 
			{
				CLRBIT(temp2HC148_Output,BIT0);
			}
			HC148_A1_Test
			{
				SETBIT(temp2HC148_Output,BIT1);
			}
			else 
			{
				CLRBIT(temp2HC148_Output,BIT1);
			}
			HC148_A2_Test
			{
				SETBIT(temp2HC148_Output,BIT2);
			}
			else 
			{
				CLRBIT(temp2HC148_Output,BIT2);
			}
			if (temp1HC148_Output == temp2HC148_Output)
			{
				HC148_Output=temp1HC148_Output;				
			}
		}	
		if (HC148_Output==0x07) 	// 停止播放声音
		{
			StartPage=0;
			StopPage=0;
		}
		else if (HC148_Output==0x06)	//循环播放上行声音
		{
			StartPage=0;
			StopPage=236;
		}
		else if (HC148_Output==0x05)	//循环播放下行声音
		{
			StartPage=300;
			StopPage=547;
		}
		else if (HC148_Output==0x03)	//循环播放上下行声音
		{
			StartPage=600;
			StopPage=869;
		}
		else if (HC148_Output==0x04)	//循环播放预警钟声
		{
			StartPage=900;
			StopPage=1147;
		}
		else 
		{
			StartPage=0;
			StopPage=0;
		}
		if (StopPage !=0)
		{
			//播放1遍声音
			count=0;
			i=StartPage;		//标示起始扇区
			while(1)
			{
				AT45DB161D_ReadData(i,256);
				i++;
				if (i>=StopPage)	//标示结尾扇区
				{
					break;					
				}
				count=0;
				while (1)
				{
					if (CHKBIT(VS1003B_PIN,VS1003B_DREQ))
					{				
						for(j=0;j<32;j++)
						{
							VS1003B_WriteDAT(AT45DB161D_Buffer[count]);
							count++;					
						}
						if(count >=255)
						{
							break;
						}
					}				
				}
				wdt_reset();				
			}
		}			
		/*
		***************************************************************
		以下语句为喂狗程序,大部分工程都不应删除
		***************************************************************
		*/
		#ifdef Per_WDT
			wdt_reset();
		#endif
	}
}

⌨️ 快捷键说明

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