实训第八天 ---------单片机LED、蜂鸣器、键盘

今日学习任务 了解51单片机的基本构成,会用编程来控制单片机各部件完成想要的一些操作
今日任务完成情况 今日任务基本完成,通过老师讲解了解了单片机的基本构成,并在老师的指导下通过编程仿真了解了如何实现一些简单功能。
今日开发问题汇总 sbit用来定义某一位,虽然放在程序较为靠前的地方,但末端的“;”不能忘记
今日未解决问题 个人单片机这一部分知识点学的不好,掌握程度不够,编写程序的时候有很多问题,需要重新多加练习编写代码。
今日开发收获

1.单片机的最小单元由电源电路、晶振电路、复位电路

2.定义某一位时用sbit,如:sbit LED = P1^0

3.矩阵按键分别通过P3.0~P3.7口来确定列和行从而确定哪个按键被按下

自我评价 基本能听懂老师所授内容,今天老师从最基本的讲起,让我觉得很多地方都有了不同的理解,受益匪浅
其他

#include <reg51.h>

sbit Beep=P2^3;

int key,i;

/*unsigned char code    CharCode[]=

{      

         0xc0, 0xf9, 0xa4,0xb0,0x99, 0x92,0x82,0xf8,

         0x80, 0x90, 0x88, 0x83, 0xc6,0xa1,0x86,0x8e

};      */

void delay(int x)

{

    while(x--)

         {

             for(i=0;i<200;i++);

         }

}

int main()

{

         while (1)

         {

                  key = 0;

                  Beep=1;

                  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(1);

                                   break;

                          case 2:

                                   Beep = 0;

                                   delay(20);

                                   break;

                          case 3:

                                   Beep= 0;

                                   delay(40);

                                   break;

                          case 4:

                                   Beep = 0;

                                   delay(80);

                                   break;

                          case 5:

                                   Beep = 0;

                                   delay(100);

                                   break;

                          case 6:

                                   Beep= 0;

                                   delay(120);

                                   break;

                          case 7:

                                   Beep = 0;

                                   delay(150);

                                   break;

                          case 8:

                                   Beep = 0;

                                   delay(180);

                                   break;

                  }

         }

         return 0;

}

猜你喜欢

转载自blog.csdn.net/weixin_42653222/article/details/81072403