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

上传人:laozhun 文档编号:3993587 上传时间:2023-03-30 格式:DOC 页数:25 大小:434.50KB
返回 下载 相关 举报
课程设计(论文)基于单片机的电子琴设计2.doc_第1页
第1页 / 共25页
课程设计(论文)基于单片机的电子琴设计2.doc_第2页
第2页 / 共25页
课程设计(论文)基于单片机的电子琴设计2.doc_第3页
第3页 / 共25页
课程设计(论文)基于单片机的电子琴设计2.doc_第4页
第4页 / 共25页
课程设计(论文)基于单片机的电子琴设计2.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《课程设计(论文)基于单片机的电子琴设计2.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)基于单片机的电子琴设计2.doc(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所示:琴键 电路放大电路P3.0P1.0|P1.78031时钟电路复位电路图12.2.2 整体方案2该方案通过片选端将8255A与8031单片机相连,扩张了8031单片机的I/O并行口。采用8031单片机(fosc=12MHZ)的接口实现输入功能,将一个4*6的矩阵键盘通过片选端与8031单片机相连,减少了I

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

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

8、的扩展,而方案二利用8255A扩展8031的I/O口,弥补了方案一的这个缺陷。综上所述,选用方案二位最终方案。3 硬件设计3.1 8031单片机引脚功能简介图3 8031单片机引脚图(1)8031主电源引脚Vss和Vcc Vss接地 Vcc正常操作时为+5伏电源(2)外接晶振引脚XTAL1和XTAL2 XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当采用外部振荡器时,此引脚接地。 XTAL2内部振荡电路反相放大器的输出端。是外接晶体的另一端。当采用外部振荡器时,此引脚接外部振荡源。(3)控制或与其它电源复用引脚RST/VPD,ALE/ , 和 /Vpp RST/VPD 当振荡

9、器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位在Vcc掉电期间,此引脚可接上备用电源,由VPD向内部提供备用电源,以保持内部RAM中的数据。 ALE/ 正常操作时为ALE功能(允许地址锁存)提供把地址的低字节锁存到外部锁存器,ALE 引脚以不变的频率(振荡器频率的 )周期性地发出正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。但要注意,每当访问外部数据存储器时,将跳过一个ALE脉冲,ALE 端可以驱动(吸收或输出电流)八个LSTTL电路。 对于EPROM型单片机,在EPROM编程期间,此引脚接收编程脉冲( 功能) 外部程序存储器读选通信号输出端,在从外部

10、程序存储取指令(或数据)期间, 在每个机器周期内两次有效。 同样可以驱动八LSTTL输入。 /Vpp 、 /Vpp为内部程序存储器和外部程序存储器选择端。当 /Vpp为高电平时,访问内部程序存储器,当 /Vpp 为低电平时,则访问外部程序存储器。对于EPROM型单片机,在EPROM编程期间,此引脚上加21伏EPROM编程电源(Vpp)。3.2 8255A芯片引脚功能简介 图4 8255A引脚图 图5 8255A内部结构图 RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。 PA0PA7:端口A输入输出线,一个8位的数据输出锁

11、存器/缓冲器, 一个8位的数据输入锁存器。 PB0PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。RD:读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。WR

12、:写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写8255。D0D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。 3.3 键盘模块3.3.1 键盘电路本设计采用结构原理简图如图6所示: 图6 4*6的矩阵键盘结构原理简图实验仪提供了一个64的小键盘,向列扫描码地址(0X002H)逐列输出低电平,然后从行码地址(0X001H)读回。如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高。这样就可以通过输出的列码和读取的行码来判断按下的是什么键。在判断有键按下后

13、,要有一定的延时,防止键盘抖动。地址中的X是由KEY/LED CS 决定。3.3.2 键盘抖动的消除当用手按下一个键时,如图7所示也回会出现类似的情况。这就是抖动。抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms。很容易想到,抖动问题不解决就会引起对闭合键的识别。用软件方法可以很容易地解决抖动问题,这就是通过延迟10ms来等待抖动消失,这之后,在读入键盘码。键按下前沿抖动后沿抖动闭合稳定图73.4 音频放大电路此部分的放大电路简单容易实现。可以采用一个小功率PNP型硅管9012,利用“分压偏置式工作点稳定直流通路”,达到了对静态工作点的稳定。分压电阻分别选择1K和5.5K。蜂鸣

14、器一端接+5V电压,一端接晶体管的发射极。由8255A的PA0口输出预定的方波,加到晶体管进行放大,再输出到蜂鸣器,很好的实现了频率、声音的转换。 音频放大电路原理图如图9所示:PA08255A 图8 音频放大电路3.5 时钟电路此系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。MCS-51内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容CX1和CX2构成并联谐振电路,接在放大器的反馈回路中。图9为时钟电路的原理图: 图9时钟电路原理图 图9

15、 时钟电路 3.6复位电路MS-51的复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路,如图6所示。当时钟频率选用6MHz时,C取22F,Rs约为200,Rk约为1K。复位电路原理图如图10所示: 图10 复位电路4 软件设计4.1音乐发声原理及程序流程图4.1.1音乐发声原理用电子琴可以演奏出各种美妙的音乐,而音乐是由音符组成。不同的音符是由相应频率的振动产生。由8031单片机模拟产

16、生音符,只需算出音频周期T=1/f,利用音频的变化产生不同电平驱动发声模块,来达到产生音乐的目的。利用 8031的内部定时器使其工作计数器模式(方式1)下,改变计数值TH0及TL0 以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T1/5231912s,因此只要令计数器计时956s/1s956,每计数956 次时将I/O 反相,就可得到中音DO(523Hz)。计数脉冲值与频率的关系式是:Nfi2fr 式中,N 是计数值;fi 是机器频率(晶体振荡器为12MHz 时,其频率为1MHz);fr是想要产生的频率。其计数初值T 的求法如下:T65536N65536fi2fr例如:设K6

17、5536,fi1MHz,中音DO(523Hz)的计数值。T65536N65536fi2fr6553610000002fr65536500000/fr中音 DO 的T65536500000/52364580单片机12MHZ 晶振,高中低音符与计数T0 相关的计数值如表1 所示 表1C调音符1234567频率(Hz)524588660698784880988半周期(ms)0.950.850.760.720.640.570.51定时值650616511165156651766521665251650254.1.2 音乐发声程序流程图利用定时器,可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大

18、滤波后,就会发出不同的音调。定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平。由于定时参数不同,就发出了不同频率的脉冲。本实验中按键一次,会发50个脉冲.发完后继续检测键盘,如果键还按下,继续发音。定时中断保护现场停止计时输出音频脉冲电平(高或低)音频脉冲电平反转脉冲个数减1恢复现场中断返回图11 音乐发声流程图 4.2 读键输入子程序流程图开始初始化地址参数输出列扫描信号列扫描信号移位 读入行信号 该列有键输入?否否6列扫描完?是是 返回 按照行列计算键值查表得键码等待按键释放返回 实验仪提供了一个64的小键盘,向列扫描码地址(0X002H)逐列输出低电平,

19、然后从行码地址(0X001H)读回。如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高。这样就可以通过输出的列码和读取的行码来判断按下的是什么键。在判断有键按下后,要有一定的延时,防止键盘抖动。图12 读键输入子程序流程图4.3 8255A工作程序流程图可编程通用接口芯片8255A有三个八位的并行I/O口,它有三种工作方式。本实验采用的是方式0:PA0口输出,很多I/O实验都可以通过8255来实现。开始开始置8255PA口读8255PB口置8255工作方式延时延时数据左移置8255PA口置8255工作方式延时图13 8255A工作程序流程图4.4 主程序流程图通过对电子琴

20、主体部分的电路进行设计,达到电子琴固有的基本功能。整个设计利用单片机定时器可发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同音调的原理来设计。首先,利用一个键盘电路把所需要发出声音的信号输入单片机:其次通过程序,定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平。由于定时参数不同,就发出不同频率的脉冲。 开始否检测键输入是读入键值否1键值7是用键值查表得到音频相关数据按音频数据设置定时器启动定时开始发声否已发50个脉冲?是关闭定时停止发声图14 主程序流程图5 系统测试及结论5.1硬件接线及调试1) 将键盘的片选端CS与8031单片机的片

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

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

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

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

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

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

27、,世界就有多大,我会以此不断勉励自己。附录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 EQU PORTALJMP STA

28、RTORG 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, 65216, 65251, 65025TES

29、TKEY: 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, 01H, 04H, 07HGETKEY: MOV

30、 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, #0FFH SJMP EXITGOON1: ;去抖 MOV R1,

31、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 ;查表 RETSTART: MOV SP, #70H MOV A, #MODE ;将825

32、5的方式控制字送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 ;若有键按下且键值大于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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号