学习日志8

单片机学习日志
孔令斌于2018年7月16日记录的学习日志,详细描述了单片机、LED灯控制、蜂鸣器及按键操作的学习过程。解决了安装程序错误问题,但在按键控制蜂鸣器发出不同声响上遇到挑战。

            学习日志                  姓名:孔令斌        日期:2018.7.16

今日学习任务

1.单片机

2.LED灯控制

3.蜂鸣器

4.按键

 

 

 

今日任务完成情况

(详细说明本日任务是否按计划完成,开发的代码量)

  今天的任务成功完成,成功完成了LED灯的控制,蜂鸣器发出声响,以及按键显示。

 

 

 

今日开发中出现的问题汇总

  安装程序时发生错误,最后将文件名改成了英文,重新安装后才可以正常使。

今日未解决问题

  如何控制按键使蜂鸣器发出不同声响

 

 

今日开发收获

1.重新了解了什么是单片机

  2.明白了如何控制LED灯的闪烁

3.了解了蜂鸣器的工作原理

4.矩阵按键通过对行列判断来实现按键操作

自我评价

(是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等)

  虽然今天的任务成功完成,但这是在老师已经给出代码的情况下,如果让我自己编写,感觉自己不能成功的完成任务,对C语言的了解还是不够深,要加强学习。

    其他

 

任务一:矩阵键盘中每一个按键控制蜂鸣器的一种声音

 

      #include<reg51.h>

      sbit Beep=P2^3;

      
      void delay(x)
      { 
       
      int i;

      while(x--)
      {
      for(i=0;i<100;i++);
      }
      }

int key;

int main()
{
    while (1)
    {
        key = 0;
        
        P3 = 0xf0;//判断哪一列被按下
        if(P3 != 0xf0)
        {
            switch(P3)
            {
                case 0xe0:    key = 0;    break;
                case 0xd0:    key = 1;    break;
                case 0xb0:    key = 2;    break;
                case 0x70:    key = 3;    break;
            }
            P3 = 0x0f;//判断哪一行被按下
            switch(P3)
            {
                case 0x0e:    key += 1;    break;
                case 0x0d:    key += 5;    break;
                case 0x0b:    key += 9;    break;
                case 0x07:    key += 13;    break;
            }
        }

        switch (key)
        {
            case 1:
                 Beep=0;
                 delay(2);
                 Beep=1;
                 delay(1);
                break;
            case 2:
                 Beep=0;
                 delay(10);
                 Beep=1;
                 delay(1);
                break;
            case 3:
             Beep=0;
                 delay(50);
                 Beep=1;
                 delay(1);;
                break;
            case 4:
                 Beep=0;
                 delay(100);
                 Beep=1;
                 delay(1);
                break;
        }
    }

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值