7.1 任务7.1 火焰强度的测量_第1页
7.1 任务7.1 火焰强度的测量_第2页
7.1 任务7.1 火焰强度的测量_第3页
7.1 任务7.1 火焰强度的测量_第4页
7.1 任务7.1 火焰强度的测量_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机应用技术项目七简易火焰报警器的设计与实现任务7.1火焰强度的测量任务要求

使用CC2530单片机的ADC模块,周期性采集火焰传感器数据,并将其转换成数字量形式,通过串口将数据发送给PC。在PC端,通过串口调试助手来查看火焰传感器数据。1基础知识2相关寄存器3任务分析4电路分析5任务实现一、基础知识

信号信号是信息的载体,是运载信息的工具,信号可以是光信号、声音信号、电信号等模拟信号是指用连续变化的物理量所表示的信息,如温度、湿度、压力、长度、电流、电压等,通常把模拟信号称为连续信号,它在一定的时间范围内可以有无限多个不同的取值数字信号是指自变量是离散的、因变量也是离散的信号,这种信号的自变量用整数表示,因变量用有限数字中的一个数字来表示,在计算机中,数字信号的数值常用有限位的二进制数表示。一、基础知识

模拟信号数字信号时间连续性时间上是连续的时间上不是连续的幅度变化幅度的取值是连续的(幅值可由无限个数值表示)幅度的取值是离散的,幅值表示被限制在有限个数值之内信号传输方式用模拟量的电压或电流来表示通过0和1的数字串所构成的数字流来表示一、基础知识

分辨率分辨率是ADC对输入模拟信号的最小变化的度量,是ADC的一个重要的性能指标。理论上,一个n位输出的ADC能区分2n个不同等级的输入模拟电压,能区分输入电压的最小值为满量程输入的1/(2n-1)。在最大输入电压一定时,输出位数越多,分辨率越高。一、基础知识

火焰传感器用于检测是否有火源的传感器。火焰传感器利用红外线对火焰非常敏感的特点,使用特制的红外线接收管来检测火焰,然后把火焰的亮度转化为高低变化的电平信号。外界红外光越强,数值越小;红外光越弱,数值越大。一、基础知识

ADC,即信号的模拟形式与数字形式的转换。最高14位,12位有效数据8个独立输入通道转换结束产生中断请求转换结果通过DMA写入存储器,具有多种运行方式一、基础知识

对于CC2530的ADC模块,端口P0引脚可以配置为ADC输入端,依次为AIN0~AIN7。位置P0端口P0_7P0_6P0_5P0_4P0_3P0_2P0_1P0_0ADCAIN7AIN6AIN5AIN4AIN3AIN2AIN1AIN0一、基础知识

单端电压输入,依次为AIN0~AIN7,以通道号码0~7表示;通道号码8~11表示差分输入,分别是AIN0-AIN1、

AIN2-AIN3、AIN4-AIN5、AIN6-AIN7。可进行序列转换,或单通道转换片内温度传感器的输出和AVDD5/3的电压作为一个ADC输入。通道号码12~15分别用于GND(12)、预留通道(13)、片内温度传感器(14)和AVDD5/3(15)。二、相关寄存器

APCFG寄存器位名称复位操作描述7APCFG[7]0R/W选择P0_7引脚作为模拟外设I/O引脚。0:模拟外设I/O禁用。1:模拟外设I/O使能6APCFG[6]0R/W选择P0_6引脚作为模拟外设I/O引脚。0:模拟外设I/O禁用。1:模拟外设I/O使能5APCFG[5]0R/W选择P0_5引脚作为模拟外设I/O引脚。0:模拟外设I/O禁用。1:模拟外设I/O使能4APCFG[4]0R/W选择P0_4引脚作为模拟外设I/O引脚。0:模拟外设I/O禁用。1:模拟外设I/O使能3APCFG[3]0R/W选择P0_3引脚作为模拟外设I/O引脚。0:模拟外设I/O禁用。1:模拟外设I/O使能2APCFG[2]0R/W选择P0_2引脚作为模拟外设I/O引脚。0:模拟外设I/O禁用。1:模拟外设I/O使能1APCFG[1]0R/W选择P0_1引脚作为模拟外设I/O引脚。0:模拟外设I/O禁用。1:模拟外设I/O使能0APCFG[0]0R/W选择P0_0引脚作为模拟外设I/O引脚。0:模拟外设I/O禁用。1:模拟外设I/O使能二、相关寄存器

ADCL,ADC数据低位寄存器ADCH,ADC数据高位寄存器位名称复位操作描述7:2ADC[5:0]000000RADC转换结果的低位部分1:0-00R0没有使用。读出来一直是0位名称复位操作描述7:0ADC[13:6]0x00RADC转换结果的高位部分这两个寄存器用来保存ADC结果,ADCL使用了高6位,ADCH使用了8位,共14位。ADCH的最高位是符号位,ADCL最低两位没用,一直是0,最大数值是111111111111100,转换成十进制是32764。ADCHADCL符号111111111111100二、相关寄存器

ADCCON3寄存器,ADC控制3寄存器位名称复位操作描述7:6SREF[1:0]00R/W选择用于单通道转换的参考电压。00:内部参考电压。01:AIN7引脚上的外部参考电压。10:AVDD5引脚,参考电压3.3V。11:AIN6-AIN7差分输入外部参考电压5:4SDIV[1:0]01R/W为单通道ADC转换设置抽取率。抽取率也决定完成转换需要的时间和分辨率00:64抽取率(7位有效数字)。

01:128抽取率(9位有效数字)。10:256抽取率(10位有效数字)。11:512抽取率(12位有效数字)3:0SCH[3:0]0000R/W单个通道选择。选择写ADCCON3触发的单个转换所在的通道号码。当单个转换完成,该位自动清除。0000:AIN0。

0001:AIN1。

0010:AIN2。

0011:AIN3。0100:AIN4。0101:AIN5。

0110:AIN6。

0111:AIN7。

1000:AIN0-AIN1。1001:AIN2-AIN3。

1010:AIN4-AIN5。

1011:AIN6-AIN7。1100:GND。

1110:片内温度传感器。

1111:AVDD5/3二、相关寄存器

ADCCON3寄存器,ADC控制3寄存器4、5两位用来设置抽取率。例如,这两位值为11,则抽取率为512,即12位有效数字。12位有效数字的分布是,ADCH寄存器7位,ADCL寄存器的高5位,除了ADCL最低2位外,其他位仍然有值,只不过值不准确,不是有效数字。ADCHADCL符号有效有效有效有效有效有效有效有效有效有效有效有效无效00三、任务分析

通过CC2530单片机的ADC模块转换采集火焰强度数值,并转换成电压值,然后通过串口发送给PC。具体任务要求如下。1.上电,D3熄灭。2.定时2秒钟后,D3点亮,采集火焰强度,并转换成电压值。3.通过USART0向PC发送表示火焰强度的电压值,然后熄灭D3。4.返回步骤2,重复执行。四、电路图分析

CC2530开发板插进传感器的接口电路如上图U5A所示。单片机采用ADC0接口来获取传感器数据。五、任务实现

ADC初始化void

adc_init()

{

APCFG

|=

1;

P0SEL

|=

0x01;

P0DIR

&=~

0x01;

ADCIE

=

1;

}使用ADC0,即P0_0引脚要设置外设I/O。使能ADC中断五、任务实现

ADCCON3寄存器设置ADCCON3

=

0x80;

采用基准电压AVDD5(3.3V),7位有效数字,通道0五、任务实现

ADC中断服务函数#pragma

vector

=

ADC_VECTOR

__interrupt

void

adc_ISR(void)

{

ADCIF

=

0;

//清除ADC标志位

uint32

value;

value

=

ADCH;

value

=

value<<8;

//高位数据左移8位

value

|=

ADCL;

value

=

(value*330);

//得到分辨率为0.01V的数值

value

=

value>>15;

//除以32768

s[0]=value/100+'0';

//取百位,并转换为字符格式

s[1]='.';

s[2]=value/10%10+'0';

//取十位,并转换为字符格式

s[3]=value%10+'0';

//取个位,并转换为字符格式

s[4]='V';

s[5]='\n';

s[6]='\0';

USART0_send_data("火焰传感器电压值:");

USART0_send_data(s);

D3

=

0;

}五、任务实现

ADC中断服务函数

uint32

value;

value

=

ADCH;

value

=

value<<8;

//高位数据左移8位

value

|=

ADCL;

value

=

(value*330);

//得到分辨率为0.01V的数值

value

=

value>>15;

//除以32768

ADCH寄存器的最高位是符号位,剩余的7位是数据位,ADCL寄存器的最低两位是0。所以模数转换结果的最大值是32764。采用基准电压3.3V,测得电压值value与ADCH、ADCL寄存器值的计算公式如下。 value=(ADCH×256+ADCL)×330/32764虽然基准电压是3.3V,但上式中使用330,故计算出的value值的单位为0.01V。观察上式,value值应除以32764。在单片机编程中,常常采用右移的方式进行除法运算,value右移15位,即将value的值除以32768,准确地讲,应该除以32764。但是这里通过右移形式实现数据除法运算,不能实现除以32764,而32764接近32768,故这里采用32768。最终计算得到的火焰强

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论