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

📄 newdetector_v10.c

📁 TSL256源程序驱动!通过其IIC口采集环境光光强
💻 C
字号:
//**********************************************************
//**             主程序                                   **
//**          单片机: STC12C5410AD 主频: 24MHz          **
//**              Jumping <2008.04.20>              **
//**********************************************************


//#include <REGx051.H>								// AT89C4051头文件
#include "../inc/STC12C5410AD.H"					// AT89C4051头文件
#include "def.h"									// 类型定义文件
#include "config.h"									// 参数配置头文件
#include "uart.h"									// uart通讯程序头文件
#include "time0.h"									// 定时器0中断程序
#include "IIC.h"									// IIC驱动程序头文件
//#include "pwm.h"									// pwm头文件

// *** 全局变量定义 ***

INT data curt_brit;								// 当前亮度

uchar data idval;//for test

// *** 函数声明 ***
void delay_10ms (uchar count);
/*******************************************************************************
* 名    称: InitSys
* 功    能: 系统初始化
* 入口参数: 无
* 出口参数: 无
*******************************************************************************/
void InitSys(void)
{
	EA=0;
	P1=0XFF;
	P3=0XFF;
	DRE=0;            //RS485 处于收状态

	Set_clk_div(IDLE_CLK_DIV_BY_1);  //设置时钟分频
	SET_T0_DIV_BY_12;	        	//设置T0的速度0=12T
	SET_T1_DIV_BY_12;	  		    //设置T1的速度0=12T
	SET_UART_M0DIV_BY_12;  			//设置uart模式0的速度。0,12t速度。1是2t速度。 

	DISABLE_ADC_INT;				//ADC接口中断取消
	DISABLE_SPI_INT ;     			//SPI接口中断取消
	//p1.1-SCL P1.2-SDA  P3.3 TO OC OUT
	set_p1_mode(0x06,0x06);			//设置P1端口输出模式  00-标准I/o  | 01-推挽  | 00-输入  | 00-开漏  
	set_p3_mode(0x08,0x08);			//设置P3端口输出模式  00-标准I/o  | 01-推挽  | 00-输入  | 00-开漏  
	
//	WDT_DISABLE;					//看门狗取消
	WDT_CONTR=0x3d;					//看门狗打开2.23s

	DISABLE_LVD_INT;				//低电压中断取消
	
	curt_brit=50;					//初始化照度值50Lux
	
	uart_init();					// 初始化串口
	timer0_init();					// 定时器0初始化
	InitTsl256x();                  // 初始化Tsl2561

	EA=1;
}
/*******************************************************************************
* 名    称: main
* 功    能: 主程序
* 入口参数: 无
* 出口参数: 无
*******************************************************************************/
void main (void)
{

	LED = 0;							// 开LED
	WDT_CONTR=0x3d;					//看门狗打开2.23s
	
	delay_10ms(50);						// 延时500mS
	WDT_CONTR=0x3d;					//看门狗打开2.23s

	InitSys();                          //系统初始化
	WDT_CONTR=0x3d;					//看门狗打开2.23s
	
//	LED = 0;
	//while(3!=TSL2561_read_byte(REG_CTR)) //write 03 to 00Reg  and read the 00Reg val Must be 03!Then is OK!!

	//i=CalculateLux(1,2,9999,516,0);
	EA  = 1;							// 开中断
	REN = 1;							// 允许UART接收
	
	link_cont=0;
	while (1) 							// 主循环
	{
		if(link_cont>500)				//RS485连接超时(10Ms*500)灯具输出全亮!
		{
			
			if(ccctmp>=100)//(10Ms*200)
			{
				ccctmp=0;
				LED=0;
				delay_10ms(10);
				LED=1;
				delay_10ms(100);
				LED=0;
				delay_10ms(10);
				LED=1;
			} 
		 	
			if(ccctmp>50)
			{
			WDT_CONTR=0x3d;					//看门狗打开2.23s
			}
	
		}else
		{	
			if(ccctmp>300)			 	//RS485连接超时(10Ms*500)灯具输出全亮!
			{
				ccctmp=0;
				curt_brit=GetLux();
			}

			if(ccctmp>50)
			{
			WDT_CONTR=0x3d;					//看门狗打开2.23s
			}

		}

	}
}


/*******************************************************************************
* 名    称: delay_10ms
* 功    能: 延时10毫秒子程序, a(2b+3)*12/11.0592
* 入口参数: count: 要延时的10mS数
* 出口参数: 无
*******************************************************************************/
void delay_10ms (uchar count)
{
	uchar a, b;

	for ( ; count!=0; count--)
	{
		for (a=22; a!=0; a--)
		{
			for (b=207; b!=0; b--) ;
		}
	}
}

⌨️ 快捷键说明

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