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

📄 adc.#1

📁 f330与mfrc522 通信 构成读卡器 上传源码和原理图。
💻 #1
字号:

//*********************************************************
// 项  目:  通用控制器-V1.0
// 文件名: 	Timer2.C
// 描  述:  定时器2中断服务程序
//*********************************************************

//===============================================
#include "main.h"                    //头文件
#include "Timer2.h" 
#include "MFRC522.h"    
#include "Adc.h"           
//===============================================
//***********************************************
//变量定义
//***********************************************    
UCHAR  volatile Temp0,Temp; 
UCHAR  idata    TempHead, TempTail;
UINT   xdata    Ttemp[TT_WIDTH];
extern   UCHAR  xdata tx_buf[TX_PLOAD_WIDTH];
//***********************************************
//函数开始
/***************************************
AD初始化
/***************************************/
void Adc0_Init(void)//	
{      
    AMX0P  = 0x09;	   //10H温度/09H:P1.0
    AMX0N  = 0x11;     //单端,负端接地
	ADC0CF = 0xf8;	   //转换时钟=SYSCLK/32,右对齐
	ADC0CN = 0x80;     //使能AD,ADC0BUSY置1启动转换
	                   //-,-,-,-,REFSL,TEMPE,BIASE,REFBE
	REF0CN  = 0x0e;    //
    //启动转换获得初始温度值	
}
/***************************************
温度值初始化
/***************************************/
/*void Temp_Init(void)//	
{   
    UCHAR i;
	UINT  tt;
 
	TempHead = 0;
	TempTail = 0;

	tt =Temp_Conver();

	for(i=0;i<TT_WIDTH;i++)

       Ttemp[i] = tt;
     
	 Temp0 = T_Compute();	
}*/
/**************************************************
功能: 温度转换;
描述:温度转换取值存数组(循环);
/**************************************************/
Temp_Conver()
{
  UINT  tt;

  AD0BUSY = 1; 
  
  while(AD0INT==0);

	   AD0INT = 0;
	   tt = ADC0H*256+ADC0L;
	   Ttemp[TempTail] = tt;
       TempTail++;
	   if (TempTail>=TT_WIDTH)
		                        //包长异常		
	     {TempTail=0; }         //重新开始

   return (tt);
		   
}
/**************************************************
功能: 温度值计算;
描述:
/**************************************************/
/*T_Compute()

{
    UCHAR i,ta,tb;
	UINT  aa=0;
	UINT  kk=0;
	ULONG Tempsum=0;
	   
      for (i=0;i<TT_WIDTH;i++)
	   
	   Tempsum += Ttemp[i];

       Tempsum  = Tempsum/TT_WIDTH;

       aa = (UINT)Tempsum; 
	    
	   kk = aa*10/32;
	            
       //kk = (aa*32/10-776)*10/29;

       ta = (UCHAR)kk;
	   //
       tb = ta/10;          // 
       ta = ta-tb*10;
	   tb = tb<< 4;
       tb = tb|ta;

       return(tb);
}*/
/**************************************************
功能: 温度数据包发送转换;
描述:
/**************************************************/
Temp_Send()

{	  
        //Temp = T_Compute();
       
	   if (Temp !=Temp0)
        {
		 Temp0 = Temp;
         tx_buf[0] = 0xAA;     //包头
	     tx_buf[1] = 0x08;     //包长度
         tx_buf[2] = 0x81;     //目标地址     
	     tx_buf[3] = 0x92;     //源地址  
	     tx_buf[4] = 0x03;     //'03',前端事件包
	     tx_buf[5] = 0x54;     //温度标示
         tx_buf[6] = Temp0;    //温度值(十进制)
	     tx_buf[7] = 0XBB;     //包尾
         //
//		 TX_Mode();            //发送温度包到无线口
         //tx_to_com();        //发送事件包到本板COM口        
		 //SPI_RW_Reg(WRITE_REG+STATUS,SPI_Read(READ_REG+STATUS));	// 清 TX_DS				
		 Delay1ms(200);		

		}
	   
} 
      
//********************************************************

⌨️ 快捷键说明

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