资源简介

030 矩阵键盘 电子琴 仿真 51单片机 proteus仿真

资源截图

代码片段和文件信息

#include
#include

#define uchar unsigned char 
#define uint unsigned int



//以下是C调低音的音频宏定义
#define L1  262    //将“L1“宏定义为低音“1“的频率262Hz         时间是1/262=3826/2 us    取半周期
#define L2  286    //将“L2“宏定义为低音“2“的频率286Hz
#define L3  311    //将“L3“宏定义为低音“3“的频率311Hz
#define L4  349    //将“L4“宏定义为低音“4“的频率349Hz
#define L5  392    //将“L5“宏定义为低音“5“的频率392Hz
#define L6  440    //将“l_a“宏定义为低音“6“的频率440Hz
#define L7  494    //将“L7“宏定义为低音“7“的频率494Hz
//以下是C调中音的音频宏定义
#define Z1    523     //将“Z1“宏定义为中音“1“的频率523Hz
#define Z2    587     //将“Z2“宏定义为中音“2“的频率587Hz
#define Z3    659     //将“Z3“宏定义为中音“3“的频率659Hz
#define Z4    698     //将“Z4“宏定义为中音“4“的频率698Hz
#define Z5    784     //将“Z5“宏定义为中音“5“的频率784Hz
#define Z6    880     //将“Z6“宏定义为中音“6“的频率880Hz
#define Z7    987     //将“Z7“宏定义为中音“7“的频率523H      
//以下是C调高音的音频宏定义
#define H1  1046    //将“H1“宏定义为高音“1“的频率1046Hz
#define H2  1174    //将“H2“宏定义为高音“2“的频率1174Hz
#define H3  1318    //将“H3“宏定义为高音“3“的频率1318Hz
#define H4  1396    //将“H4“宏定义为高音“4“的频率1396Hz
#define H5  1567    //将“H5“宏定义为高音“5“的频率1567Hz
#define H6  1760    //将“H6“宏定义为高音“6“的频率1760Hz
#define H7  1975    //将“H7“宏定义为高音“7“的频率1975Hz

#define GPIO_KEY P3
#define WEI P2  
#define DATA P0

/*  ******************************************    */
//  ********   硬件端口定义   
/*  ******************************************    */
sbit sound = P1 ^ 6;    //蜂鸣器

/*  ******************************************    */
//  ********   程序变量定义
/*  ******************************************    */
char code table[]={0xc00xf90xa40xb00x990x920x820xf80x800x900x880x830xc60xa10x860x8e};
char code wei[]={0x010x020x040x08};


unsigned int C;     //储存定时器的定时常数

unsigned KeyValue;
unsigned int TEMP_C=0;

/*  ******************************************    */
//  ********   延时1ms         用于一般延时
/*  ******************************************    */
void delay(uint z)
{
    uint x;
    while (z--)
    {
        for (x = 125; x > 0; x--)
            ;
    }
}

/*  ******************************************    */
//  ********   定时器初始化函数  用了定时器1
/*  ******************************************    */
void init_timer(void)
{
    EA = 1;         //开总中断
    ET1 = 1;        //定时器T1中断允许
    TMOD &= 0x0f;
    TMOD |= 0x00;    // 使用定时器T1的模式1(13位计数器)
    TR1 = 1;

TMOD |= 0x01;
ET0 = 1;
TR0 = 1;
TH0 =(65536-50000)/256;               //计数初值重装载
    TL0 =(65536-50000)%256;
}
/*  ******************************************    */
//  ********   按键扫描   
/*  ******************************************    */
void ScanKey(void)
{
    char a = 0;
    GPIO_KEY = 0x0f;
    if (GPIO_KEY != 0x0f)    //读取按键是否按下
    {
        delay(5);    //延时10ms进行消抖
        if (GPIO_KEY != 0x0f)    //再次检测键盘是否按下
        {
            //测试列
            GPIO_KEY = 0X0F;
            switch (GPIO_KEY)
            {
            case (0X07):
               KeyValue = 0; 
                break;
            case (0X0b):
     

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-04-24 16:47  030 矩阵键盘电子琴\
     文件       23209  2018-06-24 15:08  030 矩阵键盘电子琴\adasdas.PDF
     文件       24431  2019-04-24 16:47  030 矩阵键盘电子琴\adasdas.pdsprj
     文件        2198  2019-04-24 16:47  030 矩阵键盘电子琴\adasdas.pdsprj.ANOOP.PC1.workspace
     文件       24203  2019-04-24 16:45  030 矩阵键盘电子琴\Last Loaded adasdas.pdsbak
     目录           0  2019-04-24 16:42  030 矩阵键盘电子琴\程序\
     文件        6776  2018-06-23 21:56  030 矩阵键盘电子琴\程序\main.c
     文件       12792  2018-06-23 21:56  030 矩阵键盘电子琴\程序\main.LST
     文件       10402  2018-06-23 21:56  030 矩阵键盘电子琴\程序\main.OBJ
     文件        9474  2018-06-23 21:56  030 矩阵键盘电子琴\程序\PWM_MOTOS
     文件        4096  2018-06-23 21:56  030 矩阵键盘电子琴\程序\PWM_MOTOS.hex
     文件          45  2018-06-23 21:56  030 矩阵键盘电子琴\程序\PWM_MOTOS.lnp
     文件       12801  2018-06-23 21:56  030 矩阵键盘电子琴\程序\PWM_MOTOS.M51
     文件       10461  2018-06-23 21:56  030 矩阵键盘电子琴\程序\PWM_MOTOS.plg
     文件       71125  2019-04-24 16:42  030 矩阵键盘电子琴\程序\PWM_MOTOS.uvgui.PC1
     文件        5567  2019-04-24 16:42  030 矩阵键盘电子琴\程序\PWM_MOTOS.uvopt
     文件       13776  2019-04-24 16:42  030 矩阵键盘电子琴\程序\PWM_MOTOS.uvproj
     文件       55212  2018-06-19 23:19  030 矩阵键盘电子琴\程序\PWM_MOTOS_uvopt.bak
     文件           0  2018-05-13 17:17  030 矩阵键盘电子琴\程序\PWM_MOTOS_uvproj.bak
     文件        7241  2018-06-24 13:22  030 矩阵键盘电子琴\程序\新建文本文档.txt
     文件      274617  2018-11-21 20:51  如何运行仿真.docx
     文件         691  2019-04-24 15:13  说明书.txt

评论

共有 条评论