数字光强度检测模块设计说明.doc

上传人:李司机 文档编号:1189763 上传时间:2022-07-19 格式:DOC 页数:31 大小:242.50KB
返回 下载 相关 举报
数字光强度检测模块设计说明.doc_第1页
第1页 / 共31页
数字光强度检测模块设计说明.doc_第2页
第2页 / 共31页
数字光强度检测模块设计说明.doc_第3页
第3页 / 共31页
数字光强度检测模块设计说明.doc_第4页
第4页 / 共31页
数字光强度检测模块设计说明.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《数字光强度检测模块设计说明.doc》由会员分享,可在线阅读,更多相关《数字光强度检测模块设计说明.doc(31页珍藏版)》请在三一办公上搜索。

1、. 1前言1.1设计选题设计选题一:数字光强度检测模块设计1.2任务及要求1.2.1 设计选题的任务结合单片机最小电路和光敏电阻电路共同设计一个基于单片机的数字光强度检测系统,用数码管显示光照强度。还可以设置多个不同方向的光敏电阻,通过计算它们的光照强度运用比较器以确定当前的光照方向。、实现单片机最小系统设计。、焊接调试光敏电阻网络。、焊接调试AD电路,标定光照强度基本单位。、编写单片机程序,将获得的电信号转换成光照强度单位下的数值,并用数管显示。、通过比较不同方向测得的光强数值判断光照方向,在数码管上显示其方向。1.2.2设计选题的要求、无光照时数码管显示为零。、用数码管显示光照强度,误差围

2、为510LUX。、两个小数点具体显示光强方位。2总体方案设计2.1设计方案的提出与论证2.1.1 设计方案一采用光敏电阻、二极管和555定时器构成多谐振荡电路,利用多谐振荡电路的两个暂稳态输出由此产生矩形波脉冲信号。而光敏电阻阻值会随着光照强度的变化而发生变化,进而使得多谐振荡电路的周期变化,其输出波形频率也随之改变。将其输出模拟信号波形输入到一个简易数字式频率计通过两位数码管显示出来,数字式频率计主要由时基电路、闸门电路计数器、锁存器、译码显示电路和逻辑控制电路组成。具体实现框图如下图2.1所示:光敏电阻阻值变化多谐振荡器电路周期变化 简易数字频率计时基电路闸门电路计数器锁存器译码显示器逻辑

3、控制电路图2.1 设计方案一原理框图本方案采用性能稳定且便宜的光敏电阻作为光照传感器,通过光敏电阻值变化影响多谐振荡电路的周期而检测光强,性能较稳定一些,灵敏度也较高,但是电路结构比较复杂,所用元器件种类较多,实现和调试工作会比较困难,造价也较高,虽然能满足稳定性和灵敏度的要求,但不宜采用。2.1.2设计方案二本方案采用光电二极管,利用其产生的电流随光照增强的线性特性输出模拟采样电压,并联三条光敏二极管和电阻支路,将这三路电压通过选通器循环输入到模数转换器ADC0804将模拟信号转换为数字信号,将数字信号通过通信模块输送给STC89C51单片机,通过比较后得出最大值,将最大值输出并利用两位数码

4、管显示出来。具体框图如下图2.2所示:89C51单片机光敏二极管接受光照输出电流变化采集电阻两端电压运算放大器两位数码管显示模数转换ADC图2.2 设计方案二原理框图对于本方案,采用线性好,响应速度快的光敏二极管作为光照传感器,故电路响应速度快,灵敏度高。缺点是单独使用输出电流或电压很小,需要加放大电路将采样电压进一步放大,而加入运放环节会由于运放的零漂和易受温度影响使得电路稳定性降低,误差增大。另外限于实验元器件的供给,实验中也不采用本方案。2.1.3设计方案三采用三路光敏电阻支路并联检测光照强度,通过每一路可以得到一个模拟采样电压,将这三路电压通过CD4051单8通道数字控制模拟电子开关循

5、环输入到模数转换器ADC0804将模拟信号转换为数字信号,将数字信号通过通信模块输送给STC89C51单片机,通过比较后得出最大值,将最大值输出并利用两位数码管显示出来。对于光强的方位,则通过控制两位数码管的两个小数点的关断与否来显示出来,具体是两个小数点分别单独亮时对应两个方位,而两个小数点均不亮时对应另外一个方位。至此,可以将光照的强度以及光照的方位通过两位数码管显示出来,完成了本设计选题的任务及要求。具体框图如下图2.3所示:控制信号89C51单片机光敏电阻采集模拟电压输出选择模块模数转换器ADC通信模块两位数码管显示图2.3 设计方案三原理框图本方案采用性能稳定且便宜的光敏电阻作为光照

6、传感器,STC89C51单片机作为主控制器。性能稳定,抗干扰能力强,不易受外界环境温度等因素影响,灵敏度也较高,但是由于光照传感器采用光敏电阻且为三条支路并联采集模拟电压信号,会存在一定的误差。总体上来说,本方案电路结构简单、所用元器件供给充足、成本造价低、性能稳定且误差围也在设计选题的要求之,能在简单低成本的基础上很好的完成设计选题的任务,故实验中采用本方案。2.2方案选择通过以上三种方案的设计,方案一采用光敏电阻作为光照传感器,稳定性和灵敏度虽然都能满足设计选题的要求,但是电路结构过于复杂,实现和调试都比较困难,在实验中不采用;方案二采用光敏二极管作为光照传感器,线性度好,响应速度快,但是

7、需要额外添加运放环节,对系统稳定性和误差都会带来不利影响,另外限于元器件的供应,本实验中也不采用:而方案三采用光敏电阻作为光照传感器,进行模拟电压采样,通过ADC数模转换器将模拟信号转换为数字信号传送到51单片机中,进而控制两位数码管显示具体数值和方位,简单可行,成本造价低,故在实验中采用本方案。3单元模块设计3.1个单元模块功能介绍及电路设计3.1.1光照强度检测电路的设计对于最终采用的方案三,其光照强度检测电路如下图3.1所示:图3.1 设计方案光强检测电路如上图所示,采用三路光敏电阻支路并联,其中一路串联固定电阻,而另外两组分别串联一个电位器,均接在VCC和GND之间,采样电压为三个光敏

8、电阻两端所加电压U1、U2、U3,对于这三路电压值比较后把最大值输送给ADC0804转化为数字信号,通过数码管显示出来。其中两个电位器的作用是在后期的调试过程中,使得在外界给予三个方向的光敏电阻同样强度的光照时,通过调节电位器使得数码管显示光强数值相同。对于与两个采样电位器和采样固定电阻的选取,由数字式万用电表对光敏电阻在无光照和正常光照时进行测量,对应阻值在2.1k欧姆11.2k欧姆之间变化,故固定电阻R1选取5k欧姆左右,综合实验室的电阻元器件供给,本实验中选取4.7k欧姆;两个电位器则选择0-20k欧姆规格的灵敏电位器。3.1.2电压输出选择电路设计输出选择模块采用CD4051芯片如下图

9、3.2所示:图3.2 设计方案输出模块CD4051芯片电路结构图CD4051相当于一个单刀八掷开关,控制X0-X7八个通道的开通和关断,开关接通哪一通道,由输入的3位地址码ABC来决定。本设计方案中将三路模拟采样电压U1U3分别接到X0-X2上,由单片机程序控制ABC管脚进行循环采样,进而控制采样电压的输出,通过X输出端传送给数模转换器ADC0804芯片。3.1.3数模转换模块电路设计本方案中采用ADC0804芯片进行数模转换,其电路结构图如下图3.3所示。ADC0804模数转换器是用CMOS集成工艺制成的逐次比较型摸数转换芯片。分辨率8位,转换时间100s,输入电压围为05V,增加某些外部电

10、路后,输入模拟电压可为5V。该芯片有输出数据锁存器,当与计算机连接时,转换电路的输出可以直接连接在CPU数据总线上,无须附加逻辑接口电路。图3.3 设计方案一数模转换模块电路结构图在实验方案中,将CD4051循环输出的模拟电压接到ADC0804的6管脚输入,通过它转换为数值信号,通过八个管脚DB0DB7通过通信模块传送给单片机,对单片机进行编程进而控制两位数码管的显示。其外接电阻的阻值已经标注在电路结构图中。对于ADC0804其接口时序及接口信号图如下图3.4所示:图3.4 设计方案ADC0804接口时序及接口信号图3.1.4单片机最小系统的电路设计图3.5 设计方案单片机最小系统电路结构图S

11、TC89C51功能强大、速度快、寿命长、价格低,目前在市场上已经是主流,其外型有40个引脚,双列直插DIP-40。STC89C51可以完成ISP在线编程功能,而AT89C51则不能。将AT89C51中的程序直接烧录到STC89C51中后,STC89C51就可以代替AT89C51直接工作一般都不需要做任何改动即可正常工作。因此本实验中采用STC89C51单片机作为主控制器,其电路结构如上图3.5所示。对于电路中注意单片机要使用P0端口,必须外加上拉电阻,本实验方案中采用10K欧姆排阻。电路中P10P17管脚分别接到模数转换电路ADC0804电路的DB0DB7管脚。另外其对应的通信系统电路图如下图

12、3.6所示:图3.6 设计方案通信模块电路结构图3.1.5数码管显示电路的设计用一个两位数码管来具体显示光照强度的数值,两位数码管的两个小数点对应显示光强方位,主要由编程控制。数码管电路结构图具体如下图3.7所示:图3.7 设计方案数码管显示电路结构图3.1.6系统其它部分整个板子的电源由直流稳压电源供电,加5V电压,由一六角自锁开关来控制通断;单片机程序编译软件由Keil uVision2完成,单片机复位由一个小按键来实现;单片机下载程序软件则为STC-ISP V29 Beta5来完成。3.2 电路参数的计算及元器件的选择表1 元器件清单表元器件名称型号数量万用板 单片机STC89C51DI

13、P40 六角自锁开关 四角按键 30pf电容 12M晶振 Max232芯片 DIP16插座 104电容串口头 ADC0804 DIP20插座 电位器 LM358DIP8插座 CD4051 两位数码管 三极管8550 光敏电阻150pf电容1111121125111211112313.3 光照传感器及敏感元件概述光照传感器是基于光电效应、将光信号转换为电信号的传感器,其敏感元件是光电器件。光照传感器主要由光敏元件组成。目前光敏元件发展迅速、品种繁多、应用广泛。主要有光敏电阻器、光电二极管、光电三极管、光电耦合器和光电池。3.3.1光敏电阻器、光敏电阻原理光敏电阻器由能透光的半导体光电晶体构成,因

14、半导体光电晶体成分不同,又分为可见光光敏电阻硫化镉晶体、红外光光敏电阻砷化镓晶体、和紫外光光敏电阻硫化锌晶体。当敏感波长的光照半导体光电晶体表面,晶体载流子增加,使其电导率增加即电阻减小。光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强,电阻减小,入射光弱,电阻增大。光敏电阻器一般用于光的测量、光的控制和光电转换将光的变化转换为电的变化。2、光敏电阻的应用光敏电阻器广泛应用于各种自动控制电路如自动照明灯控制电路、自动报警电路等、家用电器如电视机中的亮度自动调节,照相机中的自动曝光控制等及各种测量仪器中。3.3.2光敏二极管光敏二极管是一种将光能变换为电能的

15、器件,它利用了半导体的光生伏特效应的原理。光敏二极管的优点是线性好,响应速度快,对宽围波长的光具有较高的灵敏度,噪声低;缺点是单独使用输出电流或电压很小,需要加放大电路。4软件设计4.1说明软件设计原理及设计所用工具本设计主要使用Protel以及ISIS软件,通过它可以进行原理图的绘制以及仿真。下面介绍一些前面板对象共用属性的用法。1Visible 选项:选中该项表示开启栅格的功能。当开启栅格显示功能的时候,原理图的图纸背景中会出现网格。该选项后面的编辑框用于输入显示栅格的大小,单位为mil。2Lib Ref编辑框:表示所要放置的元器件在元件库中的名称。Protel 99 SE就是根据这一名称

16、在当前元件库中进行搜索,在用户确定之后再将其从库中调到工作区中的。3Designator 编辑框:表示所要放置的元器件在原理图中的元器件序号,每一个元器件都有一个唯一的元器件序号,它是元器件的唯一标识符。4Part Type编辑框:表示元器件的类型。默认情况下,它与Lib Ref的容相同,也就是说,该元件的类型就是它在相应的元件库中的名称。4.2画出软件设计结构图、说明其功能本设计主要使用Protel及ISIS软件,来设计步进电机驱动控制系统。本次设计数字光照强度检测模块设计必须有五个部分,即:1照强度检测电路;2电压输出选择电路;3数模转换模块电路;4单片机最小系统的电路;5数码管显示电路。

17、各部分功能分别为:1在后期的调试过程中,使得在外界给予三个方向的光敏电阻同样强度的光照时,通过调节电位器使得数码管显示光强数值相同;2控制采样电压的输出,通过X输出端传送给数模转换器ADC0804芯片;3将CD4051循环输出的模拟电压接到ADC0804的6管脚输入,通过它转换为数值信号,通过八个管脚DB0DB7通过通信模块传送给单片机,对单片机进行编程进而控制两位数码管的显示;4作为主控制器;5用一个两位数码管来具体显示光照强度的数值,两位数码管的两个小数点对应显示光强方位。5系统调试5.1 电路板硬件焊接及调试硬件的焊接工作是软件编程调试的基础,硬件焊接的质量对于一个系统的性能、稳定性都有

18、重要影响。5.1.1 准备工作在进行焊接之前,我首先对拿到手的所有元器件进行测试以检查其是否还能正常工作。对于三个光敏电阻、普通电阻、两个三极管逐一测试,发现其中一个光敏电阻阻值基本不随光照强度变化而变化,又进行了调换。所有元器件基本测试完毕后,对其管脚进行镀锡,以保证电路可靠性和焊接质量。紧接着在焊之前对元器件的分布做一个大致的布局,在布局清晰的基础上开始硬件的焊接。5.1.2 焊接工作在焊接过程中,应遵循以下原则:1、元器件的装插焊接应遵循先小后大,先轻后重,先低后高,先里后外的原则;在瓷介电容、电解电容等元件立式安装时,引线不能太长,否则降低元器件的稳定性;但也不能过短,以免焊接时因过热

19、损坏元器件;2、各元器件焊接在电路板上,焊盘上的元器件引脚不高出电路板面2mm,高出的部分用斜口钳或其它剪切工具剪下。焊点大小均匀整洁,焊锡适量,剪切高度一致,元器件摆放位置合适、整齐;3、对于集成电路的焊接:在焊接时,首先要弄清引线脚的排列顺序,并与线路板上的焊盘引脚对准,核对无误后在焊接,然后再重复检查,确认后再焊接其余脚位。由于集成电路引线脚较密,焊接完后要检查有无虚焊,连焊等现象,确保焊接质量。在实验过程中,我在遵循上述原则的基础上,同时对电路分块进行焊接。在分块焊接的过程中首先对电路中的插座进行了统一的焊接,再对电阻电容等小元器件进行焊接,所有元器件焊完后,把每一块部需要连接在一起的

20、连接起来。这样在各大块完成的基础上,再将块与块之间的连线焊上。至此,所有硬件基本焊接完毕。接下来对电路板的直流供电进行焊接,将所有需要接到VCC端的点连接到一起,再加上六角自锁开关。最后将程序下载所需的串口焊接上,把过长的引线剪断并擦拭干净,至此硬件焊接工作基本完毕。5.1.3 静态测试将集成电路元器件对准方向装上后,进行硬件电路的检查,加上5V直流电源,在确保所有元器件没有过热的前提下,利用数字式万用表直流电压档检测各节点包括芯片的电源管脚,地管脚等进行电压测量,都符合条件。最后检测光敏电阻支路节点电压是否随光照强度变化而变化,检测结果为:当无光照时电压在0.15V左右;而白天室正常光照时,

21、检测电压约为3.5V左右。静态测试符合要求,接下来进行下一步,即程序的调试。5.2 数码管显示电路及程序调试在进行数码管显示电路的过程中,首先遇到了硬件上的问题,在程序下载完毕后,数码管没有任何反应,根本不亮,在经过检查后,发现可能是两个三极管的问题,将三极管拆下来进行测试,发现已经损坏,再经过调换重新焊接后,硬件电路恢复正常了,数码管开始亮起来,但数字一直在闪和跳变,同时小数点也在跳变。具体思考造成数码管闪动和数字跳变的原因,再经过老师答疑,认为是程序中对数据采样没有通过在一段时间采样进而求平均值的方法来采集数据,致使显示数据随着外界的小干扰一直在跳变。而数码管在闪动则是因为延迟时间设置过长

22、,超出了人的视觉暂留围,使人感觉到数字在闪动。在明白了原因的基础上,对程序进一步修改和调试,最后数码管很稳定且灵敏度很高地显示出了检测到的光强值,且小数点与各个方位的对应关系也是正确的。至此,软件调试工作基本完毕,调试后的最终程序如下所示。最终程序:#include/单片机51头文件,存放着单片机的寄存器#include /为了使用空指令加载的头文件sbit smg2=P25;/数码管位addata选sbit smg3=P24;/数码管位选#define uchar unsigned char#define uint unsigned intunsigned char code table=0

23、xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;/数码管段选显示 0-9unsigned char contrl;/小数点控制标志sbit cs=P33; sbit wr=P35; sbit rd=P34; /AD控制管脚定义sbit a=P20;sbit b=P21;sbit c=P22; / CD4051通道选择sbit LP=P23; /左边小数点sbit RP=P26; /右边小数点void delay /delay uint i; while i=5; while0 i-; count-; void delay_n /delay ui

24、nt i; while i=1; while0 i-; count-; /*读AD0804子程序*/unsigned char adc0804 /读AD0804子程序 unsigned char addata,i; rd=1;wr=1;/int1=1; /读ADC0804前准备P1=0xff; /P1全部置一准备cs=0;wr=0;wr=1; /启动ADC0804开始测电压rd=0; /开始读转换后数据i=i; i=i; /无意义语句,用于延时等待ADC0804读数完毕addata=P1;/读出的数据赋与addaterd=1;cs=1;/读数完毕addata=addata/2; return;

25、/返回最后读出的数据void display smg3=1; P0=tabletemp/10;/显示十位 smg2=0; delay; smg2=1;/*/ smg2=1; P0=tabletemp%10;/显示个位 smg3=0; delay; smg3=1;/*/unsigned char select /判断三个光照强度,输出最大的 unsigned char right,mid,left,max; /*/ a=0;b=0;c=0;delay;right=adc0804;delay; /*/ a=1;b=0;c=0;delay;mid=adc0804;delay; /*/ a=0;b=1

26、;c=0;delay;left=adc0804;delay;/*/ if =mid if=left max= right;contrl=1; else max=left;contrl=3; else if=left max=mid; contrl=2; else max=left; contrl=3; return ;unsigned char Filter unsigned char i; unsigned char value,sum1; unsigned int sum; sum=0; fori=0;i sum1=select; sum +=sum1 ;delay_n; value=su

27、m/3;ifvalue value=0 ; contrl=4; return;void mainuchar tt=0;uchar xx=0; while xx= Filter;fortt=0;tt display; delay; switch case 1: LP=1;RP=0; break;case 2: LP=1;RP=1; break;case 3: LP=0;RP=1; break;case 4: LP=1;RP=1; break;default:LP=1;RP=1; break; fortt=0;ttdisplay;delay; 6系统功能、指标参数6.1测试方法A、测试项目:在无光

28、情况下观察数码管是否显示为00;在室用三个方向的光敏电阻依次对着光入射的方向观测数码管显示值是否相等,以及是否是光从左侧入射时显示高位小数点、光从前侧入射时不显示小数点、光从右侧入射时显示低位小数点。B、如何测试:用keil软件编程,程序说明如下:1AD0804驱动子程序,根据ADC0804时序图编写;unsigned char adc0804 /读AD0804子程序 unsigned char addata,i; rd=1;wr=1;/int1=1; /读ADC0804前准备P1=0xff; /P1全部置一准备cs=0;wr=0;wr=1; /启动ADC0804开始测电压rd=0; /开始读

29、转换后数据i=i; i=i; /无意义语句,用于延时 /等待ADC0804读数完毕addata=P1; /读出的数据赋与addaterd=1;cs=1; /读数完毕return; /返回最后读出的数据 2显示子程序,依次显示十位、个位;void display /显示程序 ge=1; delay; P2=tabletemp/10; /显示十位shi=0; delay; shi=1;shi=1; P2=tabletemp%10; /显示个位 ge=0; delay; ge=1;3转换子程序,将采集转换后的数字信号通过函数转换成显示数;uint zhuan int x=255-temp;int y

30、;ifx /当采集后数字数据小于 / 40时认为无光y=0; if=250 /当采集后数字数据大于 /250时认为最大光强显示99y=99;if40&x /根据上述两部分列出中间 /线性部分y=*10/21;return;4数据采集存储程序,分别采集三路数据,存入三个变量;uchar DATA0,DATA1,DATA2;a=0;b=0;c=0;DATA0=adc0804; delay;a=1;b=0;c=0;DATA1=adc0804; delay;a=0;b=1;c=0;DATA2=adc0804; delay;5判断光入射方向显示程序,显示光强及光照方向;ifDATA0=DATA1&DAT

31、A0 /判断哪路光最强displayzhuan; /左路dp1=0;dp2=1;elseifDATA1=DATA0&DATA1displayzhuan;/中路dp1=1;dp2=1;elsedisplayzhuan;/右路dp1=1;dp2=0;6.2测试数据和结果分析6.2.1测试数据1) 、 通过对设计作品的调试,最后测试结果为:用手捂住三个光敏电阻时数码管显示为00,两个小数点均不亮;数码管能正常稳定地显示光照强度,显示数值随着光照强度的变化而灵敏变化,对于同一个光源具体测试数据如下表所示:表5.1 各光敏电阻对应最大光强和最小光强值 最大光强最小光强光敏电阻1890光敏电阻2880光敏

32、电阻38802、对方位显示进行测试,都是正确的。其中两个小数点分别亮时对应左右两侧的电阻,而两个小数点均不亮时对应中间方位的光敏电阻。3、三路光敏电阻的检测误差均在合理围之。6.2.2结果分析1、光敏电阻作为光照传感器,在精度要求不是很高的场合下,可以用于光照检测电路的设计,并实现对光照的检测、控制和调节。2、本作品最终实现所采用的方案易于扩展和调试,但是有误差,精度不高,并且系统的可靠性还有待进一步提高。7总结与体会1、在整个做实验过程中,自己一定要有清晰的思路和具体的流程在脑海中,不能走一步算一步,要细致考虑,思维缜密,这样才能很好的完成整个设计的实现。2、在实际动手之前,对实验各部分的工

33、作原理一定要明白,不能含糊,在扎实掌握理论知识的基础上,自己才能对实验中出现的问题加以分析,并最终解决问题。只有这样,才能在实践动手中,培养自己的思维逻辑思维和提高独立分析、发现和解决问题的能力。3、焊接之前一定要对所有的元器件进行检查,在确认全部完好的基础上在进行焊接,否则待焊完后进行静态调试时发现有问题再返回来查就麻烦了,总之欲速则不达。4、在实验的硬件焊接和程序的调试过程中,不要着急,自己按部就班,一步一步来,自己要有信心,只要遵循正确的方法慢慢来,自己一定能解决问题并最终完好地实现设计。5、实验中实在弄不懂的要向老师求助,以及与同学探讨或上网查找资料等。8参考文献1威使用电子系统设计基

34、础:理工大学.2罗杰、自美电子线路设计实验测试电子工业.3蠡果单片机实验与应用系统设计国防工业.4 郭天祥新概念51单片机C语言教程入门、提高、开发、拓展:电子工业,2009.5 晓平Protel 99 SE电子线路CAD应用教程:机械工业,2007.6 童诗白、华成英.模拟电子技术基础M:高等教育,2001.7 建华、惠群微型计算机原理与接口技术M:高等教育,2003.8 王增福、新编线性直流稳压电源M:电子工业,2004.9 群芳、肖看单片机原理、接口及应用M:清华大学,2005.10 何立民单片机应用系统设计M:航空航天大学,2006.附录1:实现方案总电路图附录2:系统初始化程序:根据

35、要完成的功能,结合老师给的程序主体,初步编程如下,具体效果有待于进一步的调试和修改。#include/单片机51头文件,存放着单片机的寄存器#include /为了使用空指令加载的头文件/sbit smg1=P26;/数码管位选sbit smg2=P25;/数码管位addata选sbit smg3=P24;/数码管位选#define uchar unsigned char#define uint unsigned intunsigned char code table=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;/数码管段选显示 0-9s

36、bit cs=P33; sbit wr=P35; sbit rd=P34; /AD控制管脚定义sbit a=P20;sbit b=P21;sbit c=P22; / CD4051通道选择sbit LP=P23; /左边小数点sbit RP=P26; /右边小数点void delay /delay uint i; while i=200; while0 i-; count-; /*读AD0804子程序*/unsigned char adc0804 /读AD0804子程序 unsigned char addata,i; rd=1;wr=1;/int1=1; /读ADC0804前准备P1=0xff;

37、 /P1全部置一准备cs=0;wr=0;wr=1; /启动ADC0804开始测电压rd=0; /开始读转换后数据 i=i; i=i; /无意义语句,用于延时等待ADC0804读数完毕addata=P1;/读出的数据赋与addaterd=1;cs=1;/读数完毕addata=addata/2; return;/返回最后读出的数据void display/显示程序/*/ smg3=1; smg2=1; delay; P0=tabletemp/100;/显示百位 smg1=0; delay; smg1=1;/*/ smg3=1; P0=tabletemp/10;/显示十位 smg2=0; delay; smg2=1;/*/ smg2=1; P0=tabletemp%10;/显示个位 smg3=0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号