暑期实训-7月16日

学习任务 回顾单片机各模块的知识,并进行了一些程序的编写。
完成情况 了解了一些基本程序的写法。编写了关于流水灯,蜂鸣器以及行列式键盘的代码。
问题汇总 重点是对单片机各管脚的编程控制方法,利用其实现各种功能。
未解决问题  
开发收获 学到了一些新的知识点,学会了编程过程中的一些思路。
自我评价 代码写的有些少,知识点遗忘过多,导致写代码不流畅,甚至出现不会写,无从下笔的情况。
#include <reg51.h>

#define LED   P0

sbit Beep = P2^3;

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

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:
                Beep = 0;
                delay(1);
                Beep = 1;
                delay(100); 
                break;
            case 2:
				Beep = 0;
				delay(2);
				Beep = 1;
				delay(200);
                break;
            case 3:
				Beep = 0;
				delay(3);
				Beep = 1;
				delay(300);
                break;
            case 4:
				Beep = 0;
				delay(4);
				Beep = 1;
				delay(400);
                break;

            case 5:
                Beep = 0;
                delay(5);
                Beep = 1;
                delay(500);
                break;
            case 6:
                Beep = 0;
                delay(6);
                Beep = 1;
                delay(666);
                break;
            case 7:
                Beep = 0;
                delay(7);
                Beep = 1;
                delay(777);
                break;
			case 8:
                Beep = 0;
                delay(8);
                Beep = 1;
                delay(800);
                break;
            case 9:
                Beep = 0;
                delay(9);
                Beep = 1;
                delay(900);
                break;
            case 10:
                Beep = 0;
                delay(250);
                Beep = 1;
                delay(900);
                break;
            case 11:
                Beep = 0;
                delay(213);
                Beep = 1;
                delay(900);
                break;
			case 12:
                Beep = 0;
                delay(10);
                Beep = 1;
                delay(1000);
                break;
            case 13:
                Beep = 0;
                delay(20);
                Beep = 1;
                delay(1200);
                break;
            case 14:
                Beep = 0;
                delay(30);
                Beep = 1;
                delay(1300);
                break;
            case 15:
                Beep = 0;
                delay(40);
                Beep = 1;
                delay(1314);
                break;
            case 16:
                Beep = 0;
                delay(50);
                Beep = 1;
                delay(650);
                break;
        }
    }

    return 0;
}

猜你喜欢

转载自blog.csdn.net/jsxyma/article/details/81072149
今日推荐