我的光敏电阻为什么控制不了电路
去掉Q1,多余。直接连单片机检测,别忘了IO口初始化。
还是不行,驱动Q1根本就驱动不了 程序应该没问题,你加我Q指导一下我吧 419299076 谢谢了
#include <reg51.h>
unsigned int num,count;
unsigned char arr[]={0x82,0x92,0x99,0xb0,0xa4,0xf9,0xc0}; //显示6到0
sbit LED1=P1^0;
sbit LED2=P1^1;
sbit LED3=P1^2;
sbit LED4=P1^3;
sbit LED5=P1^4;
sbit LED6=P1^5;
sbit LED7=P1^6;
sbit LED8=P1^7;
sbit key=P3^2;
void main(void)
{
TMOD=0x01;
TR0=1;
TF0=0;
EA=1; //定时器设置
while(1)
{
if(key!=1)
{
P0=arr[num];
if(num<6)
{LED1=LED2=LED3=LED4=LED5=LED6=LED7=LED8=0;ET0=1;}
else
{LED1=LED3=LED5=LED7=1;ET0=0;}
}
if(key==1)
{P0=0xff;num=0;count=0;ET0=1;LED1=LED2=LED3=LED4=LED5=LED6=LED7=LED8=1;}
}
}
void time0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256; //时间常数 50ms
count++;
if(count==20) //定时 1 秒
{ count=0;
num++; //计数
}
}
Q1去掉了还识别不了?程序上加上IO口初始化:
key=1; //初始化光线检测
程序写得不对。
弄好了 谢谢了
问题的原因主要是因为光线检测电路不对,程序端口没有初始化,程序现以仿真通过
在这里再把正确的程序贴一下,方便大家学习,
#include <reg51.h>
unsigned int num, count;
unsigned char arr[] = {0x82, 0x92, 0x99, 0xb0, 0xa4, 0xf9, 0xc0}; //显示6到0
sbit LED1 = P1 ^ 0;
sbit LED2 = P1 ^ 1;
sbit LED3 = P1 ^ 2;
sbit LED4 = P1 ^ 3;
sbit LED5 = P1 ^ 4;
sbit LED6 = P1 ^ 5;
sbit LED7 = P1 ^ 6;
sbit LED8 = P1 ^ 7;
sbit key = P0 ^ 0;
void main(void)
{
TMOD = 0x01;
TR0 = 1;
TF0 = 0;
EA = 1; //定时器设置
// key = 1;
while (1)
{
if (key)
{
P2 = arr[num];
if (num < 6)
{LED1 = LED2 = LED3 = LED4 = LED5 = LED6 = LED7 = LED8 = 0;ET0 = 1;}
else
{LED1 = LED3 = LED5 = LED7 = 1;ET0 = 0;}
}
if (!key)
{P2 = 0xff;num = 0;count = 0;ET0 = 1;LED1 = LED2 = LED3 = LED4 = LED5 = LED6 = LED7 = LED8 = 1;}
}
}
void time0() interrupt 1
{
TH0 = (65536 - 50000) / 256;
TL0 = (65536 - 50000) % 256; //时间常数 50ms
count++;
if (count == 20) //定时 1 秒
{ count = 0;
num++; //计数
}
}
深圳市畅鑫达科技是专业从事光敏电阻研发、生产和销售为一体的高新企业
淘宝直销店铺: shop34656851.taobao.com (复制浏览器打开)
QQ:252361544 手机:18695968182
专业销售CDS光敏电阻Φ5系列5516 5528 5537 5539 5549 0.08元/支
进店有礼,免费送样,诚招代理,欢迎洽谈!
感谢,膜拜,大神!