【51单片机】【protues仿真】基于51单片机简易电子琴系统(8键)

目录

一、主要功能

二、使用步骤

三、硬件资源

四、软件设计

五、实验现象

一、主要功能

1、八个音符电子琴

2、八个按键对应不同音符​

二、使用步骤

本项目使用Proteus8仿真采用51或52单片机作为控制核心‌,通过蜂鸣器或扬声器(需驱动电路)输出音频信号,8个独立按键分别对应8个不同音调(如中音DO~高音DO),通过定时器中断控制蜂鸣器输出方波频率实现发音‌。

三、硬件资源

1、51单片机核心模块

2、按键模块

2、蜂鸣器模块

四、软件设计

#include<reg52.h> //头文件

#define uint unsigned int //宏定义

#define uchar unsigned char //宏定义

sbit speaker=P1^4;//喇叭接口

uchar a,b; //定义ab变量

void main()

{

TMOD=0x01; //定时器0工作方式

TH0=a;

TL0=b; //赋初值

ET0=1;//打开定时器,但是未允许中断

TR0=1;//打开定时器0

while(1) //主循环

{

check_key(); //扫描按键函数

}

}

/*--------------------------------------------------------------------------

Header file for generic 80C52 and 80C32 microcontroller.

Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.

All rights reserved.

--------------------------------------------------------------------------*/

#ifndef REG52_H

#define REG52_H

sfr P0 = 0x80;

sfr P1 = 0x90;

sfr P2 = 0xA0;

sfr P3 = 0xB0;

sfr PSW = 0xD0;

sfr ACC = 0xE0;

sfr B = 0xF0;

sfr SP = 0x81;

sfr DPL = 0x82;

sfr DPH = 0x83;

sfr PCON = 0x87;

sfr TCON = 0x88;

sfr TMOD = 0x89;

sfr TL0 = 0x8A;

sfr TL1 = 0x8B;

sfr TH0 = 0x8C;

sfr TH1 = 0x8D;

sfr IE = 0xA8;

sfr IP = 0xB8;

sfr SCON = 0x98;

sfr SBUF = 0x99;

sfr T2CON = 0xC8;

sfr RCAP2L = 0xCA;

sfr RCAP2H = 0xCB;

sfr TL2 = 0xCC;

sfr TH2 = 0xCD;

/* PSW */

sbit CY = PSW^7;

sbit AC = PSW^6;

sbit F0 = PSW^5;

sbit RS1 = PSW^4;

sbit RS0 = PSW^3;

sbit OV = PSW^2;

sbit P = PSW^0; //8052 only

sbit TF1 = TCON^7;

sbit TR1 = TCON^6;

sbit TF0 = TCON^5;

sbit TR0 = TCON^4;

sbit IE1 = TCON^3;

sbit IT1 = TCON^2;

sbit IE0 = TCON^1;

sbit IT0 = TCON^0;

sbit EA = IE^7;

sbit ET2 = IE^5; //8052 only

sbit ES = IE^4;

sbit ET1 = IE^3;

sbit EX1 = IE^2;

sbit ET0 = IE^1;

sbit EX0 = IE^0;

sbit PT2 = IP^5;

sbit PS = IP^4;

sbit PT1 = IP^3;

sbit PX1 = IP^2;

sbit PT0 = IP^1;

sbit PX0 = IP^0;

sbit RD = P3^7;

sbit WR = P3^6;

sbit T1 = P3^5;

sbit T0 = P3^4;

sbit INT1 = P3^3;

sbit INT0 = P3^2;

sbit TXD = P3^1;

sbit RXD = P3^0;

sbit SM0 = SCON^7;

sbit SM1 = SCON^6;

sbit SM2 = SCON^5;

sbit REN = SCON^4;

sbit TB8 = SCON^3;

sbit RB8 = SCON^2;

sbit TI = SCON^1;

sbit RI = SCON^0;

sbit T2EX = P1^1; // 8052 only

sbit T2 = P1^0; // 8052 onl

sbit TF2 = T2CON^7;

sbit EXF2 = T2CON^6;

sbit RCLK = T2CON^5;

sbit TCLK = T2CON^4;

sbit EXEN2 = T2CON^3;

sbit TR2 = T2CON^2;

sbit C_T2 = T2CON^1;

sbit CP_RL2 = T2CON^0;

#endif

五、实验现象

演示视频:

https://www.bilibili.com/video/BV1hYYyz5Egb/https://www.bilibili.com/video/BV1hYYyz5Egb/

相关推荐
塔能物联运维6 小时前
物联网设备物理环境自适应监控与运维策略优化
运维·物联网
yuuki2332336 小时前
【数据结构】单链表的实现
c语言·数据结构·后端
塔能物联运维6 小时前
物联网边缘节点数据缓存优化与一致性保障技术
java·后端·物联网·spring·缓存
盈创力和20077 小时前
技术解析:CO与NO₂双气体监测如何构筑协同化安全防线
嵌入式硬件·安全·以太网温湿度传感器·多参量传感器·温湿度+气体智能传感器
刃神太酷啦7 小时前
力扣校招算法通关:双指针技巧全场景拆解 —— 从数组操作到环检测的高效解题范式
java·c语言·数据结构·c++·算法·leetcode·职场和发展
平凡灵感码头8 小时前
STM32 串口中断接收原理与实战详解:从配置到中断服务函数全流程解析
单片机·嵌入式硬件
71-38 小时前
牛客上的练习题——打印X形图案(有说明scanf返回值)
c语言·笔记·学习
切糕师学AI8 小时前
MCU中的RC电路(Resistor-Capacitor Circuit)
单片机·嵌入式硬件
落羽的落羽9 小时前
【Linux系统】C/C++的调试器gdb/cgdb,从入门到精通
linux·服务器·c语言·c++·人工智能·学习·机器学习