7.16 学习日志 孙文铉

今日学习任务:

今天主要学习了单片机的基本构造,因为有了51单片机的基础所以理解起来容易了一些。

首先是完成了LED灯的点亮,并且实现了流水灯的效果。之后是蜂鸣器和行列式键盘,实现了用键盘控制LED和蜂鸣器。

 

今日任务完成情况:

流水灯的实现:

#include<reg51.h>

#define LED P1

sbit LED1 = P1^0;
sbit LED2 = P1^1;
sbit LED3 = P1^2;
sbit LED4 = P1^3;
sbit LED5 = P1^4;
sbit LED6 = P1^5;
sbit LED7 = P1^6;
sbit LED8 = P1^7;

void delay(int ms) 

    int i; 
    while(ms--) 
       for(i=0;i<100;i++);
}

void main()
 {
    int i;     
     while(1)
    {
        for(i = 0;i < 9;i++)
        {
            P1 = (0xff << i);
              delay(500);
            if(P1 == 0x00)
            {
                P1 = 0xff;
            }
        }
        
    }
         
 }

 

蜂鸣器可实现占空比:

void delay(int ms) 
{               
    int i; 
    while(ms--) 
       for(i=0;i<100;i++);
}


sbit Beep = P2^3;
void main()
{
    

    while(1)
    {
        Beep = 0;
        delay(10);
        Beep = 1;
        delay(1);

    }
}

 

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

行列式键盘的键值获取,行列的扫描。

蜂鸣器占空比的改变。

 

今日未解决的问题:

行列式键盘键值获取。

 

今日开发收获:

今天复习了单片机,熟悉了很多的操作,每一个接口的功能,怎么样去点亮LED灯,控制蜂鸣器和行列式键盘。

 

自我评价:

学习比较认真,作业独立完成。

 

其他:

 

 

作业题:

#include<reg51.h>

sbit Beep = P2^3;

void delay(int ms) 

    int i; 
    while(ms--) 
       for(i=0;i<100;i++);
}

int key;
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(10);
                break;
            case 2:
                Beep = 0;
                delay(15);
                break;
            case 3:
                Beep = 0;
                delay(20);
                break;
            case 4:
                Beep = 0;
                delay(25);
                break;
            case 5:
                Beep = 0;
                delay(30);
                break;
            case 6:
                Beep = 0;
                delay(35);
                break;
            case 7:
                Beep = 0;
                delay(40);
                break;
            case 8:
                Beep = 0;
                delay(45);
                break;
            case 9:
                Beep = 0;
                delay(50);
                break;
            case 10:
                Beep = 0;
                delay(55);
                break;
            case 11:
                Beep = 0;
                delay(60);
                break;
            case 12:
                Beep = 0;
                delay(65);
                break;
            case 13:
                Beep = 0;
                delay(70);
                break;
            case 14:
                Beep = 0;
                delay(75);
                break;
            case 15:
                Beep = 0;
                delay(80);
                break;
            case 16:
                Beep = 0;
                delay(85);
                break;

        }
    }

    return 0;
}
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值