您好,欢迎访问三七文档
光强测量系统设计1目录设计摘要…………………………………………………………………2一、光强测量系统概述…………………………………………………2二、光强测量系统工作原理……………………………………………2三、光强测量系统硬件组成……………………………………………3四、光强测量系统程序设计……………………………………………6五、光强测量系统的技术指标…………………………………………10六、光强测量系统的方案论证…………………………………………11七、结论…………………………………………………………………11附录……………………………………………………………………122光强测量系统设计摘要:采用光敏电阻作为主要感应元件,设计以8051单片机为核心,控制、数据处理和即时显示为他点的光强测量系统。制作光强测量系统可以实现实时测量,数据存储等功能,具有稳定、实用、方便、快捷、可靠性高的特点,解决光强测量的技术问题,有广泛的应用前景。一、光强测量系统概述光强测量系统以光强度测量为核心功能,但是在实时处理光强数据时,往往不是要求即时数据,而是需要一个长期数据处理结果和即时数据的比较,所以数据存储和比较显示就显得尤为重要,这次课设完成的光强测量系统就完成了以上功能,有很强的实用性。这次设计的光强测量系统中,在光强的测量上完成了即时测量、微延迟显示,和时段平均测量值的计算和显示,并将时段光强数据存储在设计好的扩展存储空间中。通过这样的设计完成了一个高效多能的光强测量显示系统,达到了一个采集系统的标准。二、光强测量系统工作原理以8051单片机为核心,在单片机内部完成数据的存储及处理功能,通过数模转换芯片完成模拟信号到数字信号的转换及输入,再将数据存入存储芯片,在单片机进行数据处理后再对需要显示的数字信号进行译码显示在七段数码显示器上。每个芯片的电源处有耦合电容相连,当电容器充电达到2V时,此电容就作为电源为电路提供工作电压。单片机的RESET口上提供了供电自启动,在X1,X2口上提供了12MHZ晶振,以支持单片机的运行与启动。系统完成了采集功能,存储功能,数据处理功能,测量数据显示功能,达到了设计的基本要求。3三、光强测量系统硬件组成图1为光强测量系统硬件电路原理图,主要由AD转换器、译码器、单片机、显示、存储器等部分组成。AD转换系统与51单片机P0口相连接,传输采集到、处理过后的光强信息,以8位2进制数字信号传输进P0口。存储系统为简单的扩展RAM系统,由74LS373和6116组成6116为2KB的SRAM芯片,图中P2.7作为6116的片选信号,P0口和P2.0~P2.2共11根地址线接6116的A0~A10,因此,6116的地址范围为7800H~7FFFH。8051以MOVX访问6116。显示系统为两个4位BCD-七段显示译码器74LS49与P1口相连,要求P1口输出8位BCD码,符合74LS49的译码规则,完成译码,再传输到7段数码显示器上进行数据显示。51单片机在接收到AD转换系统传入的数字信号后进行数据处理和存储,在对2进制数进行BCD码转换后再输出到P1口进行相应显示,并再次循环,达到即时测量的目的,同时有供电自启动系统保证系统通电后单片机的复位。图一:光强测量系统原理图4(1)单片机系统单片机采用8051。塔是ROM型单片机,片内有4KB的ROM,256字节的RAM/SFR以及有32个I/O口、面向控制的8位CPU和指令系统、一个全双工串行口、两个16位定时/计数器、5个中断源、两个中断优先级的终端结构、一个片内内时钟振荡器和时钟电路,可寻址64K字节的程序存储器和64K字节的外部数据存储器。P1口与两片74LS48译码芯片和显示相连,需要输出8位BCD码;P0口与AD0809为主体的模数转换系统相连,用作数据输入,得到即时的光强采集数字信号;P2口用于读写控制和中断。(2)模数转换电路模数转换电路用P0口进行数据通信,以太阳能板RO为模拟信号输入源,(其内阻需要进行相对光强和数模转换器的相应调整)以ADC0809转换模拟信号到数字信号。ADC0809是8路8位逐次逼近型A/D转换CMOS器件,在检测控制应用中,能对多路模拟信号进行分时采集和A/D转换(在本系统中只应用1路模拟信号采集),输出数字信号通过三态缓冲器,可直接与微处理器的数据总线相连接。它的采集范围为0~5V电压。ADC0809分辨率为8位,最大不可调误差小于ULSB,可锁存三态输出,能与8位微处理器接口,输出与TTL兼容,不必进行零点和满度调整,供电电压为5V,图中是以中断方式与单片机接口,这种接口方式不浪费CPU时间。模数转换电路把收集到的光强信息转换为8位2进制数字信号传输给单片机,起到信息采集的作用,但提供的数字信号仅仅能做储存和数据处理使用,要5进一步使用则需要进行2进制数到BCD码的转换才能输出到译码显示端口进行下一步的处理。(3)显示电路显示部分采用数码显示,利用2个输入BCD-七段显示译码器74LS49和七段显示完成与单片机系统的显示接口,以显示即时光强信息,时段光强信息以及出错信息等。这部分电路把输出的BCD码经段译码器译码后,换成七段码(abcdefg)和小数点DP送到段驱动器输出。需要注意的是,显示必须延时一段时间,以保证观看者对信息的获取,但在我的知识范围内,延时只能采用NOP语句,在编程过程中有繁琐和资源浪费的弊端,但本人无法解决,只能采用编程部分部分省略的办法进行处理。(4)存储器读写器中设计了存储器。存储器选用74LS373和6116组成扩展2KBRAM。74LS373为地址锁存器。系统正常工作后,每隔一段时间要将采集信息放在存储器中存储并等待做下一步处理。本系统中能存储的数据信息有线,若本系统中的存储容量不够可根据具体情况进行扩展可以采用线选法或地址译码法进行进一步的RAM扩展,达到性能扩充的目的。(5)晶振电路和来电自启动采用12MHZ晶振和两片电容相连接地完成晶振电路。采用电容电阻串联完成来电自启动电路。两部分电路保证了单片机的正常运转,考虑到系统简单,设6计时没有采用来电自启动和手动重置并存的方法,自认为在这样一个较简单的系统中采用这种电路会增加系统的复杂性。四、光强测量系统程序设计下面介绍光强测量系统软件设计方法。考虑到光强量是一个需要长期测量结果的量,我们需要将即时量和一段时间的平均值显示在显示系统中,所以需要将测得值先存入存储系统,做处理后输出。在程序设计中需要注意两个问题,一是要对A/D转换依据接口方式进行相应处理,本系统中采用了中断方式进行接口,需要进行相关编程,二是数据的存储地址处理,需要依扩展数据存储空间而定,三是显示系统传输需要输出一个8位BCD码。在编程中一定要注意处理以下三个问题。1.主程序主程序主要完成系统变量的初始化,循环采集数据,存储数据,将操作显示。在光强测量系统中使用了2KB存储器,主要存储的内容为1字节的光强数字信号和1字节的光强信号平均值。因此最大能存储1024个光强记录,存储首地址为7800H,末地址为7FFFH。循环采集需要使用系统中断方式进行。数据处理需要进行2进制数到BCD码的转换,主程序流程如下图所示72存储程序存储程序应分为两个部分,一个是存储即时信息,一个是存储即时平均值SAVE:MOVDPTR,#7800H;将地址指向扩展数据空间第一个地址CLRA;清空A累加器CLRR4;清空R4CLRR2;清空R2CLRR1;清空R1RESE:PUSHACC;保存现场SETBEA;开中断SETBIT1;外中断1定义为跳变触发MOVDPTR,#0BFFFH;送ADC0809口地址MOVA,#00H;选通IN0通道MOVX@DPTR,A;启动A/D转换NOP;延时10usNOPNOPNOPNOPSETBEX1POPACCRET;以上为A/D转换启动程序PUSHPSW;保护现场PUSHACCPUSHDPHPUSHDPLMOVDPTR,#0BFFFHMOVXA,@DPTR;读A/D转换结果8MOVR1,A;送入R1指针MOVA,#00H;再次启动IN0通道MOVX@DPTR,APOPDPL;恢复现场POPDPHPOPACCPOPPSWRETI;以上为A/D转换中断处理程序MOVA,R2;将上一次求取的光强信息总量存入A累加器MOVXDPTR,R1;存入即时光强信息ADDA,R1;求取光强信息总量MOVR2,A;将光强信息总量存入R2INCR4;统计光强信息个数INCDPTR;存储地址更改MOVB,R4;将光强信息统计个数存入B累加器DIVAB;求取平均光强信息MOVR3,A;将平均光强信息存入R3MOVXDPTR,R3;存入平均光强信息INCDPTR;指向下一个存储地址LACALLRESE;完成循环3.显示程序根据图1,在显示电路中,为P2口输出的8位2进制BCD码,所以应该为简单调用程序,程序如下:DIPS:MOVP2,R5;将要显示的信息送入P2LACALLDIPS;完成循环4.数据处理程序只需要不断输出数据处理结果到P2口,根据显示程序,只需要将处理结果不断送入R5,程序如下:DETAIL:MOVB,#10MOVA,R1;将二进制即时光强信息存入ADIVAB;A中得10位数,B中得个位数SWAPAADDA,B;组合成2位BCD码MOVR1,A;将BCD码的光强信息存入R1MOVR5,R1;显示即时光强信息NOP……NOP;1秒的显示延迟(中间有NOP省略)9MOVB,#10MOVA,R3;将二进制平均光强信息存入ADIVAB;A中得10位数,B中得个位数SWAPA;组合成2位BCD码ADDA,B;组合成2位BCD码MOVR3,A;将BCD码的光强信息存入R3MOVR5,R3;显示平均光强信息NOP……NOP;1秒的显示延迟(中间有NOP省略)LACALLDETAIL5.总程序:由上总程序应为:HEAD:MOVDPTR,#7800H;将地址指向扩展数据空间第一个地址CLRA;清空A累加器CLRR4;清空R4CLRR2;清空R2CLRR1;清空R1RESE:MOVXA,@DPTRCJNEA,#7FFFH,CC;判断存储空间是否充满SJMPHH;没有则继续JNCHEAD;充满则初始化HH:MOVR1,P1;没有则继续PUSHACC;保存现场SETBEA;开中断SETBIT1;外中断1定义为跳变触发MOVDPTR,#0BFFFH;送ADC0809口地址MOVA,#00H;选通IN0通道MOVX@DPTR,A;启动A/D转换NOP;延时10usNOPNOPNOPNOPSETBEX1POPACCRET;以上为A/D转换启动程序PUSHPSW;保护现场10PUSHACCPUSHDPHPUSHDPLMOVDPTR,#0BFFFHMOVXA,@DPTR;读A/D转换结果MOVR1,A;送入R1指针MOVA,#00H;再次启动IN0通道MOVX@DPTR,APOPDPL;恢复现场POPDPHPOPACCPOPPSWRETI;以上为A/D转换中断处理程序MOVA,R2;将上一次求取的光强信息总量存入A累加器MOVXDPTR,R1;存入即时光强信息ADDA,R1;求取光强信息总量MOVR2,A;将光强信息总量存入R2INCR4;统计光强信息个数INCDPTR;存储地址更改MOVB,R4;将光强信息统计个数存入B累加器DIVAB;求取平均光强信息MOVR3,A;将平均光强信息存入R3MOVXDPTR,R3;存入平均光强信息INCDPTR;指向下一个存储地址DETAIL:MOVB,#10MOVA,R1;将二进制即时光强信息存入ADIVAB;A中得10位数,B中得个位数SWAPAADDA,B;组合成2位BCD码MOVR1,A;将BCD码的光强信息存入R1MOVR5,R1;显示即时光强信息NOP……NOP;1秒的显示延迟(中间有NOP省略)MOVB,#10MOVA,R3;将二进制平均光强信息存入ADIVAB;A中得10位数,B中得个位数SWAPA;组合成2位BCD码ADDA,B;组合成2位BCD码MOVR3,
本文标题:光强测量系统设计
链接地址:https://www.777doc.com/doc-4141966 .html