资源简介
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
相关资源
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 51单片机PWM程序,占空比、周期可调整
- 51单片机多功能自行车测速仪
- proteus仿真 AT89C51输出各种波形
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 我做的电子琴,21个音,一般歌曲基本
- 51单片机基于protues的几个仿真实例
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- proteus_24C08—有注释(proteus里面使用的
- midi电子琴简单设计(附源代码).ra
- DS18B20分布式多点测温的Proteus仿真
- 基于proteus的单片机仿真--交通灯控制
- 带时间温度显示的室内灯光控制系统
- C51单片机汇编指令查询、学习工具集
- 基于8051单片机的红外接收程序
- 51单片机频率计(很简单)
- 51多机通信(内附Proteus及.hex文件)
- 基于51单片机的智能温控器
- 基于51单片机的16*16点阵动态显示
- 基于51单片机的模数转换与数模转换
- 51单片机中使用ucos ii的优缺点转
- 51单片机中使用ucos ii的优缺点
- 8051单片机教程第二十七课:单片机几
评论
共有 条评论