设计一段单片机程序 使p0口和p2口的十六个LED灯闪烁五种不同花样 急求!

作者&投稿:陈滢 (若有异议请与网页底部的电邮联系)
51单片机为什么同一个程序P0口和P2口亮的led灯不一样?~

P0口是双向的三态口,驱动能力较弱,需要外部上拉提高驱动能力

;这是刚做的一个24个LED的流水灯,你可以参考一下。
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR ;50ms定时
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#03CH
MOV TL0,#0B0H
SETB TR0
SETB ET0
SETB EA
MOV R2,#0
MOV R3,#0
MOV P0,#00H
MOV P1,#00H
MOV P2,#00H
MOV R4,#0FEH
MOV R5,#0FFH
MOV R6,#0FFH
LOOP:
SJMP LOOP
T0ISR:
CLR TR0
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
INC R2
CJNE R2,#20,T0E
MOV R2,#0
INC R3
CJNE R3,#0,T000
MOV P0,#00H
MOV P1,#00H
MOV P2,#00H
T0E:
RETI
T000:
CJNE R3,#1,T001
MOV P0,#0FFH
MOV P1,#0FFH
MOV P3,#0FFH
RETI
T001:
CJNE R3,#25,T002
T002:
JC T003
MOV R3,#0FFH
T003:
MOV P0,R4
MOV P1,R5
MOV P2,R6
MOV A,R4
RLC A
MOV R4,A
MOV A,R5
RLC A
MOV R5,A
MOV A,R6
RLC A
MOV R6,A
XCH A,R4
MOV ACC.0,C
MOV R4,A
RETI
END

#include<reg51.h>
#define uchar unsigned char
uchar led[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void delay(int a)
{
while(a--);
}
main()
{
uchar i;
while(1)
{
for(i=0;i<8;i++){P0=0xff;P2=led[i];delay(10000);}
for(i=0;i<8;i++){P0=led[i];P2=0xff;delay(10000);}
for(i=0;i<8;i++){P0=led[i];P2=led[7-i];delay(10000);}
for(i=0;i<8;i++){P0=led[7-i];P2=led[i];delay(10000);}
for(i=0;i<8;i++){
P0=0xff;P2=0x00;delay(10000);P0=0x00;P2=0xff;delay(10000);
}
for(i=0;i<8;i++){
P0=0x55;P2=0x55;delay(10000);P0=0xaa;P2=0xaa;delay(10000);
}
}
}


楚州区19638703699: 设计一段单片机程序 使p0口和p2口的十六个LED灯闪烁五种不同花样 急求! -
杨璧麦道: #include#define uchar unsigned char uchar led[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void delay(int a) { while(a--); } main() { uchar i; while(1) { for(i=0;i<8;i++){P0=0xff;P2=led[i];delay(10000);} for(i=0;i<8;i++){P0=led[i];P2=0xff;delay(10000);} for(i=...

楚州区19638703699: 求AT89C52单片机从P0、P2口的引脚读入数据的程序? -
杨璧麦道: 不是锁存,是245缓冲器CE为低时读入. P2口看不全图,P0程序如下: CLR P3.6 MOV A,P0 ..... CLR P3.7 MOV A,P0

楚州区19638703699: 8051单片机进行扩展时,用P0口为 - ---,用P2口作为----,可寻址范围为----,寻址空间为-----. -
杨璧麦道: 8051单片机进行扩展时,用P0口为_数据口和地址口第八位___,用P2口作为_地址口高八位___,可寻址范围为__0000H~FFFFH__,寻址空间为_64K____.

楚州区19638703699: 求用编写用单片机P0口和P2口控制16个led管的程序. 最好花样能多点. -
杨璧麦道: 直接对端口操作,用一个十六进制数操控端口输出(端口指的是p0或p2整个端口)状态.

楚州区19638703699: AT89S51单片机控制P0,P2口LED(16个LED)花样程序? -
杨璧麦道: 下面是一个LED从P0最低位到P2最高位循环点亮的程序,供你参考: #include <reg51.h> //////////////////////////////////////////////////////// void delay(unsigned int cnt) //简单的延时 {while(--cnt); } /////////////////////////////////////////////////////// main() {P0=0xfe;//给初始化值...

楚州区19638703699: 跪求单片机AT89C51程序 -
杨璧麦道: #include<reg52.h> sbit key =P1^7; sbit LED1=P2^0; sbit LED2=P2^1; unsigned char keycnt; unsigned char Tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned int counet,second,msecond,minute; void delay(unsigned int m) {...

楚州区19638703699: 你好 向您请教:我用传感器连接51单片机P3^0口,传感器输入5v或0v,用来控制P0、P2口,用c该怎么写程序呢 -
杨璧麦道: sbit input=P3^0;if(input==1){ P0=0XFF; P2=0XFF;}else { P0=0X00; P2=0X00;}

楚州区19638703699: 当单片机外部扩展RAM和ROM是时,P0口,P1口,P2口,P3口各起什么作用? -
杨璧麦道: 不知道你说的是哪种单片机,如果是常用的51单片机的话,其P1口仅作为I/O,无第二功能;P3口作为I/O的同时,其第二功能是一些特殊功能,非扩展存储.P0口用于外部扩展存储时,用作地址总线或数据总线;P2口作为扩展存储时,作为地址总线.

楚州区19638703699: 怎么用KEIL写一段汇编程序.去控制单片机的P0口输出FF. -
杨璧麦道: 嘿嘿 俺来帮你 你的要求太简单了 很好实现ORG 0000HLJMP MAINORG 0100H MAIN: MOV P0,#0FFHSJMP $END 解释: ORG 0000H 表示在单片机启动地址的0000H单元 放一条转移指令 LJMP MAIN 转到你的主程序上 你的程序从MAIN: 开始 用传送指令MOV P0,#0FFH 使P0口输出FF(即高电平) SJMP $ 相当于暂停指令 END 为结束汇编呵呵 满意就选满意回答啊

楚州区19638703699: 要求用51单片机写个程序,1524864在4个共阳数码管循环滚动,P0口连接数码 -
杨璧麦道: #include#define uchar unsigned char uchar tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0到9 uchar dis[]={1,5,2,4,8,6,4,1,5,2}; uchar base=0,cnt=0; void delay(int a) { uchar i; while(a--)fori=0;i<120;i++); } void t0isr() interrupt 1 { TH0=(...

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