开发板连接个光敏电阻传感器模块后出现了问题
我是这样连光敏电阻传感器模块的,(第一次连,可能有错):传感器VCC接开发板VCC,传感器GND接开发板GND,传感器DO(数字量输出)接板子P3.0。
这是我的程序:
#include<reg52.h>sbit RL1=P3^0; //传感器与单片机接口I/O口 //RL1是无光输出高电平1,有光输出低电平0sbit led=P1^0; //led灯I/O 口sbit sb1=P2^3; //sb1是蜂鸣器I/O口void Delay() //延时函数{ unsigned int DelayTime=20000; while(DelayTime--);} void main(){ led=0; //开led,但还没亮 sb1=0; //开蜂鸣器,但不响 while(1) //一直重复 { if(RL1==0) //如果有光 { sb1=!sb1; //蜂鸣器不响 led=!led; //led灭 Delay(); //延时时led不亮,蜂鸣器不响 } else //如果没光 { sb1=0; //蜂鸣器响 led=0; //led亮 Delay(); //延时时led亮,蜂鸣器响 } }}
下面是传感器的原理

你把传感器接到下载通信引脚了当然不能下载,写程序前不看pdf的吗?
现在程序可以下载进去了,但是还有一个问题,就是:我得把传感器先拔下来,才能把程序下载进去,然后连上传感器,然后可以正常工作。要是先连传感器的话程序下不进去,是为什么呢?
#include<reg52.h>
sbit RL1=P3^0; //传感器与单片机接口I/O口 //RL1是无光输出高电平1,有光输出低电平0
sbit led=P1^0; //led灯I/O
void delay(unsigned int z) //延时函数
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
while(1) //一直重复
{
if(RL1==0) //如果有光
{
led=1; //led灭
delay(0.5); //延时时led不亮,蜂鸣器不响
}
else //如果没光
{
led=0; //led亮
delay(0.5); //延时时led亮,蜂鸣器响 //当把延时调得太大的时候,灭时看起来亮灭比较明显,就像电压不稳,所以延时药少一点,但也不能趋近于0
}
}
}
貌似51系列的 好像都这样吧
你的意思是51的都得先拔下来,才能把程序下载进去?那哪些可以连上直接下载呢?
把传感器io口换到其他的io口应该就没问题了
嗯,谢谢。刚刚学到键盘检测原理,想先做个小东西试一下,你说的应该是在串口通讯里面?马上就学到。
