C语言实现LED灯闪烁控制配套51单片机开发板。include //包含单片机寄存器的头文件 /***函数功能:延时一段时间 / void delay(void) //两个void意思分别为无需返回值,没有参数传递。{ unsigned int i; //定义
led=1;//点亮 delay(100);//延时100MS led=0;//熄灭 } else led=0;} void delay(unsigned int i){自己根据单片机频率写个1MS带形参的演示程序} 这个程序是现写的。。应该能执行,有些细节没有写,自己修改下,
同时开放了定时器中断,并将定时器中断优先级设置为1(即高优先级)。在无限循环中,不断检测K1和K2按键状态,以改变全局变量“freq”并控制LED灯的闪烁频率;然后使用一个计时器中断服务程序来控制LED灯的闪烁,具体实现方式
1、新建项目,如图所示。2、添加头文件,创建延迟函数。3、创建C主函数。4、添加死循环效果。5、点亮LED灯。P1=0x7e;二进制11111110。6、添加延迟效果。注意事项:很多公司都有51系列的兼容机型推出,今后很长的一段时间内
说明:单片机控制LED灯间隔时间闪烁 所用程序很简单,实际情况可作相应变化,也有多种方式实现。proteus电路图 所需元件清单:(分别是) 51单片机 电容 瓷片电容(也可用普通电容) 晶振 红色二极管 电阻 (tip:没有给高电
51单片机C程序实验LED灯:[1]单个灯闪烁
两个for,双循环。for(int i =1;i <= 10;++i) //循环每种速度等级 注意,这里的i的范围不一定是1-10,可以自定义 for(int j=1;j <=10; ++j) //循环10次 { sleep(100 * i);//sleep休眠函数
for (b=110;b>0;b--);} void main(){ uchar x;uchar k=~0x01;P1=0xff;while(1){ for(x=0;x<10;x++ ){ P1=k;delay10ms();P1=0xff;delay10ms();} k=_cror_(k,1);if(x==9)x=0;} }
include#include#define uchar unsigned charvoid delay(uchar a){uchar i;while(a--)for(i=0;i<120;i++);}main(){uchar i,led;while(1) { led=0xfe; for(i=0;i<80;i++) { P0=led; led=_crol_(led
MOV P1,#42H ;点亮第2第7灯 LCALL DELAY MOV P1,#24H ;点亮第3第6灯 LCALL DELAY MOV P1,#18H ;点亮第4第5灯 LCALL DELAY MOV P1,#24H ;点亮第3第6灯 LCALL DELAY MOV P1,#42H ;点
其程序如下:MOV A,#01H ;灯亮初值 SHIFT: LCAIL FLASH ;调闪亮10次子程序 RR A ;右移一位 SJMP SHIFT ;循环 FLASH: MOV R2,#0AH 闪烁10次计数 FLASH1; MOV P1,
其程序如下:MOV A,#01H ;灯亮初值 SHIFT: LCAIL FLASH ;调闪亮10次子程序 RR A ;右移一位 SJMP SHIFT ;循环 FLASH: MOV R2,#0AH 闪烁10次计数 FLASH1; MOV P1,
编制一个循环闪烁灯的程序,每次其中某个灯闪烁10次后,转到下一个闪烁10次,循环不止(用汇编语言编制)
;P1.0 P1.1接2LED,P2.0接一按键。上电2LED不亮,按第1 次键2LED同时以1S周期闪烁,按第2 次 2LED轮流1S闪烁同此循环。;11 04 17 ORG 00H AJMP MAIN ORG 0BH AJMP T0INT ORG 30H MAIN:MOV TMOD,#
ORG 0000H ; 闪烁 流水灯 AJMP MIN0 ORG 0050HMIN0: MOV R0,#00H MOV DPTR,#TABDD1: MOV A, R0 MOV R2, #10 ; 闪烁次数 MOVC A,@A+DPTRDD2: MOV
控制输出是P0.0-P0.7LED灯 还有开关延时6S和按住一个按钮锁住其它按钮 例如:按下P0.0松开按钮 然后延时5s灯亮并且在5s之内锁住P0.1-P0.7的输入 --P0.0,是接的按键? 前面不是说接到 LED 的吗?--延时
= 1;//打开LED灯点亮 while(1){ if(KEY0_01 == 0)//检测按键是否按下 { Delay_1ms(10);//延时去抖动 if(KEY0_01 == 0)//确定按键按下 { LED1_01 = ~LED1_01;//取反LED灯 [亮 .灭 ]} while(K
如何用汇编语言控制led灯闪烁?
1:设置一个变量zhidaoi,它可以从0循环到3 2:检测一个已取消缓冲的键。按“+1”3:当I值为每个值时,执行相应的模式。水量灯参考程序 #include #include #定义uchar无符号字符 Ucharj,温度;无效延迟(无符号整型
单片机驱动LED灯的源程序:include
LED = 1; //熄灭小灯 for (i=0; i<30000; i++); //延时一段时间 } } 大家把这个程序编译一下,下载到里,就会发现 LED2 这个小灯会闪烁了。
LED1_01;//取反LED灯 [亮 .灭 ]} while(KEY0_01 == 0);//检测松手 } } } 你的图里有A/D转换器 AD转换函数ADC_DIS.C include
用AT89C2051单片机(可以换成任意的51单片机)仿真,控制一个LED灯闪烁,LED灯接在P1.7脚上。程序如下 LED1 BIT P1.7 MAIN:CPL LED1 ACALL DELAY SJMP MAIN DELAY:MOV R7,#0;延时子程序 MOV R6,#0 LOP:DJNZ
CLR P1.0 要让LED一会儿、灭一会儿,还必须要有一个延时的程序,下面就是让LED一会儿、灭一会儿,交替闪烁的程序:MAIN:;程序开始 SETB P1.0;让P1.0输出高电平 LCALL DELAY;这一行是调用延时子程序 ;目的是让P1.0
帮手指点LED灯闪的汇编程序.看似简单
LOOP1:MOV P0,LED JNB FLAG,MOV A,LED RL A MOV LED,A CLR FLAG DJNZ R2,LOOP1 MOV LED,#0FEH MOV R2,#8 LOOP2:MOV P0,LED JNB FLAG,MOV A,LED RL A RL A MOV LED,A CLR FLAG DJNZ R2,LOOP2 MOV
;假设1:D1~D8八个彩灯接在P1口,输出低电平发光 ;假设2:系统晶振为12MHz ;假设3:N = 5 ;程序如下:ORG 0000H MOV R3, #5 ;N=5 LOOP0:MOV A, #0FFH MOV P1, #0FFH ;开始时全灭 ;---逐个
KEY1 EQU P1.0 KEY2 EQU P1.1 ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV A,#0FEH MOV P2,A LOOP:JB KEY1,LOOP1 MOV P2,#0FFH LCALL DELAY RL A MOV P2,A LCALL DELAY SJMP LOOP LOOP1:JB KEY2,LOOP
求汇编,八个led交替闪烁,汇编语言汇编语言 按下开关s1(开关是那种按下去不会弹回来的),led1.3.5.7和led2.4.6.8交替闪烁,按下s2,led1234和led5678交替闪烁,间隔都是0.5秒,按下s3全灭 --- 电路与程序
求汇编,八个led交替闪烁,汇编语言汇编语言
不会。。。。路过。。。。网络100分 专业人士也不会花那么多时间来 编这个题吧 应该把 手机 留下/程序:ex1_1.c //功能:控制一个信号灯闪烁程序 #include //包含头文件REG51.H,定义了MCS-51单片机的特殊功能寄存器 sbit P1_0=P1^0; //定义位名称 void delay(unsigned char i); //延时函数声明 void main() //主函数 { while(1) { P1_0=0; //点亮信号灯 delay(10); //调用延时函数,实际变量为10 P1_0=1; //熄灭信号灯 delay(10); //调用延时函数,实际变量为10 } } //函数名:delay //函数功能:实现软件延时 //形式参数:unsigned char i; // i控制空循环的外循环次数,共循环i*255次 //返回值:无 void delay(unsigned char i) //延时函数,无符号字符型变量i为形式参数 { unsigned char j,k; //定义无符号字符型变量j和k for(k=0;k<i;k++) //双重for循环语句实现软件延时 for(j=0;j<255;j++); }
用两个定时器指令编写一个闪烁电路的程序
ORG 0000H ; 闪烁 流水灯 AJMP MIN0 ORG 0050HMIN0: MOV R0,#00H MOV DPTR,#TABDD1: MOV A, R0 MOV R2, #10 ; 闪烁次数 MOVC A,@A+DPTRDD2: MOV P1, A ACALL DELAY1 MOV P1, #0FFH ACALL DELAY1 DJNZ R2, DD2 INC R0 CJNE R0, #08H, DD1 JMP MIN0 DELAY1: MOV R5,#2 ; 延时时间可以改 D1: MOV R6,#100 D2: MOV R7,#250 D3: DJNZ R7,D3 DJNZ R6,D2 DJNZ R5,D1 RET TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH, 7FH END
和我们的实验要求好像啊!
/程序:ex1_1.c //功能:控制一个信号灯闪烁程序 #include //包含头文件REG51.H,定义了MCS-51单片机的特殊功能寄存器 sbit P1_0=P1^0; //定义位名称 void delay(unsigned char i); //延时函数声明 void main() //主函数 { while(1) { P1_0=0; //点亮信号灯 delay(10); //调用延时函数,实际变量为10 P1_0=1; //熄灭信号灯 delay(10); //调用延时函数,实际变量为10 } } //函数名:delay //函数功能:实现软件延时 //形式参数:unsigned char i; // i控制空循环的外循环次数,共循环i*255次 //返回值:无 void delay(unsigned char i) //延时函数,无符号字符型变量i为形式参数 { unsigned char j,k; //定义无符号字符型变量j和k for(k=0;k<i;k++) //双重for循环语句实现软件延时 for(j=0;j<255;j++); }
你要的急吗?我在上班,只能抽休息时间给你弄了,我尽快吧!
#include#define uchar unsigned charvoid delay(uchar a){uchar i;while(a--)for(i=0;i<120;i++);}main(){uchar i,j;j=0;while(1) { for(i=0;i<10;i++) { P0=~(1<<j); delay(100); P0=0xff; delay(100); } j++; j%=8; }}