51单片机的P0口作为输出口驱动数码管~~求大神

#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char

uint i=0,j=0;

void time(uchar c)
{
uchar a,b;
for(;c>0;c--)
for(b=142;b>0;b--)
for(a=2;a>0;a--);
}
uchar code table[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
void dataa(uint num)
{
uchar sep=0;
uchar ten=0;
uchar hund=0;
uchar thou=0;
sep=num%10;
ten=(num%100)/10;
hund=(num%1000)/100;
thou=(num%10000)/1000;
P0=0x08;
P2=table[sep];
time(2);
P0=0x04;
P2=table[ten];
time(2);
P0=0xfd;
P2=table[hund];
time(2);
P0=0xfe;
P2=table[thou];
time(2);
}
void main()
{
EA=1;
TMOD=0x01;
TH0=0xB1;TL0=0xE0;
TR0=1;
while(1)
{
if(TF0==1)
{
TF0=0;
TH0=0xB1;TL0=0xE0;
i++;
if(i==50)
{
i=0;
j++;

}
dataa(j);
}
}
}
实现自动计时

自20世纪70年代问世,以其高性能和低成本,人们的重视和关注供应链管理,应用非常广泛,发展迅速。 51单芯片微控制器是所有最典型,最有代表性的一种。
这种设计与AT89S51芯片为核心,通过必要的外围电路补充,一个简单的电子时钟,它由5V直流电源的设计。在硬件方面,除了CPU,使用四到七段LED数字显示,LED显示使用动态扫描,使用74LS14芯片驱动。能更准确地通过LED显示,分。两个简单的按钮来实现的时间调整。软件采用汇编语言编程。整个电子钟系统可以显示完成时间,调整上述定时时钟时,复位,以及其它功能。
通过这样的设计让我更好地了解了基本电路单片机,如何控制和定时器中断程序和基本方法,从而锻炼了我的研究,软件和硬件功能设计和开发。由于其极高的性价比的

,单片计算机(SCC)已经高度重视自从它问世20世纪70年代20世纪,并已获得了广泛的应用领域和快速发展。在各类鳞癌中,51 SCC是最典型和代表性的。
这样的设计,采用AT89S51芯片作为核心部件的一些必要的外围电路,是一个简单的电子时钟,它使用5V的直流作为电源。在硬件方面,除了在CPU,4七段LED的Digi-管用于显示器,其工作在动态扫描显示模式和由74SL14芯片驱动。该LED可以准确地指示的小时和分钟和两个按钮可用来调整时间。而在软件方面,编程语言是汇编语言。整个电子时钟系统具有时间显示,调整后,钟设定的功能和复位等
这样的设计使我能够更好地了解SCC的基本电路,和定时器控制和中断编程的基本方法,所以这是我的学习能力的培养,设计和开发软件和hardward。
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-12-08
三极管用错了,4个,改用PNP管

uchar code table[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
七段码也不对{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};追问

本来就是PNP

追答

哦,发射极在上面

追问

都改了,也不行啊,奇怪死了,我用P1口就行

追答

不知道你说的什么用了P1口?

追问

把数码管的1234接口接到P1口上驱动

本回答被提问者和网友采纳

51单片机P0口驱动LED数码管的这个电路图对吗
很明显,不对!就算电压加到1000V,数码管也不会亮。哎 网上总是误导、、、使用的共阴极的数码管。加之单片机的P0口没有内部上拉,所以只有外部加上拉电阻了。电阻使用470欧的效果最好。阴极可以直接接地。不用再加限流了。建议使用共阳极的数码管。损耗较小。

51单片机的P0口作输出用途之前必须
必须接上拉电阻保证高电平值。传统51单片机的P0口是双向口,做输入端口使用时,P0口处于高阻输入状态,如果所接外部器件恰好是开漏输出,那么就必须接上拉电阻保证高电平值。当她作为输出口使用时,其结构是开漏输出,此时也需要加上拉电阻才能保证能输出准确的高电平。

51单片机p0口接数码管abcdefg可以直接连接吗、 那另外一边1234是接什...
55555555你这好象没有,要不就是你打了漏了"Dp")引出脚,1234分别是每一个位的公共引出脚,单片机上最好选用这公共脚是接正极电源上的,这叫共阳,反则反之.不过现新型号单片机的端口能力大有改进了,

51单片机p0p1p2p3口,到底有啥区别啊,他们的基本功能有啥
一、意思不同 P0口作输出口用时,需加上拉电阻。P0口有复用功能。当对外部存储器进行读写操作时,P0口先是 提供外部存储器的低8位地址,供外部存储器地址锁存器锁存,然后充当数据线,用于写出或读入数 据。P1口、P2口只是普通IO口。二、功能不同 P0口第一个功能是数据接口,第二个功能是地址低...

看图解说51单片机P0口是怎么输出地址和数据的?请先看我的分析
就是说,地址12345678中存着12345678的数据,然后74hc373锁存,地址为保留12345678,然后改P输出口,这时候写的是数据,写00000000,此时就是地址12345678中存着00000000的数据,完成一次存储,然后进行下一次存储,打开锁存器74hc373的同时把P口改为下一次需要的地址。重复上次操作,就行了。

51单片机p0p1p2p3口,到底有啥区别啊,他们的基本功能有啥
首先,51单片机p0p1p2p3口,都可以当准IO口使用,也就是既可以作输出口,也可以作输入口。区别在于:1、P0口作输出口用时,需加上拉电阻。2、P0口有复用功能。当对外部存储器进行读写操作时,P0口先是提供外部存储器的低8位地址,供外部存储器地址锁存器锁存,然后充当数据线,用于写出或读入数据...

用C语言给51单片机编程时,怎样用P0口输出地址和数据?
只要C语句能保证编译出MOVX指令即可。你可以自行学习以下关键字的用法:pdata,xdata PBYTE,XBYTE 点到为止。剩下的自己去琢磨,Keil里面都能搜索到的。

求单片机p0口驱动共阴极数码管的驱动电路。
传统的51单片机P0口的电流驱动能力较弱。如果用来驱动数码管(多段的LED),建议增加外部的驱动器:用51单片机的P0口驱动外部驱动器,再由外部驱动器驱动数码管。这时P0口可以不用上拉电阻。(外部驱动器可以是三极管或集成电路)

51单片机P0口的特殊用途
51单片机P0口工作原理详细讲解一、P0端口的结构及工作原理 P0端口8位中的一位结构图见下图: 下面,我们先就组成P0口的每个单元部份跟大家介绍一下: 先看输入缓冲器:在P0口中,有两个三态的缓冲器,在学数字电路时,我们已知道,三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或...

哪位高手解答下 单片机用P0口驱动“共阳极数码管” 需要上拉电阻吗...
P0口驱动共阳极数码管,不需要上拉电阻。只需要数码管阳极接电源正,P0.7 -- P0.0接数码管的dp -- a,就可以驱动。单片机P0输出低电平点亮数码管。所说的上拉电阻指的是在信号线上接个电阻到电源上。通常在开漏输出的口线上需要上拉电阻。

相似回答