利用取表的方法,使端口P1 做单一灯的变化:左移2 次,右移2 次,闪烁2 次
(延时的时间02 秒)。
汇编源程序
ORG 0
START: MOV DPTR,#TABLE
LOOP: CLR A
MOVC A,@A+DPTR
CJNE A,#01H,LOOP1
JMP START
LOOP1: MOV P1,A
MOV R3,#20
LCALL DELAY
INC DPTR
JMP LOOP
DELAY: MOV R4,#20
D1: MOV R5,#248
DJNZ R5,$
DJNZ R4,D1
DJNZ R3,DELAY
RET
TABLE: DB 0FEH,0FDH,0FBH,0F7H
DB 0EFH,0DFH,0BFH,07FH
DB 0FEH,0FDH,0FBH,0F7H
DB 0EFH,0DFH,0BFH,07FH
DB 07FH,0BFH,0DFH,0EFH
DB 0F7H,0FBH,0FDH,0FEH
DB 07FH,0BFH,0DFH,0EFH
DB 0F7H,0FBH,0FDH,0FEH
DB 00H, 0FFH,00H, 0FFH
DB 01H
END
unsigend char LED1[k]={彩灯花样代码,你可以自己编写}; //k值是花样的数目 unsigend char LED2[k]={彩灯花样代码,你可以自己编写};
void main(void)
{
unsigend char i;
while(1)
{
if(p10==0) // 假设按键在p10口
{
for(i=0;i<k;i++)
{
p10=LED1[i];
delay(N);
}
if(i>k)i=0;
}
else
{
for(i=0;i<k;i++)
{
p10=LED2[i];
delay(N);
}
if(i>k)i=0;
}
}
}
#include<reg51h>
#include<intrinsh>
#define uchar unsigned char
uchar key,led=0xfe;
void delay(uchar a)
{
uchar i,j;
for(i=0;i<a;i++)
for(j=0;j<120;j++);
}
main()
{
while(1)
{
key=P1&0x0f;
switch(key)
{
case 0x0e:
P0=0xff;
delay(200);
P0=0x00;
delay(200);
break;
case 0x0d:
P0=0x00;
break;
case 0x0b:
P0=led;
led=_crol_(led,1);
delay(100);
break;
case 0x07:
P0=led;
led=_cror_(led,1);
delay(100);
break;
default:break;
}
}
}
可以用外部中断来控制;如果单片机中断是低有效,将按钮设置成按下时为低电平,触发中断,在中断中设置一个标志位,然后退出中断;主程序来判断这个标志位,如果为1,则退出led跑灯程序; 如果为0,则继续跑灯。如果单片机中断是高有效,将按钮设置成按下时为高电平,同理。 设置一个全局变量a,并且赋值a=0,一旦有按钮按下,则进入中断,并且a赋值为1,即a=1;在主程序中判断a的值,如果为0,则执行跑灯;若为1,则停止。
那个这是我自己写的,我也在自学单片机,这程序我可能写的不够简洁,但我试了一下在我的板子上显示的和你要求的一样。下面是程序:
#include<reg52h>
#include <intrinsh>
#define uint unsigned int
#define uchar unsigned char
sbit beep=P2^3;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{ uchar a;
int i;
a=0xfe;
while(1)
{
for(i=0;i<10;i++)
{
P1=a;
delay(300);
P1=0xff;
delay(300);
}
a=_crol_(a,1);
}
}
希望采纳吧,说一下,郭天祥的十天学会单片机不错额。就是我正在学的,加油!!
以上就是关于单片机89C51控制彩灯程序设计(汇编程序)实现用P1口控制8个彩灯流水点亮和闪烁,以及三种花样变化全部的内容,包括:单片机89C51控制彩灯程序设计(汇编程序)实现用P1口控制8个彩灯流水点亮和闪烁,以及三种花样变化、急求在51单片机中用一个开关控制两种方式亮的彩灯的源程序。。谢谢、以单片机为核心,设计一个节日彩灯控制器,设计要求如下:在单片机的p0口接有8个发光二极管作为指示灯等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)