历史上的今天
返回首页

历史上的今天

今天是:2024年11月07日(星期四)

正在发生

2019年11月07日 | 八弦激光竖琴电路图与单片机源码

2019-11-07 来源:51hei

==============所需元件==========================
激光头 * 8
5mm光敏电阻 * 8
开关 * 1
轻触按键 * 1
usb座或DC座 * 1
1k电阻 *2
10k电阻 * 10
3mmLED * 1
无源蜂鸣器 * 1
s8550三极管 * 1
排针(用于下载) * 1
STC89C52单片机 * 1
DIP40的单片机座 * 1
12M晶振 * 1
30pf瓷片电容 * 2
10uf电解电容 * 1

===============用到的工具=======================
电烙铁、焊锡丝、助焊剂可选、剪钳、镊子、热熔胶枪与热熔胶

================================================
===============激光竖琴使用说明=================
================================================

8个激光束 —— 对应中音的1、2、3、4、5、6、7,还有高音1


注意事项  —— 手弹奏时,请选取光线较弱的室内。当弹奏不灵敏时,请转到更暗的环境。

电路原理图如下:
0.png?imageView2/2/w/550

单片机源程序如下:

//*********            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)

        {

        

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

          zdkg();

                  

        }


}

/*定时器T1的中断服务程序*/

void Time1(void) interrupt 3 using 1//

{        fmq=~fmq; //每进入一次中断就取反一次,快速的进入退出中断,就会听到蜂鸣器发出的音调

        TH1=z/256;//定时器T1的高8位重新赋初值

        TL1=z%256;//定时器T1的低8位重新赋初值

}



推荐阅读

史海拾趣

Carling Technologies公司的发展小趣事

随着技术的不断进步和市场需求的多样化,Carling Technologies开始扩展其产品线,涵盖了液压磁热断路器、电子控制以及配电装置等多个领域。同时,公司也积极开拓全球市场,通过设立海外办事处和与当地企业合作,将产品销往世界各地。这一阶段的发展使得Carling Technologies成为了全球电气和电子开关领域的领先制造商之一。

Coors Components Inc公司的发展小趣事

除了关注经济效益外,Coors Components Inc公司还积极履行社会责任。公司积极参与公益事业,为社会做出贡献;同时,公司也注重环保和可持续发展,努力降低生产过程中的环境污染。这些举措不仅提升了公司的品牌形象,还赢得了社会各界的广泛赞誉。

以上是关于电子行业公司发展的通用框架,你可以根据这些框架来进一步了解“Coors Components Inc”公司的具体发展故事。请注意,在编写故事时,应确保所描述的事实准确无误,避免夸大或缩小事实。

Elpress AB公司的发展小趣事

在追求经济效益的同时,Elpress AB也注重可持续发展和环境保护。公司积极采用环保材料和绿色生产工艺,降低生产过程中的能耗和排放。同时,Elpress AB还积极参与环保公益活动,推动电子行业的绿色发展。这些举措不仅体现了Elpress AB的社会责任感,也为公司的长期发展奠定了坚实的基础。

Akros[台湾超硕股份有限公司]公司的发展小趣事

品质是Akros公司的生命线。公司始终坚持严格的质量控制体系,从原材料采购到产品出厂的每一个环节都进行严格把关。为了确保产品的品质稳定可靠,Akros还引进了先进的生产设备和检测仪器。同时,公司还注重持续改进,通过不断优化生产流程和提升员工技能水平,不断提高产品的品质和效率。

DEMMELPRODUCTS公司的发展小趣事

在成功推出首款产品后,DEMMELPRODUCTS公司开始积极拓展市场。公司管理层敏锐地捕捉到全球化的发展趋势,积极寻求与国际知名企业的合作机会。通过与跨国公司的技术交流和项目合作,DEMMELPRODUCTS公司的产品逐渐进入国际市场,并获得了良好的口碑。同时,公司还积极参加国际电子展会和论坛,提升品牌知名度和影响力。

Dynastream公司的发展小趣事

随着公司业务的不断扩展,Dynastream逐渐成为了行业内的佼佼者。2006年12月,Garmin International Inc.看中了Dynastream在技术和市场方面的优势,决定将其收购为全资子公司。这一收购不仅为Dynastream提供了更多的资源和支持,也让公司有机会接触到更广阔的市场和更多的客户。

问答坊 | AI 解惑

低温等离子体消毒灭菌设备的电源

低温等离子体消毒灭菌设备的电源 …

查看全部问答>

请教蓝牙虚拟串口通信的问题

现希望在ppc上写一个程序能和一个蓝牙模块通信,我在ppc上查找到了该设备,并且在ppc的蓝牙管理器中为其设置了COM7发送端口。然后在软件中是这样写的: PORTEMUPortParams pp; HANDLE hDev; i=7; hDev=RegisterDevice(L\"COM\",i,L\"btd.dll\", ...…

查看全部问答>

VxWorks zbuf socket使用问题,急、急、急!

大家好,为什么我使用zbufSockSend或zbufSockBufSend调用代替send发送数据,CPU总体消耗反而高了呢? zbuf socket不是可以减少一次数据拷贝吗? 处理数据码率100Mbps左右。 使用时有没有注意事项,比如缓冲设置长度之类的?…

查看全部问答>

开机加载驱动服务 请问有几种办法

开机加载驱动服务 请问有几种办法 或者能推荐本有关的好书 ? 谢谢大家…

查看全部问答>

如何实现遥控器与wince之间的红外通信

大家好呀,最近在做一个遥控器跟wince开发板间的红外通信,遥控器使用单片机,故考虑wince开放板上的原始IR端口,现在不知道wince如何接收遥控器发送过来的数据并识别,有没有做过这方面的的朋友呀,恳请指教呀! …

查看全部问答>

天啊,我Hook的ZwCreateFile的文件名到底在哪里啊。。。

我Hook了ZwCreateFile,通过 DbgPrint(\"HookZwCreateFile:%wZ\\n\",ObjectAttributes->ObjectName); 可以打印目录名称,后来发贴请问如何得到文件名: http://topic.eeworld.net/u/20080821/15/36e51142-4e57-4735-b51f-8b2fee796b63.html 得 ...…

查看全部问答>

职业培训机构首倡“中小软件企业人才供应计划”

本报讯:近日,瑞海软件公司技术负责人李成坐在北大青鸟APTECH培训中心内设立的招聘现场,正根据笔试和面试结果宣读招聘的学员名单。这一次,李成在北大青鸟APTECH培训中心又招聘到3名java方向的技术开发人员。为满足像瑞海公司这样的IT人才需求, ...…

查看全部问答>

我的F28035是怎么回事?

编译器:CCS V5 目标IC:F28035 现象:  正在debug的,把文件修改一下又重新装入时,出现了无法装入的现象,后又重新启动电脑,再次DEBUG,还是如此,后来无意中看了下面的红字,            &nbs ...…

查看全部问答>