• 大小: 101KB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-02-05
  • 语言: 其他
  • 标签: 单片机  采集AD  

资源简介

该工程,是用KEIL开发的适合单片机的采集AD值,并且通过串口传输数据,采用了协议传输,通过相应的上位机显示波形图,很有用

资源截图

代码片段和文件信息

/**********************
文件名称:ad_wave.c
作者:王伟
说明:串口发送AD例程
修改记录:
***********************/

/**********************
基于STC15F2K60S2系列单片机C语言编程实现
使用如下头文件
***********************/
#include “STC15F2K60S2.h“

/**********************
宏定义
/*********************/
#define Machine_Focs 11059200L
#define BAUD 115200


/**********************
引脚别名定义
***********************/


/**********************
全局变量定义
***********************/
char rec_flag=0;  //用于标识接收的数据
unsigned char a=0b=1c=0; //用于保存并校验收到的数据
 

char flag=0;
unsigned char i=1;

unsigned char zero=0;    //发送高8位
unsigned char one=0;
unsigned char temp=0;
unsigned char light=0;

unsigned char zero_t=0;   //发送低2位
unsigned char one_t=0;
unsigned char temp_t=0;
unsigned char light_t=0;

unsigned char other=0;    //另外凑齐的一个字节
unsigned char sum=0;//存放校验和





/****************************************************************************
*Uart1_Init()
*初始化串口1的相关设置,设定串口的波特率等
***************************************************************/
void Uart1_Init(void)
{
AUXR=0X00; //改为定时器T0为12T工作模式注意工作模式的切换
SCON|=0X50;    //允许接收
TL1=(65536-(Machine_Focs/4/BAUD));
TH1=(65536-(Machine_Focs/4/BAUD))>>8;
AUXR|=0X40;
RI=0;
TI=0;
TR1=1;

//使用定时器T0定时为1ms
TMOD=0x00;
IE=0xB2;//包括允许总中断,AD中断,T0中断,串口中断
  TH0=(65535-1000)/256;
TL0=(65535-1000)%256;


TR0=1;//启动定时器T0

PS = 1 ; //串口1中断高优先级
}

/********************************************************************************************
*Uart1()
*串口1中断服务程序,只有当接收到数据时才应用串口中断,当发送数据时关闭串口中断
*/

void Uart1_fun() interrupt 4 using 1
{

  if(RI==1)
  {
      RI=0;
   
   if(c==b)
   {
    b=1;
    return;
   }

   if((rec_flag==0)&&(SBUF==0x5A))
   {
    // IE=0x90;//测试
    a=SBUF;
    rec_flag++;



   }
   else  if(rec_flag==1)
{
  b=SBUF;

  if(b==0x5A)
  {
     rec_flag=1;
  a=0x5A;
  return;
  }

rec_flag++;
}
else  if(rec_flag==2)
{
c=SBUF;

if(c==0x5A)
{
     rec_flag=1;
  a=0x5A;
  return;
}

if(c!=a+b)
{
b=1;
}

rec_flag=0;
// IE=0xB2;

}
  }

  




//   if(RI==1)
//   {
//
// RI=0;
//
//
// if(rec_flag==2)
// {
// c=SBUF;
// c=~c;
// if(c!=a+b)
// {
// b=1;
// }
// rec_flag=0;
// }
// if(rec_flag==1)
// {
// b=SBUF;
// rec_flag++;
// }
// if(SBUF==0x5A)
// {
//  a=SBUF;
//  rec_flag++;
// }
//
//
//  
//
//   }


}

/********************************************************************/

/*
延时函数
*/
void Delay(int n)
{
int y;
while(n--)
{
y=60;
while(y--);
}
}

//发送数据
void SendData(int byt)
{

 SBUF=0;//缓冲区清零
 SBUF=byt;
 while(!TI);
 TI=0;
}  


//T0中断并且定时发送数据给上位机
void t0int() interrupt 1
{
if(i==b)
{
//TR0=0;
IE=0x00;//发送数据的时候所有关闭所有中断

   
SendDa

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      32581  2014-08-22 19:49  采集AD值显示波形图工程03\采集AD值显示波形图工程02\参考资料\测光和温度和电压.jpg

     文件      65536  2014-08-22 21:40  采集AD值显示波形图工程03\采集AD值显示波形图工程02\采集AD串口传输说明.doc

     文件       9226  2014-08-24 01:20  采集AD值显示波形图工程03\采集AD值显示波形图工程02\采集AD值显示波形图工程\AD_Wave

     文件       5403  2014-08-24 01:19  采集AD值显示波形图工程03\采集AD值显示波形图工程02\采集AD值显示波形图工程\ad_wave.c

     文件       2131  2014-08-24 01:20  采集AD值显示波形图工程03\采集AD值显示波形图工程02\采集AD值显示波形图工程\AD_Wave.hex

     文件         46  2014-08-24 01:20  采集AD值显示波形图工程03\采集AD值显示波形图工程02\采集AD值显示波形图工程\AD_Wave.lnp

     文件      15054  2014-08-24 01:20  采集AD值显示波形图工程03\采集AD值显示波形图工程02\采集AD值显示波形图工程\ad_wave.LST

     文件      14533  2014-08-24 01:20  采集AD值显示波形图工程03\采集AD值显示波形图工程02\采集AD值显示波形图工程\AD_Wave.M51

     文件      10984  2014-08-24 01:20  采集AD值显示波形图工程03\采集AD值显示波形图工程02\采集AD值显示波形图工程\ad_wave.OBJ

     文件       1674  2014-08-24 01:35  采集AD值显示波形图工程03\采集AD值显示波形图工程02\采集AD值显示波形图工程\AD_Wave.plg

    .......     55728  2014-08-24 01:35  采集AD值显示波形图工程03\采集AD值显示波形图工程02\采集AD值显示波形图工程\AD_Wave.uvopt

     文件      13473  2014-08-22 18:47  采集AD值显示波形图工程03\采集AD值显示波形图工程02\采集AD值显示波形图工程\AD_Wave.uvproj

    .......     55728  2014-08-24 01:35  采集AD值显示波形图工程03\采集AD值显示波形图工程02\采集AD值显示波形图工程\AD_Wave_uvopt.bak

     文件      13469  2014-08-22 18:45  采集AD值显示波形图工程03\采集AD值显示波形图工程02\采集AD值显示波形图工程\AD_Wave_uvproj.bak

     文件       9064  2014-03-29 12:51  采集AD值显示波形图工程03\采集AD值显示波形图工程02\采集AD值显示波形图工程\STC15F2K60S2.H

     目录          0  2014-08-23 21:31  采集AD值显示波形图工程03\采集AD值显示波形图工程02\参考资料

     目录          0  2014-08-24 01:35  采集AD值显示波形图工程03\采集AD值显示波形图工程02\采集AD值显示波形图工程

     目录          0  2014-08-23 21:31  采集AD值显示波形图工程03\采集AD值显示波形图工程02

     目录          0  2014-08-23 23:41  采集AD值显示波形图工程03

----------- ---------  ---------- -----  ----

               304630                    19


评论

共有 条评论