计算机控制课程设计单片机光照强度检测系统本科论文.docx

上传人:b****6 文档编号:14085952 上传时间:2023-06-20 格式:DOCX 页数:22 大小:383.76KB
下载 相关 举报
计算机控制课程设计单片机光照强度检测系统本科论文.docx_第1页
第1页 / 共22页
计算机控制课程设计单片机光照强度检测系统本科论文.docx_第2页
第2页 / 共22页
计算机控制课程设计单片机光照强度检测系统本科论文.docx_第3页
第3页 / 共22页
计算机控制课程设计单片机光照强度检测系统本科论文.docx_第4页
第4页 / 共22页
计算机控制课程设计单片机光照强度检测系统本科论文.docx_第5页
第5页 / 共22页
计算机控制课程设计单片机光照强度检测系统本科论文.docx_第6页
第6页 / 共22页
计算机控制课程设计单片机光照强度检测系统本科论文.docx_第7页
第7页 / 共22页
计算机控制课程设计单片机光照强度检测系统本科论文.docx_第8页
第8页 / 共22页
计算机控制课程设计单片机光照强度检测系统本科论文.docx_第9页
第9页 / 共22页
计算机控制课程设计单片机光照强度检测系统本科论文.docx_第10页
第10页 / 共22页
计算机控制课程设计单片机光照强度检测系统本科论文.docx_第11页
第11页 / 共22页
计算机控制课程设计单片机光照强度检测系统本科论文.docx_第12页
第12页 / 共22页
计算机控制课程设计单片机光照强度检测系统本科论文.docx_第13页
第13页 / 共22页
计算机控制课程设计单片机光照强度检测系统本科论文.docx_第14页
第14页 / 共22页
计算机控制课程设计单片机光照强度检测系统本科论文.docx_第15页
第15页 / 共22页
计算机控制课程设计单片机光照强度检测系统本科论文.docx_第16页
第16页 / 共22页
计算机控制课程设计单片机光照强度检测系统本科论文.docx_第17页
第17页 / 共22页
计算机控制课程设计单片机光照强度检测系统本科论文.docx_第18页
第18页 / 共22页
计算机控制课程设计单片机光照强度检测系统本科论文.docx_第19页
第19页 / 共22页
计算机控制课程设计单片机光照强度检测系统本科论文.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

计算机控制课程设计单片机光照强度检测系统本科论文.docx

《计算机控制课程设计单片机光照强度检测系统本科论文.docx》由会员分享,可在线阅读,更多相关《计算机控制课程设计单片机光照强度检测系统本科论文.docx(22页珍藏版)》请在冰点文库上搜索。

计算机控制课程设计单片机光照强度检测系统本科论文.docx

计算机控制课程设计单片机光照强度检测系统本科论文

摘要

BH1750是一款新型的测光芯片,本设计系统就是基于BH1750设计的测光系统,它可以自动检测光照强度的强弱并显示让人们知道此时光照强度的强弱。

人们可以通过看此装置的显示了解现在的光照状态,做合理的光照调节。

该设计可分为三部分:

即光照检测部分、信号处理部分、光强显示部分。

对于光照检测部分是利用BH1750作为检测元件及信号处理元件,其内部集成了AD转换芯片。

它可以完成从光强到电信号的转换并将信号处理进行处理。

对输入信号处理后,就可以用来显示了。

对于显示部分可利用LCD1602来显示,不同的光强对应于不同的数值,就能简单的显示出不同的光强了。

本设计就是由单片机STC89C52RC芯片,BH1750模块和1602液晶为核心,辅以必要的电路,构成了一个单片机光照强度检测系统。

该光照强度检测系统可以通过检测光照强度,使得光照在低于或高于一定强度的时候发出警示,是一种常用的测试仪器。

关键词:

51单片机,LM7805,BH1750,1602液晶

目录

0引言1

1设计内容与要求1

1.1设计任务1

1.2设计要求1

2方案总体设计1

2.1光照强度采集方案设计2

2.2控制芯片及实现方案3

2.3数据显示方案3

2.4系统总体框图4

3硬件设计5

3.1单片机最小系统5

3.2BH1750采集模块6

3.3液晶显示模块6

3.4系统电源7

3.5整体电路和PCB图8

4软件设计9

4.1keil软件介绍9

4.2程序流程图10

4.3各模块程序10

5仿真与实现15

5.1Proteus软件介绍15

5.2仿真过程16

5.3实物制作与调试17

6总结18

7参考文献19

0引言

随着改革开放的不断深化和城镇化的不断发展,越来越多的人移居到城市生活,而这需要足够的食物作为支撑。

同时随着工业化的不断发展,人们对自身的健康越来越关注,对居室的环境要求也越来越高。

而携带方便,能够及时准确的显示的光照强度检测仪的产生是人们的迫切需求。

 

便携式光照强度检测仪是现代社会的产物,是以后发展的方向。

它是一个集光照强度感知,自动提示与一体的综合系统。

就如大棚种植、牲畜养殖以及人们对生活的需求凸显了本系统拥有广泛的应用前景。

其中,蔬菜需要控制光照强度,以利于生长素的产生,从而加快蔬菜的生长速度,创造出更高的经济效益和社会效益。

而人们的生活环境(学生的学习环境,办公室,工厂等)需要控制光照强度,使人们有一个好学习生活环境。

同时需要控制居室光照强度,以便人们健康的生活。

便携式光照强度检测仪也可以用于太阳能的研究和利用,农作物生长方面,太阳能能源使用,气象研究,建房朝向等等。

因此,本课题开展便携式光照强度检测仪系统的设计具有一定的应用价值及实际意义。

1设计内容与要求

1.1设计任务

1)选择传感器,设计数据采集电路,对温室的光照强度进行实时数据采集,

要求光照强度的测量范围是:

2~600LX,精度为±2%。

2)实现温室光照强度的自动实时显示,显示到小数点后一位。

3)编写计算机监测程序。

4)写出设计说明书。

1.2设计要求

1)查阅资料,确定设计方案。

2)选择器件,设计硬件电路,并画出原理图和PCB图。

3)画出流程图,编写控制程序。

4)撰写课程设计说明书。

2方案总体设计

设计一个基于51单片机的光照强度检测系统。

液晶屏幕第一行显示当前的光照强度,第二行显示报警信息即光照超过光照强度上限还是下限;利用BH1750传感器模块将采集到的光照强度经过一系列处理转换成数字信号,使用IIC通信协议将数据传送到单片机中,经过处理运算在LCD1602上显示,可利用蓝滑动变阻器来调节液晶亮度。

2.1光照强度采集方案设计

方案一:

采用光敏电阻作为采样元件,将光照强度转换成电阻,再由电阻转换成电信号经过信号处理输入到AD转换器中进行模数转换。

最后将转换出来的数字信号传送到单片机中进行数据处理并显示。

方案如图2.1所示。

图2.1光敏电阻采样方案

方案二:

采用BH1750光照传感器模块作为光强度采样及信号处理的元件,BH1750内部集成了16位AD转换,则无需再外扩AD转换器,并且其转换精度很高,只需通过IIC通信将采集处理得到的数据传输到单片机即可使用。

BH1750的内部原理图如图2.2所示。

图2.2BH1750内部原理图

综合以上两种方案,由于方案二所得光照强度更加简便、数据的测量范围和精度都较高,所以选择方案二作为本系统的采样系统部分。

2.2控制芯片及实现方案

AT89C52为8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。

外形及引脚排列如图2.3所示。

图2.3AT89C52引脚图

功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。

主要管脚有:

XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。

RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。

VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。

P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。

2.3数据显示方案

LCD1602是工业字符型液晶,能够同时显示16×02即32个字符。

图2.4LCD1602引脚图

1602采用标准的16脚接口,其中:

第1脚:

GND为电源地

第2脚:

VCC接5V电源正极.

第3脚:

V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。

第4脚:

RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

第5脚:

RW为读写信号线,高电平

(1)时进行读操作,以51为例的简单原理图低电平(0)时进行写操作。

第6脚:

E(或EN)端为使能(enable)端,高电平

(1)时读取信息,负跳变时执行指令;

第7~14脚:

D0~D7为8位双向数据端;

第15~16脚:

空脚或背灯电源。

15脚背光正极,16脚背光负极。

2.4系统总体框图

本系统主要由AT89S52单片机、5V稳压电源、BH1750传感器模块、液晶显示电路、单片机外围时钟电路和复位电路组成。

系统总体框架图如图2.5所示。

图2.5系统总体框架

3硬件设计

3.1单片机最小系统

单片机要正常工作,首先要产生片内时钟信号。

在单片机内部的振荡器的输入端XTAL1和输出端XTAL2之间接一个石英晶振就可以够成一个自激振荡器。

再在两端之间串联接个电容并且在两个电容之间接地以便于稳定频率还对振荡频率有微调作用。

电容通常选30uF左右,振荡脉冲频率范围为0~24MHZ。

该电路中选用12MHZ晶振。

时钟电路图如图3.1:

图3.1时钟电路图

单片机在启动时与其他微处理器一样,要让CPU及系统各部件处于确定的初始状态,并从初始开始工作。

这就需要复位操作。

复位电路有两种方式:

上电自动复位和按键自动复位。

上电自动复位只是在开始接通电源瞬间复位,接下来想要再次复位就需要断电重启,不方便。

按键自动复位不仅可以在开始接通电源瞬间复位还可以通过按下按键复位随时复位。

所以选择按键复位方式。

复位电路如图3.2:

图3.2复位电路图

3.2BH1750采集模块

BH1750FVI 是一种用于两线式串行总线接口的数字型光强度传感器集成电路。

这种集成电路可以根据收集的光线强度数据来调整液晶或者键盘背景灯的亮度。

利用它的高分辨率可以探测较大范围的光强度变化(1lx-65535lx)。

BH1750采集模块的原理图如图3.3所示。

图3.3BH1750采集模块原理图

3.3液晶显示模块

该系统需要显示两行。

控制1602液晶亮度的是蓝白滑动变阻器。

1602液晶有16个管脚。

编号为1,2管脚为电源正负极管脚,15,16为背光源正负极管脚;7~14为dataI/O管脚与单片机的P0口相连,负责液晶与芯片之间的信息传送;4,5,6分别为数据/命令选择端、读/写选择端、使能端,与单片机的P3.3,P3.5,P3.6相连,负责控制液晶与芯片之间数据命令的读写操作;3为液晶显示偏压信号端,用于调整液晶显示对比度。

1602液晶显示原理图如图3.4所示:

图3.4液晶显示系统图

3.4系统电源

为了实现各个部分的稳定供电,且根据各部分供电电压要求,本系统采用了LM7805制作了5V的稳压电源以对各部分实现稳定可靠供电。

三端稳压集成电路LM7805。

电子产品中,常见的三端稳压集成电路有正电压输出的lm78××系列和负电压输出的lm79××系列。

顾名思义,三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端。

lm78XX系列集成稳压器的电路图如图所示,是一个输出正5V直流电lm7805稳压电路。

图3.5系统电源图

3.5整体电路和PCB图

AltiumDesigner提供了唯一一款统一的应用方案,其综合电子产品一体化开发所需的所有必须技术和功能。

AltiumDesigner在单一设计环境中集成板级和FPGA系统设计、基于FPGA和分立处理器的嵌入式软件开发以及PCB版图设计、编辑和制造。

并集成了现代设计数据管理功能,使得AltiumDesigner成为电子产品开发的完整解决方案-一个既满足当前,也满足未来开发需求的解决方案。

这是采用网络标号的画出的以一张整体电路图。

它将整张电路原理图分为六个部分:

电源模块,P0口上拉电阻,1602液晶显示模块,51单片机,复位晶振电路,BH1750模块外界电路。

整张原理看起来美观,并且根据标号很容易找到与之对应的引脚。

整体电路原理图和PCB图如图3.6和3.7所示。

图3.6整体电路

图3.7PCB整体电路图

4软件设计

4.1keil软件介绍

KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统。

KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。

另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种Keil软件图标是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。

机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。

运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。

掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

4.2程序流程图

对于程序设计主要分为各部分初始化,BH1750的数据读写,数据显示这几部分组成。

程序流程图如图所示。

图9主程序流程图

4.3各模块程序

(1)LCD初始化程序及显示程序

voidInitLcd()

{

WriteCommandLCM(0x38,1);

WriteCommandLCM(0x08,1);

WriteCommandLCM(0x01,1);

WriteCommandLCM(0x06,1);

WriteCommandLCM(0x0c,1);

}

/***********************************/

voidDisplayOneChar(ucharX,ucharY,ucharDData)

{

Y&=1;

X&=15;

if(Y)X|=0x40;

X|=0x80;

WriteCommandLCM(X,0);

WriteDataLCM(DData);

}

(2)BH1750模块数据读写程序

voidBH1750_Start()

{

SDA=1;//拉高数据线

SCL=1;//拉高时钟线

Delay5us();//延时

SDA=0;//产生下降沿

Delay5us();//延时

SCL=0;//拉低时钟线

}

//停止信号

voidBH1750_Stop()

{

SDA=0;//拉低数据线

SCL=1;//拉高时钟线

Delay5us();//延时

SDA=1;//产生上升沿

Delay5us();//延时

}

//发送应答信号

//入口参数:

ack(0:

ACK1:

NAK)

voidBH1750_SendACK(bitack)

{

SDA=ack;//写应答信号

SCL=1;//拉高时钟线

Delay5us();//延时

SCL=0;//拉低时钟线

Delay5us();//延时

}

//接收应答信号

bitBH1750_RecvACK()

{

SCL=1;//拉高时钟线

Delay5us();//延时

CY=SDA;//读应答信号

SCL=0;//拉低时钟线

Delay5us();//延时

returnCY;

}

//向IIC总线发送一个字节数据

voidBH1750_SendByte(BYTEdat)

{

BYTEi;

for(i=0;i<8;i++)//8位计数器

{

dat<<=1;//移出数据的最高位

SDA=CY;//送数据口

SCL=1;//拉高时钟线

Delay5us();//延时

SCL=0;//拉低时钟线

Delay5us();//延时

}

BH1750_RecvACK();

}

//从IIC总线接收一个字节数据

BYTEBH1750_RecvByte()

{

BYTEi;

BYTEdat=0;

SDA=1;//使能内部上拉,准备读取数据,

for(i=0;i<8;i++)//8位计数器

{

dat<<=1;

SCL=1;//拉高时钟线

Delay5us();//延时

dat|=SDA;//读数据

SCL=0;//拉低时钟线

Delay5us();//延时

}

returndat;

}

voidSingle_Write_BH1750(ucharREG_Address)

{

BH1750_Start();//起始信号

BH1750_SendByte(SlaveAddress);//发送设备地址+写信号

BH1750_SendByte(REG_Address);//内部寄存器地址,

BH1750_Stop();//发送停止信号

}

//********单字节读取*****************************************

ucharSingle_Read_BH1750(ucharREG_Address)

{ucharREG_data;

BH1750_Start();//起始信号

BH1750_SendByte(SlaveAddress);//发送设备地址+写信号

BH1750_SendByte(REG_Address);//发送存储单元地址,从0开始

BH1750_Start();//起始信号

BH1750_SendByte(SlaveAddress+1);//发送设备地址+读信号

REG_data=BH1750_RecvByte();//读出寄存器数据

BH1750_SendACK

(1);

BH1750_Stop();//停止信号

returnREG_data;

}

//连续读出BH1750内部数据

voidMultiple_read_BH1750(void)

{uchari;

BH1750_Start();//起始信号

BH1750_SendByte(SlaveAddress+1);//发送设备地址+读信号

for(i=0;i<3;i++)//连续读取2个地址数据,存储中BUF

{

BUF[i]=BH1750_RecvByte();//BUF[0]存储0x32地址中的数据

if(i==3)

{

BH1750_SendACK

(1);//最后一个数据需要回NOACK

}

else

{

BH1750_SendACK(0);//回应ACK

}

}

BH1750_Stop();//停止信号

Delay5ms();

}

//初始化BH1750,根据需要请参考pdf进行修改****

voidInit_BH1750()

{

Single_Write_BH1750(0x01);

}

5仿真与实现

5.1proteus软件介绍

Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。

在编译方面,它也支持KEIL,IAR和MPLAB等多种编译器。

Proteus不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。

前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。

它的元器件、连接线路等却和传统的单片机实验硬件高度对应。

这在相当程度上替代了传统的单片机实验教学的功能,例:

元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。

使用Proteus软件进行单片机系统仿真设计,是虚拟仿真技术和计算机多媒体技术相结合的综合运用,有利于培养学生的电路设计能力及仿真软件的操作能力;在单片机课程设计和全国大学生电子设计竞赛中,我们使用Proteus开发环境对学生进行培训,在不需要硬件投入的条件下,学生普遍反映,对单片机的学习比单纯学习书本知识更容易接受,更容易提高。

实践证明,在使用Proteus进行系统仿真开发成功之后再进行实际制作,能极大提高单片机系统设计效率。

因此,Proteus有较高的推广利用价值。

5.2仿真过程

图10为Proteus仿真原理图。

在Proteus界面连接好电路图后,箭头放在单片机上单击右键,会出现一个对话框,可以通过这个对话框中的选项,加载程序到仿真图的单片机中,也进行元器件的放置方向进行调整,也可以删除元器件,还用很多功能选择项,不过在画这张原理图时暂时还没用到。

在出现的对话框中点击EDITPROPOTES再在出现的对话框中点击programfile那行的那个文件图标,从里面找出先前已经在KEIL软件中编译的HEX文件,。

点击文件后,然后在单击editcomponent对话框的右上角的OK选项。

然后点击Proteus的首界面的左下角形状是黑色三角型的play键,仿真图上的显示系统就出现了初始状态,单击控制开关,秒表开始计数,再单击一下控制开关后,计时停止。

也可以点击play键右边那个step键,让程序一步一步执行step键右边是pause键,按一下这个键程序就暂停运行,再按一下程序就又开始运行。

仿真完后按一下stop键结束仿真。

当看到仿真电路上出现现象和操作时所达到的效果和我在编程时所预想的情况一样后,再保存所画的电路图,单击左上角的file中,再在出现的选项中单击save,可以选择自己想要保存的地方。

下次打开Proteus时可以单击file,再在出现的选项中单击opendesign的选项,可以从保存的地方直接选择所画的电路图打开,并且可以直接仿真。

在要用Proteus仿真软件的时候,刚开始不会使用,因为我电脑里有学习这款软件的视频,然后我就看视频学习。

老师看到我在看视频学习时,就要我不要通过看视频学习,直接看文档,先简单的学一些,够现在用就行,以后边用边学。

确实通过看文档,边看边操作,再问一下同学,没花多少时间我就可以使用了。

要不是老师指导一下,我可能要花上好多时间在学习Proteus软件上面。

在以后学习中,我尽量多看书,看视频虽说细致但太费时间,看书实在看不懂再去看看详细讲解的视频,特别是学习软件,看视频不单费时间,看了还容易忘,看文档边看边操作,花的时间少还记得牢。

Proteus仿真图如图5.1所示。

图5.1Proteus仿真图

5.3实物制作与调试

本次设计采用了AltiumDesigner软件画出了控制电路的原理图和相应的PCB图,并通过打印、转印、腐蚀、打孔、焊板这一系列步骤制作出了硬件实物,最后通过使用STC-ISP如软件将程序烧录到单片机中,以实现用BH1750传感器模块采集和LCD1602显示功能。

实物图如图5.2所示。

图5.2实物图

6总结

我的课题是基于51单片机光强度采集系统的设计。

当我选择了这个课题的时候,我就先开始想在平常生活中光照强度的功能是怎样的,需要一些什么器件来实现这些功能。

在确定了自己要设计一个怎样的光照检测系统之后就开始列出做这个系统所需要的元器件。

这个系统是基于给定的显示系统上设计的,所以在设计电路原理图之前,我先要掌握给定的显示系统原理图的连接方式和连接原理。

这一些都弄明白之后,我再考虑如何在现有的基础上进行外围设计使之达到预想的功能。

经过一番斟酌,确定我的外围硬件只需添加一个采集模块就可以实

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2