欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

关于pnp的用法解决方案

更新时间: 2014-01-05 03:14:22 责任编辑: Author_N1

 

关于PNP的用法

proteus电路图
想做一个60s的倒计时,将两位数码管的1,2口分别连接到P2^0和P2^1时并赋予高电平可以实现,但要通过PNP就实现不了,高手看看

#include<reg51.h>
#include<stdio.h>

int ge,shi,cout,num;
unsigned char a[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

void delay(int x)
{
unsigned i,j;
for(i=1;i<=x;i++)
for(j=1;j<=100;j++);
}

void display(int shi,int ge)
{
 P0=a[shi];
 P2=0x01;  //数码管十位接通,问题应该出现在这里  
 delay(10);
 P2=0x00;    
 P0=a[ge];
 P2=0x02;  //数码管个位接通,问题应该出现在这里
 delay(10);
 P2=0x00;
}

void TimeNumOver()
{
TH0=0x3c;
TL0=0xb0;
cout++;
}

void main()
{
cout=0;
num=60;
EA=0;
TMOD=0x10;
IE=0x00;
TR0=1;
TH0=0x3c;
TL0=0xb0;
while(1)
{
 shi=num/10; //十位
 ge=num%10;  //个位
 display(shi,ge);
 TimeNumOver();
 if(cout==20)
 {
  cout=0;
  num--;
if(num==-1)
{
num=60;
}

 }
}
}
--参考方法--
应该是增加驱动电流,LED数码管的共阳极接PNP
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:14:22
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/19910/
本文WWW.DOC100.NET DOC100.NET版权所有。