如下即可:include
一、简单讲:想要灯亮,就将对应端口置0。反之就是灯灭。二、详细讲:假设用keil编写,新建工程->选择单片机型号->新建源文件->设置output(点魔术棒图标勾选create hex file)。我们用P2^0端口连接一个led(led另一端连
sbit led5=P0^4;sbit led6=P0^5;sbit led7=P0^6;sbit led8=P0^7;void delay(u16 i){ while(i--);} void main(){ while(1){ leda=1;//全部灯亮 //从左到右依次熄灭 led1=0;delay(50000);//大约
1); // 左移一位,点亮下一位LED delay(55); } // 向右循环点亮LED for(i=0; i/ 右移一位,,点亮上一位LED delay(55); } }}// 延时函数,延时a毫秒void delay(uint a){ uint x,y; for(x=a;x>0
if(!KEY) //如果检测到低电平,说明按键按下 LED=0;else LED=1; //这里使用if判断,如果按键按下led点亮,否则熄灭 //上述4句可以用一句替代 LED=KEY;//主循环中添加其他需要一直工作的程序 } }
1、首先打开桌面上的keil软件,在进行对51单片机进行编程时最常用的就是keil软件。2、编写相应的代码:#include
以下是一个单片机间隔点亮一LED灯的C语言程序,以8051单片机为例:c Copy code include //包含了AT89C51的寄存器定义 void delay(unsigned int xms) //延时函数,xms为要延时的毫秒数 { unsigned int i,j;for(i=xms;i
单片机C语言编程点亮LED灯
2、假设led连接到p1口吧。第一个灯接到p1.0。阴极接io,阳极接5v。include bit secflag;unsigned char ms;void display(unsigned char num,unsigned char sec){ num%=8;p1=~(1< >8;tl0=-50000;ms++;if(ms>20
55); } // 向右循环点亮LED for(i=0; i/ 右移一位,,点亮上一位LED delay(55); } }}// 延时函数,延时a毫秒void delay(uint a){ uint x,y; for(x=a;x>0;x--) for(y=110;y>0;y--);}
单片机流水灯程序代码(汇编语言):ORG0000HAJMPMAINORG0030HMAIN:MOVP1,#11111110BACALLDELAY;跳转到子程序MOVP1,#11111101BACALLDELAYMOVP1,#11111011BACALLDELAYMOVP1,#11110111BACALLDELAYMOVP1,#11101111BACALLDELAYMOVP1,
单片机流水灯代码:#include
P1=0xff; //点亮P1口第0个引脚上的LED灯,0xff为二进制的11111111 delay(1000); //延时1秒 P1=0x00; //将P1口全部置为0,熄灭LED灯 delay(1000); //延时1秒 } } 上述程序的作用是在单片机的P1口上间隔点亮一
用MCS51单片机汇编语言编写的点亮一只LED灯源程序LED1.ASM,代码如下:ORG 0000H AJMP MAIN ORG 0030H MAIN:MOV A,#FEH MOV P1,A AJMP END
单片机点亮一盏led灯代码
main:mov P1,#0aah acall delay mov P1,#55H acall delay sjmp main delay:mov r7,#0ffh de:mov r6,#0ffh djnz r6,djnz r7,de ret end 这就是你想要的效果,不妨试试哦!
说明:单片机控制LED灯间隔时间闪烁 所用程序很简单,实际情况可作相应变化,也有多种方式实现。proteus电路图 所需元件清单:(分别是) 51单片机 电容 瓷片电容(也可用普通电容) 晶振 红色二极管 电阻 (tip:没有给高
void timer() interrupt 1 { TH0=(65535-50000)/256;TL0=(65535-50000)%256;num++;} 这个程序是逐个点亮的(思路:由256逐减1,值由LED灯显示)include
把这句删了sbit led=P1^0; //定义LED为P10,可以改为其他IOunsigned char jishi; void Timer0Init(void)//50毫秒@12.000MHz{ AUXR &= 0x7F;//定时器时钟12T模式
void t0isr() interrupt 1{TH0=(65536-5000)/256;TL0=(65536-5000)%256;number++;if(number>1)number=0;switch(number){case 0:P2=0x02;P0=distab[dat/10];break;case 1:P2=0x01;P0=distab[dat%10];break;
EA = 1;ET0 = 1;TR0 = 1;} void main(void){ InitTimer0();while(1)if(time==20) //中断20次,1s { time=0;LED=!LED; P1.0上的LED1s亮灭一次 } } void Timer0Interrupt(void) interrupt 1 { TH0
{ P1=0xff; //点亮P1口第0个引脚上的LED灯,0xff为二进制的11111111 delay(1000); //延时1秒 P1=0x00; //将P1口全部置为0,熄灭LED灯 delay(1000); //延时1秒 } } 上述程序的作用是在单片机的P1口上间隔点亮
单片机间隔点亮一led灯的C语言程序
sbit led4=P0^3;sbit led5=P0^4;sbit led6=P0^5;sbit led7=P0^6;sbit led8=P0^7;void delay(u16 i){ while(i--);} void main(){ while(1){ leda=1;//全部灯亮 //从左到右依次熄灭 led1=0;delay
sbit led=P2^4; //假如你led连的P2.4 和 vcc 直接IO置低电平就亮了 led=0;
{ if(!KEY) //如果检测到低电平,说明按键按下 LED=0;else LED=1; //这里使用if判断,如果按键按下led点亮,否则熄灭 //上述4句可以用一句替代 LED=KEY;//主循环中添加其他需要一直工作的程序 } }
1); // 左移一位,点亮下一位LED delay(55); } // 向右循环点亮LED for(i=0; i/ 右移一位,,点亮上一位LED delay(55); } }}// 延时函数,延时a毫秒void delay(uint a){ uint x,y; for(x=a;x>0
P1=0xff; //点亮P1口第0个引脚上的LED灯,0xff为二进制的11111111 delay(1000); //延时1秒 P1=0x00; //将P1口全部置为0,熄灭LED灯 delay(1000); //延时1秒 } } 上述程序的作用是在单片机的P1口上间隔点亮一
1、首先打开桌面上的keil软件,在进行对51单片机进行编程时最常用的就是keil软件。2、编写相应的代码:#include
//请依照你的硬件输入相对值#defineKEY_ACTIVE_LEVEL(请输入)#defineKEY1_PIN(请输入)#defineKEY2_PIN(请输入)#defineLED_ON_LEVEL(请输入)#defineLED_LOW_LEVEL(请输入)#defineLED_PIN(请输入)unsignedcharis_key1_pr
点亮一个LED的C语言程序,
单片机点亮LED灯很简单,控制IO口直接送“0”(共阳极)或者“1”(共阴极)就可以实现了。比如:ORG 0000HLJMP MAINORG 0030HMAIN: MOV A,#0FEH LOOP: MOV P0,A LCALL DELAY RL A SJMP LOOPDELAY
led负极串联一个几百欧到1k的电阻接到io口,正极接电源正极
1. P0是指单片机的一组IO口,一共有8个输入或输出IO口(P0^0,P0^1,P0^2,P0^3,P0^4,P0^5,P0^6,P0^7),至少能点亮8个LED 2. P0=0x00,就是对这组IO赋值或传数据,0x00是一个16进制数,转成二进制
2.连接电路:将LED灯与单片机连接起来。一般情况下,将LED的正极连接到单片机的一个GPIO引脚,将LED的负极连接到电阻,然后将电阻的另一端连接到单片机的地(GND)引脚。确保连接牢固。3.编写程序:使用单片机的编程软件(如A
//用于改变闪烁频率 LED0=1; //将P1.0口赋值 1,对外输出高电平 Delay(10000); //主循环中添加其他需要一直工作的程序 } } /*--- 延时函数,含有输入参数 unsigned int t
1.怎么玩转单片机-IO输出-点亮1个LED灯方法1,单片机智能控制 方法1 单片机智能控制,单片机源代码 /*--- 名称:IO口高低电平控制 内容:点亮P1口的一个LED灯 该程序是单片机学习中最简单最基础的, 通过程序了解如何控制
1.怎么玩转单片机-IO输出-点亮1个LED灯方法1
# include sbit led1=P1^0; int main(void) { led1 = 0; return 0; } 大概是这样吧很简单的,先定义你的端口。然后给端口输出高低电平。 点亮第一个LED
设置一个delay_2s()就是: delay_2s() { for(i=0;i<200;i++) { for(j=0;j<200;j++) } } 具体要看你的晶振大小 然后 void main() { uchar temp = 0x01; while(1) { delay_2s(); P0 = temp delay_2s(); temp <<=1; i++; if(i>=7) { i = 0; temp = 0x01 } } } 很容易理解就是让0X01一直左移赋值给P0口然后循环
我再帮你补一课,看了你的标题,我写了一个用定时器0来控制一个LED灯第隔1秒钟亮灭一次的程序,希望对你有用,另外我也写了一个你说的那个程序,一起发上来吧 ****************这个是用定时器0控制一个灯的亮和灭****************************** #include #define uchar unsigned char #define uint unsigned int /**************************************/ uchar num; bit tt; sbit d=P1^0; /******************主程序入口********************/ void main() { TMOD=0x01; TH0=(65535-50000)/256; TL0=(65535-50000)%256; TCON=0x10; EA=1; ET0=1; tt=255; while(1) { if(num==20) { tt=!tt; d=tt; num=0; } } } void timer() interrupt 1 { TH0=(65535-50000)/256; TL0=(65535-50000)%256; num++; } ****************这个程序是逐个点亮的(思路:由256逐减1,值由LED灯显示)*********************** #include #define uchar unsigned char #define uint unsigned int /**************************************/ uchar num,tt; //bit tt; sbit d=P1^0; /******************主程序入口********************/ void main() { TMOD=0x01; TH0=(65535-50000)/256; TL0=(65535-50000)%256; TCON=0x10; EA=1; ET0=1; tt=255; while(1) { if(num==20) { tt--; P1=tt; num=0; } } } void timer() interrupt 1 { TH0=(65535-50000)/256; TL0=(65535-50000)%256; num++; }
用c啊,我想想: 1、和硬件有点儿关系,这个你清楚么? 2、假设led连接到p1口吧。第一个灯接到p1.0。阴极接io,阳极接5v。 #include bit secflag; unsigned char ms; void display(unsigned char num,unsigned char sec) { num%=8; p1=~(1< >8;tl0=-50000; ms++; if(ms>20){ms=0;secflag=1;}//12mhz, 50ms定时中断,1秒计时。 } 你很容易扩展出任意要求的闪烁流水灯啦。 display(2,1); display(1,1); display(3,2); display(1,2); ……放到while里面就好了。祝你玩得开心。
MAIN: MOV P1,#11111110B;点亮P1.0所接的灯 ACALL YS ;调用延时子程序,让P1.0所接的灯亮一小段时间 MOV P1,#11111101B;点亮P1.1所接的灯 ACALL YS ;调用延时子程序,让P1.1所接的灯亮一小段时间 MOV P1,#11111011B;点亮P1.2所接的灯 ACALL YS ;调用延时子程序,让P1.2所接的灯亮一小段时间 MOV P1,#11110111B;点亮P1.3所接的灯 ACALL YS ;调用延时子程序,让P1.3所接的灯亮一小段时间 MOV P1,#11101111B;点亮P1.4所接的灯 ACALL YS ;调用延时子程序,让P1.4所接的灯亮一小段时间 MOV P1,#11011111B;点亮P1.5所接的灯 ACALL YS ;调用延时子程序,让P1.5所接的灯亮一小段时间 MOV P1,#10111111B;点亮P1.6所接的灯 ACALL YS ;调用延时子程序,让P1.6所接的灯亮一小段时间 MOV P1,#01111111B;点亮P1.7所接的灯 ACALL YS ;调用延时子程序,让P1.7所接的灯亮一小段时间 LJMP MAIN ;循环.这回用长调用指令LJMP,当程序比较长的时候就用 LJMP YS: ;延时子程序YS,功能是能让LED亮起来或者灭掉一小段时间 MOV R1,#200 ;让灯亮灭时间的长短也就是延时的长短跟#号后面的数据有关 D: MOV R2,#200 ;延时长点#号后面的数据就大点,延时短点#号后面的数据 T: MOV R3,#200 ;就小点,但#号后面最大的数据是255 DJNZ R3,$ DJNZ R2,T DJNZ R1,D RET ;子程序返回指令,子程序的设计一般都是因为主程序要调用它, ;调用完是要返回到主程序继续运行下一个语句的 END
如下即可: #includevoid main(){ unsigned int i, j; P1 = 85; while(1) { P1 ^= 255; for(i = 100; i > 0; i--) for(j = 800; j > 0; j--); }}
要求D11~D18八个led从左到右依次单个点亮