按键中断控制led灯程序
请教一个stm32程序:我写了一个按键控制LED灯翻转,调试成功的程序如下...
有问题的那个程序 u8 ReadValue=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10);只在上面那条指令采集了一次按键数据。等到执行到 while(!ReadValue);\/\/等待按键被放开 这条指令时 数据仍然是上次采集到的那个值代表按键按下,(!ReadValue)这个值永远成立,所以无法代表按键断开。所以程序一直卡死在这条指令...
51单片机按键控制按下K1四个led灯循环亮,再按一下全灭,c程序怎么写...
在四个灯循环点亮的状态下,每点亮一个灯需要延时,如果调用延时子程序,按键就显示不灵敏了,所以,采用定时器中断的方式控制延时,就不影响按键了。include<reg51.h> include<intrins.h> 仿真图效果。
我想用1个单片机独立按键控制2个led灯,按下1次时第一个灯第2个灯同时...
EA=1;while(1);} void EX_INT0() interrupt 0 { i=0;LED1=0;LED2=0;} void timer0()interrupt 1 { TH0=(65536-50000)\/256;TL0=(65536-50000)%256;i++;if(i==50) \/\/ 第一个灯延时熄灭 { LED1=1;} if(i==100) \/\/ 第二个灯延时熄灭 { i=0;LED2=1;} } ...
89C52单片机怎么通过按键产生PWM信号来控制LED灯的不同亮度?
用几个变量表示按键的按下\/松开状态,然后用定时器中断设置PWM的频率,例如要50hz的频率,那么定时器中断周期(PWM周期的一半)可以设置为10ms,在中断服务程序内根据按键的状态确定是否需要对PWM输出管脚进行翻转。改方法可以输出占空比为50%的PWM信号。LED是英文 light emitting diode (发光二极管)的缩写,...
求C语言编程(3按键1灯过程):按按键1,LED常亮;按按键2,LED灭;LED亮时按...
灯?什么灯?单片机?这样的话,你要给出LED的电路图出来才好 while(1){ if(按键一按下){ LED灯亮 关中断 } if(按键二按下){ LED灯灭 关中断 } if(按键三按下){ if(灯亮){ 开启中断 (中断的内容是让灯闪烁)} else { 什么也不做 } } } 2年没用过单片机了,只记得大概...
用单片机C语言怎么写用状态机实现按键控制LED灯闪烁这个程序
p1_6 = 1;delay(20);} } } void main(){ WDT_CONTR = 0x3C;while(1){ keyscan();WDT_CONTR = 0x3C;} } 这个功能可以用中断来实现,当然,现在我写的这个也可以实现。由于你用的晶振频率不知道,所以你自己修改一下延时时间,再把头文件改一下,就可以了,我试验了,可以实现改功能。
51系列单片机的按键中断控制程序
void External_Interrupt_0() interrupt 0 { Count_A = ~ Count_A;LED1 = ~ LED1;} 你用外部中断0,是否是想按住按键时就停在哪里,是就这样改一下!void External_Interrupt_0() interrupt 0 { Count_A = ~ Count_A;LED1 = ~ LED1; while(!P32);} 假如P32按下时下降沿或低...
...当P1.0按键按下时,P1.6和P1.7两个管脚所接的LED灯轮流发光,要求延时1...
TR0=1;\/\/定时器0中断模式 EA=1; \/\/中断总控制 } void switch_led();\/\/换灯函数声明;\/\/ \/\/*** 主函数 \/\/ void main(){ void set_state(); \/\/打开中断服务 while(1); \/\/开始循环1,等待按键 { if(control_s== 0) \/\/当按键按下,防抖动 { delay_time(10); \/\/延迟 if...
单片机C语言定时中断LED灯程序求修改
include<reg52.h> sbit P00=P0^0;sbit key=P1^0;unsigned int i=0;void main(void){ TMOD=0x10;\/\/设定定时器的工作模式为定时器1方式1 TH1=15536\/256;\/\/向定时器装入初值高八位 TL1=15536%256;\/\/向定时器装入初值低八位 EA=1;\/\/开总开关 ET1=1;\/\/开分开关 TR1=1;\/\/启动定时器 ...
用汇编语言编写 80c51单片机 用定时中断延时方式键盘扫描并led灯...
CJNE A,#10,LOOP2;“ON”启动LED测试 MOV DCNT,#0FFH SJMP LOOP LOOP2:CJNE A,#11,LOOP3;“=”停止测试,接受数字键 MOV 33H,#10H MOV 34H,#10H MOV 35H,#10H MOV 36H,#10H MOV DCNT,#0 SJMP LOOP LOOP3:CJNE A,#10,LOOP4;数字键 LOOP4:JC LOOP5 LJMP LOOP LOOP5:MOV 33H,...
三山区重组回答: 循环点亮LED灯,也就是流水灯效果的控制,可以用定时器来控制,这样做相对代码量较少而时间比较精确,外部中断0接以按键,可以控制动态效果的启停.程序如下: ORG 0000H LJMP MAIN ORG 0003H LJMP EXT0 ;外部中断0,控制流...
以询17216055652问: 求C51单片机用C程序,通过外部中断1实现按键按下(低电平),7个LED灯单独1盏亮且循环右移. - ?
三山区重组回答: #include<reg51.h> #define uchar unsigned char uchar led[7]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf}; uchar num=0; void ext1() interrupt 2 { P0=led[num]; num++; num%=7; while(INT1==0); } main() { EX1=1; IT1=0; EA=1; P0=0xff; while(1); }
以询17216055652问: 用一个按键控制一个LED闪烁的程序怎么写 - ?
三山区重组回答: 如用51单片机#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit S1=P3^2;sbit LED=P0^0;void delay(uint z){ int x,y; for(x=110;x>0;x--) for(y=z;y>0;y--)}void main(){ LED=0; while(1) { if(S1==0) { delay(5); if(S1==0); { LED=~LED; } } }}以上程序仅供参考
以询17216055652问: 编程实现键盘控制显示不同类型的LED流水灯,要求使用定时中断控制灯的亮灭时间 - ?
三山区重组回答: 因为你都是用延时写的,所以,会出现这种情况,要不你试一下这样吧,流水灯的延时用定时中断写,在终端的服务程序里面写流水灯的移动,或者反过来,数码管的显示写在中断里面,这样整个程序的运行可以看成是一种并行的形式,这样显示会好一点.你上面写的是不是并行的,是顺序下来的.你试一下吧,把显示也写到定时中断的服务程序里面,主程序是另外一种显示,这样并行显示了.
以询17216055652问: 如何用中断实现四个led单独定时,各定时十分钟,且互不影响,用四个按键控制四个led灯, - ?
三山区重组回答: 这个用一个定时器就可以做到了,你所需要做的就是设置四个起始位和四个结束位的标志位.定时器在你按下任何一个键的时候开始计时,并置标志位1,如果没有其他按键按下,则定时10分钟后停止,标志位置0,定时器计数清零.如果有其他按键按下,则置相应的标志位,并记录按下时的时间.在死循环里不断用实时时间减掉某个按键按下的时间,够10分钟就灭掉相应的灯.说起来繁琐,做起来很容易的.如果还不懂,可以帮你写一下!
以询17216055652问: 单片机 8个按键分别控制对应的8个led的亮灭 程序设计 - ?
三山区重组回答: 八个灯接在单片机的P1口(P0,P2,P3,P4都一样) while(1) { delay(你想要延时的时间); P1=0xff; delay(你想要延时的时间); P1=0; } 注意led最好加驱动,不然单片机会坏的.
以询17216055652问: 51单片机编程—按键控制LED灯 - ?
三山区重组回答: if(!KEY2)//假设按键低电平有效 { DelayMs(5);//延时2~10ms,按键消抖 if(!KEY2);//按键仍被按下,说明不是抖动 { LED=~LED;//自己定义一下LED到对应IO BUZZER=~BUZZER;//定义蜂鸣器到对应IO } }
以询17216055652问: 单片机两个中断接两个按键控制P0的LED灯一个按键使灯左移另一个使灯右移汇编语言 - ?
三山区重组回答: 要实现这个功能,只要将两个按键接入到外部中断0和1,采用沿触发方式就可以了. ORG 0000H LJMP MAIN ORG 0003H LJMP EXT0 ORG 0013H LJMP EXT1 ORG 0030H MAIN: MOV SP,#5FH MOV A,#0FEH SETB EA SETB EX0 SETB EX1 SETB IT0 SETB IT1 MOV P0,A SJMP $ EXT0: JNB P3.2,$ RL A MOV P0,A RETI EXT1: JNB P3.3,$ RR A MOV P0,A RETI END
以询17216055652问: 单片机C语言按键控制LED灯 - ?
三山区重组回答: 其实是一样的,也没什么哪个规范这一说,这个看个人习惯了首先if(SW13==0)是判断此引脚是否为0 (按键按下)然后一个delay用于按键防抖动 没被注释的那部分是靠if在次判断是否为0按下按下后执行LED_ON函数使LED亮然后通过while...
以询17216055652问: 单片机控制led彩灯,想要设计一个按下按钮,彩灯暂停的程序,应该如何设计,汇编语言,请哪位大侠帮帮我?
三山区重组回答: 可以用外部中断来控制; 如果单片机中断是低有效,将按钮设置成按下时为低电平,触发中断,在中断中设置一个标志位,然后退出中断; 主程序来判断这个标志位,如果为1,则退出led跑灯程序; 如果为0,则继续跑灯. 如果单片机中断是高有效,将按钮设置成按下时为高电平,同理. 设置一个全局变量a,并且赋值a=0, 一旦有按钮按下,则进入中断,并且a赋值为1,即a=1; 在主程序中判断a的值,如果为0,则执行跑灯;若为1,则停止.