简易8键电子琴的原理图:
单片机源程序如下:
/*******************************************************************
********************************************************************
********* 51简易电子琴程序 *****************
********************************************************************
********* ****************/
#include
#define uint unsigned int
#define uchar unsigned char
sbit fmq=P0^0;//定义P0.0口为蜂鸣器信号输出
uint z;
uint code tone[8]={0xfc44,0xfcac,0xfd09,0xfd34,0xfd82,0xfdc8,0xfe06,0xfe22};//对应每个单调的计数初值
uchar code keymode[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//按键值,对应io:0,1,2,3,4,5,6,7
/************************************
*********按键扫描函数***************/
void anjian()//用整个P2口作为音调的输入按键(独立按键方式)
{
P2=0xff;//读数据先置1
if(P2==keymode[0]) //1
{
z=tone[0];
P1=keymode[0];
}
/**/
if(P2==keymode[1]) //2
{
z=tone[1];
P1=keymode[1];
}
/**/
if(P2==keymode[2]) //3
{
z=tone[2];
P1=keymode[2];
}
/**/
if(P2==keymode[3]) //4
{
z=tone[3];
P1=keymode[3];
}
/**/
if(P2==keymode[4]) //5
{
z=tone[4];
P1=keymode[4];
}
/**/
if(P2==keymode[5]) //6
{
z=tone[5];
P1=keymode[5];
}
/***/
if(P2==keymode[6]) //7
{
z=tone[6];
P1=keymode[6];
}
/* */
if(P2==keymode[7]) //1.
{
z=tone[7];
P1=keymode[7];
}
}
/************************************/
void zdkg()
{
if(P2==0xff)
{
P1=0xff;
TR1=0;//如果没有按键按下,就关闭定时器中断
fmq=1;//同时也关闭蜂鸣器
}
else //否则就进入中断
{
TR1=1;
}
}
/*************************************************
****************主函数****************************
*************************************************/
void main()
{
EA=1;//开总中断
ET1=1;//定时器T1中断允许
TMOD=0x10;//使用定时器T1的模式1
TH1=(65536-500)/256;//定时器T1的高8位重新赋初值
TL1=(65536-500)%256;//定时器T1的低8位重新赋初值
P1=0xff;//先关所有LED灯
while(1)
{
……………………
上一篇:基于单片机的三相步进电机控制系统设计分解
下一篇:单片机智能温控风扇原理图PCB文件与源程序
推荐阅读最新更新时间:2024-11-06 06:10
设计资源 培训 开发板 精华推荐
- LDK130PU30R 3V、300 mA 低静态电流极低噪声 LDO 的典型应用固定版电路
- DC2294A,电源系统管理 PSM Linduino One Shield 演示板
- 使用 NXP Semiconductors 的 TL431AI 的参考设计
- DER-846 - 基于LinkSwitch-TN2的15W抽头降压式非隔离电源,适用于家用电器
- 使用 Analog Devices 的 LTC2908CDDB-B1 的参考设计
- 使用 Analog Devices 的 ADN2812 的参考设计
- 使用 Microchip Technology 的 SY58024U 的参考设计
- g0x1c8最小系统板
- 使用 Microchip Technology 的 LX23224 的参考设计
- 大作业2