输入某个IO口;找到读取这个IO口的数据地址;程序不断读取这个地址,并比较相应位是否有变化;(要有去抖处理,否则一次按键会产生多个变化)设指示灯对应的IO口数据地址;根据按键发生与否设置这个IO口相应位进行翻转。

一个简单的开关控制一盏灯的c程序如下:includesbit S1=P1^4; //将S1位定义为P1^4,检测独立按键sbit led0=P1^0; //将led0定义为P1.0口的LED/***

include define uchar unsigned char define uint unsigned int sbit key3=P2^0;void delay(uint ms){ uchar i;while(ms--){ for(i=100;i>0;i--);} } void main(){ P0=0x00;P2=0xe7;P3=0xcf

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

{ if(KEY0_01 == 0) //检测按键是否按下 { Delay_1ms(10); //延时去抖动 if(KEY0_01 == 0) //确定按键按下 { LED1_01 = ~ LED1_01; //取反LED灯 [ 亮 . 灭 ]} while(KEY0_01 =

单片机 用C语言怎么编写用一个按钮,控制一盏灯的亮与灭的程序?

在主函数中编写程序,实现LED点亮和灭的时间控制。可以使用if语句或while语句来判断时间是否达到要求,然后控制LED灯的点亮和灭。在main函数中添加延时函数,以实现上电后30秒后LED灯开始点亮的要求。下面是一个简单的示例程序

功能:开发板8个发光管一起闪动 实验内容:输出底电平可以点亮RD口的发光管 高电平可以关掉发光管 开发板连接方法:装上J2。/ include //包含单片机内部资源预定义 __CONFIG(0xFF32);//芯片配置字,看门狗关

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

CALL PRG1 ; 亮且发音 CALL PRG2 ; 灭且静音 SJMP 0 ;--- PRG1:MOV P0, #0 ; 8个led灯亮 MOV R2, #200 LP1:CPL P1.0 ; 蜂鸣器响 DJNZ R6,DJNZ R7, $ - 2 DJNZ R2, LP1 MOV P0

用单片机控制LED灯的亮灭,怎么写程序?

P1.0 接KEY1 到地 ,P1.1接KEY2到地,P0.0接LED到高电平。我还附带给你加了按键防抖,程序如下:include sbit key1=P1^0;sbit key2=P1^1;sbit led=P0^0;void delay(m){ int i,j;for(i=0

在无限循环中,不断检测K1和K2按键状态,以改变全局变量“freq”并控制LED灯的闪烁频率;然后使用一个计时器中断服务程序来控制LED灯的闪烁,具体实现方式请参考代码注释。最后,为了保证每个周期的闪烁持续时间与频率相符,应该

include //包括一个52标准内核的头文件 sbit P10 = P1^0; //要控制的LED灯 sbit K1= P3^2; //按键K1 uchar scale;//用于保存占空比的输出0的时间份额,总共10份 char code dx516[3] _at_ 0x0

实验内容:用汇编指令对单片机I/O口进行编程,控制8个发光二极管的流水亮灭。/ /* 程序详细功能介绍:做单一灯的左移右移,八个发光二极管L0-L7分别接在单片机的P0.0-P0.7接口上,输出“0”时,发光二极管亮,开始时

当按键被按下时,程序将进入一个计时状态,计时器每隔一段时间就会加1。同时,程序判断计时器是否超过了3秒,如果是,则点亮LED。最后,程序将计时器清零,等待下一次按键操作。

4.上传程序:将编写好的程序上传到单片机中。将单片机通过USB线连接到计算机,选择正确的开发板和端口,然后点击上传按钮将程序烧录到单片机中。5.测试控制:完成上传后,单片机将开始执行程序。LED灯应该会按照程序中定义的亮灭

单片机按键控制LED汇编程序

if (Key == 0) // 检测按键是否按下 { t++; // 计时器加1 while (!Key && t <= 3000); // 当按键未松开或计时器未超过3秒时继续计时 if (t > 3000) // 如果计时器超过了3秒,LED亮起来 { Led =

void main() { while (1) { LED1 = 1;delay(50000);LED2 = 1;delay(50000);LED3 = 1;delay(50000);LED4 = 1;delay(50000);LED4 = 0;delay(50000);LED3 = 0;delay(50000);LED2 = 0;delay(50000);

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

首先,要知道控制led的电路,知道控制电平的管脚,同理也要搞清楚开关的电路。其次,设置开关的状态控制电平的高低,从而控制led灯的亮灭。最后,具体的执行办法,要看你是什么型号的51单片机,要查书本,或者网上查。

修改按键控制LED亮灭的程序

led应该是一个变量,是代表led灯 亮或者灭的一个变量。 当你按下开关后,s1==0,就执行 led=!led 这条语句。 led=!led 的意思就是取反的意思,即原来led灯亮的话 执行该条语句后就变成灭;原来灭的话 执行该条语句后 就变成亮。按键按下就打控制灯的io取反就可以了。如:if(key1==1){while(key1==1); // 等待按键放开led1=~led1;} 使用四个独立按键控制四个LED灯亮灭的汇编程序怎么弄? 单片机的P1.0-P1.3接四个发光二极管L1-L4的阴极,P1.4-P1.7接四个开关K1-K4程序:ORG 00HSTART: MOV A,P1ANL A,#0F0HRR ARR AORl A,#0F0HMOV P1,ASJMP START可以检测单个按键,也可以同时检测多个按键过程:开始--读P1口数据到A--A中的数据右移4次--A中的内容和F0H相或--A中的数据送到P1口--回到开始
led应该是一个变量,是代表led灯 亮或者灭的一个变量。 当你按下开关后,s1==0,就执行 led=!led 这条语句。 led=!led 的意思就是取反的意思,即原来led灯亮的话 执行该条语句后就变成灭;原来灭的话 执行该条语句后 就变成亮。按键按下就打控制灯的io取反就可以了。如:if(key1==1){while(key1==1); // 等待按键放开led1=~led1;} 使用四个独立按键控制四个LED灯亮灭的汇编程序怎么弄? 单片机的P1.0-P1.3接四个发光二极管L1-L4的阴极,P1.4-P1.7接四个开关K1-K4程序:ORG 00HSTART: MOV A,P1ANL A,#0F0HRR ARR AORl A,#0F0HMOV P1,ASJMP START可以检测单个按键,也可以同时检测多个按键过程:开始--读P1口数据到A--A中的数据右移4次--A中的内容和F0H相或--A中的数据送到P1口--回到开始
程序思想如下 可以想象成一个整数000每次加1后显示一次知道999后溢出跳回起点继续,程序如下 ORG 0000H AJMP START START: MOV 30H,#00H ;数码管显示初值 MOV 31H,#00H MOV 40H,#00H ;显示增量 MOV 41H,#01H STL1: ACALL LED ;LED显示 ACALL DELAY0.5S ACALL BCDADD MOV A,30H ANL A,#0F0H JNZ START ;判断是不是超过999 AJMP STL1 BCDADD: CLR C MOV A,31H ADDC A,41H DA A MOV 31H,A MOV A,30H ADDC A,40H DA A MOV 30H,A RET LED: MOV A,30H ANL A,#0FH MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A MOV A,31H ANL A,#0F0H SWAP A MOV DPTR,#TAB MOVC A,@A+DPTR MOV P1,A MOV A,31H ANL A,#0FH MOV DPTR,#TAB MOVC A,@A+DPTR MOV P2,A RET DELAY0.5S: MOV R6,#200 SL1: MOV R5,#250 SL2: NOP DJNZ R5,SL2 DJNZ R6,SL1 RET TAB: DB 0C0H ;0 DB 0F9H ;1 DB 0A4H ;2 DB 0B0H ;3 DB 099H ;4 DB 092H ;5 DB 082H ;6 DB 0F8H ;7 DB 080H ;8 DB 090H ;9 DB 088H ;A DB 083H ;B DB 0C6H ;C DB 0A1H ;D DB 086H ;E DB 08EH ;F END PS1:延迟0.5秒的晶振是3.57MHZ PS2:希望我的LED显示代码没写错,我是认为你是0-7接的A-DP PS3:百度的显示格式真恶心 将就着看吧 程序倒是应该没有什么错误 P4:程序已经修改 重新拷贝一下吧
ORG 0000H ;复位启动 AJMP START ; ;主控程序======================== START: SETB P1.7 ;P17 = 1 LOOP: JB P3.2,LOOP ;没有按键 LCALL DELAY ;延时消抖 JB P3.2,LOOP ;确认按键 CPL P1.7 ;取反 JB P3.2,LOOP ;检测按键 LCALL DELAY ;延时 LJMP LOOP ;死循环 ; DELAY: MOV R7,#0 ;延时子程序 MOV R6,#0 MOV R5,#128 ; LOOP1: DJNZ R7,KJYS ;延时约20毫秒 DJNZ R6,KJYS DJNZ R5,KJYS RET ;延时间到返回 END ;结束 延时子程序数据可能因不同系统时钟需要调整。
1、创建项目,如图所示。 2、创建延迟函数。 3、创建C语言主函数。设计unsigned char k=0;变量。 4、添加循环效果。 5、点亮灯,通过k++,改变效果。 6、添加延迟效果,单片机就可以控制8个灯依次亮,全亮了,然后再依次灭。
1、首先打开桌面上的keil软件,在进行对51单片机进行编程时最常用的就是keil软件。 2、编写相应的代码:#include //定义单片机的头文件sbit led=P2^0; //定义单片机的管脚,void main(void) //主函数{ while(1) //无限循环 {led=0x1f; //点亮前面三个灯。这里是十六进制的换算, //不懂得可以查一下资料 }。 3、打开烧写软件,点击【打开文件】,寻找刚刚编写的程序。 4、找到相应的文件夹以后,寻找HEX文件。这是所能烧写软件识别的程序。 5、找到程序以后,将单片机连接到电脑,并点击程序下载,将程序烧写进单片机。 6、程序下载进单片机以后就能够看到八个led点亮了前面三个。