资源简介
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
相关资源
- 056 货车超重监测系统 51单片机 仿真
- 025 四路定时开关 51单片机仿真
- 014 电流表 仿真 51单片机 proteus仿真
- 基于51单片机的16X16点阵电子琴
- 基于Proteus的7107仿真
- 光敏电阻测试数码管显示
- 课程设计 51单片机电机PID调速打包k
- 51单片机+Nokia5110 实现点菜收银系统
- 用51单片机产生PWM控制直流小电机
- 基于51单片机DHT11温湿度检测和串口通
- 万年历 Proteus 液晶显示
- 基于51单片机的16*16点阵显示汉字
- 51单片机舵机角度控制程序
- 基于proteus的8086音乐播放器
- 基于51单片机的测量放大电路,简单实
- 简易电子琴 vhdl
- 12864液晶屏控制器为ks0108的proteus仿真
- 5V量程电压表汇编程序
- 51单片机步进电机正反转调速1602显示
- 51单片机做的温度计和AD采样,用的
- 基于51单片机的8路AD电压采集与测量
- 51单片机上的CRC8和CRC16的源码
- 基于P89C51单片机的多路数据采集系统
- 51单片机串口控制舵机
- 基于AT89S52单片机数码管显示数字钟含
- 基于51单片机的电器定时开关C程序
- 数控直流电流源打包的
- 51单片机做的音乐播放仿真+工程
- 51单片机控制乒乓球游戏
- EDA电子琴设计
评论
共有 条评论