8051单片机的P0口接了一个LED数码管,数码管喂共阴极LED,编程实现LED依次显示0~F这18个字型,时间间隔为1秒
#include //包含单片机寄存器的头文件//dp g f e d c b a#define SMG_SEG_H 0x76;//01110110#define SMG_SEG_E 0x79;//01111001#define SMG_SEG_L 0x38;//00111000#define SMG_SEG_O 0x3F;//00111111//unsigned char code SMG_SEG[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};; //共阳极unsigned char code SMG_SEG[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//dp g f e d c b a//unsigned char code SMG_COM[]={0x01,0x02,0x04,0x08,0x10}; //共阳极unsigned char code SMG_COM[]={0xFE,0xFD,0xFB,0xF7,0xEF}; //共阴极/****************************************函数功能:延时一段时间*****************************************/void delay(void) //两个 void 意思分别为无需返回值,没有参数传递{unsigned int i; //定义无符号整数,最大取值范围 65535for(i=0;i<100;i++) //做 100 次空循环; //什么也不做,等待一个机器周期}/*******************************************************函数功能:主函数 (C 语言规定必须有也只能有 1 个主函数)********************************************************/void main(void){while(1) //无限循环{P2=0xFF;//关显示P0=SMG_SEG_H;P2=SMG_COM[0];delay();P2=0xFF;//关显示P0=SMG_SEG_E;P2=SMG_COM[1];delay();P2=0xFF;//关显示P0=SMG_SEG_L;P2=SMG_COM[2];delay();P2=0xFF;//关显示P0=SMG_SEG_L;P2=SMG_COM[3];delay();P2=0xFF;//关显示P0=SMG_SEG_O;P2=SMG_COM[4];delay();}}
P2=0xbf为16进制数,二进制为10111111,正好为P2.6位选中,0送给P0,就显示 0 ;显示6也一样。
主函数里写numtab i等于p0赋值,i为定时器1s的变量,加到18让他等于0,numtab为0~18的16进制数。写个中断,写个中断服务函数就可以了。百度找找就能找到了
度娘是万能的@163.com
51单片机p0p1p2p3口,到底有啥区别啊,他们的基本功能有啥
51单片机中,P0、P1、P2、P3口的主要区别及基本功能:一、端口区别:1. P0口:拥有上拉电阻,可驱动LED等负载。作为地址总线使用时,可以分时复用。2. P1口:内部带有上拉电阻,主要用作输入\/输出端口。具有双向I\/O功能。3. P2口:作为地址总线的高位使用,与低位的P0口共同组成完整的地址总线。在...
典型51单片机的P0,P1,P2,P3口都有哪些功能?
51单片机的P0、P1、P2、P3口各自具备多种功能。首先,P0口主要用于数据接口和地址低八位,而P2口则作为地址高八位,且P0口是唯一没有内置上拉电阻的口。P1口作为准双向I\/O口,功能较为有限。然而,P3口的重要性不容忽视,它除了基本的准双向I\/O功能外,还有以下几个关键点:P3.0作为串行数据接...
51单片机的p0口和p0口有什么区别?
P0口第一个功能是数据接口,第二个功能是地址低八位,P2口第二个功能是地址高八位。另外除了P0口没有内部上拉电阻外,其他三个都有内部上拉电阻。P1就没多少功能,就是个准双向I\/O口。最重要的就是P3口了,他除了是个准双向I\/O口外,第二功能很重要:P3.0 (RXD)串行数据接收端;P3.1 (TX...
51单片机的数据总线为什么是P0口?
51 单片机的数据总线为P0 口,P0 口为双向数据通道,CPU 从P0 口送出和读回数据。为了节约芯片引脚,采用P0 口复用方式,除了作为数据总线外,在ALE 信号时序匹配下,通过外置的数据锁存器,在总线访问前半周期从P0口送出低8位地址,后半周期从P0 口送出8 位数据。系列单片机的控制总线包括读控制...
单片机读p0端口是什么意思?
不光是P0口,标准51单片机的所有IO口都有“读引脚”和“读锁存器”的问题。其实这类问题也很好解释,自己去看看51单片机的IO脚框图就豁然开朗了。读引脚的意思就是直接读P0外部引脚的电位,而读端口(锁存器)读的是内部与数据总线链接的锁存器的电位。一般来说,读取P0的数据,都是读引脚,目的是...
51单片机中ale\/ prog是什么意思?
ALE 是adress lock enable简写,单片机P2 是高八位地址总线,而P0是分时复用地址、数据总线(控制低八位),所谓分时复用就是说在一条时序上,不同的时间P0担任不同的角色,这就需要我们的ALE来锁存PO在担任地址角色时输出的地址信号。ALE\/PROG 是单片机51系列的其中一个针脚,高低电平的不同输入能使...
51单片机p0口与p2口的区别
区别一、不一样的意思 P0口作输出口用时,需加上拉电阻。P0口有复用功能。当对外部存储器进行读写操作时,P0口首先提供外部存储器的低8位地址,以供外部存储器地址锁存器锁存,然后将ACTS作为数据线用于写入或读取数据。P1端口,P2端口只是普通的IO端口。区别二、不一样的功能 P0口第一个功能是数据...
单片机P0口是什么?
当P0=0时P0点为低电位,发光管亮起,流过D1的电流约为15mA。当P0=1时,P0点为悬空,但发光管和180欧电阻都是低阻抗元件,P点电位就为高电位,再说也无任何输出影响,因此这样电路是可以的。51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来...
为什么说51单片机中数据总线是P0?
例如movx @r0,a),a的内容就是放在P0口的引脚上的,反过来输入时(例如movx a,@r0),CPU会把P0引脚上的信号送给a 当然P0是分时复用的,也输出地址,上例中r0的内容(地址)在ALE信号有效时也会出现在P0口。当然还有访问外部ROM的movc指令以及从外部ROM中取指令的过程,过程与前述类似。
51单片机 p0是地址常量还是普通变量
p0不是普通变量,是内部寄存器,能读能写,同时它硬件上有输入输出端口和它对应
施松复方: 还有现在发光二极,高亮度的已经超过P0口电流.如果高亮度的建议增加放大电路.小的二极管建议接一个下拉限流电阻..毕竟P0信号输出端口,长时间直接驱动对整个单片机安全不是很高万一二极管质量不好击穿短路就直接接地了.
陕县15060164068: 单片机8051的P0,P1,P2,P3口有什么区别,用他们做显示数字,有的稳定,有的不稳定 - ?
施松复方: p0口内部不带上拉电阻,输出只有电压没电流,接负载时要外接上拉电阻.p1~p3口内部自带上拉电阻可以直接接负载.
陕县15060164068: 单片机P0口上拉电阻怎么接?还有为什么只有P0口要接上拉电阻和什么时候需要接下拉电阻??? - ?
施松复方: 电阻一端接IO口另一端接VCC,这样就是上拉了.由于P0口的IO是开漏方式的,不接上拉电阻无法输出高电平,所以必须接上拉电阻.下拉电阻用的不多,这个要看具体情况了.
陕县15060164068: 51单片机P0口为什么要接上拉电阻 - ?
施松复方: 也不会怎样额额,要看你实现什么功能了. 如果你要驱动数码管,或者让二极管亮,需要的电流是5~10MA ,但是P0口输出电流不到1个毫安,是无法点亮发光二极管的.酱紫数码管二极管之类的就永远亮不起来了 上拉电阻接法如上图,如果接上上拉电阻,
陕县15060164068: AT89C51单片机中P0口接二极管,在程序里有这个语句:P0=~(1<<i);,为什么要取反? - ?
施松复方: 像AT89C51这类单片机,IO口输出电流的能力是非常弱的. 如果直接用这个电流去驱动一个LED的话,发光度是不足以满足大家的兽欲的. 所以,为了保证亮度,一般会把LED的负极接到单片机的IO上,而把正极串一个限流电阻接到VCC. 二极管是正向导通的,所以要使LED发光,需要单片机的IO输出低电平,LED才会发光. 现在看你的问题: P0 = ~(1<<i); 假设i=2,也就是你希望连接到P0.2的LED发光,那么现在P0=~(1<<2)=8'b1111_1011; 也就是P0.2=0,为低电平. 我这么说,你懂了不
陕县15060164068: STC89C51单片机P0口接一位数码管要接上拉电阻吗 - ?
施松复方: 一般都是要接的,因为P0口的I/O口内部没有接上拉电阻,单片机的输出能力不足,所以需要外部接上拉电阻
陕县15060164068: 51单片机的P0口能不能同时既作为输入口又作为输出口 - ?
施松复方: 可以既作为输入,又作为输出. 不过无法同时作为输入和输出. 即在运行的整个周期中,可以在t0到t1时间内作为输入口,而在t1到t2时间内作为输出口. 但是二者时间不能有交叉. 也就是说,P0是输入还是输出,可以软件进行实时配置,但无论是哪种配置,在同一时间只有一种情况会生效.要么输入,要么输出.
陕县15060164068: 单片机P0口能否驱动两个发光二极管?串联还是并联? - ?
施松复方: 51或52单片机P0口一般是要接是上拉电阻,但现在的单片机不一定,多数可以配置获得弱上拉或推挽输出.接了上拉电阻后P0口能否驱动发光二极管,看上拉电阻的大小 了,一般几百欧可以驱动一个LED,阻值再小一些,也可以驱动两个发光二极管 最好串联,但只能是红绿等颜色,白色和蓝色导通电压接近3V,串联是不行的,并联也可以,但单个IO口的电流有限,一般 都是只接一个LED,其他口也是这样
陕县15060164068: 8051单片机是由什么组成 - ?
施松复方: 8051单片机: 1、有一个CPU用来运算和控制, 2、有四个并行IO口,分别是P0、P1、P2、P3, 3、有ROM,用来存放程序, 4、有RAM,用来存放中间结果, 5、定时计数器, 6、串行IO口, 7、中断系统, 8、一个内部的时钟电路. 在一个8051单片机的内部包含了这么多的东西.
陕县15060164068: 51单片机I/O口的问题 - ?
施松复方: 就是P0口输出的电压值高低,把P0口作为一般IO口使用的话,要在硬件电路上接上拉电阻,因为单片机内部结构决定了P0口恒为低电平,只有在外部接上上拉电阻才能控制其为高或低