车流量检测代码

  • 格式:doc
  • 大小:30.50 KB
  • 文档页数:2

下载文档原格式

  / 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include "ioCC2530.h"

#include "LM6059BCW.h"

#define uchar unsigned char

#define uint unsigned int

#define int16 short

#define uint16 unsigned short

uchar D1[]={"DIANY AZHI: mv"};

uchar D2[]={"shuliang: "};

uint voltage;

uchar A1,A2,A3,A4;

/****系统时钟不分频

计数时钟32 分频

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

void InitClock(void)

{

CLKCONCMD = 0x28; //时器计数时钟设定为1M Hz, 系统时钟设定为32 MHz

while(CLKCONSTA & 0x40); //等晶振稳定

}

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

//初始化LED 控制IO 口程序

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

void InitLEDIO(void)

{

P1DIR|=0xff;

P0DIR|=0Xfd;

}

void Init_ADInput()

{

P0SEL|=0X02; //设置P0.1外部模拟输入

P0DIR&=~0X02;//设置为输入

}

uint get_WB() //得到微波信号

{

uint16 value;

ADCCON3|=0X31; //1.25v内部参考电压,512DEC,12为有效,单通道转换源为AIN1 ADCCON1|=0X30; //ADC启动方式选择为ADCCON1.ST=1事件

ADCCON1|=0X40; //ADC启动转换

while(!ADCCON1&0X80); //等待AD转换完成

value=ADCL>>4;

value|=(((uint16)ADCH)<<4); //连接ADCH和ADCL,并将值赋给value return (uint)(value*1.25*1000/8192); //将AD转换的值变为电压值,单位为毫伏}

void data_processing()

{

A1=voltage/1000;

A2=(voltage/100)%10;

A3=(voltage/10)%10;

A4=voltage%10;

D1[10]=A1+0X30;

D1[11]=A2+0X30;

D1[12]=A3+0X30;

D1[13]=A4+0X30;

}

void main()

{

InitLEDIO();

Init_ADInput(); //端口设置

InitClock(); //时钟设置

ResetLCD();

initLCDM(); //初始化LCD

ClearRAM(); //清液晶缓存

delay_us(100);//延时

while(1)

{

voltage=get_WB();

data_processing(); //将微波信号转换成电压

Print8(15,3,D1); //显示电压值

//delay_ms(2000);

}

}