一.硬件方案
本设计采用单片机作为数据处理与控制单元,为了进行数据处理,通过光敏电阻来感应光强弱变化,经过ADC0804转换,直接将数字信号送入到单片机中进行数据处理。单片机数据处理之后,将光照强度发送到LED进行显示,并通过和LED进行声光。
整体电路主要由51单片机最小系统,数码管显示模块,光线检测模块,0804模数转换模块及按键模块;原理图如图:
Protues仿真图如下:
二.设计功能
(1)采用四位数码管显示光线值;
(2)采用光敏电阻检测光线,ADC0804模数转换芯片将模拟量转换成数字量;
(3)光强分0-600等级。
三.软件设计
主程序源码
unsigned char read() //读AD转换值
{
unsigned char r;
P0=0xff; //P0口复位
_nop_(); //延时
adc_rd=0; //rd拉低
_nop_(); //延时
r=P0; //读取P0口数据
_nop_(); //延时
adc_rd=1; //rd拉高
return(r); //返回读到的数据
}
void fw(unsigned char dat) //将读到的数据处理
{
unsigned int i;
i=dat*2.353; //将ad数据计算得到一个介于0-600之间的数值
Disbuf[0]=i/100; //将数据/1000得到千位(显示的百位)
Disbuf[1]=(i%100)/10;//将数据/100得到百位(显示的十位)
Disbuf[2]=(i%100)%10;//将数据/10得到十位(显示的个位)
}
main() //主函数
{
unsigned char p;
while(1) //循环
{
adc(); //ad初始化
display(); //显示函数
fw(read()); //读到电压值处理数据
for(p=0;p<20;p++) display();//显示函数循环20次,防止电压值跳动
}
}
资料链接:https://pan.baidu.com/s/1Iim7wf5gtHdUVb4YAl7Erg?pwd=7fru
提取码:7fru
版权声明:本文为m0_60790717原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。