单片机/MCU论坛
直播中

何青山

4年用户 11经验值
私信 关注
[问答]

用中断的前提下通过按键控制led灯的闪烁,此程序应如何***动?

`
  1. #include "reg52.h"

  2. typedef u8;
  3. typedef u16;

  4. ***it k2=P3^0;
  5. ***it led=P2^5;

  6. void Int1Init()
  7. {
  8.         IT0=0;
  9.         EX0=1;
  10.         EA=1;
  11. }
  12. void delay(u16 i)
  13. {
  14.         while(i--);
  15. }
  16. void main()
  17. {
  18.         led=1;
  19.         Int1Init();
  20.         if(k2==0)
  21.         {
  22.                 delay(1000);
  23.                 if(k2==0)
  24.                 {
  25.                         while(1)
  26.                         {
  27.                                 led=0;
  28.                                 delay(50000);
  29.                                 led=1;
  30.                                 delay(50000);
  31.                         }
  32.                 }
  33.         while(!k2);
  34.         }
  35. }
  36. void Int1() interrupt 0
  37. {
  38.         delay(1000);
  39.         if(k2==0)
  40.         {
  41.                 led=1;

  42.         }
  43. }

` 10.gif
已退回6积分

回帖(3)

前排插上

2020-2-21 13:33:14
你要不先买本郭天祥的51单片机的书看看
举报

houjue

2020-2-23 14:08:02
这个应该很简单的吧。在中断里面设一个变量,每进中断一次变量递增;在主程序里判断这个变量的值:变量==1,LED每秒闪烁2次;变量==2,LED每秒闪烁4次...  ...以此类推即可。
举报

h1654155280.5038

2020-3-5 16:36:57
受到警告
提示: 作者被禁止或删除 内容自动屏蔽
举报

更多回帖

发帖
×
20
完善资料,
赚取积分