首先,光敏电阻是一个阻值会变化的电阻,阻值用R表示。
其次,51单片机是一块数/模混合的集成电路芯片,它的I/O口大部分都是只识别"0"(电压在零点几伏特这样)和"1"(电压在2.7~5.5V这样)逻辑电平的。有一些51单片机自带有ADC(模拟/数字转换芯片),写入程序后,可以将模拟的电压U转换成数字的值。
所以,你要搞清楚你到底想要做什么。
如果只是简单的读取有光、无光。那么可以将光敏电阻接在电压比较器(不懂就去翻模电集成运算放大器那章)上,然后将输出接在单片机的任意I/O,它会反映出来0/1的变化。
如果要读出精确的阻值,那么就需要加入ADC(单片机自带ADC的话,就要用程序去启动它;没有自带ADC,就要自己搭ADC电路)了。将一个恒流源(电流值为I)通过光敏电阻,这时候电阻两端反映的是电压的变化(欧姆定律:U=RI),这个电压还要控制在0~5V(当然也要看ADC的输入模拟电压范围)。然后把光敏电阻搭在惠斯通电桥里,将反映电压变化的两端接到差分放大器两个输入端,放大器输出端给ADC的AIN(模拟输入端口)。再用单片机控制ADC进行模拟到数字的转换,出来的值为二进制值。还要将该值转换为电压,进而转换为阻值。