P2=0xaa; 即可(因为0xaa=1010 1010 ),好久没看过了,应该差不多这样

ORG 0000H ; 试试 SJMP MAIN ORG 0040H MIAN:MOV A,#11111110B MOV R2, #8 LOOP: MOV P2,A LCALL D_1s RL A DJNZ R2, LOOP MOV A,#01111111B MOV R2, #8 LOOP1: MOV P2,A LCALL D_1s RR A DJNZ R2, LOOP1 MOV A,#01010101B MOV P2,A LCALL D_1s

如下即可:includevoid main(){ unsigned int i, j; P1 = 85; while(1) { P1 ^= 255; for(i = 100; i > 0; i--) for(j = 800; j > 0; j--); }}

include void delayms(int xms){char i=0;for(;xms>0;xms--)for(i=0;i<110;i++);}main(void){while(1){P1=0xaa;delayms(1000);P1=0x55;delayms(1000);}}

include "REG52.H"// 显示花样流水灯编码 const unsigned char Expetr_ROM[] = { 0xFD, 0xF7, 0xDF, 0x7F, 0xFE, 0xFB, 0xEF, 0xBF } ;// 延时1ms void Delay_1ms(unsigned int Cnt){ unsigned int x, y;for(x = Cnt; x > 0; x--)for(y = 120; y > 0; y--);}

delay(2000);P2=0xAA; ///单数是低电平 delay(2000);}

以51为例子,假如低电平灯亮#includesbitK1=P1^0//P^0接开关sbitLED=P1^1;//接LEDvoidmain(void){P1=oxff;//初始化P1while(1){LED=~K1;}}

用c语言编写代码,控制led灯1357 2468 循环灯亮

2、雾灯:雾灯装在前照灯附近或比前照灯稍微低的位置。它是在有雾、下雪、大雨或尘埃弥漫等能见度低的情况下,作为道路照明并为迎面来车提供信号的灯具。灯光多为黄色,这是因为黄色光波较长,有良好的透雾性能。灯泡功率一般为35W。3、倒车灯:倒车灯装于汽车尾部,用于照亮车后道路和告知车辆和行人

LED灯泡远光是远的方向。如只有脚下的亮光,那就是近光 ,其实远光和近光是很好区分的 。如果是从线路上来区分的话,很难 ,需要使用万用表来测量一下LED灯泡的供电电压,才能够准确的判断出来 。

函数名称: Flow_led 功 能: 流水灯(循环一次)参 数: MS--点亮相邻LED的时间间隔,单位是毫秒 返回值 : 无 /***/ void Flow_LED(uchar MS){ uchar i;for(i=0;i<8;i++)//循环8次,8个LED依次点亮 { All_led(FALSE);//全部熄灭 One_led(i,TRUE);//点亮指定的LED Delayms

本次单片机实习我们一共完成了个模块的程序设计,包括:led显示模块、数码管显示模块和键盘模块。分别实现了流水灯的循环点亮控制、数码管的静态和动态计数显示,还有矩阵键盘按键控制数码管显示的程序设计。然后我们分别用protues系统仿真软件对各个模块进行了模拟仿真,用keil软件编制了汇编语言程序,验证了我们所设计的程序。

LED =0xff;P1=LED;while(1){ LED=0xe7;P1=LED;delayms(1000);LED=0xdb;P1=LED;delayms(1000);LED=0xbd;P1=LED;delayms(1000);LED=0x7e;P1=LED;delayms(1000);} }

单片机C语言编写点亮两盏led灯,首先从中间两盏点亮,依次相邻两盏灯点亮,依次循环永不停息。

KeyReadyFlag=TRUE;//按键准备标志 置位 } else KeyDownFlag=FALSE;//若按键Key1 无按下,则清空 按键按下标志 if(!KeyDownFlag && KeyReadyFlag)//若 按键已准备,且按键无按下(即 松手状态){ DutyNume++;//占空比分子 加1 if(DutyNume==DutyDeno) DutyNume=1;//若 占空比分子=分母,则

你没有松手监测呀!就是在按键处理程序后要加一个while(k1!=0);就是只有你松开按键后才认为本次按键执行完毕,不然就会一直重复执行按键按下的程序,那么你的d1一直就会执行亮灭操作!

当松手时,KEY1 = 1,不满足if语句不 进入循环,LED继续保持当前状态即LED = 0,如果再次按下按键,此时检测到KEY1 = 0,进入循环,LED取反得到LED = 0,灯亮。*/ delay(500); /*此处延迟,保证连续两次按键动作处在程序的延时过程中,不进行其他程序从而不会影响小灯。*/ } }}v

1、首先打开桌面上的keil软件,在进行对51单片机进行编程时最常用的就是keil软件。2、编写相应的代码:#include //定义单片机的头文件sbit led=P2^0; //定义单片机的管脚,void main(void) //主函数{ while(1) //无限循环 {led=0x1f; //点亮前面三个灯。这里

单片机用c语言,按钮控制一个LED灯,要求按下松开,LED亮,按下松开,LED暗!循环

uchar a,temp;void init(){ TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;ET1=1;TR1=1;temp=0x7f;} void main(){ init();while(1);} void t1() interrupt 3 { TH1=(65536-50000)/256;TL1=(65536-50000)%256;a++;if(a==20){ P1=temp;temp=_cror_(temp,1);} }

void main(){ P0=0xFF;cont=0;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;ET0=1;TR0=1;EA=1;while(1);} void timer1() interrupt 1 { unsigned char i;TH0=(65536-50000)/256;TL0=(65536-50000)%256;i++;if(i==20){ i=0;P0=tab[cont];cont++;if(cont==8

!key1){ t=0;P1=temp;} } if(key2==0){ temp=0;while(!key2){ t=0;P1=temp;flag=1;} } } } void timer1() interrupt 3 { TH1=(65536-50000)/256;TL1=(65536-50000)%256;t++;if(t==10){ t=0;temp=_crol_(temp,1);if(flag==1){ temp=0xff;flag=0;} } }

P0 = 0x00; //P0.0~P0.7分别接八个发光二极管,刚开始全灭 while(1){ delay(1000);P0 = 0xc0;//点亮前两个发光二极管P0.0和P0.1;delay(1000);//延时1秒 P0 = 0x30;//点亮第三个和第四个LED delay(1000);P0 = 0x0c;delay(1000);P0 = 0x03;} } 二、include

P0 = 0x00; //P0.0~P0.7分别接八个发光二极管,刚开始全灭 while(1){ delay(1000);P0 = 0xc0;//点亮前两个发光二极管P0.0和P0.1;delay(1000);//延时1秒 P0 = 0x30;//点亮第三个和第四个LED delay(1000);P0 = 0x0c;delay(1000);P0 = 0x03;} } 二、include

在main函数中,我们初始化P0口为全灭状态,然后进入无限循环。在每次循环中,首先延时1秒,然后点亮P0.0和P0.1两个LED,接着是P0.2和P0.3,依此类推。这样,每隔一秒,就会有两个相邻的LED亮起,然后熄灭,形成一个周期性的切换。第二个代码片段展示了另一种实现方式,这里使用了定时器0中断来

具体步骤如下:1. 全部LED初始状态:P0 = 0x00 2. 点亮P0.0和P0.1:P0 = 0xc0,延时1000毫秒 3. 点亮P0.2和P0.3:P0 = 0x30,延时1000毫秒 4. 点亮P0.4和P0.5:P0 = 0x0c,延时1000毫秒 5. 点亮P0.6和P0.7:P0 = 0x03,延时1000毫秒 文章还提到了另一种方法,使用定时

用五一单片机c语言编程,p1口控制八个发光二极管,实现每隔一秒,两两点亮,并循环。

#include bit flag;char cnt;void Timer0Init(void) //50毫秒@12.000MHz{ TMOD &= 0xF0; //设置定时器模式 TMOD |= 0x01; //设置定时器模式 TL0 = 0xB0; //设置定时初值 TH0 = 0x3C; //设置定时初值 TF0 = 0; //清除TF0标志 TR0 = 1; //定时器0开始计时 ET0 = 1; EA = 1; cnt = 0;}void main(){ signed char i; while(1) { for(i=3;i>=0;i--) { P1=~(119) flag=0;}
如下即可: #includevoid main(){ unsigned int i, j; P1 = 85; while(1) { P1 ^= 255; for(i = 100; i > 0; i--) for(j = 800; j > 0; j--); }}
#include "REG52.H" // 显示花样流水灯编码 const unsigned char Expetr_ROM[] = { 0xFD, 0xF7, 0xDF, 0x7F, 0xFE, 0xFB, 0xEF, 0xBF } ; // 延时1ms void Delay_1ms(unsigned int Cnt) { unsigned int x, y; for(x = Cnt; x > 0; x--) for(y = 120; y > 0; y--); } int main(void) { unsigned char i; while(1) { for(i = 0; i < 8; i++) { P1 = Expetr_ROM[i]; Delay_1ms(500); } } }
非常简单,线接错了,正常是12345678亮另一段也是12345678亮