基于51单片机的电子琴设计_论文.doc

上传人:1595****071 文档编号:37153061 上传时间:2022-08-30 格式:DOC 页数:36 大小:9.37MB
返回 下载 相关 举报
基于51单片机的电子琴设计_论文.doc_第1页
第1页 / 共36页
基于51单片机的电子琴设计_论文.doc_第2页
第2页 / 共36页
点击查看更多>>
资源描述

《基于51单片机的电子琴设计_论文.doc》由会员分享,可在线阅读,更多相关《基于51单片机的电子琴设计_论文.doc(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、基于51单片机的电子琴设计 电创“十年杯”电子设计 竞 赛 论 文 触摸你心爱的旋律 -电子琴设计目 录摘要-3引言-4一概述-5系统开发意义-5设计目标-5系统组成及总框图-6二、硬件设计-7系统的硬件电路设计72.1AT89C5172.2单片机的时钟振荡电路72.3.复位状态82.3.复位电路82.4 单片机最小系统92.5 键盘输入部分92.6音频功放电路10 TDA2030A放大电路-112.8扬声器11三、软件设计123.1如何用单片机实现音乐的节-13 音乐相关知识-133.1.1定时/计数器的设计和状态字定义:143.2音调数据表163.3 软件流程错误!未定义书签。3.3.1系

2、统流程图错误!未定义书签。3.4软件程序17四、电路的仿真184.1仿真运行直接播放音乐184.2电子琴功能错误!未定义书签。4.3电子琴音阶功能错误!未定义书签。五、系统调试195.1硬件调试195.2软件调试19六、课程设计体会20参考文献21附录 A(单片机简介,C程序)22附录 B(C程序)23附录 C(元件清单)31附录 D(实物图)32附录E(电源电路)-3335 摘要电子琴的设计以AT89S52单片机作为系统的核心控制部分,通过制作硬件电路和软件的设计编写,然后进行软硬件的调试运行,最终达到设计电路的乐器演奏。设计中应用中断系统和定时/计数原理控制演奏器发声,对音乐发生所必须确定

3、的音符和节拍分别用程序语言实现。可以用它来弹奏。特点是设计思路简单、清晰,成本低。关键词:AT89S52,电子琴,单片机,音乐发生器引言单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S52单片

4、机为核心控制元件,设计一个电子琴和音乐发生器双功能。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有25个按键和扬声器。 本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频

5、率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。一 概述1.1 系统开发意义该设计具有以下优点:可以随意弹奏想要表达的音乐。比传统电子琴功能更完善。制作简单,成本低。1.2 设计目标由于本设计主要用于人们娱乐方面,因此在设计上尽量使其安全以及简单易操作。其次,在这次设计可行性上进行分析如下:1、经济可行性:所谓经济可行性,即在这次设计上需要投入资金的多少,由于毕业设计是没有项目资金,没有开发经费,因此在经济上必须能够承受,比较理想化的项目对于我们毕业设计来说是不可行的。通过分析后,无论是在器件价格或是常见度上均是可行的。2、技术可行性:技术可行性主要是分析技术条件上是否能够顺利开

6、展并完成开发工作,硬件、软件能否满足设计者的需要等。通过分析各种软件环境,硬件仿真环境等均已经具备。综上所述,本系统设计目标已经明确,在经济与技术上均可行,因此本系统的开发是完全可行的。1.3系统组成及总框图硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。单片机AT89S52该设计要实现一种由单片机控制的电子琴,单片机工作于12MHZ时钟频率,使用其定时/计数器T0,工作模式为1,改变计数值TH0和TL0可以产生不同频率的脉冲信号。该设计具有25个音节的键盘,用户可以根据乐谱在键盘上进行演奏,音乐发生器会根据用户的弹奏,

7、通过扬声器将音乐播放出来。由于本例实现的音乐发生器是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。用单片机产生的音频脉冲直接驱动扬声器并不能产生所要实现的音乐,因为它没有足够的驱动能力,这就需要音频功率放大电路。按键输入音频功放电路功能选择(弹奏/播放)晶振复位电路扬声器图4.总体设计框图二、硬件设计系统的硬件电路设计2.1 AT89C51AT89S52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦

8、适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,

9、直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S52。主要性能:与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。2.2时钟振荡电路AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构

10、成自然振荡器。外接石英晶体及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1,C2虽然没有什么严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。如果使用石英晶体,我们推荐电容使用30PF10PF。在此设计中选取:12MHZ时钟频率。图5.单片机振荡电路 2.3单片机的复位及复位电路2.3.1复位状态计算机在启动运行时都需要复位,复位使中央处理器CPU和系统中的其他器件都处于一种初始状态,并从这个初始状态工作。MCS-51系列单片机有一个复位引脚RST。在MCS-51系列单片机的RST引脚上输入一个高电平信号,该高电平信号至

11、少要维持两个机器周期以上的时间,单片机被复位。2.3.2复位电路与其他计算机一样,MCS-51单片机系统的复位方法有上电自动复位、手动复位以及“看门狗”复位等。此最小系统采用手动复位电路。在系统运行过程中,有时可能对系统需要进行复位,为避免对硬件经常加电和断电造成的损害,我们可以采用手动复位。这种方法是将一个开关串联一只电阻后,再并联于电容C的两端,在系统运行过程中需要复位时只要使开关闭合,在RST引脚上就会出现一定时间的高电平信号,从而使单片机实现复位。图6.复位电路2.4 单片机最小系统由时钟振荡电路加复位电路构成单片机AT89S52的最小系统:图7. 单片机最小系统2.5 键盘输入部分本

12、系统中用到25个按键,用P0,P1,P2,P3I/O口接独立键盘即可满足需要,软件消除抖动处理,并能准确判断所需执行的相应程序。电子琴设25个按键,分别代表一些音符,包括中音段的全部音符。其电路图如下:图9.键盘模块音频功放电路2.6 TDA2030ATDA2030A是德律风根生产的音频功放电路,采用V型5 脚单列直插式塑料封装结构。如图1所示,按引脚的形状引可分为H型和V型。该集成电路广泛应用于汽车立体声收录音机、中功率音响设备,具有体积小、输出功率大、失真小等特点。TDA2030A能在最低6V最高22V的电压下工作在19V、8阻抗时能够输出16W的有效功率,THD0.1%。无疑,用它来做电

13、脑有源音箱的功率放大部分或小型功放再合适不过了。采用TDA2030音频功率放大芯片。此芯片是高保真集成功率放大器芯片,输出功率大于10W,频率响应为1014000Hz,输出电流峰值最大可达3.5A,其内部电路包含输入级、中间级、输出级,具有短路保护和过热保护,可以确保电路工作的安全可靠性。TDA2030A芯片TDA2030A引脚情况1脚是正相输入端;2脚是反向输入端 ;3脚是负电源输入端;4脚是功率输出端;5脚是正电源输入端。 图2.TDA2030A实物图和引脚图2.7扬声器 扬声器是一种把电平转变为声信号的换能器件,扬声器和性能对音质的高低音响很大。 扬声器的种类很多,按其换能原理可分为电动

14、式、静电式、电磁式、压电式等几种,后两种多用于农村有线广播网中,按频率范围可分为低音扬声器、中音扬声器,这些常在音箱中作为组合扬声器使用。在本次试验作品中使用电磁式扬声器。图10.音频功放机电路图11.扬声器实物图三 、软件设计软件是该电子琴控制系统的重要组成部分,在系统的软件设计中我们也才用了模块化设计,将系统的各部分功能编写成子模块的形式,这样增强了系统软件的可读性和可移植性。3.1如何用单片机实现音乐的节拍音乐相关知识在人类还没有产生语言时,就已经知道利用声音的高低、强弱等来表达自己的思想和感情。声带、琴弦等物体振动时会发出声波,声波通过空气传播进入人耳,人们就听到了声音。声音有噪音和乐

15、音之分振动有规律的声音是乐音,音乐中所用的声音主要是乐音。 乐音听起来有的高、有的低,这就叫做音高。音高是由发声物体振动频率的高低决定的,频率高声音就高,频率低声音就低。音持续时间的长短即时值,一般用拍数表示。休止符表示暂停发音。一首音乐是由许多不同的音符组成的,而每个音符对应着不同的频率,这样就可以利用不同的频率组合,加以拍数对应的延时,构成音乐。如果单片机要自己播放音乐就必须考虑到节拍的设置。对于AT80C51而言要产生一定频率的方波一般是先将某口线输出高电平,延迟一段时间后再输出低电平。通过改变延迟时间可以改变单片机的输出频率。单片机的延时主要有两种方式,即软件延时和使用定时/计数器延时

16、。其中软件延时不是很精确,而电子琴电路由于每个音符的频率值要求比较严格,因此我们选用定时/计数器延时。由于本课程设计是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。因此,我们只需弄清楚音乐中的音符和对应的频率,利用单片机的定时/计数器来产生方波频率信号即可。要产生相应的音频脉冲,只需要计算出某音频的周期,再除以2。利用计数器计时半周期,计满时使P2.0反向,然后重复计时再反向。本例中,单片机工作在12MHz时钟,使用定时器/计数器T0,工作模式为1,改变计数初值TH0、TL0就可产生不同频率的脉冲信号。例如低3MI音,频率为330Hz,其周期T=1/f=1/330=3030u

17、s,计数值N=3030/2=1515,所以每计数1515次P2.0反向。计数初值T=65536-N=64021。C调的各音符频率与计数值T的对照表如表1所示。表1 C调各音符频率与计数值T对照表音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低 1 DO26263628# 4 FA#74064860# 1 DO#27763731中 5 SO78464898低 2 RE29463853# 5 SO#83164934# 2 RE#31163928中 6 LA88064968低 3 M33064021# 693264994低 4 FA34964103中 7 SI98865030# 4 F

18、A#37064185高 1 DO104665058低 5 SO39264260# 1 DO#110965085# 5 SO#41564331高 2 RE117565110低 6 LA44064400# 2 RE#124565134# 646664463高 3 M131865157低 7 SI49464524高 4 FA139765178中1 DO52364580# 4 FA#148065198# 1 DO#55464633高 5 SO156865217中 2 RE58764684# 5 SO#166165235# 2 RE#62264732高 6 LA176065252中 3 M6596477

19、7# 6186565268中 4 FA69864820高 7 SI1967652833.2定时/计数器的设计和状态字定义:若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。就可在P1.0引脚上得到此频率的脉冲。利用AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T1/5231912s,因此只要令计数器计时956s/1s956,每计数956次时将I/O反相,就可得到中音DO(52

20、3Hz)。计数脉冲值与频率的关系式是:Nfi2fr,式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。其计数初值T的求法如下:T65536N65536fi2fr例如:设K65536,fi1MHz,求中音DO(261Hz)。T65536N65536fi2fr6553610000002fr65536500000/fr,中音DO的T65536500000/52364580。单片机12MHZ晶振,中音符与计数T0相关的计数值如表所示:表2 音符表音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低1DO26263628# 4 FA#7406

21、4860#1DO#27763731中 5 SO78464898低2RE29463835# 5 SO#83164934#2 RE#31163928中 6 LA88064968低 3 M33064021# 693264994低 4 FA34964103中 7 SI98865030# 4 FA#37064185高 1 DO104665058低 5 SO39264260# 1 DO#110965085# 5 SO#41564331高 2 RE117565110低 6 LA44064400# 2 RE#124565134# 646664463高 3 M131865157低 7 SI49464524高 4

22、 FA139765178中 1 DO52364580# 4 FA#148065198# 1 DO#55464633高 5 SO156865217中 2 RE58764684# 5 SO#166165235# 2 RE#62264732高 6 LA176065252中 3 M65964777# 6186565268中 4 FA69864820高 7 SI196765283采用查表程序进行查表时,可以为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据:低音019之间,中音在2039之间,高音在4059之间用单片机播放音乐,或者弹奏电子琴,实际上是按照特定的频率,输出一连串的方波。为

23、了输出合适的方波,首先应该知道音符与频率的关系。3.3音调数据表单片机发出不同频率的方波,人听起来,就是不同的音调。上表中的频率数值,有些过多,去掉不常用的黑键频率,只是把白键对应的数据存放在单片机中,即可满足绝大部分的应用需求。定义音调数据表的程序如下: DW 63628,63835,64021,64103,64260,64400,64524 ;64580,低音区:1 2 3 4 5 6 7 DW 64580,64671,64777,64820,64898,64968,65030 65058中音区:1 2 3 4 5 6 7 DW 65058,65110,65157,65178,65217,

24、65252,65283 65312高音区:1 2 3 4 5 6 7把这个数据表,放在程序中,需要播音的时候,就从表中取出一个数据送到定时器,当定时器溢出中断的时候,再对输出引脚取反,那么,在扬声器中,即可听到上表中频率的声音。音乐的音拍,一个节拍为单位(C调):表3 节奏表曲调值DELAY 曲调值DELAY调4/4125ms 调4/462ms调3/4187ms 调3/494ms调2/4250ms 调2/4125ms图12.软件设计系统流程图3.4软件程序本系统单片机软件在设计中是用C语言编写。电子琴控制系统控制和播放内容的程序。见附录。四、电路的仿真Proteus的ISIS事一款Labcen

25、ter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,可以给我们做电路设计提供方便快捷的仿真效果,让我们事半功倍。 目前支持的单片机类型有:680以及各种外围芯片0系列、8051系列、AVR系列、PIC12系列、HC11系列。4.1仿真运行直接播放音乐:五、系统调试 电路调试是整个系统功能否实现的关键步骤,我们将整个调试过程分为三大部分:硬件调试、软件调试和综合调试。5.1硬件调试硬件调试主要是针对单片机部分进行调试。在上电前,先确保电路中不在断路或短路情况,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。在这部分调试中主要使用的工具是万用表,用来

26、完成检测电路中是否存在断路或者短路情况等。注意焊点之间,确保焊点没有短接在一起,同时注意焊点的美观,确保没有开路以及短路的现象出现。在确保硬件电路正常,无异常情况(断路或短路)方可上电调试,上电调试的目的是检验电路是否接错,同时还要检验原理是否正确,在本次设计中,上电调试主要键盘单片机控制部分、数码管点亮部分、和音频转换电路硬件调试。1、数码管LED电路调试:接通电源,随机按下按钮可以看到数码管显示数字。2、键盘单片机控制部分调试:上电后,随机按动键盘可以发现各个按键对应的音正确。5.2软件调试调试主要方法和技巧:通常一个调试程序应该具备至少四种性能:跟踪、断点、查看变量、更改数值。整个程序是

27、一个主程序调用各个子程序实现功能的过程,要使主程序和整个程序都能平稳运行,各个模块的子程序的正确与平稳运行必不可少,所以在软件调试的最初阶段就是把各个子程序模块进行分别调试。六、课程设计体会通过本次的设计,让我大大提高了对电子产品的兴趣。也让我的动手能力再次的提高。在设计前,我大量的参考了很多参考资料,这些参考资料对我的帮助很大,所以在设计前,做大量的功课是很有必要的。在设计中不管是软件调试还是硬件调试都让我受益匪浅,对Professional、MedWin V3.0、Protel 99se这些软件的使用也越来越熟练。这次设计把所学过的知识都结合起来了,不仅用到单片机应用技术的知识,还有模拟电

28、子、数字电子的知识也运用到了,让我再复习了一遍这几门课程。也让我的知识巩固了一遍。总的来说,在这次的单片机课程设计里,让我对单片机的了解更加的深刻。在遇到问题的时候,要冷静,然后努力搜集资料,尽自己最到的努力解决问题!这次课程设计也让我清楚的认识了自己在单片机学习中存在的不足,这些不足需要我去不断的的努力改善。参考文献1王静霞. 单片机应用技术(C语言版). 北京:电子工业出版社. 2009.5 2韩志军 、沈晋源 、王振波 .单片机应用系统设计-入门向导与设计实例.北京:机械工业出版社.2005.3 张毅刚,MCS-51单片机应用设计M哈尔滨工业大学出版社,20044 邓红. 单片机实验与应

29、用设计教程 出版日期:2004年05月第1版5 以及其他的网上资源附录 A单片机89C51的简介AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4k Bytes Flash片

30、内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。该系列单片机引脚与封装如下图所示:主要引脚功能: 1、 RS

31、T(9):复位输入。当振荡器复位时,要保持RST引脚2个机器周期的高电平时间;2、 XTAL1(19):反向振荡器放大器的输入及内部时钟工作电路的输入; 3、 XTAL2(18):来自反向振荡器的输出;4、 P1口(18):P1口是从内部提供上拉电阻器的8位双向I/O口,P1口缓冲器能接收和输出4个TTL门电流;5、 /:当保持低电平时,单片机只访问外部程序存储器。为高电平时,单片机只访问内部程序存储器。附录 BC语言程序#include reg51.h/sbit P2_0=P20;sbit S1 = P00;sbit S2 = P01;sbit S3 = P02;sbit S4 = P03;

32、sbit S5 = P04;sbit S6 = P05;sbit S7 = P06;sbit S1_0=P10;sbit S2_1=P11;sbit S3_2=P12;sbit S4_3=P13;sbit S5_4=P14;sbit S6_5=P15;sbit S7_6=P16;sbit S10=P21;sbit S20=P22;sbit S30=P23;sbit S40=P24;sbit S50=P25;sbit S60=P26;sbit S70=P27;sbit f1=P30;sbit f2=P31;sbit f3=P32;sbit f4=P33;sbit f5=P34;sbit OUTP

33、UT=P20;unsigned char cz_1,cz_2,rfdata,key;/延时函数*/void delay_10ms()unsigned int d=1000; while(-d);void delay_x10ms(unsigned char x)unsigned int i;for(i=0;ix;i+)delay_10ms(); void delay_1us() /1us延时函数_Nop();void delay_nus(unsigned int n) /N us延时函数unsigned int i=0;for (i=0;in;i+)delay_1us();void delay_

34、1ms()unsigned int d=100; while(-d);void delay_x1ms(unsigned int x)unsigned int i;for(i=0;ix;i+)delay_1ms(); void delay_100us()unsigned int d=10; while(-d);void delay_x100us(unsigned int x)unsigned int i;for(i=0;ix;i+) delay_100us(); void delay_100us_i()unsigned int d=10; while(-d);void delay_x100us_

35、i(unsigned int x)unsigned int i;for(i=0;ix;i+) delay_100us_i(); /-/void anjian() if(S1=0) delay_x1ms(3);if(S1=0)EA=1;cz_1=0xf8; cz_2=0x94; while(S1=0);delay_x1ms(3);if(S1) EA=0; if(S2=0) delay_x1ms(3);if(S2=0)EA=1;cz_1=0xf9; cz_2=0x5c; while(S2=0);delay_x1ms(3);if(S2) EA=0; if(S3=0) delay_x1ms(3);if

36、(S3=0)EA=1;cz_1=0xfa; cz_2=0x1a; while(S3=0);delay_x1ms(3);if(S3) EA=0; if(S4=0) delay_x1ms(3);if(S4=0)EA=1;cz_1=0xfa; cz_2=0x6a; while(S4=0);delay_x1ms(3);if(S4) EA=0; if(S5=0) delay_x1ms(3);if(S5=0)EA=1;cz_1=0xfb; cz_2=0x00; while(S5=0);delay_x1ms(3);if(S5) EA=0; if(S6=0) delay_x1ms(3);if(S6=0)EA=

37、1;cz_1=0xfb; cz_2=0x8c; while(S6=0);delay_x1ms(3);if(S6) EA=0; if(S7=0) delay_x1ms(3);if(S7=0)EA=1;cz_1=0xfc; cz_2=0x0e; while(S7=0);delay_x1ms(3);if(S7) EA=0; if(S1_0=0) delay_x1ms(3);if(S1_0=0)EA=1;cz_1=0xfc; cz_2=0x4a; while(S1_0=0);delay_x1ms(3);if(S1_0) EA=0; if(S2_1=0) delay_x1ms(3);if(S2_1=0)

38、EA=1;cz_1=0xfc; cz_2=0xae; while(S2_1=0);delay_x1ms(3);if(S2_1) EA=0; if(S3_2=0) delay_x1ms(3);if(S3_2=0)EA=1;cz_1=0xfd; cz_2=0x08; while(S3_2=0);delay_x1ms(3);if(S3_2) EA=0; if(S4_3=0) delay_x1ms(3);if(S4_3=0)EA=1;cz_1=0xfd; cz_2=0x30; while(S4_3=0);delay_x1ms(3);if(S4_3) EA=0; if(S5_4=0) delay_x1m

39、s(3);if(S5_4=0)EA=1;cz_1=0xfd; cz_2=0x80; while(S5_4=0);delay_x1ms(3);if(S5_4) EA=0; if(S6_5=0) delay_x1ms(3);if(S6_5=0)EA=1;cz_1=0xfd; cz_2=0xc6; while(S6_5=0);delay_x1ms(3);if(S6_5) EA=0; if(S7_6=0) delay_x1ms(3);if(S7_6=0)EA=1;cz_1=0xfe; cz_2=0x02; while(S7_6=0);delay_x1ms(3);if(S7_6) EA=0; if(S1

40、0=0) delay_x1ms(3);if(S10=0)EA=1;cz_1=0xfe; cz_2=0x2a; while(S10=0);delay_x1ms(3);if(S10) EA=0; if(S20=0) delay_x1ms(3);if(S20=0)EA=1;cz_1=0xfe; cz_2=0x5c; while(S20=0);delay_x1ms(3);if(S20) EA=0; if(S30=0) delay_x1ms(3);if(S30=0)EA=1;cz_1=0xfe; cz_2=0x84; while(S30=0);delay_x1ms(3);if(S30) EA=0; if(S40=0) delay_x1ms(3);if(S40=0)EA=1;cz_1=0xfe; cz_2=0x98; while(S40=0);delay_

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁