课程设计论文基于单片机的电子琴设计2

上传人:沈*** 文档编号:45586003 上传时间:2021-12-07 格式:DOC 页数:25 大小:434.50KB
收藏 版权申诉 举报 下载
课程设计论文基于单片机的电子琴设计2_第1页
第1页 / 共25页
课程设计论文基于单片机的电子琴设计2_第2页
第2页 / 共25页
课程设计论文基于单片机的电子琴设计2_第3页
第3页 / 共25页
资源描述:

《课程设计论文基于单片机的电子琴设计2》由会员分享,可在线阅读,更多相关《课程设计论文基于单片机的电子琴设计2(25页珍藏版)》请在装配图网上搜索。

1、1 绪论1.1 设计背景及目的单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。单片机电子琴设计的目的是为了使我们更加深入的了解单片机的发声原理,利用定时器可发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发

2、出不同音调。其次,定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平,由于定时参数不同,就发出不同频率的脉冲。也使我们进一步熟悉定时器的编程方法和定时初值的计算,进一步熟悉键盘扫描电路的工作原理和编程方法,了解单片机芯片的接口技术。1.2 设计意义 电子琴以其音色丰富,节奏多样,表现力强,演奏方法较易掌握等特点,受到人们的喜欢。当今,学习电了琴已经成为培养少年儿童音乐素养,普及音乐知识,开发智力的一种手段。一些有音乐天赋的孩子通过学习电子琴,可能踏进音乐圣殿的大门,从此走上艺术之路,成为有成就的音乐家。而大多数孩子学习电子琴的意义,在于提高他们对音乐的兴趣,从而

3、活跃他们的思维,丰富他们的想象力,培养他们的审美能力,促进他们的智力发展。我们知道,人的大脑可分为左半脑和有右半脑,人们的抽象思维加对事物的推理、分析,主要是通过左半脑的活动来进行的;而右半脑的主要活动内容是形象思维,如人们的艺术活动能力及想象为传统的课堂教学主要调动的是人的左半脑的思维活动,大脑得不到均衡活动容易造成疲劳,这是影响智力发展的一个因素,通过音乐活动,调动右半脑的思维,使大脑左右交替、同时均衡地活动,对促进大脑思维,开发智力有着积极的作用。让少年儿童学习音乐,演奏乐器,能够培养孩子们手、眼、嘴、脚的协调能力,调动、促进大脑,特别是右半脑的思维,训练孩子们反应的敏捷性,这对促进孩子

4、们的智力发展是非常有益的。此次我们的设计简易电子琴只是为了演示电子琴的实现过程,所以我们的简易电子琴以能够弹奏动听曲目为预期效果。但是简易电子琴的设计是实现多功能电子琴并满足市场要求的必经过程。2 整体设计及方案比较2.1 系统设计内容及要求熟悉键盘扫描电路工作原理及编程方法,了解计算机发声原理。利用定时器,可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调。利用实验仪上提供的键盘,使数字键 1、2、3、4、5、6、7 作为电子琴按键,按下即发出相应的音调。2.2 初步设计的两种整体方案2.2.1 整体方案 1该方案采用 8031 单片机(fosc=12MHZ)

5、的接口实现输入、输出功能;P1 口用来实现键盘输入功能,其中键盘采用的是独立式键盘,每个按键独立,均需占用 CPU 的一条 I/O 输入数据线;P3.0 用作输出口,通过放大电路和喇叭连接;此系统的时钟电路设计采用了内部方式,即利用芯片内部的振荡电路;与此同时此电路系统采用的是上电与按钮复位电路。整体方案 1 如图 1 所示:图 12.2.2 整体方案2该方案通过片选端将 8255A 与 8031 单片机相连,扩张了 8031 单片机的 I/O 并行口。采用 8031 单片机(fosc=12MHZ)的接口实现输入功能,将一个 4*6 的矩阵键盘通琴键 电路8031P1.0|P1.7放大电路P3

6、.0复位电路时钟电路过片选端与 8031 单片机相连,减少了 I/O 口的占用; 8255A 的 PA0 口作为输出口,通过放大电路和喇叭连接;此系统的时钟电路设计采用了内部方式,即利用芯片内部的振荡电路;与此同时此电路系统采用的是上电与按钮复位电路。整体方案 2 如图 2 所示:CS1CS08031PA0CS8255A时钟电路复位电路放大电路图 22.3 方案比较以上提出的两种方案,主要是在键盘的选择和I/O口的使用上有所区别,为了选出一个相对较优的方案,首先,我将对独立键盘和矩阵键盘加以比较:(一)独立式按键 独立式按键就是各按键相互独立,每个按键单独占用一根 I/O 口线,每根 I/O

7、口线的按键工作状态不会影响其他 I/O 口线上的工作状态。 优点:电路配置灵活,软件结构简单。 缺点:每个按键需占用一根 I/O 口线,在按键数量较多时,I/O 口浪费大,电路结构显得复杂。 因此,此键盘是用于按键较少或操作速度较高的场合。(二)矩阵式键盘接口设计 阵式键盘,由行线和列线组成,按键位于行列的交叉点上。 优点:节省 I/O 口的 琴 键 电 路 缺点:结构较独立式键盘复杂因此,在需要的键数比较多时,采用矩阵法来做键盘是合理的。虽然本次设计中只要使用 7 个键,但是从实际意义考虑,电子琴的琴键远远不只7 个,由此可见,电子琴的设计中采用矩阵键盘是比较合理的方案。其次,我将比较两个方

8、案在 I/O 口使用方式上的利弊,方案一采用 8031 接口实现输入与输出,虽然从整体上看简化了电路,但是不利于电子琴功能的扩展,而方案二利用 8255A 扩展 8031 的 I/O 口,弥补了方案一的这个缺陷。综上所述,选用方案二位最终方案。3 硬件设计3.1 8031 单片机引脚功能简介图 3 8031 单片机引脚图(1)8031 主电源引脚 Vss 和 Vcc Vss 接地 Vcc 正常操作时为+5 伏电源(2)外接晶振引脚 XTAL1 和 XTAL2 XTAL1 内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当采用外部振荡器时,此引脚接地。 XTAL2 内部振荡电路反相放大器的

9、输出端。是外接晶体的另一端。当采用外部振荡器时,此引脚接外部振荡源。(3)控制或与其它电源复用引脚 RST/VPD,ALE/ , 和 /Vpp RST/VPD 当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变) ,将使单片机复位在 Vcc 掉电期间,此引脚可接上备用电源,由 VPD 向内部提供备用电源,以保持内部 RAM 中的数据。 ALE/ 正常操作时为 ALE 功能(允许地址锁存)提供把地址的低字节锁存到外部锁存器,ALE 引脚以不变的频率(振荡器频率的 )周期性地发出正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。但要注意,每当访问外部数据存储器时,将跳过一个

10、ALE 脉冲,ALE 端可以驱动(吸收或输出电流)八个 LSTTL 电路。 对于EPROM 型单片机,在 EPROM 编程期间,此引脚接收编程脉冲( 功能) 外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)期间, 在每个机器周期内两次有效。 同样可以驱动八 LSTTL 输入。 /Vpp 、 /Vpp 为内部程序存储器和外部程序存储器选择端。当 /Vpp 为高电平时,访问内部程序存储器,当 /Vpp 为低电平时,则访问外部程序存储器。对于 EPROM 型单片机,在 EPROM 编程期间,此引脚上加 21 伏 EPROM 编程电源(Vpp) 。3.2 8255A 芯片引脚功能简介

11、图 4 8255A 引脚图 图 5 8255A 内部结构图 RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有 I/O 口均被置成输入方式。 PA0PA7:端口 A 输入输出线,一个 8 位的数据输出锁存器/缓冲器, 一个 8 位的数据输入锁存器。 PB0PB7:端口 B 输入输出线,一个 8 位的 I/O 锁存器, 一个8 位的输入输出缓冲器。 PC0PC7:端口 C 输入输出线,一个 8 位的数据输出锁存器/缓冲器, 一个 8 位的数据输入缓冲器。端口 C 可以通过工作方式设定而分成 2 个 4 位的端口, 每个 4位的端口包含一个 4 位的锁存

12、器,分别与端口 A 和端口 B 配合使用,可作为控制信号输出或状态信号输入端口。CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许 8255 与 CPU 进行通讯。RD:读信号线,当这个输入引脚为低电平时,允许 8255 通过数据总线向 CPU 发送数据或状态信息,即 CPU 从 8255 读取信息或数据。WR:写入信号,当这个输入引脚为低电平时,允许 CPU 将数据或控制字写 8255。D0D7:三态双向数据总线,8255 与 CPU 数据传送的通道,当 CPU 执行输入输出指令时,通过它实现 8 位数据的读/写操作,控制字和状态信息也通过数据总线传送。 3.3 键盘模块3.3

13、.1 键盘电路本设计采用结构原理简图如图 6 所示: 图 6 4*6 的矩阵键盘结构原理简图实验仪提供了一个 64 的小键盘,向列扫描码地址(0X002H)逐列输出低电平,然后从行码地址(0X001H)读回。如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高。这样就可以通过输出的列码和读取的行码来判断按下的是什么键。在判断有键按下后,要有一定的延时,防止键盘抖动。地址中的 X 是由KEY/LED CS 决定。3.3.2 键盘抖动的消除当用手按下一个键时,如图 7 所示也回会出现类似的情况。这就是抖动。抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于 10ms。很容

14、易想到,抖动问题不解决就会引起对闭合键的识别。用软件方法可以很容易地解决抖动问题,这就是通过延迟 10ms 来等待抖动消失,这之后,在读入键盘码。图 7键按下前沿抖动后沿抖动闭合稳定3.4 音频放大电路此部分的放大电路简单容易实现。可以采用一个小功率 PNP 型硅管 9012,利用“分压偏置式工作点稳定直流通路” ,达到了对静态工作点的稳定。分压电阻分别选择1K 和 5.5K。蜂鸣器一端接+5V 电压,一端接晶体管的发射极。由 8255A 的 PA0 口输出预定的方波,加到晶体管进行放大,再输出到蜂鸣器,很好的实现了频率、声音的转换。 音频放大电路原理图如图 9 所示: 图 8 音频放大电路3

15、.5 时钟电路此系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。MCS-51 内部有一个用于构成振荡器的高增益反相放大器。引脚 XTAL1 和 XTAL2 分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容 CX1 和 CX2 构成并联谐振电路,接在放大器的反馈回路中。图 9 为时钟电路的原理图: PA08255A图 9 时钟电路原理图图 9 时钟电路 3.6 复位电路MS-51 的复位是由外部的复位电路来实现的。片内复位电路是复位引脚 RST 通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输

16、出在每个机器周期的 S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路,如图 6 所示。当时钟频率选用 6MHz时,C 取 22F,Rs 约为 200,Rk 约为 1K。复位电路原理图如图 10 所示: 图 10 复位电路4 软件设计4.1音乐发声原理及程序流程图4.1.14.1.1音乐发声原理用电子琴可以演奏出各种美妙的音乐,而音乐是由音符组成。不同的音符是由相应频率的振动产生。由8031单片机模拟产生音符,只需算出音频周期T=1/f,利用音频的变化产生不同电平驱动发声模块,来达到产生音乐的目的。利用 8031的内部定时器使其工

17、作计数器模式(方式1)下,改变计数值TH0及TL0 以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T1/5231912s,因此只要令计数器计时956s/1s956,每计数956 次时将I/O 反相,就可得到中音DO(523Hz)。计数脉冲值与频率的关系式是:Nfi2fr 式中,N 是计数值;fi 是机器频率(晶体振荡器为12MHz 时,其频率为1MHz);fr是想要产生的频率。其计数初值T 的求法如下:T65536N65536fi2fr例如:设K65536,fi1MHz,中音DO(523Hz)的计数值。T65536N65536fi2fr6553610000002fr65536

18、500000/fr中音 DO 的T65536500000/52364580单片机 12MHZ 晶振,高中低音符与计数 T0 相关的计数值如表 1 所示 表 14.1.2 音乐发声程序流程图利用定时器,可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调。定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平。由于定时参数不同,就发出了不同频率的脉冲。本实验中按键一次,会发 50 个脉冲.发完后继续检测键盘,如果键还按下,继续发音。C 调音符1234567频率(Hz)524588660698784880988半周期(ms)0.950.85

19、0.760.720.640.570.51定时值650616511165156651766521665251650254.2 读键输入子程序流程图图 11 音乐发声流程图 定时中断停止计时输出音频脉冲电平(高或低)音频脉冲电平反转脉冲个数减 1中断返回保护现场恢复现场实验仪提供了一个 64 的小键盘,向列扫描码地址(0X002H)逐列输出低电平,然后从行码地址(0X001H)读回。如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高。这样就可以通过输出的列码和读取的行码来判断按下的是什么键。在判断有键按下后,要有一定的延时,防止键盘抖动。图 12 读键输入子程序流程图4.3

20、8255A 工作程序流程图可编程通用接口芯片 8255A 有三个八位的并行 I/O 口,它有三种工作方式。本实 否是是否开始输出列扫描信号列扫描信号移位该列有键输入?读入行信号6 列扫描完?初始化地址参数按照行列计算键值查表得键码等待按键释放返回返回验采用的是方式 0:PA0 口输出,很多 I/O 实验都可以通过 8255 来实现。图 13 8255A 工作程序流程图4.4 主程序流程图通过对电子琴主体部分的电路进行设计,达到电子琴固有的基本功能。整个设计利用单片机定时器可发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同音调的原理来设计。首先,利用一个键盘电路把所需要发

21、出声音的信号输入单片机:其次通过程序,定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平。由于定时参数不同,就发出不同频率的脉冲。 延时置 8255 工作方式置 8255PA口数据左移延时延时置 8255 工作方式读 8255PB 口置 8255PA 口开始开始图 14 主程序流程图5 系统测试及结论否是是是否否开始读入键值用键值查表得到音频相关数据启动定时开始发声关闭定时停止发声1键值7已发 50 个脉冲?检测键输入按音频数据设置定时器5.1 硬件接线及调试1) 将键盘的片选端 CS 与 8031 单片机的片选端 CS1 连接;2) 将 8255A 的片选端

22、CS 与 8031 单片机的片选端 CS0 连接;3) 将 8255A 的输出口 PA0 与喇叭连接;4) 将程序输入电脑,并将电脑与实验箱连接;5) 调试,在键盘上按下键 1、2、3、4、5、6、7,相应的在喇叭中发出音阶5.2 结论及优化建议经过对程序的反复修改以及对硬件电路的反复测试之后,实验最终得到了预想的结果,奏出了预想的 7 个音节。虽然此次课程设计顺利完成,但是由于是我第一次作单片机课程设计,还有一些环节因为我的考虑不周是需要改进的。首先是音质问题,我设计的电子琴虽然能弹奏出不同的 7 个音节,但是 7 个音节的区别不明显,不像我们平时听到的那般逼真,我觉得问题主要出在给定时器设

23、定时初值时没有考虑执行指令所需消耗的时间,从而造成了误差,使得音质不高;其次是设计方案的简化问题,在所选方案中,我使用了8255A 来达到扩展 I/O 口的目的,虽然这对于以后扩展电子琴的功能是非常有利的,但就此次课程设计而言,由于设计要求的难度与实现的功能比较简单,在所选方案使用矩阵键盘的基础上直接使用 8031 单片机实现输入与输出,也是完全可以的,在硬件上简化可以使程序增加可读性。6 参考文献1 胡汉才. 单片机原理及接口技术M. 北京:清华大学出版社,2004.2 张友德等. 单片微型机原理、应用与实验(第三版)M. 上海:复旦大学出版社, 2000.3 邱关源. 电路(第 4 版).

24、 北京: 高等教育出版社. 2002 年4 童诗白. 模拟电子技术基础M. 北京:高等教育出版社,2001.5 阎石. 数字电子技术基础(第 4 版). 北京: 高等教育出版社. 1998 年7 设计心得为期两周的单片机课程设计结束了,虽然历时不长,但过程却充满了艰辛。通过此次课程设计,我巩固了对课本知识的理解,提高了对单片机的综合运用能力,同时也深深感受对一门课程的认识与理解不是一蹴而就的,而是要通过长期的积累与循序渐进的理解的。这学期我们开始了单片机这门课,虽然之前有微机做基础,但学习过程中还是觉得不是那么的得心应手,小小的一块单片机能够发挥如此之大的功能,让我惊叹不已。在这次课程设计之前

25、做的实验都是比较简单的,跟硬件结合也没有这么复杂,实现的功能都比较简单,相对而言这次要实现的功能相对来说比较复杂,要求掌握的知识比较综合,设计成果也有很强的应用性。对于平时学得不是那么扎实的我来说,这无疑是一个很大的挑战。 本次课程设计我们组进行的是单片机电子琴设计,从比较方案到初步定下方案,最后编出程序,从不断的运行排错到调试成功,在整个设计过程中,着实受益匪浅,不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的东西。在设计的过程中难免会遇到各种各样的问题,但是在这重重困难之中我了解到自己的真实水平,并努力提高自己。我更深入的了解了各种芯片的用法和程序的完成过程,调试方法及技

26、巧。为了实现程序,我们查找了许多 8031、8255A 芯片的资料和发音频率值等资料,了解怎样控制定时器的定时时间来产生不同频率的方波,驱动扬声器发出不同音阶的声音。编写程序的过程中,体会最深的是子程序的调用和程序的条理问题,一个程序就算功能实现了,但是也要使主程序和子程序的条理分明,易读性高,才能算一个比较好的程序。检查程序过程中,在充分思考的基础上多次实验是检查改正程序的良方。在设计扩展功能的过程中,大胆想像并且用多种思路来求解实现目标是必备的武器。同时我也明白了要想取得最后的成功,除了知识或技能,更要有克服困难的信心和毅力,有些看似“莫名其妙”的错误只要坚持尝试必定有办法解决。与此同时,

27、我也深深感受到了团队合作的重要性,我们每个人都有自己不同的专长,充分发挥每个人的长处,有目的的分工可以提高课程设计的质量和效率,互帮互助的学风可以使每个成员走最少的弯路而增长最多的知识。在这次设计中我要感谢同组的同学们,当我遇到问题的时候,他们总是不厌其烦的为我解答,一起出谋划策,使我在专业知识上查漏补缺。本次设计对于我来说是一个漫长的过程,一边是强烈的想家的情绪,一边是尽力完成这次课程设计的压力,就这样,在强烈的矛盾情绪中,我一路跌跌撞撞完成了设计任务。一路走来,我学到了很多关于单片机的知识,同时我也明白无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办

28、不到的。心有多大,世界就有多大,我会以此不断勉励自己。附录 A:硬件接线原理图(详见后面附页)附录 B:程序清单MODE EQU 082H ;8255 的方式控制字赋给 MODEPORTA EQU 08000H ;PA 口地址赋给PORTACTL EQU 08003H ;8255 命令字地址赋给CTLOUTBIT EQU 09002H ;列地址赋给OUTBITIN EQU 09001H ;行地址赋给 INPULSE EQU 55HPULSECNT EQU 50HTONEHIGH EQU 51HTONELOW EQU 52HTONE EQU 53HKEYBUF EQU 54HSPEAKER EQ

29、U PORTALJMP STARTORG 000BH ;定时器中 T0 断入口地址TIMER0INT: PUSH PSW ;保护现场 CLR TR0 ;关闭定时器 MOV TH0, TONEHIGH ;给 T0 装入定时器初值 MOV TL0, TONELOW SETB TR0 ;开定时器T0 MOV A, PULSE MOV DPTR, #SPEAKER ;DPTR 指向 SPEAKER MOVX DPTR,A ;读取 SPEAKER 状态 INC PULSE DEC PULSECNT POP PSW RETITONETABLE: DW 65061, 65111, 65156, 65176,

30、 65216, 65251, 65025TESTKEY: MOV DPTR, #OUTBIT ;DPTR 指向列地址 MOV A, #0 MOVX DPTR, A ;列地址逐列输出低电平 MOV DPTR, #IN ;DPTR 指向行地址 MOVX A, DPTR ;读行状态 CPL A ;A 取反 ANL A, #0FH ;屏蔽高四位 RETKEYTABLE: DB 16H, 15H, 14H, 0FFH DB 13H, 12H, 11H, 10H DB 0DH, 0CH, 0BH, 0AH DB 0EH, 03H, 06H, 09H DB 0FH, 02H, 05H, 08H DB 00H

31、, 01H, 04H, 07HGETKEY: MOV DPTR, #OUTBIT ;初始化地址参数 MOV P2, DPH MOV R0, #LOW(IN) MOV R1, #00100000B ;列扫描始值送R1 MOV R2, #6 ;列数 6 送 R2KLOOP: MOV A, R1 CPL A MOVX DPTR, A ;列扫描 CPL A RR A ;列扫描右移一位 MOV R1, A MOVX A, R0 ;行扫描 CPL A ANL A, #0FH JNZ GOON1 ;若有键按下则 GOON1 DJNZ R2, KLOOP ;若 R2-10,则KLOOP MOV R2, #0F

32、FH SJMP EXITGOON1: ;去抖 MOV R1, A MOV A, R2 DEC A RL A RL A MOV R2, A ;R2 = (R2-1)*4 MOV A, R1 MOV R1, #4LOOPC: RRC A JC EXIT ;若有键按下,则EXIT INC R2 DJNZ R1, LOOPC ;若 R1-10,则 LOOPCEXIT: MOV DPTR, #OUTBIT CLR A MOVX DPTR, A MOV A, R2 ;行首键号与列值的和送 A MOV DPTR, #KEYTABLE ;表头地址送 DPTR MOVC A, A+DPTR ;查表 RETSTA

33、RT: MOV SP, #70H MOV A, #MODE ;将 8255 的方式控制字送 A MOV DPTR,#CTL ;DPTR 指向 8255 命令字地址 MOVX DPTR,A ;读取 8255 的方式控制字 MOV TMOD, #01 ;方式字 01 送 TMOD MOV IE, #82H ;EA=1, IT0 = 1 MOV TONE,#0MLOOP: CALL TESTKEY ;读键盘扫描程序 JZ MLOOP ;若有键按下,则读键值 CALL GETKEY MOV B, A JZ MLOOP ;若 A= 0, 则MLOOP ANL A, #!7 JNZ MLOOP ;若有键按

34、下且键值大于 7,则MLOOP DEC B MOV A, B RL A ; A = A*2 MOV B, A MOV DPTR, #TONETABLE ;TONETABLE 首地址送DPTR MOVC A, A+DPTR ;查表 MOV TONEHIGH, A MOV TH0, A ;取高八位地址送 TH0 MOV A, B INC A MOVC A, A+DPTR MOV TONELOW, A MOV TL0, A ;取低八位地址送TL0 SETB TR0 ;开定时器 MOV PULSECNT, #100WAIT: ;等待喇叭发音完毕 MOV A,PULSECNT JNZ WAIT CLR TR0 ;关闭定时器 LJMP MLOOP END

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!