苏嵌学习日志6

学习日志

姓名:唐小玲 日期:2018.7.16

 

 

 

今日学习任务

 

 

 

单片机基本原理与仿真

 

扫描二维码关注公众号,回复: 2278636 查看本文章

日任务完成情况

 

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

  1. 单片机最小系统
  2. LED灯,流水灯
  3. 蜂鸣器
  4. 行列式键盘

 

日开发中出现的问题汇总

 

个人单片机这一部分知识点学的不好,掌握程度不够,编写程序的时候有很多问题,需要重新多加练习编写代码。

 

日未解决问题

 

依旧不会独立编写难度稍高的代码。

 

 

日开发收获

 

1.单片机

单芯片微型计算机

2.led全亮

#include<reg51.h>

 

#define LED P1

 

void main()

{

P1 = 0;

while(1);

}

3.亮一个

#include<reg51.h>

#define LED P1

 

sbit LED1 = P1^1;

 

void main()

{

LED1 = 0;

 

while(1);

}

4.隔一个亮

#include<reg51.h>

#define LED P1

 

sbit LED1 = P1^1;

 

void main()

{

P1 = 0xaa;

 

while(1);

}

5.两个灯交替闪烁

#include<reg51.h>

#define LED P1

 

sbit LED1 = P1^0;

sbit LED2 = P1^1;

 

void delay()

{

int x = 100, i;

 

while(x--)

{

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

}

}

 

void main()

{

LED1 = 0;

 

while(1)

{

LED1 = 0;

delay();

LED1 = 1;

LED2 = 0;

delay();

LED2 = 1;

}

 

}

6.流水灯

#include<reg51.h>

#define LED P1

 

void delay()

{

int x = 100, i;

 

while(x--)

{

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

}

}

 

void main()

{

int i;

while(1)

{

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

{

P1 = ~(1 << i);

delay();

}

}

}

7.依次点亮每一个灯,不熄灭已点亮的灯,直至全部点亮再熄灭

#include<reg51.h>

#define LED P1

 

void delay()

{

int x = 100, i;

 

while(x--)

{

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

}

}

 

void main()

{

int i;

 

P1 = 0xff;

delay();

 

while(1)

{

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

{

//P1 &= ~(1 << i);

P1 <<= i;

delay();

}

}

}

8.蜂鸣器响

#include<reg51.h>

sbit Beep = P2^3;

 

void main()

{

Beep = 0;

}

9.改变音调

#include<reg51.h>

 

sbit Beep = P2^3;

 

void delay(x)

{

int i;

while(x--)

{

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

}

}

void main()

{

while(1)

{

Beep = 0;

delay(15);//?μ??′ó£?ò?μ÷????

Beep = 1;

delay(1);

}

}

10.按键(按一下灯亮然后熄灭)

#include<reg51.h>

 

sbit s2 = P3^0;

sbit s3 = P3^1;

sbit s4 = P3^2;

sbit s5 = P3^3;

 

sbit led1 = P1^0;

sbit led2 = P1^1;

sbit led3 = P1^2;

sbit led4 = P1^3;

void delay(x)

{

int i;

while(x--)

{

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

}

}

int main()

{

while(1)

{

P1 = 0xff;

if(s2 == 0)

{

led1 = 0;

}

else if(s3 == 0)

{

led2 = 0;

}

else if(s4 == 0)

{

led3 = 0;

}

else if(s5 == 0)

{

led4 = 0;

}

}

 

return 0;

}

11.矩阵键盘

#include <reg51.h>

 

#define LED   P0

sbit LED1 = P0^0;

sbit LED2 = P0^1;

sbit LED3 = P0^2;

sbit LED4 = P0^3;

 

int key;

 

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;

}

}

 

switch (key)

{

case 1:

LED1 = 0;

break;

case 2:

LED2 = 0;

break;

case 3:

LED3 = 0;

break;

case 4:

LED4 = 0;

break;

}

}

 

return 0;

}

 

自我评价

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

一些简单的练习能够做出,但是有一些小知识点遗忘了,不够熟练,需要多多实践练习!

 

 

作业

 

1.通过矩阵按键控制蜂鸣器发出不同音调的声音

#include <reg51.h>

 

sbit Beep = P2^3;

 

int key;

 

void delay(int x)

{

    int  i;

 

    while(x --)

    {

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

    }

}

 

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

                Beep = 1;

                delay(1);

                break;

            case 2:

                Beep = 0;

                delay(10);

                Beep = 1;

                delay(2);

                break;

            case 3:

                Beep = 0;

                delay(30);

                Beep = 1;

                delay(4);

                break;

            case 4:

                Beep = 0;

                delay(4);

                Beep = 1;

                delay(5);

                break;

            case 5:

                Beep = 0;

                delay(250);

                Beep = 1;

                delay(7);

                break;

            case 6:

                Beep = 0;

                delay(30);

                Beep = 1;

                delay(9);

                break;

            case 7:

                Beep = 0;

                delay(70);

                Beep = 1;

                delay(11);

                break;

            case 8:

                Beep = 0;

                delay(80);

                Beep = 1;

                delay(14);

                break;

            case 9:

                Beep = 0;

                delay(90);

                Beep = 1;

                delay(16);

                break;

            case 10:

                Beep = 0;

                delay(100);

                Beep = 1;

                delay(15);

                break;

            case 11:

                Beep = 0;

                delay(110);

                Beep = 1;

                delay(17);

                break;

            case 12:

                Beep = 0;

                delay(120);

                Beep = 1;

                delay(19);

                break;

            case 13:

                Beep = 0;

                delay(130);

                Beep = 1;

                delay(21);

                break;

            case 14:

                Beep = 0;

                delay(140);

                Beep = 1;

                delay(24);

                break;

            case 15:

                Beep = 0;

                delay(150);

                Beep = 1;

                delay(28);

                break;

            case 16:

                Beep = 0;

                delay(160);

                Beep = 1;

                delay(26);

                break;

        }

    }

    return 0;

}

猜你喜欢

转载自blog.csdn.net/qq_36974603/article/details/81072364
今日推荐