- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
武汉理工大学《开放性实验》设计说明书
PAGE 1
目录
TOC \o 1-3 \u 1 实验任务 1
2 设计原理 1
2.1 基本理论 1
2.2 系统框图 1
2.3 程序设计流程图 2
3 实现方案 3
3.1 硬件电路图 3
3.2 原理图说明 3
3.2.1 光电前置放大电路 3
3.2.2 AD转换电路 4
3.2.2 显示电路 4
3.3 硬件程序 4
4 调试过程及结论 10
4.1 调试过程 10
4.2 结论 11
5 心得体会 13
6 参考文献 14
利用硅光电池的简易照度计设计
1 实验任务
利用硅光电池为信号输入电路,以AT89C51单片机芯片设计控制电路,制作一个简易照度计,可以通过LCD显示屏显示照度值。
设计原理
2.1 基本理论
硅光电池是一种能将光能直接转换成电能的半导体器件,它实质上是一个大面积的半导体PN结,其工作原理是光生伏特效应。当光照射在硅光电池的PN结区时,会在半导体中激发出光生电子-空穴对。PN结两边的光生电子-空穴对在内电场作用下,多数载流子的不能穿越阻挡层,而少数载流子却能穿越阻挡层,结果,P区的光生电子进入N区,N区的光生空穴进入P区,使每个区中的光生电子-空穴对分割开来。光生电子在N区的集结使N区带负电,光生电子在P区的集结使P区带正电。P区和N区之间产生光生电动势。当硅光电池接入负载后,光电流从P区经负载流至NE,负载中就会有功率输出。
利用AT89C51芯片实现控制电路,用ADC0809模数转换器实现模拟信号和数字信号的转换。当光电池接入负载,将输出的信号通过三极管放大,通过模数转换器ADC0809转换为数字信号,通过单片机控制电路将信号输入LCD显示屏,在显示屏上显示当前的照度值。
2.2 系统框图
系统框图如下:
光电转换前置放大A/D模数转换
光电转换前置放大
A/D模数转换
LCD显示单片机控制电路
LCD显示
单片机控制电路
图
图1 照度计设计系统框图
2.3 程序设计流程图
开始 程序流程图如下:
开始
初始化
初始化
信号输入
信号输入
A/D
A/D转换
LCD
LCD显示
图
图2 程序设计流程图
实现方案
3.1 硬件电路图
图
图3 照度计硬件原理图
原理图说明
光电前置放大电路
利用三级管的的放大作用,将带负载的光电池电路输出的电流放大,为了保证信号有更好的线性关系,所以将三极管接成电流转换为电压的形式。经过测量,电压放大的范围大概为0.2V到2.3V。
3.2.2 AD转换电路
采用ADC0809模数转换芯片和AT89C51单片机,将光电池接收的光信号转换后放大的电压模拟信号转换为数字信号,然后通过单片机的控制电路将数字信号送到LCD显示屏。
显示电路
此处显示电路采用了1602A液晶显示模块。
当光直射光电池时,放大的电压信号通过三极管的发射极送入AD转换器的IN0端口。因为AD的ADD A、ADD B、ADD C都接地,所以ADC0809就采集IN0端口的信号。模拟信号经过转换后向OUT-1~OUT8传送数字信号。数字信号经过总线传送到AT89C51的P1口,并读入累加器A,经过AT89C51计算后通过P0端口输出,然后控制LCD显示屏的输出。
硬件程序
#include reg52.h
#define uchar unsigned char
#define uint unsigned int
sbit lcden=P2^1;
sbit lcdrs=P2^0;
sbit lcdrw=P2^2;
sbit adwr=P3^7;
//sbit adcs=P3^0; //oe ==gnd
sbit eoc=P2^3;
uchar code table[]=the illustion is;
uchar code table1[]=lx;
uint num,a,d,qian,bai,shi,ge,num1;
uint illusion,temp;
void init(void); //初始化函数
void delay(uint a); //延时函数
void write_com(uchar com); //写指令函数
void write_data(uchar date); //写数据函数
void display(uint d); //显示函数
void main()
{
void init();
文档评论(0)