使用单片机P0和P2作为输出口,C51编程实现用单片机控制5个LED数码管显示HELLO

作者&投稿:氐永 (若有异议请与网页底部的电邮联系)
使用单片机p0和p2口作为输出,c51编程实现用单片机控制五个led数码管固定显示 HELLO~

#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();}}

在数码管依次排列好这一句话,首先取模,然后写显示函数,写完函数放置while(1)中无限循环下去
代码如下:
#include; //用的是单独操作,没有用总线
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; //看清楚自己的管脚,不一定对应,这里采用P0对应段选
code unsigned char led_paly[5] = {0x76,0x79,0x38,0x38,0x5c};// H E L L Ovoid delay(unsigned int um)//延时函数
{
int i,j;
for(i = 0;i < um;i++){for(j = 0;j < 200;j++);}}void display(){P0 = led_paly[0];//显示Hled2 = 0;delay(50);led2 = 1;P0 = led_paly[1];//显示Eled3 = 0;delay(50);led3 = 1;P0 = led_paly[2];//显示Lled4 = 0;delay(50);led4 = 1;P0 = led_paly[3];//显示Eled5 = 0;delay(50);led5 = 1;P0 = led_paly[4];//显示Oled6 = 0;delay(50);led6 = 1; }void main(void){while(1){display();}}

扩展资料:
51单片机的接口作用
P0口:可以被定义为数据/地址的低八位,能够用于外部程序/数据存储器。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:标准输入输出I/O,P1口管脚写入1后,被内部上拉为高,可用作输入。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:既可用于标准输入输出I/O,也可用于外部程序存储器或数据存储器访问时的高八位地址。
P3口:既可以做标准输入输出I/O,也可作为AT89C51的一些特殊功能口。

简单啊 .p0做段码输出口, 接到数码管的8个seg段引脚上,然后p2做为位选驱动,接到5个led的com上.然后动态扫描,比如2ms一次,每次点亮一个led, 把对应的段码如: H对应的段码送到P0口,然后将对应的第一个led的com脚使能,如果是共阴极,就是把这个引脚拉低, 维持2ms ;然后以此类推,分别显示E L L O ,然后重复循环.


典型51单片机的P0,P1,P2,P3口都有哪些功能?
1. P0口:该口为双向I\/O口,具备输出锁存和输入缓冲功能。在使用前,输入需先置1。输出为漏极开路型,使用时需接入上拉电阻。该口输入状态为高阻态,能够驱动8个TTL负载。当连接外部存储器时,用作数据线。2. P1口:这是一个简单的I\/O口,输入前同样需要置1,且无高阻态。P1口可作为输出或...

51单片机p0p1p2p3口,到底有啥区别啊,他们的基本功能有啥
一、端口区别:1. P0口:拥有上拉电阻,可驱动LED等负载。作为地址总线使用时,可以分时复用。2. P1口:内部带有上拉电阻,主要用作输入\/输出端口。具有双向I\/O功能。3. P2口:作为地址总线的高位使用,与低位的P0口共同组成完整的地址总线。在特殊功能下,可以用于控制外部存储器芯片的片选信号。4....

单片机的p0,p1,p2,p3端口有什么作用?
4. P0口是真正的双向I\/O口,但内部不包含上拉电阻。5. P1、P2和P3口是准双向I\/O口,内部包含上拉电阻。6. P0和P2口分别代表16根地址线的低8位和高8位。7. P3口具有中断和定时器等其他特殊功能。8. 了解这些端口的具体作用,需要在实际使用单片机时深入了解。

单片机的p0,p1,p2,p3端口有什么作用?
单片机的P0、P1、P2和P3端口各有其独特功能和适用场景:P0口是真正的双向口,具备输出锁存和输入缓冲功能。使用时需要注意,作为输入端口之前需先置1(KEIL集成头文件会自动处理,汇编时需手动操作)。它的输出为漏极开路,通常需要上拉电阻。作为输入时,它能驱动8个TTL负载,且在连接片外存储器时,还...

典型51单片机的P0,P1,P2,P3口都有哪些功能?
51单片机的P0、P1、P2、P3口各自具备多种功能。首先,P0口主要用于数据接口和地址低八位,而P2口则作为地址高八位,且P0口是唯一没有内置上拉电阻的口。P1口作为准双向I\/O口,功能较为有限。然而,P3口的重要性不容忽视,它除了基本的准双向I\/O功能外,还有以下几个关键点:P3.0作为串行数据...

单片机P0, P1, P2, P3各有什么作用?
一、P0口:真正的双向口,输出锁存,输入缓冲,输入前要先置1(KEIL包含的头文件已经有动作了,如果用汇编,要人工置1),输出为漏极开路,输出一般都要上拉电阻。输入为高阻态,能驱动8个TTL负载。当有片外存储器时,作数据线使用。二、P1口:最简单的口,输入也要先置1,无高阻态,只能是输出...

51单片机p0口与p2口的区别
区别一、不一样的意思 P0口作输出口用时,需加上拉电阻。P0口有复用功能。当对外部存储器进行读写操作时,P0口首先提供外部存储器的低8位地址,以供外部存储器地址锁存器锁存,然后将ACTS作为数据线用于写入或读取数据。P1端口,P2端口只是普通的IO端口。区别二、不一样的功能 P0口第一个功能是数据...

51单片机的P0,P1,P2,P3,P4口各是什么意思?
二、P1口:这是一个较为简单的I\/O口,输入前同样需要置1操作,不支持高阻态。P1口只能作为输出或输入使用,能够驱动4个TTL负载。三、P2口:P2口同样为I\/O口,与P1口类似,但在输入前也需要先置1。在片外存储器存在时,P2口用作地址总线,支持寻址64K的外部数据存储器。P2口能够驱动4个并行TTL...

单片机的P2口和P0口有什么联系
P0口和P2口在当成地址总线时,这两个口是用来一起进行外部存储器寻址用的。这个时候P0口是低八位地址,P2口是高八地址。加起来一共是16位地址。也就是可以寻址64KB的存储器空间。当你用汇编语言指令MOVX访问外部数据存储器的时候就是这种情况。这个地址在这个时候是存在DPTR的这个16位寄存器里的。而...

当51单片机接有外部存储器时,p2口通常作___使用。
当51单片机接有外部存储器时,P2口通常作为高8位地址总线使用。在51单片机的结构中,P0口被复用为低8位地址总线和数据总线,而P2口则专门被用作高8位地址总线。这是因为在与外部存储器通信时,需要更宽的地址总线来访问更多的存储单元。51单片机通过组合P0口和P2口的地址信号,可以形成完整的16位地址...

太原市18230749845: 80c51单片机在应用中P0和P2是否可以直接作为输入或输出连接开关、指示灯等外围设备 -
厨人念乳宁: P0口做IO口时是没有上拉电阻的,所以要用它输出高电平就必须接一个4.1K左右的上拉电阻,而P2口做IO口时有上拉电阻,但是有时可能会不稳定(本来该是高电平的,结果拉不高).所以最好也接个上拉电阻,以求稳妥!

太原市18230749845: 单片机I/O口,C语言怎么设置输入? -
厨人念乳宁: 1、单片机的IO口缺省时一般都是双向,既可以是输入又可以是输出,C语言中判断这个口是输入还是输出要看表达式的形式,比如: sbit key=P1^0; if(key==1).....这里是作为输入的,因为是读入,再判断值 key=1;这里是作为输出,因为直接给其赋值.2、例程:P3M0=0;P3M1=127;//0-6推挽输出P1M0=0;P1M1=255; //all 推挽输出 而51单片机的所有IO引脚,在启动后默认都是1.因此,如之前没有对此引脚进行过置0操作的话,可以直接读该引脚.但为了保险起见,也为了使程序通用、可移植,最好在读取之前对此引脚置1.

太原市18230749845: 单片机的P0,P1,P2口,既可以作为输入,也可以作为输出吗?可根据自己的习惯,随便选择
厨人念乳宁: 作为输入输出,P0-P3都可以随便选,不过P0口设计有点特殊,每次使用完都要编程进行手动清零

太原市18230749845: 51单片机各口功能是哪些?p0p1p2p3 -
厨人念乳宁: 首先,51单片机p0p1p2p3口,都可以当准IO口使用,也就是既可以作输出口,也可以作输入口.区别在于: 1、P0口作输出口用时,需加上拉电阻. 2、P0口有复用功能.当对外部存储器进行读写操作时,P0口先是提供外部存储器的低8位地...

太原市18230749845: MCS - 51中无ROM型单片机,在应用中P2口和P0口能否直接作为输入/输出口使用, 为什么? -
厨人念乳宁: MCS-51中无ROM型单片机,在应用中P2口和P0口能否直接作为输入/输出口使用, 为什么?MCS-51中无ROM型单片机(虽然几近绝种了,但知识还是要学),在应用中P2口和P0口就不能直接作为输入/输出口使用了,因为这两个端口都忙乎取指令去了,还忙不过来(要复用),其端口电平时时在乱跳.

太原市18230749845: 无ROM单片机在应用中p2和p0口能否直接作为输入/输出口使用 -
厨人念乳宁: 那肯定是不行了,因为已经在外扩ROM时用了,不过加几个锁存与缓冲芯处就可以了. 不过现在讨论这个已经没有多大的意义了,因为现在内部没有ROM的单片机几乎都不生产了.

太原市18230749845: 51单片机中,p0口作为输出口和p1,p2,p3有什么不同? -
厨人念乳宁: p0口中没有上拉电阻,在输出时需外加上拉电阻才能输出1;还有就是,p0口可以做片外数据和片外程序存储器的低八位地址总线和数据总线.其他的都差不多吧……

太原市18230749845: MCS - 51中无ROM型单片机,在应用中P2口和P0口能否直接作为输入输出口使用,为什么? -
厨人念乳宁: 不可.因为此时P0、P2口作为外部总线连接外置的程序存储器.

太原市18230749845: 51单片机的p0口和p2口作为i/o口使用,均需要接上拉电阻 -
厨人念乳宁: 都用低电平驱动,不要上拉电阻 你要高电平,就P0口要上拉电阻,且可以另接电压至12V

太原市18230749845: 单片机的P0和P2口作为普通的I/O口怎么用? -
厨人念乳宁: P0口:双向8位三态I/O口,地址总线(低8位)及数据总线分时复用口,可驱动8个LS型TTL负载 P1口:8位准双向I/O口,可驱动4个LS型TTL负载 P2口:8位准双向I/O口,功能复用口,可驱动4个LS型TTL负载 P3口:8位准双向I/O口,可驱动4个LS型TTL负载

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网