基于AT89C52单片机的光功率计设计.doc

上传人:h**** 文档编号:127182 上传时间:2018-07-09 格式:DOC 页数:13 大小:876.50KB
下载 相关 举报
基于AT89C52单片机的光功率计设计.doc_第1页
第1页 / 共13页
基于AT89C52单片机的光功率计设计.doc_第2页
第2页 / 共13页
基于AT89C52单片机的光功率计设计.doc_第3页
第3页 / 共13页
基于AT89C52单片机的光功率计设计.doc_第4页
第4页 / 共13页
基于AT89C52单片机的光功率计设计.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、 1 基于 AT89C52单片机的光功率计的设计 凌阳, 拇指 凌阳 背景概述 凌阳, 拇指 凌阳 随着技术的不断进步激光技术在各行业中得到了广泛的应用 , 拇指 对光功率测量技术也提出了更高的要求 。 食指 传统的光功率测量系统设计是在探测器输出信号后 , 拇指 经放大、 A D转换 , 拇指 直接数字显示 , 拇指 同时有调零电路、定标电路 , 拇指 对于光电型还有波长选择开关 。 食指 随着电子技术的发展 ,拇指 这种设计方法显然已经过时 , 拇指 当前的设计使用单片机技术 , 拇指 或者使测量电路和微机接口、软件和硬件相结合 , 拇指 实现智能测量 , 拇指 使采集和处理测量数据由单片

2、机完 成而不需要人来操作 ,拇指 可以在特殊的环境中完成测量 。 食指 凌阳, 拇指 凌阳 光功率定义 凌阳, 拇指 凌阳 光功率是光在单位时间内所做的功 。 食指 光功率常用单位是毫瓦 (mW)和分贝 (dB), 拇指 其中两者关系为 lmW=0dB, 拇指 而小于 1mw 凌阳, 拇指 凌阳 的分贝为负值 。 食指 例如 , 拇指 在光纤收发器或交换机说明书中 , 拇指 有其产生的发光和接收光功率 , 拇指 通常发光小于 0dB。 食指 接收端所能够接收的最小光功率称为灵敏度 , 拇指 能接收的最大光功率减去灵敏度的值称为动态范围 , 拇指 发光功率减去接收灵敏度是允许光纤损耗凌阳, 拇指

3、 凌阳 值 。 食指 凌阳, 拇指 凌阳 光功率计的设计要点 凌阳, 拇指 凌阳 针对实际应用 , 拇指 要选择适合的光功率计 , 拇指 应该关注以下 凌阳, 拇指 凌阳 各点: 凌阳, 拇指 凌阳 (1)选择最优的探头类型和接口类型 。 食指 凌阳, 拇指 凌阳 (2)评价校准精度和编写校准程序 , 拇指 与光纤和接头要求 凌阳, 拇指 凌阳 范围相匹配 。 食指 凌阳, 拇指 凌阳 (3)确定这些型号与测量范围和显示分辨率相一致 。 食指 凌阳, 拇指 凌阳 (4)具备直接插入损耗测量功能 。 食指 凌阳, 拇指 凌阳 二、实验目的和意义 凌阳, 拇指 凌阳 “光电子测量设计”是电子科学与

4、技术专业的必修实践环 节 , 拇指 该课程是以测量为主线 , 拇指 凌阳, 拇指 凌阳 应用光电子技术解决一个测量问题 。 食指 学生通过具体解决测量问题的训练过程 , 拇指 理解测量的基凌阳, 拇指 凌阳 本概念 , 拇指 掌握应用光电子技术解决测量问题的基本方法 , 拇指 学会测量误差分析、数据处理等 。食指 凌阳, 拇指 凌阳 该课程对于培养有计量特色的光电子技术人才十分重要 。 食指 凌阳, 拇指 凌阳 基于光电转换器件的光强度的测量 , 拇指 设计光接收电路 , 拇指 并进行光电转换 , 拇指再设计放大电路、滤波电路、 AD 凌阳, 拇指 凌阳 转换电路及微处理器电路 , 拇指 对测

5、量光的光强度进行标定 , 拇 指最终实现光强度的测量 , 拇指 系统要求精度为 凌阳, 拇指 凌阳 1mW。 食指 凌阳, 拇指 凌阳 三、 方案设计与比较 凌阳, 拇指 凌阳 方案一:基于光电二极管的光功率测量 凌阳, 拇指 凌阳 凌 阳, 拇指 凌阳 1)光电探头的选择 : 凌阳, 拇指 凌阳 光电二极管: PD333-3C响应波长为 4001100nm, 拇指 具有高响应速率、高光电灵敏度等特性 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 2) AD转换芯片的选择: 凌阳, 拇指 凌阳 2 凌阳, 拇指 凌阳 TLC549是 8位串行 A/D转换器芯可与通用微处理器、控制器通过 C

6、LK、 CS、 DATA 凌阳, 拇指凌阳 OUT三条口线进行串行接口 。 食指 具有 4MHz片内系统时钟和软、硬件控制电路 , 拇指转换时间最长 17 s, 拇指 凌阳, 拇指 凌阳 TLC549为 40 凌阳, 拇指 凌阳 000次 /s。 食指 总失调误差最大为 0.5LSB, 拇指 典型功耗值为 6mW。 食指 采用差分参考电压高阻输入 , 拇指 抗干扰 , 拇指 可按比例量程校准转换范围 , 拇指 VREF-接地 , 拇指 VREF+ VREF- 1V, 拇指 可用于较小信号的采样 。 食指 凌阳, 拇指 凌阳 方案二:基于硅光电池的光功率测量 凌阳, 拇指 凌阳 1)光电探头的选

7、择: 凌阳, 拇指 凌阳 硅光电池: BPW34具有高光电探测率、比较大的光敏面积、高光电灵敏度 , 拇指 快速响应时间、体积小等特点 。 食指 凌阳, 拇指 凌阳 2) AD转换芯片的选择: 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 (图 1) 凌阳, 拇指 凌阳 ADC0809 凌阳, 拇指 凌阳 是 8 凌阳, 拇指 凌阳 位逐次逼近型 A/D转换器 。 食指 它由一个 8路模拟开关、一个地址锁存译码器、一个 A/D 凌阳, 拇指 凌阳 转换器和一个三态输出锁存器组成(见图 1) 。 食指 多路开关可选通 8个模拟通道 , 拇指 凌阳, 拇指 凌阳 允许 8 凌阳, 拇指 凌阳 路模拟量分

8、时输入 , 拇指 共用 A/D转换器进行转换 。 食指 三态输出锁器 用于锁存 A/D转换完 凌阳, 拇指 凌阳 的数字量 , 拇指 当 OE 凌阳, 拇指 凌阳 端为高电平时 , 拇指 才可以从三态输出锁存器取走转换完的数据 。 食指 凌阳, 拇指 凌阳 方案三:采用集成光强感应芯片 凌阳, 拇指 凌阳 采用已经有的集成光强感应芯片 , 拇指如下图所示 。 食指 凌阳, 拇指 凌阳 3 凌 阳, 拇指 凌阳 BH1710FVC内置了 16bitAD转换器 ,可对广泛的亮度进行 1勒克斯的高精度 , 拇指 内置A/D转换器 , 拇指 测定照明度数字值可以直接输出 。 食指 输出采用 I2C 凌

9、阳, 拇指 凌阳 BUS接口可以直接与单片机通讯 。 食指 凌阳, 拇指 凌阳 方案的比较 与选择: 凌阳, 拇指 凌阳 方案一的 AD芯片管脚比较少 , 拇指 同时有 4MHz片内系统时钟和软、硬件控制电路 , 拇指芯片的功能能够满足设计的要求 , 拇指 而且使用简单、功能强大 。 食指 而 AD0809使用时还要使用外部时钟 , 拇指 同时还要外接逻辑器件 。 食指 在使用光电和光伏探测器件的功能上是基本一致的 , 拇指 就是频带响应不一样 , 拇指 对于可见光的光功率的测量二者都可以用 。 食指所以采用方案一 。 食指 凌阳, 拇指 凌阳 四、实验器件 凌阳, 拇指 凌阳 光功率计探头

10、(光电传感器 ), 拇指 AT89C52单片机 , 拇指 电阻 , 拇指 电容 , 拇指 晶振 , 拇指 1602液晶屏 , 拇指 导线若干 。食指 凌阳, 拇指 凌阳 光功率测量原理 凌阳, 拇指 凌阳 原理框图 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 2、各模块功能详解 凌阳, 拇指 凌阳 1)光功率计探头 凌阳, 拇指 凌阳 光功率计探头 , 拇指 是光信号转换为电信号的核心部件 。 食指 探 凌阳, 拇指 凌阳 头带有光电传感器 , 拇指 用来接收被测光源的辐射并将其转换为 凌阳, 拇指 凌阳 电流信号 。 食指 探头采用双线正负两个端口输出 。 食指 当被检测光 凌阳, 拇指 凌阳

11、源强度发生变化时 , 拇指 传感器输出的电流会随之改变 。 食指 我们通 凌阳, 拇指 凌阳 过对电流量变化进行转换分析最终获得外部 光源的光功率 凌阳, 拇指 凌阳 变化参数 。 食指 凌阳, 拇指 凌阳 2) I U变换 凌阳, 拇指 凌阳 光功率探头输出小电流信号 。 食指 电流信号与电压信号相 凌阳, 拇指 凌阳 比 , 拇指 长距离传输抗干扰性能较好 。 食指 但是由于本次试验距离较 凌阳, 拇指 凌阳 短 , 拇指 同时为了与后面电压放大器相匹配 , 拇指 所以要转换为电压 凌阳, 拇指 凌阳 信号 。 食指 本次设计使用 LM358N芯片连接 I/U变换电路和放大电路 。 食指

12、连接时 , 拇指 光功率探头的输出正端口接入转换电路输入 凌阳, 拇指 凌阳 端 , 拇指 负端口与 I U变换电路共地连接 , 拇指 如图一所示 。 食指 凌阳, 拇指凌阳 4 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图一 , 拇指 I/U变化电路 凌阳, 拇指 凌阳 运算放大电路 凌阳, 拇指 凌阳 I/U变换以后输出的信号很微弱 , 拇指 大概是毫伏的量级 , 拇指 要对信号后期处理 , 拇指 首先要进行放大 。食指 由于本次试验对电路精度要求不高 , 拇指 这里只设计了一级放大 。 食指 电路图如图二所示 。 食指 凌阳, 拇指 凌阳 凌阳, 拇

13、指 凌阳 图二 , 拇指 运算放大电路 凌阳, 拇指 凌阳 低通滤波电路 凌阳, 拇指 凌阳 本实验所得的信号为低频信号 , 拇指 故在进行 A/D转换之前要滤除高频信号 , 拇指 我们用两个 电容组成的无源低通滤波器作为被刺实验的滤波电路 。 食指 电路图如图三 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图三 , 拇指 低通滤波电路 凌阳, 拇指 凌阳 A/D转换电路 凌阳, 拇指 凌阳 本实验采用 TLC549CD芯片实现 A/D转换 。 食指 凌阳, 拇指 凌阳 TLC549是 凌阳, 拇指 凌阳 TI公司生产的一种低价位、高性能的 8位 凌阳, 拇指 凌阳 A/D转换器 , 拇

14、指 它以 8位开关电容逐次逼近的方法实现 凌阳, 拇指 凌阳 A/D转换 , 拇指 其转换速度小于 凌阳, 拇指 凌阳 17us, 拇指 最大转换速率为 凌阳, 拇指 凌阳 40000HZ, 拇指 4MHZ典型内部 系统时钟 , 拇指 电源为 凌阳, 拇指 凌阳 3V至 凌阳, 拇指 凌阳 6V。 食指 它能方便地采用三线串行接口方式与各种微处理器连接 , 拇指 构成各种廉价的测控应用系统 。 食指 凌阳, 拇指 凌阳 当 /CS变为低电平后 , 拇指 凌阳, 拇指 凌阳 TLC549芯片被选中 , 拇指 凌阳, 拇指 凌阳 同时前次转换结果的最高有效位 MSB 凌 阳, 拇指 凌阳 ( A7

15、)自 凌阳, 拇指 凌阳 DATA 凌阳, 拇指 凌阳 OUT 凌阳, 拇指 凌阳 端输出 , 拇指 接着要求自 凌阳, 拇指 凌阳 I/O 凌阳, 拇指 凌阳 CLOCK端输入 8个外部 时钟信号 , 拇指 前 7个 凌阳, 拇指 凌阳 I/O 凌阳, 拇指 凌阳 CLOCK信号的作用 , 拇指 是配合 凌阳, 拇指 凌阳 TLC549 凌阳, 拇指 凌阳 输出前次转换结果的 凌阳, 拇指 凌阳 A6-A0 凌阳, 拇指 凌阳 位 , 拇指 并为本次转换做准备:在第 4个 凌阳, 拇指 凌阳I/O 凌阳, 拇指 凌阳 CLOCK 凌阳, 拇指 凌阳 信号由高至低的跳变之后 , 拇指 片内采样

16、 /保持电路对输入模拟量采样开始 , 拇指 第 8个 凌阳, 拇指 凌阳I/O 凌阳, 拇指 凌阳 CLOCK 凌阳, 拇指 凌阳 信号的下降沿使片内采样 /保持电路进入保持状态并启动 凌阳, 拇指 凌阳 A/D开始转换 。 食指 转换时间为 凌阳, 拇指 凌阳 36 凌阳, 拇指 凌阳 个系统时钟周期 , 拇指 最大为 凌阳, 拇指 凌阳 17us。 食指 直到 凌阳, 拇指 凌阳 A/D转换完成前的这段时间内 , 拇指 TLC549 凌阳, 拇指 凌阳 的控制逻辑要求:或者 /CS保持高电平 , 拇指 或 者 凌阳, 拇指 凌阳 I/O 凌阳, 拇指 凌阳 CLOCK 凌阳, 拇指 凌阳

17、时钟端保持 36个系统时钟周期的低电平 。5 食指 由此可见 , 拇指 在自 凌阳, 拇指 凌阳 TLC549的 凌阳, 拇指 凌阳 I/O 凌阳, 拇指 凌阳 CLOCK 凌阳, 拇指 凌阳 端输入 8个外部时钟信号期间需要完成以下工作:读入前次 A/D转换结果;对本次转换的输入模拟信号采样并保持;启动本次 凌阳, 拇指 凌阳 A/D转换开始 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 TLC549时序图 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 TLC549与单片机连接图如下所示 凌阳, 拇指 凌阳 凌阳, 拇指凌阳 模拟信号从 2号脚输入 , 拇指 6号脚输出数字信号 。 食指 凌阳

18、, 拇指 凌阳 LCD显示电路 凌阳, 拇指 凌阳 数字信号经过单片机运算后要通过液晶显示出来 , 拇指 本实验使用的是 1062液晶屏显示 , 拇指 1062与单片机连接图如下所示 。 食指 凌阳, 拇指 凌阳 6 1062管脚 凌阳, 拇指 凌阳 六、完整电路原理图设计 凌阳, 拇指 凌阳 基于上述思想设计出的完整电路图如下所示 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 七、程序设计 凌阳, 拇指 凌阳 现列出单片机程序关键程序代码: 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 #include凌阳, 拇指 凌阳 #include凌阳, 拇指 凌阳 #define 凌阳, 拇指 凌阳

19、uchar 凌阳, 拇指 凌阳 unsigned 凌阳, 拇指 凌阳 char凌阳, 拇指 凌阳 #define 凌阳, 拇指 凌阳 uint 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 unsigned 凌阳, 拇指 凌阳 int凌阳, 拇指 凌阳 #define 凌阳, 拇指 凌阳 ulong 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 unsigned 凌阳, 拇指 凌阳 long凌阳, 拇指 凌阳 char 凌阳, 拇指 凌阳 table116=“ 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 AD: 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 0000 凌阳, 拇指 凌阳 凌阳,

20、拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 “;凌阳, 拇指 凌阳 7 char 凌阳, 拇指 凌阳 table216=“ 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 00.00 凌阳, 拇指 凌阳 uW 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 “;凌阳, 拇指 凌阳 uchar 凌阳, 拇指 凌阳 time,a;凌阳, 拇指 凌阳 uint 凌阳, 拇指 凌阳 Volt,AD;凌阳, 拇指 凌阳 ulong 凌阳, 拇指 凌阳POW;凌阳, 拇指 凌阳 int 凌阳, 拇指 凌阳 s; 凌阳, 拇指 凌阳凌阳

21、, 拇指 凌阳 凌阳, 拇指 凌阳 sbit 凌阳, 拇指 凌阳 lcdrs=P07;凌阳, 拇指 凌阳 sbit 凌阳, 拇指 凌阳 lcdrw=P06;凌阳, 拇指 凌阳 sbit 凌阳, 拇指 凌阳 lcden=P05;凌阳, 拇指 凌阳 sbit 凌阳, 拇指 凌阳 CS=P37; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /片选 凌阳, 拇指 凌阳 sbit 凌阳, 拇指 凌阳 DO=P36; 凌阳, 拇指 凌阳 凌阳, 拇指凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /数据输出 凌阳

22、, 拇指 凌阳 sbit 凌阳, 拇指 凌阳 CLK=P35; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /时钟 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 void 凌阳, 拇指 凌阳 delay(uint 凌阳, 拇指 凌阳 z)/延时函数 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 uint 凌阳, 拇指 凌阳 x,y;凌阳, 拇指 凌阳 for(x=z;x0;x-)凌阳, 拇指 凌阳 for(y=120;y0;y-);凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 void 凌阳, 拇指 凌阳 write_com(uchar 凌阳, 拇指 凌阳

23、com) 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /写指令函数 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 lcdrs=0;凌阳, 拇指 凌阳 lcdrw=0;凌阳, 拇指 凌阳 P2=com;凌阳, 拇指 凌阳 lcden=1;凌阳, 拇指 凌阳 delay(2);凌阳, 拇指 凌阳 lcden=0;凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 void 凌阳, 拇指 凌阳 write_data(uchar 凌阳, 拇指 凌阳 date) 凌阳, 拇指 凌阳 /写数据函数 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 lcdrs=1;凌阳, 拇指 凌阳 lcdrw=0;凌阳, 拇指 凌阳

24、 P2=date;凌阳, 拇指 凌阳 lcden=1;凌阳, 拇指 凌阳 delay(2);凌阳, 拇指 凌阳 lcden=0;凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 void 凌阳, 拇指 凌阳 init() 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /初始化函数 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 lcden=0;凌阳, 拇指 凌阳 write_com(0x38);凌阳, 拇指 凌阳 8 write_com(0x0c);凌阳, 拇指 凌阳 write_com(0x06);凌阳, 拇指 凌阳 write_com(0x01);凌阳, 拇指 凌阳 凌阳,

25、 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 unsigned 凌阳, 拇指 凌阳 char 凌阳, 拇指 凌阳 TLC549(void) 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /AD转换 , 拇指 返回结果 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 uchar 凌阳, 拇指 凌阳 i,temp;凌阳, 拇指 凌阳 CS=1;凌阳, 拇指 凌阳 CLK=0;凌 阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指

26、 凌阳 凌阳, 拇指 凌阳 CS=0;/拉低 CS端 凌阳, 拇指 凌阳 DO输出最高位 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 _nop_();凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 _nop_();凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 for(i=0;i0;i-) 凌阳, 拇指 凌阳 _nop_(); 凌阳, 拇指 凌阳 /延迟 17us凌阳, 拇指 凌阳 return(temp); 凌阳,

27、 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 void 凌阳, 拇指 凌阳 Data_Conversion(void) 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /AD 凌阳, 拇指 凌阳 读数转十进制函数 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 AD=TLC549();凌阳, 拇指 凌阳 if(a5)凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 s=s+AD;凌阳, 拇指 凌阳 a+;凌阳, 拇指 凌阳 if(a=5) 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 table18=s/1000+0;凌阳, 拇指 凌阳 table19=s/1

28、00%10+0;凌阳, 拇指 凌阳 9 table110=s/10%10+0; 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 table111=s%10+0;凌阳, 拇指 凌阳 Volt=AD*100/255*5;凌 阳, 拇指 凌阳 POW=(-0.4140)*Volt*Volt+100*10.2729*Volt+10000*1.2273;凌 阳, 拇指 凌阳 POW=POW/100;凌阳, 拇指 凌阳 table24=POW/1000+0;凌阳, 拇指 凌阳 table25=POW/100%10+0;凌阳, 拇指 凌阳 table27=POW/10%10+0;凌阳, 拇指 凌阳 table28=P

29、OW%10+0;凌阳, 拇指 凌阳 a=0;凌阳, 拇指 凌阳 s=0;凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 void 凌阳, 拇指 凌阳 display 凌阳, 拇指 凌阳 (uchar 凌阳, 拇指 凌阳 x,uchar 凌阳, 拇指 凌阳 y,uchar 凌阳, 拇指 凌阳 *str)凌阳, 拇指 凌阳 凌阳 ,拇指 凌阳 uchar 凌阳, 拇指 凌阳 i;凌阳, 拇指 凌阳 if(x=0) 凌阳, 拇指 凌阳 write_com(0x80|y);凌阳, 拇指 凌阳 if(x=1) 凌阳, 拇指 凌阳 wr

30、ite_com(0xc0|y);凌阳, 拇指 凌阳 for(i=0;i16;i+)凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 write_data(stri);凌阳, 拇指 凌阳 if(stri=0) 凌阳, 拇指 凌阳 break;凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 void 凌阳, 拇指 凌阳 main()凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 init();凌阳, 拇指 凌阳 TMOD=0x01; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /设置定时器 0为工作方式 1(

31、0000 凌阳, 拇指 凌阳 0001)凌阳, 拇指 凌阳 TH0=(65536-50000)/256; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /装初值 50ms一次中断 凌阳, 拇指 凌阳 TL0=(65536-50000)%256; 凌阳, 拇指 凌阳 EA=1; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /开总中断 凌阳, 拇指 凌阳 ET0=1; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌

32、阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /开定时器 0中断 凌阳, 拇指 凌阳 TR0=1; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /启动定时器 0 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 while(1)凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 delay(800);凌阳, 拇指 凌阳 display(0,0,table1);凌阳, 拇指 凌阳 display(1,0,table2); 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指

33、凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 10 void 凌阳, 拇指 凌阳 int_adr(void) 凌阳, 拇指 凌阳 interrupt 凌阳, 拇指 凌阳 1凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 TH0=(65536-50000)/256; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /重装初值 凌阳, 拇指 凌阳 TL0=(65536-50000)%256;凌阳, 拇指 凌阳 time+;凌阳, 拇指 凌阳 if(time=1)凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 Data_Conversion();

34、凌阳, 拇指 凌阳 time=0;凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 八、调试设计 凌阳, 拇指 凌阳 产品调试直接关系到产品的质量与性能 。 食指 软件调试需要用到 uVision软件 。 食指 Keil 凌阳, 拇指 凌阳 C51是美国 KeilSoftware公司出品的 51系列兼容单片机 C语言软件开发系统 。 食指 与汇编相比 。 食指 C语言在功能、结构性、可读性、可维护性等方面具有明显的优势而且易学易用 。 食指 此外 , 拇指 Keil 凌阳, 拇指 凌阳 C51软件还提供有丰富的库函数和功能强大

35、的集成开发调试工具 , 拇指 且全 Windows界面 。 食指 Keil 凌阳, 拇指 凌阳 C51生成的目标代码效率非常高 , 拇指 多数语句生成的汇编代码都很紧凑 , 拇指 很容易理解 。 食指 在开发大型软件时更能体现高级语言的优势 。 食指 uVision在编译过程中 , 拇指 能很好的检测出程序的错误与警告 。 食指 并能直观提示是哪一行程序出了问题故可方便地对程序进行检测与验证 。 食指 uVi sion采用BL5I作连接器 , 拇指 因为 BL5l兼容 L51, 拇指 所以一切能在 Dos下工作的 project都可以到 uVision中进行连接调试 。 食指 uVision采

36、 mdScope 凌阳, 拇指 凌阳 for 凌阳, 拇指 凌阳 win dows作调试器 , 拇指 该调试器支持 MON51及系统模拟两种方式 , 拇指 而且功能较 for 凌阳, 拇指 凌阳 DOS要强大好用 , 拇指 调试功能也很强大 。 食指 在系统硬件调试中可利用 5l系列仿真器 F51 64K进行硬件仿真 , 拇指uVision也对 5l系列仿真器进行了说明与介绍 。 食指 同时 。 食指 uVision还可与 F51 64K进行联合仿真它可以根据仿真步骤进行实际操作 , 拇指 并利用参考光功率计进行调试 , 拇指 以便此设计程序在语法没有错误的基础上能够正确测量光纤功率 。 食指

37、 凌阳, 拇指 凌阳 在实际电路的调试中 , 拇指 曾经出现液晶屏显示电压不稳定 , 拇指 而且信号容易饱和等问题 , 拇指 通过我们积极查找 , 拇指 我们发现 TLC 549的基准电压没有连接电源 , 拇指 电路经过改进后可以顺利输 出相对稳定的电压信号 。 食指 凌阳, 拇指 凌阳 九、数据记录与拟合 凌阳, 拇指 凌阳 1、输出电压与标准光功率计关系表: V uW V uW V uW 0 0.05 0.1 2.5 1.1 11.8 2.1 21 0.2 3.22 1.2 12.6 2.2 21.7 0.3 4.59 1.3 13.8 2.3 22.6 0.4 6.01 1.4 14.5 2.4 23.1 0.5 6.8 1.5 15.6 2.5 23.9 0.6 7.83 1.6 16.5 2.6 24.4 0.7 8.75 1.7 17.5 2.7 25 0.8 8.92 1.8 18.9 2.8 25.7 0.9 9.68 1.9 19.6 2.9 26.4 1 10.47 2 20.1 3 27

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。