有个错误不会改了求大神帮改下
#include<reg52.h>
#include<intrins.h>
sbit key0=P1^0;
sbit key1=P1^1;
sbit key2=P1^2;
sbit key3=P1^3;
void delay(int i)
{ int t;
while(i--)
for(t=0;t<120;t++);
}
void main()
{int i;
while(1)
{ char key;
P0=0xff;
switch (key)
case 0: {P0=0x00;delay(500);P0=0xff;delay(500); } break;
case 1: {}break;
case 2: {P0=0xfe;for(i=0;i<8;i++) {P0=_crol_(P0,1);delay(500);}} break;
case 3: {P0=0x7f;for(i=0;i<8;i++) {P0=_cror_(P0,1);delay(500);}}break;
} }
è½å¸®ææ¹æ¹ä¹
追ç#include
sbit k1 = P1^0; //æé®1
sbit k2 = P1^1; //æé®2
sbit k3 = P1^2; //æé®3
sbit k4 = P1^3; //æé®4
unsigned char keyscanf() //æé®æ«æ
{
char keynum;
bit temp=0;
P1=0xff;
if(temp&&P1==0)
{
if(k1==0)
{
keynum=1;
}
if(k2==0)
{
keynum=2;
}
if(k3==0)
{
keynum=3;
}
if(k4==0)
{
keynum=4;
}
}
return keynum;
}
void delay(int x)
{
for(x=0;x>1);
delay(200);
}
break;
default:break;
}
}
高分:89C51单片机流水灯程序求步骤详解,看懂了就给分
\/\/P0口灯由高位向低位依次灭(前一位不亮),最后仅剩最低位亮灯。0xFC,0xF9,0xF3,0xE7,0xCF,0x9F,0x3F,0x7F,\/\/P0口以两个亮灯为单位,由低位向高位逐位移动,最后移至最高位,仅剩最高位亮灯。0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,\/\/P0口全灭 0xE7,0xDB,0xBD,0x7E,0xB...
单片机流水灯全亮在灭在亮的程序怎么写
你流水灯都写好了 全亮全灭还不简单啊,设置 P0=0X00 (假设低电平亮,高电平灭) 在延迟一下 在P0=0XFF 在延时 不就OK了 把这几个指令打包下放到一个子程序里 你用按键控制的时候就让按键执行这个子程序 如果是 主程序循环的 话就放进主程序 ...
单片机流水灯程序
include<intrins.h> define uchar unsigned char uchar j,temp;void delay(unsigned int ms){ uchar t;while(ms--)for(t=0;t<123;t++);} void main(){ P1=0xff;delay(500);temp=0xfe; \/\/有点怪,led接在P2.3~P2.6 for(j=0;j<4;j++){ P1=temp;delay(500);temp=_crol_(t...
流水灯程序,从右到左全亮,在全灭,在从左到右全亮
单片机程序,看过郭天祥的视频就会了,授之以鱼不如授之以渔。
单片机控制流水灯程序注释
ret l2:mov r2,#07h;R2=07H mov r5,#01h;R5=1 k1:mov a,#01h;A=1 l3:mov p1,a;P1=A rl a;A循环左移 lcall dl;延时 djnz r2,l3;R2减1不为0转l3 rr a;A循环右移 lcall dl;延时 djnz r2,l4;R2减1不为0转l4 djnz r5,k1;R5减1不为0转k1 sjmp l0;转l0 end ...
请问52单片机中流水灯实现左移,全亮,右移,两边向中间亮要怎么写程序啊...
;左移 LOOP1:MOV R7,#8 MOV A ,#01 RL A MOV P1,A CALL DELAY DJNZ R7,LOOP1 ;全亮 MOV P1,#0FFH CALL DELAY ;右移 LOOP2:MOV R7,#8 MOV A ,#01 RR A MOV P1,A CALL DELAY DJNZ R7,LOOP2 ;不想写了 ...
51单片机实现LED流水灯
4. 只点亮第一个LED灯,对P1口赋值为“1111 1110”。重复上述流程,即可实现LED流水灯效果。在汇编语言实现中,考虑到51单片机为8位处理器,使用左移与右移指令来实现LED灯的循环点亮与熄灭。程序首先初始化累加器,然后通过循环实现LED灯的左移与右移。在左移程序中,使用乘法指令实现左移操作,同时...
单片机中流水灯如何控制
在单片机中控制流水灯的硬件连接非常简单,只需将8个LED指示灯连接到P1口上,另一端通过220欧姆的电阻接+5V电源即可。主要的控制依靠软件实现,简单的控制可以通过左移或右移指令,将低电平0逐渐移入寄存器中,从而控制LED指示灯一个接一个地点亮或熄灭。如果想要实现更复杂的流水灯效果,可以考虑进行...
51单片机8位流水灯8种变化程序
第一种:1个LED发光,循环右移。第二种:2个LED发光,循环右移。第三种:3个LED发光,循环右移。第四种:4个LED发光,循环右移。再改成左移,就又有四种。这就有八种了。一边移动,一边闪烁;再改变一下速度;这能有多少种了?
单片机:在程序中实现八灯从上到下流水,然后在从下到上流水,同时亮和同...
可以实现,首先随便连接一个I\/O口,P1\/P2\/P0均可,然后赋予一初值,然后使用本征函数_cror_(循环变量,循环次数)循环右移,或者循环左移实现。左移只需改掉本征函数,同时亮灭可以先给全1,然后给全0,中间加延时,自然得到需要的功能。include <reg51.h>\/\/包含头文件 include <INTRINS.H>\/\/...