首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

关于PNP的用法解决方案

2013-11-26 
关于PNP的用法proteus电路图想做一个60s的倒计时,将两位数码管的1,2口分别连接到P2^0和P2^1时并赋予高电平

关于PNP的用法
关于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

热点排行