学习日志

艾志奇于2018年7月16日记录的学习日志,内容涵盖单片机基础知识,包括点亮LED灯、跑马灯程序、蜂鸣器控制及按键操作等实践。同时,详细记录了开发过程中的问题解决与收获。

 

学习日志姓名:艾志奇     日期:2018/7/16
今日学习任务

1.什么是单片机

2.蜂鸣器的相关实现

3.独立按键和矩阵按键

 

今日任务完成情况

 

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

1.点亮LED灯

2.跑马灯程序

3.依次点亮跑马灯

4.按响蜂鸣器

5.按键控制LED

 

 

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

1.最小系统的组成

电源,晶振,复位电路

2.矩阵按键的判定

 

 

今日未解决问题

没有

 

 

今日开发收获

通过今天的学习了解了单片机的相关知识,学会了按响蜂鸣器,还学会用按键控制LED

 

自我评价

 

(是否按开发规范完成

 

既定任务,需要改进的地方,与他人合作效果等)

按时完成程序。

 

#include <reg51.h>

#define LED   P0
sbit LED1 = P0^0;
sbit LED2 = P0^1;
sbit LED3 = P0^2;
sbit LED4 = P0^3;

int key;
sbit Beep=P2^3;
void delay(int time0)
{
    int i;
    while(time0--)
    {
           for(i=time0;i>0;i--);     
    }
}
int main()
{
    while (1)
    {
        key = 0;
        LED = 0xff;
        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;
            }
        }      
          if(0==key)
          {
              Beep=1;
          }
         else
          {
            Beep=0;
            delay(key*20);
            Beep=~Beep;
            delay(key);
          }
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值