一、设计要求
单片机的p2口上接有8只发光LED组成的花样流水灯。输入引脚p3.3接有一只按键开关K。K未按下时,单片机利用p2口的输出,控制花样灯左右循环流水点亮;K按下时,控制发光二极管交替点亮;当K松开时,花样灯恢复至左右循环流水点亮。
二、原理说明
编程考虑:在正常情况下,通过设给寄存器A初值,利用寻移指令和延迟环节,使8个LED灯呈现正反向循环流水点亮。当按下开关,是外部中断请求1引脚呈低电平,触发外部中断1,在中断处理程序中将寄存器A赋值0xaa,再通过环移指令和延时环节,使LED灯交替点亮,松开开关后,跳出外部中断处理,恢复先前的正反向循环流水点亮。
下面是仿真图,求大神帮我
上图有点乱,,不好意思。这个图比较好点
Ké®æå¼çæ¶åled没æä»»ä½ååºã
该æä¹ä¿®æ¹ä¸ä¸ç¨åºå¢ï¼
#include
#define uchar unsigned char
sbit key=P3^3;
uchar led=0x01;
void delay(uchar a)
{
uchar i,j;
for(i=0;i<a;i++)
for(j=0;j<120;j++);
}
main()
{
while(1)
{
while(key==0)
{
P2=0x55;
delay(100);
P2=0xaa;
delay(100);
}
while(key==1)
{
P2=led;
led=led<<1;
if(led==0x00)led=0x01; //è¿éæç¹éï¼æ¹äºã
delay(100);
}
}
}
è½ç¶Kæä¸æ¶ï¼æ§å¶åå äºæ管交æ¿ç¹äº®ï¼ä½æ¯å½Kæå¼æ¶ï¼è±æ ·ç¯å·¦å³å¾ªç¯æµæ°´ç¹äº®æ²¡æå®ç°ï¼åªæ¯ä»p2.0å°p2.7ä¸ç´è¿æ ·å¾ªç¯ç¹äº®ã没æp2.0å°p2.7ä¾æ¬¡ç¹äº®ï¼ç¶åp2.7å°p2.0ä¾æ¬¡ç¹äº®è¿æ · å·¦ å³ å¾ªç¯çææã请æ¨å帮ææ¹ä¸ä¸ä¸ å¯ä»¥ä¸ï¼25积åå¿ å®ç»ä½