简易电子琴课程设计报告
摘要
555 定时器是一种模拟和数字功能相结合的中规模集成器件。555 定时器成本低,性能可靠,只需要外接几个电阻、电容,就可以实现多谐振荡器、单稳态触发器及施密特触发器等脉冲产生与变换电路。它也常作为定时器广泛应用于仪器仪表、家用电器、电子测量及自动控制等方面。
本文是关于利用555定时器实现简易电子琴,这种应用只是其功能中的一部分。这种由555定时器做出来的电子琴,体积小,用料省,经济实用。
关键字:555定时器 时钟信号 蜂鸣器
目录
前言…………………………………………………………… .1
一 设计要求和系统的组成及工作原理 …………………… 2
1.1设计要求和系统的组成及工作原理 …………………… 2
二 电路设计…………………………………………………… 3
2.1. 模块功能………………………………………………… 3
2.3. 方案选择………………………………………………… 3
2.3. 555芯片介绍及元器件选择…………………………… 4
三 调试与排故………………………………………………… 8
3.1调试…………………………………………………… 8
3.2测试结果与分析 …………………………………… 8
四 结论……………………………………………………… 10
附录一 参考文献……………………………………………… 11
附录二 元器件清单……………………………….……………… 12
附录三 电路总图 …………………………….………………… 13
前言
电子科学技术是人类在生产斗争和科学实验中发展起来的。1883年美国发明家爱迪生发现了热电子效应,1904年弗莱明利用这个效应制成了电子二极管,并证实了电子管具有“阀门”作用,它首先被用于无线电检波。1906年美国的德福雷斯在弗莱明的二极管中放进了第三电极—栅极而发明了电子三极管,从而建树了早期电子技术上最重要的里程碑。半个多世纪以来,电子管在电子技术中立下了很大功劳;但是电子管毕竟成本高,制造繁,体积大,耗电多,从1948年美国贝尔实验室的几位研究人员发明晶体管以来,在大多数领域中已逐渐用晶体管来取代电子管。但是,我们不能否定电子管的独特优点,在有些装置中,不论从稳定性、经济性或功率上考虑,还需要采用电子管。
随着科学技术的发展和人类的进步,电子技术已经成了各种工程技术的核心,特别是进入信息时代以来,电子技术更是成了基本技术,其具体应用领域涵盖了通信领域、控制系统、测试系统、计算机等等各行各业
生活中常使用到许多的电子设备,它给我们生活上的便利与影响。而电子琴就是一个很明显的例子,这些有时甚至含有内建音乐,有时又可以千变万化,真让人想动手试试看,因此我们对它产生了许多问题与想象。它是如何动作?不同的音调产生原理又是什么?而若是改变它们的音调,不知道会不会很麻烦,其电路要重新制作吗?系统会怎么修改?
乐器的发展与科学技术的发展密切相关,现代电子技术的兴起,使一些机械的装置逐步电动化、电子化。科学技术上的这些变化及发展促进了乐器的发展,由此出现了许多新的电子乐器,如电子琴、电钢琴等。
本文就是关于用555定时器制作简易电子琴的过程及基本原理。
一 设计要求和系统的组成及工作原理
1.1设计要求
设计一个简易的电子琴。要求通过改变开关的闭合,可以产生七个不同的音调,就像电子琴一样。
1.2系统的组成及工作原理
1.2.1总体框图
,
二 电路设计
2.1 模块功能
该电路包括按钮开关,定值电阻,555振荡器和扬声器三部分组成
1输入端: 由八个按钮开关与各自的定值电阻串联在并联组成输入端
2频率产生端: 根据定值电阻的不同输入,由555产生不同的信号频率
3扬声器端口: 接受信号频率发出特定的频率
2.2方案选择
【设计方案一】
数字电路电子琴
采用一个555集成定时器组成简易电子琴。整个电路由主振荡器,颤音振荡器,扬声器和琴键按钮等部分组成。
主振荡器由555定时器,电阻,按键及电容组成。
【设计方案二】
单片机电子琴
程序可分如下:
初始化模块、判断按键模块、键值处理模块、音乐处理模块、中断模块、0处理模块、表单模块。
初始化模块:对8279键盘的部分进行初始化和中断初始化。
键值处理模块:用8279的状态字来判断它是否按键(FIFORAM不能清除已处理的数据,但8279的状态字会发生相应改变)。输入的键值与1-8的物理值01H-08H进行比较,如果与其中某个数相等,则跳到1-8的键值处理模块;如果是9或者A,则跳到音乐处理模块。如果输入是0,则跳到0处理模块。结尾跳到初始化模块 。
音乐处理模块:专门处理音乐中的1-8的发音。它们发音不同是因为波的频率不同,所以要发出不同的音,只要实现发出的波的频率不同即可。于是,可通过定时的方法来中断产生不同的方波。可把1-8的定时初值放在一个表单内。
中断模块:T0中断是为键值处理模块服务;T1中断是为音乐处理模块服务。
0处理模块:在音乐处理过程中,按下0则音乐暂停,此时可如其他按键(包括音乐按键)。当再按下0键时,则最近继续的音乐中断。
表单模块:TAB音符表单存放1-8的ASCII码值;FREQUENCY音符初值表单存放1-8音符的中断初值;DAT、DAT1分别存放两首歌曲相应的中断初值和节拍等信息。
综上:第一种方案简易,易于实现,所用知识为数字电子技术。接下来将介绍这种方案。
2.3. 555芯片介绍及元器件选择
555定时器是一种中规模集成电路,外形为双列直插8脚结构,体积很小,使用起来方便。只要在外部配上几个适当的阻容元件,就可以构成史密特触发器、单稳态触发器及自激多谐振荡器等脉冲信号产生与变换电路。它在波形的产生与变换、测量与控制、定时电路、家用电器、电子玩具、电子乐器等方面有广泛的应用。
多谐振荡器的工作原理:多谐振荡器是能产生矩形波的一种自激振荡器电路,由于矩形波中除基波外还含有丰富的高次谐波,故 称为多谐振荡器。多谐振荡器没有稳态,只有两个暂稳态,在自身因素的作用下,电路就在两个暂稳态之 间来回转换,故又称它为无稳态电路。由555定时器构成的多谐振荡器如图1所示,R1,R2和C是外接定时元件,电路中将高电平触发端(6脚) 和低电平触发端(2脚)并接后接到R2和C的连接处,将放电端(7脚)接到R1,R2的连接处。
由于接通电源瞬间,电容C来不及充电,电容器两端电压uc为低电平,小于(1/3)Vcc,故高电平触发 端与低电平触发端均为低电平,输出uo为高电平,放电管VT截止。这时,电源经R1,R2对电容C充电,使 电压uc按指数规律上升,当uc上升到(2/3)Vcc时,输出uo为低电平,放电管VT导通,把uc从(1/3)Vcc 上升到(2/3)Vcc这段时间内电路的状态称为第一暂稳态,其维持时间TPH的长短与电容的充电时间有关 。充电时间常数T充=(R1+R2)C。
由于放电管VT导通,电容C通过电阻R2和放电管放电,电路进人第二暂稳态.其维持时间TPL的长短与电 容的放电时间有关,放电时间常数T放=R2C0随着C的放电,uc下降,当uc下降到(1/3)Vcc时,输出uo。 为高电平,放电管VT截止,Vcc再次对电容c充电,电路又翻转到第一暂稳态。不难理解,接通电源后,电 路就在两个暂稳态之间来回翻转,则输出可得矩形波。电路一旦起振后,uc电压总是在(1/3~2/3)Vcc 之间变化。图1(b)所示为工作波形。
图1 555定时器构成的多谐振荡器电路及工作波形
集成555定时器有双极性型和CMOS型两种产品。一般双极性型产品型号的最后三位数都是555,CMOS型产品型号的最后四位数都是7555.它们的逻辑功能和外部引线排列完全相同。器件电源电压推荐为4.5~12V,最大输出电流200mA以内,并能与TTL、CMOS逻辑电平相兼容。其主要参数见表8.1。
555定时器的内部电路框图及逻辑符号和管脚排列分别如下:
【逻辑符号】
【内部原理图】
Vi1(TH):高电平触发端,简称高触发端,又称阈值端,标志为TH。
Vi2(TR):低电平触发端,简称低触发端,标志为TR。
VCO:控制电压端。
VO:输出端。
Dis:放电端。
Rd:复位端。
555定时器内含一个由三个阻值相同的电阻R组成的分压网络,产生VCC和VCC两个基准电压;两个电压比较器C1、C2;一个由与非门G1、G2组成的基本RS触发器(低电平触发);放电三极管T和输出反相缓冲器G3。
Rd是复位端,低电平有效。复位后, 基本RS触发器高端为1(高电平),经反相缓冲器后,输出为0(低电平)。
【逻辑功能】
三 调试与检查
3.1 调试
经过之前的准备工作,已经确定了制作方案。由于电路比较复杂,使用的导线和各种器件很多,所以在负责人那领完元件后,就和同组人明确分工,同组人看图并说明,作者连接线路,两人同时看着电路的连接,这样既可以节省时间,也不容易出错。但是由于是首次做,所以一开始我们就把所有的元件都焊上去了,导致没法连线,于是自己又去库房领了一份全新的器材回来。在重新开始连接好电路之后,开启电源,打开和闭合相应的开关后,可以发出不同的音调,与实验目的基本相符。可以说基本上完成了试验要求。
3.2 测试结果与分析
在555定时器的VCC端1/3和地之间加上电压,并让VCO悬空,则比较器C1的同相输入端接参考电压1/3VCC,比较器C2反相输入端接参考电压2/3VCC ,为了学习方便,我们规定:
当TH端的电压>1/3VCC时,写为VTH=1,当TH端的电压<2/3VCC时,写为VTH=0。
当TR端的电压>2/3VCC时,写为VTR=1,当TR端的电压<1/3VCC时,写为VTR=0。
① 低触发:当输入电压Vi2<VCC2/3 且Vi1<1/3VCC时,VTR=0,VTH=0,比较器C2输出为低电平,C1输出为高电平,基本RS触发器的输入端TH=0、TR=1,,经输出反相缓冲器后,VO=1,T截止。这时称555定时器“低触发”;
② 保持:若Vi2>1/3VCC 且Vi1<2/3VCC,则VTR=1,VTH=0,基本RS触发器保持,VO和T状态不变,这时称555定时器“保持”。
③ 高触发:若Vi1>2/3VCC,则VTH=1,比较器C1输出为低电平,无论C2输出何种电平,基本RS触发器,经输出反相缓冲器后,VO=0;T导通。这时称555定时器“高触发”。
VCO为控制电压端,在VCO端加入电压,可改变两比较器C1、C2的参考电压。正常工作时,要在VCO和地之间接0.01μF(电容量标记为103)电容。放电管Tl的输出端Dis为集电极开路输出。
元器件选择:
1根据555多谐震荡的原理选择电阻:由上所述可知:555芯片输出端输出的频率计算公式为f=1.43/((R1+2R2)C)
再由下表所列的八个音阶分别对应的频率可以令R1为一固定阻值,通过开关调节的几个串联的电阻当做R2。分别选用6个2千欧电阻,一个1千欧和一个十三千欧的电阻串联接于引脚6和引脚七。大概电路图1所示。
2电容选择:通过计算可以得出6引脚所需电容为0.1μF。输出端3接4.7μF电容。
根据以上选择计算实际频率与真实频率对比如下:
四 结论
一个星期的实训很快结束了。通过对简易电子琴的设计,我认识到了“理论联系实际”的这句话的重要性与真实性。在此次的课程设中计,我不仅巩固了以前学习过的知识,还增长了一些书本以外的知识,比如说制作万用板的过程,及焊接的方法,如何能焊接的光滑,美观,布线能够清爽一目了然,这些光看书本是永远也学不到的。最重要的是在实践中理解了书本上的知识,明白了学以致用的真谛,也明白课程设计的意义所在,它教会我们如何运用所学的知识去解决实际的问题,提高我们的分析能力、动手能力及处理问题的能力,还增强了我们的团结互助精神。在整个设计到电路板的制作、电路的焊接以及调试过程中,我用心做好每一步,虽然总做的电子琴原理简单焊接不是很困难,但是每一份付出背后的成功都是值得开心的。当然,我从实训中也发现了自身的许多缺点及不足,比如做事不仔细,动手能力欠缺。
此次实训中,在我没有领全器件时,芯片落在实验室时,焊接时需要同学帮助时,受到了很多老师同学的帮助,在此我要感谢他们。
附录一 参考文献
[1]阎石.数字电子技术基础.第五版.北京:高等教育出版社,2005.
[2]刘丽君,王晓燕.电子技术基础实验教程.南京:东南大学出版社,2008.
[3]周惠潮.常用元器件及典型应用.北京:电子工业出版社,2005.
[4]陈传虎,刘海宽.电子CAD实训教程.南京:东南大学出版社,2009.
附录二 所需元器件清单
元器件清单:
1. 万用表,电烙铁,镊子,剪线钳,吸锡器。
2. 集成电路 NE555 1片.
3. 电阻 2K 6个
1 2个
13K 1个
4. 电容 0.01uF 1个
0.1uF 1个
4.7uF 1 个
5. 按键 8个
喇叭(0.5W) 1 个
附录三 电路总图
一、设计指标
1.1设计任务
1.设计一个4X4的16个按键矩阵,并且每个键对应一个音,显示对应音键号。
2.用AT89C51将键盘连接设计成为电子琴。
3.编写电子琴的程序,要达到可以随意弹奏想要表达的音乐的目的。
4.程序的分析与调试,显示波形。
1.用汇编语言编程实现程序设计。
2.利用查表,中断等方式实现目的。
3.系统的各各功能模块要清楚,有序。
4.程序运行时有友好的用户界面。
二、设计方框图
图2.1 系统主程序流程图
图2.2
三、元器件介绍
该设计主要由以下几个部件组成:
1:单片机AT89C51 :
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效的微控制器。
引脚说明:P0口:P0口为一个8位双向三态I/O口,每脚可驱动8个TTL负载。P0既可作为通用I/O口,又可作为外部扩展时的数据总线及低8位地址总线的分时复用口。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,每个引脚可驱动4TTL负载。P1口管脚写入1后,被内部上拉为高,可用作输入, P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,驱动4个TTL门电流。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可驱动4个TTL负载。当P3口写入"1"后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能,管脚备选功能:P3.0 RXD(串行数据接受口) P3.1 TXD(串行数据发送口) P3.2 /INT0(外部中断0请求输入) P3.3 /INT1(外部中断1请求输入) P3.4 T0(定时器/计数器0外部输入口) P3.5 T1(定时器/计数器1外部输入口) P3.6 /WR(外部数据存储器RAM写选通) P3.7 /RD(外部数据存储器RAM读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许ALE的输出电平用于锁存地址的地位字节。当不访问其时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。/PSEN:外部程序存储器ROM的选通信号。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:反向振荡放大器的出及内部时钟工作电路的输出。
2:电源:电源部分有二部分组成。一部分是由220V的市电通过变压、整流稳压来得到+5V电压,维持系统的正常工作;另一部分是由3V的电池供电,以保证停电时正常走时。正常情况下电池是不提供电能的,以保证电池的寿命。
3:4*4的16个按钮矩阵。
4:模拟示波器:模拟产生的波形。
5:LM386音频功率放大器,LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为20。但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至 200。输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场 合。
6:74LS244锁存器:74LS244为3态8位地址锁存器, 地址锁存器就是一个暂存器,它根据控制信号的状态,将总线上地址代码暂存起来首先由CPU发出存储器地址,同时发出允许锁存信号ALE给锁存器,当锁存器接到该信号后将地址/数据总线上的地址锁存在总线上,随后才能传输数据。
四、设计原理
4.1 电路原理
主要分为二个部分:
(1)4X4行列式键盘识别;
(2)音乐产生的方法;
①一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同
的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。现在以单片机12MHZ晶振为例,列出高中低音符与单片机计数T0相关的计数值如表3.1所示.
下面我们要为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据:低音0-19之间,中音在20-39之间,高音在40-59之间
TABLE: DW 0,63628,63835,64021,64103,64260,64400,64524,0,0
DW 0,63731,63928,0,64185,64331,64463,0,0,0
DW 0,64580,64684,64777,64820,64898,64968,65030,0,0
DW 0,64633,64732,0,64860,64934,64994,0,0,0
DW 0,65058,65110,65157,65178,65217,65252,65283,0,0
DW 0,65085,65134,0,65198,65235,65268,0,0,0
DW 0
表3.1 高中低音符与单片机计数T0相关的计数值表
②音乐的音拍,一个节拍为单位(C调)
对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。
在这个程序中用到了两个定时/计数器来完成的。其中T0用来产生音符频率,T1
用来产生音拍。
2、 各功能模块电路的设计(用Proteus仿真)
1、 晶体振荡电路 2、 上电自动复位电路
3、按键电路
4、 显示按键建号
5音频功率放大电路 6、模拟示波
3、 整体电路图
四、电路安装与调试过程
1.打开并设置MedWin
打开MedWin→设置仿真器→设置工作目录→设置编译器
2.使用MedWin
(1)新建项目 点击[项目管理]—[新建项目] 命令,输入项目名称,点击[确定]按钮,出现“添加项目文件”对话框,输入源代码文件名,如DITISHIYAN.ASM,单击[打开]按钮,出现代码窗口,即可开始编程。
(2)打开项目 点击[项目管理]—[打开项目] 命令,点击项目文件名(项目文件后缀为.mpf),点击[打开]按钮,即可打开上次保存的项目。
(3)编译 点击[项目管理]—[编译/汇编]命令,启动编译器对源文件进行语法检查并编译,在消息窗口中显示编译结果。
(3)模拟仿真 当源程序编译无误后,可进行模拟仿真调试。点击[项目管理]—[产生代码并装入]命令,生成.hex文件。编译器对源程序进行重新编译并装入。这时,可使用[调试]菜单中的相关命令进行调试,如设置断点、单步及全速执行等。
(4)生成目标代码 点击[项目管理]—[输出Binary文件]命令,生成BIN文件,用下载工具将其下载到实验板的单片机中执行。
3.Proteus的应用
首先安装此软件,然后打开,打开之后在图形编辑窗口进行画图。硬件电路图画好之后,将刚在MedWin中已经编辑好的程序写入单片机中(AT89C51)中,然后进行整体仿真。
五、电路测试与使用说明
硬件部分
按照原理图连接电路,用PROTEUS模拟仿真测试电路,如果有问题就分块进行测试!
软件部分
如果硬件部分并无问题,那么就有可能是出现在软件部分。那么就需要一一查看程序是否有误,如若有误将其改正并编译并代码,而后加载进单片机内再次运行。
六、训练总结
这次我主要的设计是一个简易电子琴,采用16个键分别代表16个音,通过对按键的随意按击从而产生不同的音乐,主要是通过每个按键所产生的频率不同来使得发出的各个音不同,从而产一音乐 。
程序也实在很长,对于现在的我来说肯定一个人肯定很难编出这么长的程序,幸好有给与我帮助的同学和老师。虽然这个程序还不是很简洁,但我们可以根据每个程序的功能各不相同来使程序简化。不过我对目前的程序已经很满意了,但是也存在存在的问题:(1)功能单调 ,我们可以通过增加元件、模块,扩展键盘,增加子程序程序增加其功能。 (2)程序太过冗长,我们可以用其他的方法如查询等方法来精简程序,加强它的可读性。最后,通过这次的自主完成单片机的应用系统设计,让我学会了如何去完成一个设计报告,让我更进一步了解了单片机,也让我感受到做出一个设计的开心,喜悦与担心。相信这对以后的毕业设计也会有很大的帮助。
七、附录
KEYBUF EQU 30H
STH0 EQU 31H
STL0 EQU 32H
TEMP EQU 33H
ORG 00H ; 开始地址
LJMP START
ORG 0BH ; T0中断矢量地址
LJMP INT_T0
START: MOV TMOD,#01H ; 写控制字
SETB ET0 ; 允许T0中断
SETB EA ; 开放CPU中断
WAIT:
MOV P3,#0FFH ; P3口输出
CLR P3.4 ; 清零
MOV A,P3
ANL A,#0FH
XRL A,#0FH ; 屏蔽高四位
JZ NOKEY1 ; 判断
LCALL DELY10MS
MOV A,P3
ANL A,#0FH ; 屏蔽高四位
XRL A,#0FH ; 异或运算
JZ NOKEY1
MOV A,P3
ANL A,#0FH ; 屏蔽高四位
CJNE A,#0EH,NK1 ; 判断A与#0eh是否相等
MOV KEYBUF,#0 ; 赋初值#0
LJMP DK1 ; 跳转
NK1: CJNE A,#0DH,NK2
MOV KEYBUF,#1
LJMP DK1
NK2: CJNE A,#0BH,NK3
MOV KEYBUF,#2
LJMP DK1
NK3: CJNE A,#07H,NK4
MOV KEYBUF,#3
LJMP DK1 ; 调用DK1
NK4: NOP ; 空指令延时一个周期
DK1:
MOV A,KEYBUF
MOV DPTR,#TABLE ; 查表 赋首地址
MOVC A,@A+DPTR
MOV P0,A
MOV A,KEYBUF
MOV B,#2
MUL AB ; AB相乘
MOV TEMP,A
MOV DPTR,#TABLE1 ; 查表一
MOVC A,@A+DPTR
MOV STH0,A ; 写定时常数
MOV TH0,A
INC TEMP
MOV A,TEMP
MOVC A,@A+DPTR
MOV STL0,A
MOV TL0,A
SETB TR0
DK1A: MOV A,P3
ANL A,#0FH ; 屏蔽高四位
XRL A,#0FH
JNZ DK1A
CLR TR0
NOKEY1: ; 键1子程序
MOV P3,#0FFH
CLR P3.5
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY2 ; 判断跳转键2子程序
LCALL DELY10MS
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY2
MOV A,P3
ANL A,#0FH
CJNE A,#0EH,NK5 ; 比较跳到键5
MOV KEYBUF,#4
LJMP DK2
NK5: CJNE A,#0DH,NK6 ; 键5子程序
MOV KEYBUF,#5
LJMP DK2
NK6: CJNE A,#0BH,NK7
MOV KEYBUF,#6
LJMP DK2
NK7: CJNE A,#07H,NK8
MOV KEYBUF,#7
LJMP DK2
NK8: NOP
DK2:
MOV A,KEYBUF
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,KEYBUF
MOV B,#2
MUL AB
MOV TEMP,A
MOV DPTR,#TABLE1 ; 查表扫描表一
MOVC A,@A+DPTR
MOV STH0,A
MOV TH0,A
INC TEMP ; 移动TEMP,扫描键盘
MOV A,TEMP
MOVC A,@A+DPTR
MOV STL0,A
MOV TL0,A
SETB TR0 ; 启动定时
DK2A: MOV A,P3
ANL A,#0FH
XRL A,#0FH
JNZ DK2A
CLR TR0
NOKEY2:
MOV P3,#0FFH
CLR P3.6
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY3
LCALL DELY10MS
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY3
MOV A,P3
ANL A,#0FH
CJNE A,#0EH,NK9
MOV KEYBUF,#8
LJMP DK3 ; 调用DK3
NK9: CJNE A,#0DH,NK10
MOV KEYBUF,#9
LJMP DK3
NK10: CJNE A,#0BH,NK11
MOV KEYBUF,#10
LJMP DK3
NK11: CJNE A,#07H,NK12
MOV KEYBUF,#11
LJMP DK3
NK12: NOP
DK3:
MOV A,KEYBUF
MOV DPTR,#TABLE ; 查表
MOVC A,@A+DPTR
MOV P0,A
MOV A,KEYBUF
MOV B,#2
MUL AB
MOV TEMP,A
MOV DPTR,#TABLE1 ; 查表1
MOVC A,@A+DPTR
MOV STH0,A
MOV TH0,A
INC TEMP
MOV A,TEMP
MOVC A,@A+DPTR
MOV STL0,A
MOV TL0,A
SETB TR0 ; 启动TR0
DK3A: MOV A,P3
ANL A,#0FH
XRL A,#0FH
JNZ DK3A
CLR TR0
NOKEY3:
MOV P3,#0FFH ; P3输出
CLR P3.7
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY4 ; 判c=0转移
LCALL DELY10MS
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY4
MOV A,P3
ANL A,#0FH
CJNE A,#0EH,NK13
MOV KEYBUF,#12
LJMP DK4 ; 调用DK4
NK13: CJNE A,#0DH,NK14
MOV KEYBUF,#13
LJMP DK4 ; 调用DK4
NK14: CJNE A,#0BH,NK15
MOV KEYBUF,#14
LJMP DK4 ; 调用DK4
NK15: CJNE A,#07H,NK16
MOV KEYBUF,#15
LJMP DK4
NK16: NOP
DK4:
MOV A,KEYBUF
MOV DPTR,#TABLE ; 查表
MOVC A,@A+DPTR
MOV P0,A ; P0输出
MOV A,KEYBUF
MOV B,#2
MUL AB
MOV TEMP,A
MOV DPTR,#TABLE1 ; 查表1
MOVC A,@A+DPTR
MOV STH0,A
MOV TH0,A
INC TEMP
MOV A,TEMP
MOVC A,@A+DPTR
MOV STL0,A
MOV TL0,A ; 写定时的低位
SETB TR0 ; 启动T0
DK4A: MOV A,P3
ANL A,#0FH ; 屏蔽高四位
XRL A,#0FH
JNZ DK4A
CLR TR0
NOKEY4:
LJMP WAIT
DELY10MS:
MOV R6,#10
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
INT_T0: ; 重写定时常数
MOV TH0,STH0
MOV TL0,STL0
CPL P1.0
RETI
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
TABLE1: DW 64021,64103,64260,64400
DW 64524,64580,64684,64777
DW 64820,64898,64968,65030
DW 65058,65110,65157,65178
END
简易电子琴课程设计报告摘要555定时器是一种模拟和数字功能相结合的中规模集成器件555定时器成本低性能可靠只需要外接几个电阻电容就…
北京交通大学电子技术课程设计报告随着科学技术的发展和人类的进步电子技术已经成了各种工程技术的核心特别是进入信息时代以来电子技术更是…
河南理工大学本科课程设计报告设计摘要本设计主要研究基于AT89C52单片机的简易电子琴设计它是以单片机作为主控核心设置键盘蜂鸣器等…
电子技术课程设计报告学院电气与电子工程学院专业班级电信班学生姓名指导教师完成时间成绩简易电子琴设计报告一设计要求本设计是基于学校实…
简易电子琴课程设计报告专业电气工程及其自动化班级12级过程控制小组第22组姓名门振威学号120xx4145指导教师王松林20xx0…
北京交通大学电子技术课程设计报告随着科学技术的发展和人类的进步电子技术已经成了各种工程技术的核心特别是进入信息时代以来电子技术更是…
电子技术课程设计报告学院电气与电子工程学院专业班级电信班学生姓名指导教师完成时间成绩简易电子琴设计报告一设计要求本设计是基于学校实…
河南理工大学本科课程设计报告设计摘要本设计主要研究基于AT89C52单片机的简易电子琴设计它是以单片机作为主控核心设置键盘蜂鸣器等…
简易电子琴课程设计报告专业电气工程及其自动化班级12级过程控制小组第22组姓名门振威学号120xx4145指导教师王松林20xx0…
微控制器技术课程设计报告设计题目简易电子琴设计专业电机与电器班级电器132学号130312239姓名王小起指导教师设计时间微控制器…
自动化专业课程设计报告微机原理及应用课程设计计算机仿真电子琴班级自动化091姓名许丹阳学号0918120xx3时间20xx年12月…