目录
一、传感器课程设计任务计划书................................................................................ 1
1.1、实习性质及目的 .......................................................................................... 1 1.2、课程设计内容 .............................................................................................. 1 二、总体设计思路........................................................................................................ 2
2.1、光电转换模块 .............................................................................................. 2 2.2、电压处理模块 .............................................................................................. 2 2.3、A/D转换模块 ............................................................................................... 2 2.4单片机处理和数码管显示模块 ..................................................................... 3 三、主要器件及其介绍................................................................................................ 3
3.1、ADC0809 ....................................................................................................... 3
3.1.1、主要特性 ........................................................................................... 3 3.1.2、外部引脚 ........................................................................................... 4 3.2、四位八段共阴极数码管 .............................................................................. 5 3.3、运放LM358 .................................................................................................. 6
3.3.1、主要特性 ........................................................................................... 6 3.3.2、运用场合 ........................................................................................... 7 3.3.2、外部引脚 ................................................................................................... 7 3.4、光电池 .......................................................................................................... 7
3.4.1、工作原理 ........................................................................................... 7
四、实验电路仿真........................................................................................................ 9 五、心得体会.............................................................................................................. 10 参考文献...................................................................................................................... 10 附录.............................................................................................................................. 11
程序...................................................................................................................... 11
一、传感器课程设计任务计划书
1.1、实习性质及目的
通过在实验室中的实际操作,培养学生的动手能力,积累一定的实践经验。在实践中发现理论的不足,加深对理论知识的理解,激发学生动手动脑勇于创新的积极性,培养学生严谨,认真的学习态度和工作作风,为后续课程的学习打下坚实的基础
1.2、课程设计内容
滤纸式烟度计设计
①用光电检测方法设计尾气检测装置; ②侧重于光学系统、光电检测模块等; ③进行特性参数的分析计算,实验室调试。
二、总体设计思路
通过查阅相关资料,大致了解烟度计的功能,从而确定了相应的设计目标,
即将滤纸表面的洁净程度用数值表示,而滤纸的洁净程度可以通过滤纸的光反射率表示,所以可以确定相关模块。
2.1、光电转换模块
光电转换模块采用红外发射管和硅光电池组合而成,红外发射管发出光经过
滤纸的反射后被光电池吸收形成电压以检测反射光光强,通过调节红外发射管电压大小以及和光电池的位置关系,可以使光电池的输出电压反应滤纸的反射程度。
2.2、电压处理模块
光电池的输出电压由于光电池内阻与ADC0809不匹配的缘故不能直接与
ADC0809相连,所以需要经过运放。由于本次课程设计的烟度值只是一个并不精确的计量单位,所以电压放大的功能直接运用程序实现,在硬件上并没有接入放大模块而只是用电压跟随器处理光电池输出电压。
2.3、A/D转换模块
电压跟随器的电压输出与ADC0809的IN3相连,转化成数字信号。
2.4单片机处理和数码管显示模块
此模块的主要是将数字信号与数码管相匹配,由程序实现。
三、主要器件及其介绍
本课程设计主要元件为STC51单片机、ADC0809、四位八段共阴极数码管、
运放LM358、光电池。其中,ADC0809、光电池和数码管的使用是本次课程设计的核心。
3.1、ADC0809
ADC0809是美国国家半导体公司生产的CMOS 工艺8通道,8位逐次逼近式
A/D模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。目前仅在单片机初学应用设计中较为常见。
图 1 ADC0809结构示意图
3.1.1、主要特性
①路输入通道,8位A/D转换器,即分辨率为8位。
②具有转换起停控制端。
③转换时间为100μs(时钟为640KHz 时) ,130μs(时钟为500KHz 时)。 ④单个+5V电源供电。
⑤模拟输入电压范围0~+5V,不需零点和满刻度校准。 ⑥工作温度范围为-40~+85摄氏度。 ⑦低功耗,约15mW 。
3.1.2、外部引脚 1)IN0~IN7
8路模拟量输入端。 8位数字量输出端。
3位地址输入线,用于选通8路2)2-1~2-8
3)ADDA 、ADDB 、ADDC 模拟输入中的一路。 4)ALE
地址锁存允许信号,输入端,高电平有效。 5)START
A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns 宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 6)EOC
A/D转换结束信号,输出端,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。 7)OE
数据输出允许信号,输入端,高电平有效。当A/D转换结束时,此端输入一
图 2 ADC0809实物图
个高电平,才能打开输出三态门,输出数字量。 8)CLK
时钟脉冲输入端。要求时钟频率不高于640KHz 。 基准电压。
9)REF (+)、REF (-) 10)Vcc 、
GND
电源,单一+5V。地。
3.2、四位八段共阴极数码管
图 3 数码管结构示意图
四位八段共阴极数码管的实际引脚应先使数码管正对自己,以左下角的引脚
为一号引脚,逆时针方向引脚序号依次增加,再通过与上图中引脚的序号对应相应的功能,合理分配位控和段控I/O口,实现数码管的动态显示。当自己无法识别数码管的管脚是否为公共脚或是无法识别共阴极还是共阳极,应该用万用表上的二极管端来进行通电测量。
此外,共阴极数码管在显示时需要外接排阻来提高驱动能力以及防止数码管数码管在动态显示时,通常每个字符显示1ms ,需要对单片机的机器周期进电流过大被烧坏,通常不直接使用单片机的I/O口进行直接驱动。 行计算来确定参数。
图 4 数码管引脚图
3.3、运放LM358
LM358 内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适
合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。
3.3.1、主要特性
①内部频率补偿
②直流电压增益高(约100dB) ③单位增益频带宽(约1MHz) ④电源电压范围宽:单电源(3—30V) ⑤双电源(±1.5 一±15V)
⑥低功耗电流,适合于电池供电 ⑦低输入偏流
⑧低输入失调电压和失调电流 ⑨共模输入电压范围宽,包括接地 ⑩差模输入电压范围宽,等于电源电压范围
图 5 LM358实物图
3.3.2、运用场合
由于其输入失调电压和失调电流较低,常用作红外探测报警器中的信号放大
电路,滤波器电路,尤其在光电转换电路中运用较多。
3.3.2、外部引脚
图 6 LM358内部结构图
3.4、光电池
光电池,是一种在光的照射下产生电动势的半导体元件。
3.4.1、工作原理
光电池原理的一个重要理论依据是光伏效应原理。光生伏特效应是指半导体
在受到光照射时产生电动势的现象。具体地说,
如果光线照射在太阳能电池上并
且光在界面层被吸收,具有足够能量的光子能够在P 型硅和N 型硅中将电子从共价键中激发,以致产生电子-空穴对。界面层附近的电子和空穴在复合之前,将通过空间电荷的电场作用被相互分离。电子向带正电的N 区和空穴向带负电的P 区运动。通过界面层的电荷分离,将在P 区和N 区之间产生一个向外的可测试的电压。此时可在硅片的两边加上电极并接入电压表。对晶体硅太阳能电池来说,开路电压的典型数值为0.5~0.6V 。通过光照在界面层产生的电子-空穴对越多,电流越大。界面层吸收的光能越多,界面层即电池面积越大,在太阳能电池中形成的电流也越大。光电池的工作原理正是基于“光生伏特效应”
。
图 7 光电池结构示意图
四、实验电路仿真
图 8 单片机模块电路仿真图
如图所示,该仿真为定量测量滑动变阻器电阻的电路,其中P1为ADC0908
的控制口,P0口味数码管的段控口,P2口为数码管的位控口,P3口为数字信号的输入口。当ADC0809的IN3有输入信号时,数码管会有相应的数值输出。其中要注意的是ADC0809有最大时钟周期,且远低于一般单片机的晶振频率,所以在编程时要考虑单片机的机器周期。
由于传感器课程设计中,许多传感器的信号转换无法用proteus 仿真实现,所以在本次课程设计中,主要是实际搭建电路和调试电路,仿真只是能定性模拟电路,许多实际情况无法用仿真分析。
图 9 放大电路仿真图
五、心得体会
由于有过一次微电子实习的经历,所以这次课程设计上手很容易,知道设计的大概步骤怎么做。但这次用到的单片机编程是我从来没有接触到的,开始时都不知道KEIL C该怎么写,后来还是通过看网上别人的例子逐渐明白自己的程序该怎么去写。
感觉这次课程设计中最难的就是编写程序和调试感受器部分电路。实验室开始买的光电池不知为什么在有光照射的情况下没有光生电流和光生电压,我换了几个电池都是一样的情况,加之由于实验室统一购买元器件,我不知道所使用的光电池型号,所以无法得到相关信息。后来自己去长运电子市场买器件,老板换了一种光电池,问题终于解决。
编程的时候,开始数码管显示很好,但后来的AD 转换数字信号的显示却出现了问题,数码管一直乱跳,无法显示有效数据。由于是第一次使用ADC0809,我在再三检查程序思路发现不了问题,以为是ADC0809的接线错误,反复重新接了几次还是无法解决。后来发现是程序里的一个I/O口名称写错,这种错误无法用C 程序的语法规则报错,只能通过人工一步一步检查。当我检查完错误,真心感觉细节是最容易被忽视但却是最应该被重视的方面。
总的来说,感觉这次课程设计比微电子实习要轻松一些,方向比微电子实习要明确,但收获同样很大。
参考文献
【1】秦曾煌。电工学. 下册,电子技术。北京:高等教育出版社,2004.7
【2】测控论坛:http://ecjtucekong.5d6d.com/bbs.php
【3】百度文库:
http://wenku.baidu.com/view/03e617fa910ef12d2af9e76c.html
【4】张国雄。测控电路,第三版。机械工业出版社,2008.1
【5】韩保军。传感器原理及应用技术,第二版。西安电子科技大学出版社,2009.4
附录
程序
#include
#define uint unsigned int
#define uchar unsigned char
float Mth,Xs;
uchar Zs,XsZs;
uchar i;
sbit Dot=P3^7;
sbit ST=P2^0;
sbit EOC=P2^1;
sbit OE=P2^2;
sbit CLK=P2^3;
uchar data LED[4];
uchar code LEDData[]=
{
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f };
void SzDepa()
{
//P0=0x80;
Mth=P0*0.0196*30;
Zs=Mth;
Xs=Mth-Zs;
XsZs=100*Xs;
LED[3]=2*Mth;
LED[2]=Zs;
LED[1]=XsZs/10; LED[0]=XsZs%10; }
void Delay(uint s)
{
uchar t;
while(s--)
{
for(t=0;t
}
void Display(void)
{
SzDepa();
i=LED[0];
P3=LEDData[i];
P1=0x7f;
Delay(1);
i=LED[1];
P3=LEDData[i];
P1=0xbf;
Delay(1);
i=LED[2];
P3=LEDData[i];
Dot=1;
P1=0xdf;
Delay(1);
i=LED[3];
P3=LEDData[i];
P1=0Xef;
Delay(1);
}
void main()
{
TMOD=0x02;
TL0=216;
TH0=216;
//IE=0xBC;
EA=1;
ET0=1;
TR0=1;
P2=0x3F;
while(1)
{ ST=0;
ST=1;
ST=0;
while(EOC == 0); OE = 1;
Display();
OE = 0;
}
}
void Timer0_INT() interrupt 1 {
CLK = !CLK;
}
目录
一、传感器课程设计任务计划书................................................................................ 1
1.1、实习性质及目的 .......................................................................................... 1 1.2、课程设计内容 .............................................................................................. 1 二、总体设计思路........................................................................................................ 2
2.1、光电转换模块 .............................................................................................. 2 2.2、电压处理模块 .............................................................................................. 2 2.3、A/D转换模块 ............................................................................................... 2 2.4单片机处理和数码管显示模块 ..................................................................... 3 三、主要器件及其介绍................................................................................................ 3
3.1、ADC0809 ....................................................................................................... 3
3.1.1、主要特性 ........................................................................................... 3 3.1.2、外部引脚 ........................................................................................... 4 3.2、四位八段共阴极数码管 .............................................................................. 5 3.3、运放LM358 .................................................................................................. 6
3.3.1、主要特性 ........................................................................................... 6 3.3.2、运用场合 ........................................................................................... 7 3.3.2、外部引脚 ................................................................................................... 7 3.4、光电池 .......................................................................................................... 7
3.4.1、工作原理 ........................................................................................... 7
四、实验电路仿真........................................................................................................ 9 五、心得体会.............................................................................................................. 10 参考文献...................................................................................................................... 10 附录.............................................................................................................................. 11
程序...................................................................................................................... 11
一、传感器课程设计任务计划书
1.1、实习性质及目的
通过在实验室中的实际操作,培养学生的动手能力,积累一定的实践经验。在实践中发现理论的不足,加深对理论知识的理解,激发学生动手动脑勇于创新的积极性,培养学生严谨,认真的学习态度和工作作风,为后续课程的学习打下坚实的基础
1.2、课程设计内容
滤纸式烟度计设计
①用光电检测方法设计尾气检测装置; ②侧重于光学系统、光电检测模块等; ③进行特性参数的分析计算,实验室调试。
二、总体设计思路
通过查阅相关资料,大致了解烟度计的功能,从而确定了相应的设计目标,
即将滤纸表面的洁净程度用数值表示,而滤纸的洁净程度可以通过滤纸的光反射率表示,所以可以确定相关模块。
2.1、光电转换模块
光电转换模块采用红外发射管和硅光电池组合而成,红外发射管发出光经过
滤纸的反射后被光电池吸收形成电压以检测反射光光强,通过调节红外发射管电压大小以及和光电池的位置关系,可以使光电池的输出电压反应滤纸的反射程度。
2.2、电压处理模块
光电池的输出电压由于光电池内阻与ADC0809不匹配的缘故不能直接与
ADC0809相连,所以需要经过运放。由于本次课程设计的烟度值只是一个并不精确的计量单位,所以电压放大的功能直接运用程序实现,在硬件上并没有接入放大模块而只是用电压跟随器处理光电池输出电压。
2.3、A/D转换模块
电压跟随器的电压输出与ADC0809的IN3相连,转化成数字信号。
2.4单片机处理和数码管显示模块
此模块的主要是将数字信号与数码管相匹配,由程序实现。
三、主要器件及其介绍
本课程设计主要元件为STC51单片机、ADC0809、四位八段共阴极数码管、
运放LM358、光电池。其中,ADC0809、光电池和数码管的使用是本次课程设计的核心。
3.1、ADC0809
ADC0809是美国国家半导体公司生产的CMOS 工艺8通道,8位逐次逼近式
A/D模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。目前仅在单片机初学应用设计中较为常见。
图 1 ADC0809结构示意图
3.1.1、主要特性
①路输入通道,8位A/D转换器,即分辨率为8位。
②具有转换起停控制端。
③转换时间为100μs(时钟为640KHz 时) ,130μs(时钟为500KHz 时)。 ④单个+5V电源供电。
⑤模拟输入电压范围0~+5V,不需零点和满刻度校准。 ⑥工作温度范围为-40~+85摄氏度。 ⑦低功耗,约15mW 。
3.1.2、外部引脚 1)IN0~IN7
8路模拟量输入端。 8位数字量输出端。
3位地址输入线,用于选通8路2)2-1~2-8
3)ADDA 、ADDB 、ADDC 模拟输入中的一路。 4)ALE
地址锁存允许信号,输入端,高电平有效。 5)START
A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns 宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 6)EOC
A/D转换结束信号,输出端,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。 7)OE
数据输出允许信号,输入端,高电平有效。当A/D转换结束时,此端输入一
图 2 ADC0809实物图
个高电平,才能打开输出三态门,输出数字量。 8)CLK
时钟脉冲输入端。要求时钟频率不高于640KHz 。 基准电压。
9)REF (+)、REF (-) 10)Vcc 、
GND
电源,单一+5V。地。
3.2、四位八段共阴极数码管
图 3 数码管结构示意图
四位八段共阴极数码管的实际引脚应先使数码管正对自己,以左下角的引脚
为一号引脚,逆时针方向引脚序号依次增加,再通过与上图中引脚的序号对应相应的功能,合理分配位控和段控I/O口,实现数码管的动态显示。当自己无法识别数码管的管脚是否为公共脚或是无法识别共阴极还是共阳极,应该用万用表上的二极管端来进行通电测量。
此外,共阴极数码管在显示时需要外接排阻来提高驱动能力以及防止数码管数码管在动态显示时,通常每个字符显示1ms ,需要对单片机的机器周期进电流过大被烧坏,通常不直接使用单片机的I/O口进行直接驱动。 行计算来确定参数。
图 4 数码管引脚图
3.3、运放LM358
LM358 内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适
合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。
3.3.1、主要特性
①内部频率补偿
②直流电压增益高(约100dB) ③单位增益频带宽(约1MHz) ④电源电压范围宽:单电源(3—30V) ⑤双电源(±1.5 一±15V)
⑥低功耗电流,适合于电池供电 ⑦低输入偏流
⑧低输入失调电压和失调电流 ⑨共模输入电压范围宽,包括接地 ⑩差模输入电压范围宽,等于电源电压范围
图 5 LM358实物图
3.3.2、运用场合
由于其输入失调电压和失调电流较低,常用作红外探测报警器中的信号放大
电路,滤波器电路,尤其在光电转换电路中运用较多。
3.3.2、外部引脚
图 6 LM358内部结构图
3.4、光电池
光电池,是一种在光的照射下产生电动势的半导体元件。
3.4.1、工作原理
光电池原理的一个重要理论依据是光伏效应原理。光生伏特效应是指半导体
在受到光照射时产生电动势的现象。具体地说,
如果光线照射在太阳能电池上并
且光在界面层被吸收,具有足够能量的光子能够在P 型硅和N 型硅中将电子从共价键中激发,以致产生电子-空穴对。界面层附近的电子和空穴在复合之前,将通过空间电荷的电场作用被相互分离。电子向带正电的N 区和空穴向带负电的P 区运动。通过界面层的电荷分离,将在P 区和N 区之间产生一个向外的可测试的电压。此时可在硅片的两边加上电极并接入电压表。对晶体硅太阳能电池来说,开路电压的典型数值为0.5~0.6V 。通过光照在界面层产生的电子-空穴对越多,电流越大。界面层吸收的光能越多,界面层即电池面积越大,在太阳能电池中形成的电流也越大。光电池的工作原理正是基于“光生伏特效应”
。
图 7 光电池结构示意图
四、实验电路仿真
图 8 单片机模块电路仿真图
如图所示,该仿真为定量测量滑动变阻器电阻的电路,其中P1为ADC0908
的控制口,P0口味数码管的段控口,P2口为数码管的位控口,P3口为数字信号的输入口。当ADC0809的IN3有输入信号时,数码管会有相应的数值输出。其中要注意的是ADC0809有最大时钟周期,且远低于一般单片机的晶振频率,所以在编程时要考虑单片机的机器周期。
由于传感器课程设计中,许多传感器的信号转换无法用proteus 仿真实现,所以在本次课程设计中,主要是实际搭建电路和调试电路,仿真只是能定性模拟电路,许多实际情况无法用仿真分析。
图 9 放大电路仿真图
五、心得体会
由于有过一次微电子实习的经历,所以这次课程设计上手很容易,知道设计的大概步骤怎么做。但这次用到的单片机编程是我从来没有接触到的,开始时都不知道KEIL C该怎么写,后来还是通过看网上别人的例子逐渐明白自己的程序该怎么去写。
感觉这次课程设计中最难的就是编写程序和调试感受器部分电路。实验室开始买的光电池不知为什么在有光照射的情况下没有光生电流和光生电压,我换了几个电池都是一样的情况,加之由于实验室统一购买元器件,我不知道所使用的光电池型号,所以无法得到相关信息。后来自己去长运电子市场买器件,老板换了一种光电池,问题终于解决。
编程的时候,开始数码管显示很好,但后来的AD 转换数字信号的显示却出现了问题,数码管一直乱跳,无法显示有效数据。由于是第一次使用ADC0809,我在再三检查程序思路发现不了问题,以为是ADC0809的接线错误,反复重新接了几次还是无法解决。后来发现是程序里的一个I/O口名称写错,这种错误无法用C 程序的语法规则报错,只能通过人工一步一步检查。当我检查完错误,真心感觉细节是最容易被忽视但却是最应该被重视的方面。
总的来说,感觉这次课程设计比微电子实习要轻松一些,方向比微电子实习要明确,但收获同样很大。
参考文献
【1】秦曾煌。电工学. 下册,电子技术。北京:高等教育出版社,2004.7
【2】测控论坛:http://ecjtucekong.5d6d.com/bbs.php
【3】百度文库:
http://wenku.baidu.com/view/03e617fa910ef12d2af9e76c.html
【4】张国雄。测控电路,第三版。机械工业出版社,2008.1
【5】韩保军。传感器原理及应用技术,第二版。西安电子科技大学出版社,2009.4
附录
程序
#include
#define uint unsigned int
#define uchar unsigned char
float Mth,Xs;
uchar Zs,XsZs;
uchar i;
sbit Dot=P3^7;
sbit ST=P2^0;
sbit EOC=P2^1;
sbit OE=P2^2;
sbit CLK=P2^3;
uchar data LED[4];
uchar code LEDData[]=
{
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f };
void SzDepa()
{
//P0=0x80;
Mth=P0*0.0196*30;
Zs=Mth;
Xs=Mth-Zs;
XsZs=100*Xs;
LED[3]=2*Mth;
LED[2]=Zs;
LED[1]=XsZs/10; LED[0]=XsZs%10; }
void Delay(uint s)
{
uchar t;
while(s--)
{
for(t=0;t
}
void Display(void)
{
SzDepa();
i=LED[0];
P3=LEDData[i];
P1=0x7f;
Delay(1);
i=LED[1];
P3=LEDData[i];
P1=0xbf;
Delay(1);
i=LED[2];
P3=LEDData[i];
Dot=1;
P1=0xdf;
Delay(1);
i=LED[3];
P3=LEDData[i];
P1=0Xef;
Delay(1);
}
void main()
{
TMOD=0x02;
TL0=216;
TH0=216;
//IE=0xBC;
EA=1;
ET0=1;
TR0=1;
P2=0x3F;
while(1)
{ ST=0;
ST=1;
ST=0;
while(EOC == 0); OE = 1;
Display();
OE = 0;
}
}
void Timer0_INT() interrupt 1 {
CLK = !CLK;
}