爱问知识人 爱问教育 医院库

k1-k4按键状态显示设计报告

首页

k1-k4按键状态显示设计报告

单片机100例里的内容,求设计报告

提交回答

全部答案

    2013-07-01 08:38:42
  • 第一步:关键电路的连接。
    01、单片机用IO口,连接到三极管、或者场效应管、或者光继电器的控制脚。再接到 LED。
    02、K1、K2、K3、K4 这四个开关以开关量采集的方式分别接到单片机的4个单独的IO口中。
    第二步:程序编写思路。
    01、单片机以 2ms 到 5ms 的周期,对所有开关进行扫描,具体采用多少周期,要根据开关的灵敏度进行试验得出。
    02、单片机扫描到各个开关的状态以后,进行保存,然后得到每一个开关的前一状态和当前状态,再根据具体的逻辑要求,让 LED 亮或者灭。
    希望是最佳答案哦。

    大***

    2013-07-01 08:38:42

  • 2013-06-30 19:52:01
  •   #include 
    #define uchar unsigned char 
    #define uint unsigned int 
    sbit LED1=P0^0; 
    sbit LED2=P0^1; 
    sbit LED3=P0^2; 
    sbit LED4=P0^3; 
    sbit K1=P1^0; 
    sbit K2=P1^1; 
    sbit K3=P1^2; 
    sbit K4=P1^3; 
    //延时 
    void DelayMS(uint x) //这是一个延时函数,延时毫秒级,后面的参数是几就是几毫秒
    { 
    uchar i; 
    while(x--) for(i=0;i<120;i++); 
    }  
    //主程序 
    void main() 
    { 
    P0=0xff; //51单片机为准双向口,读入前先写1
    P1=0xff; 
    while(1) 
    { 
      LED1=K1; //前两个键按下则对应的灯亮,松开则灭
      LED2=K2; 
      if(K3==0) 
      { 
       while(K3==0); //这一句是等按键释放
       LED3=~LED3; //这一句是灯取反,实现按一次键亮再按一次灭依次往复
      } 
      if(K4==0) //同K3
      { 
       while(K4==0); 
       LED4=~LED4; 
      } 
      DelayMS(10); //延时10毫秒,也起到一个去抖动作用
    } 
    }。
      

    影***

    2013-06-30 19:52:01

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):