基于单片机的电子琴设计.doc_第1页
基于单片机的电子琴设计.doc_第2页
基于单片机的电子琴设计.doc_第3页
基于单片机的电子琴设计.doc_第4页
基于单片机的电子琴设计.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河南理工大学本科课程设计报告河南理工大学单片机应用与仿真训练设计报告基于单片机的电子琴设计姓 名: 学 号: 专业班级: 指导老师: 所在学院:电气工程与自动化学院2011年 月 日29摘要本设计是基于AT89S52 单片机来对电子琴的主体部分进行设计,用以实现电子琴的基本功能。本设计主要运用了AT89S52 单片机的定时、中断功能,利用定时器可发出不同频率的脉冲,不同频率的脉冲经蜂鸣器后,就会发出不同音调。 定时器按设计的定时参数产生中断,这一次中断发出脉冲低电平,下一次取反发出脉冲高电平,由于定时参数不同,就发出不同频率的脉冲。本制作中巧妙地利用了单片机的定时器,让定时器中断一次就改变蜂鸣器的状态一次,即形成矩形方波频率信号,每个频率信号对应不同的音阶,再分别由对应的按键控制,当相应的按键按下后便可产生相应的音调。本设计实现的功能是利用蜂鸣器作为发声部件,两个数码管作为显示部件,设置11个按键,实现高音、中音、低音的1、2、3、4、5、6、7的发音,并存储一首歌的内容,可以实现自动播放。关键词:AT89S52 单片机、按键、蜂鸣器、电子琴、显示Abstract This design was mainly based on electronic AT89S52 SCM design, the main part to the basic function of the organ. This design is mainly used for the timing and AT89S52 SCM interrupt function, use a different frequency timer can pulse frequency, different pulse amplification filtering through speakers, after driving circuit will be issued a different tone. According to the design of the timer interruption, the timing parameters generated a low level, a pulse interruption take the next time a pulse timing parameters, due to the high level is different in different frequency, pulse. The ingenious use of single-chip timer, let the timer interrupt time to change the state of speakers, forming a rectangular pulse frequency signal, each frequency signal corresponding different syllable, then respectively by the corresponding key control, when the corresponding key press and can produce the corresponding tones. The function of the realization of the design is to use as a voice parts, buzzer two digital tube as display parts, set up 11 key, realize high, alto, bass of 1, 2, 3, 4, 5, 6, 7 pronunciation, and storage, the contents of the song can be realized automatic playback. Keywords: AT89S52 SCM, buttons, speaker, keyboard,display摘要21概述41.1设计背景41.2 系统开发的目标41.3本系统的主要内容52系统总体方案及硬件设计52.1系统组成及总体框图52.2主要元件简介52.2.1 AT89S52简介62.2.2 蜂鸣器82.3 键盘设计102.3.1键盘的结构与工作原理102.3.2 本设计键盘所实现的功能112.4显示电路122.5复位电路122.6时钟电路133软件设计143.1系统整体程序处理流程图143.2音乐播放153.3放歌设计164元件清单175课程设计体会18参考文献19附录1源程序代码20附录2 Proteus软件仿真图281概述1.1设计背景电子琴是现代音乐中不可缺少的乐器,它是现代科技和音乐的结合。单片有具有强大的控制功能和灵活的编程实现能力,所以本设计的主要内容就是基于单片机的电子琴设计。以AT89S52单片机为核心控制元件,与键盘、扬声器、蜂鸣发声器等组成核心主控模块。本文主要对基于单片机的电子琴设计进行了分析,并介绍了基于单片机电子琴的硬件组成和软件系统,并且本文分别从原理图,主要芯片,各模块原理及各模块程序来详细阐述。一首音乐是许多不同的音阶组成的,而每个音阶对应着不同频率,这样我们可以通过利用不同频率的组合,机构称我们所想要的音乐。1.2 系统开发的目标随着生活水平的提高,在放松自己的同时又能提高各个方面的能力。学习和欣赏音乐可以在使人们得到放松的同时,提高人们的精神品质和个人素养。当代,爱好音乐的年轻人越来越多,有不少人自己练习弹奏乐器,作为业余爱好和一种放松的手段,鉴于一些乐器学习难度大,需要太多的学习时间,且其价格又太过于高昂,使得一部分有这种想法的人不得不放弃这种想法。而一些简易的电子乐器价格相对便宜,学习上手快,价格相对便宜,一般人容易负担的起,能够满足一般爱好者的需求。故简易电子乐器的研制具有一定的社会意义。单片机是在一块芯片内集成了计算机的各个功能部件,构成一种单片式的微型计算机。二十世纪八十年代以来,单片机的发展迅速,应用不断深入,新技术层出不穷。并已广泛应用到人类生活的各个领域,如家电、通讯设备、玩具、智能卡、汽车及防盗、医用保健、仪表、工业过程控制等,成为当今科学技术现代化不可缺少的重要工具。之所以以单片机电子琴为选题,目的在于从日常生活能接触到的细微处着手,通过理论与实践的结合,更明确自己的所学所用,也在实践中发现理论的不足,对目前日益广泛应用的单片机有了更加理性化和感性化的认识,使理论和实践相得益彰。通过单片机电子琴这个选题,更深层次的了解了单片机技术,以前只是有理论,实践的机会不是很多,在作单片机电子琴这个选题的过程中,更加熟练的掌握了一些单片机芯片的应用,也解决了很多以前理论和实践脱节的问题,可谓对单片机的认识有了一个小的飞跃。1.3本系统的主要内容实现电子琴发声控制系统;要求电路实现如下功能:利用蜂鸣器作为发声部件,两个数码管作为显示部件,设置10个按键,实现高音中音、低音的1、2、3、4、5、6、7的发音。并在存储一首歌曲的内容,可以实现自动播放。2系统总体方案及硬件设计2.1系统组成及总体框图 硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所需要使用到的元件,设计出来原理图、电路图。音频52单片机AT89S52LED显示按键 由于本设计的音乐发生器是由用户通过键盘输入产生的,所以节奏由用户掌握,不受程序控制。 功能选择(弹奏/播放)图2-1 程序框图2.2主要元件简介实物装置由AT89S52单片机,蜂鸣器,LED显示器,开关按键,电容,电阻,排针,排阻,二极管等元器件构成。现对相关重要元件及功能模块进行介绍如下。2.2.1 AT89S52简介1.概述 AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 图2-2 AT89S52单片机 和 在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。2.主要性能n 与MCS-51单片机产品兼容; n 8K字节在系统可编程Flash存储器; n 1000次擦写周期; n 全静态操作:0Hz-33MHz; n 三级加密程序存储器; n 32个可编程I/O口线; n 三个16位定时器/计数器; n 六个中断源; n 全双工UART串行通道; n 低功耗空闲和掉电模式; n 掉电后中断可唤醒; n 看门狗定时器; n 双数据指针; n 掉电标识符 。3.管脚说明 P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻 辑电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0不具有内部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验 时,需要外部上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2 的触发输入(P1.1/T2EX)。 在flash编程和校验时,P1口接收低8位地址字节。 引脚号第二功能: P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动 。4 个 TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用 8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。 在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p3 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。 在flash编程和校验时,P3口也接收一些控制信号。 端口引脚 第二功能: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INTO(外中断0) P3.3 INT1(外中断1) P3.4 TO(定时/计数器0) P3.5 T1(定时/计数器1) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) 此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。 RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。 ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。 PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP:外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。 XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。2.2.2 蜂鸣器1.蜂鸣器的作用:蜂鸣器是一种一体化结构的电子讯响器,采用直流电源供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。2. 蜂鸣器的电路图形符号:蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。图2-3 蜂鸣器电路示意图3. 区分有源蜂鸣器和无源蜂鸣器现在市场上出售的一种小型蜂鸣器因其体积小(直径只有11mm)、重量轻、价格低、结构牢靠,而广泛地应用在各种需要发声的电器设备、电子制作和单片机等电路中。有源蜂鸣器和无源蜂鸣器的外观如图a、b所示。 (a) 有 源 (b)无 源图2-4 蜂鸣器元件图从图a、b外观上看,两种蜂鸣器好像一样,但仔细看,两者的高度略有区别,有源蜂鸣器a,高度为9mm,而无源蜂鸣器b的高度为8mm。如将两种蜂鸣器的引脚都朝上放置时,可以看出有绿色电路板的一种是无源蜂鸣器,没有电路板而用黑胶封闭的一种是有源蜂鸣器。进一步判断有源蜂鸣器和无源蜂鸣器,还可以用万用表电阻档Rxl档测试:用黑表笔接蜂鸣器 +引脚,红表笔在另一引脚上来回碰触,如果触发出咔、咔声的且电阻只有8(或16)的是无源蜂鸣器;如果能发出持续声音的,且电阻在几百欧以上的,是有源蜂鸣器。有源蜂鸣器直接接上额定电源(新的蜂鸣器在标签上都有注明)就可连续发声;而无源蜂鸣器则和电磁扬声器一样,需要接在音频输出电路中才能发声。2.3 键盘设计单片机系统中完成控制参数输入及修改的基本输入设备,是人工干预系统的重要手段。基于我们选择的是按键式控制电路,我们使用的是独立式键盘。2.3.1键盘的结构与工作原理图2-5 键盘结构独立式键盘,按照键盘与单片机的连接方式可分为独立式键盘与矩阵式键盘。独立式键盘相互独立,每根按键占用一根I/O口线,每根I/O口线上的按键工作状态不会影响其他按键的工作状态。这种按键软件程序简单,但占用 I/O 口线较多(一根口线只能接一个键),适用于键盘应用数量较少的系统中。此系统采用十个独立按键的应用电路。其键盘程序如下:1键马上稳定接通,按键断开时也不会马上断开,由此在按键闭合与断开的瞬间会出现电压抖动,如图 6-2 所示。键盘抖动的时间一般为 510ms,抖动现象会引起 CPU 对一次键操作进行多次处理,从而可能产生错误,因而必须设法消除抖动的不良后果。通过去抖动处理,可以得到按键闭合与断开的稳定状态。去抖动的方法有硬件与软件两种:硬件方法是加去抖动电路,如可通过 RS 触发器实现硬件去抖动;软件方法是在第一次检测到键 盘按下后,执行一段 10ms 的延迟子程序后再确认该键是否确实按下,躲过抖动,待信号稳 定之后,再进行键扫描。通常多采用软件方法。此系统才通过延时,躲过抖动,再检测单片机管脚状态,读取管脚状态。3采用查询方式if(key=0)来查询是否有键按下,如果有键按下,管脚状态是低电平4键释放测试。 键盘闭合一次只能进行一次键功能操作, 因此必须等待按键释放后再进行键功能操作,否则按键闭合一次系统会连续多次重复相同的键操作。通过while(!key)来检测按键是否释放。闭合测试,检查是否有键闭合,若有键闭合,则key=0, 若无键闭合,则key=1。 5去抖动。 在第一次检测到有按键按下实现不动作,延时一段时间,再次检测按键的状态,如果仍保持闭合状态,则确认真正有键按下。当检测按键释放后,也要有510ms的延时,待后沿抖动消失后才能转入按键的处理程序。 图2-6 键抖动信号波形2.3.2 本设计键盘所实现的功能当低音键被按下后,所发的1、2、3、4、5、6、7均为低音;当中音键被按下后,所发的1、2、3、4、5、6、7均为中音;当高音键被按下后,所发的1、2、3、4、5、6、7均为高音。当音乐控制键按下后,控制1、2、3、4、5、6、7的七个音乐按键按照预定程序播放出悠扬动听的音乐,并且伴随着音乐的播放,相应的控制按键显示在显示器上。2.4显示电路图2-6显示部分原理图 图2-7 显示电路本次设计的显示电路采用LED数码管显示,LED是一种外加电压从而流过电流并发出可见光的器件。LED属于电流控制器件,使用时必须加限流电阻。LED有单个LED和八段LED之分,也有共阴和共阳两种。 常用的七段显示器的结构如图所示。发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的称为共阴极显示器。1位显示器由八个发光二极管组成,其中七个发光二极管a-g控制七个笔画的亮或暗,另一个控制一个小数点的亮或暗,这种笔画式的七段显示器能显示的字符较少,字符的开头有些失真,但控制简单,使用方便。 此外,要画出电路图,首先还要搞清楚它的引脚图的分布,在了解了正确的引脚图后才能进行正确的字型段码编码,才能显示出正确的数字来。 工作流程即为单片机查表得出数码管显示编码,传送给数码管显示,以此来实现按键与显示程序的一致性。2.5复位电路单片机复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST 通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路,时钟频率选用12MHz 时,C 取22F, R 约为1K。单片机复位电路如图2-8所示。图2-8 单片机复位电路原理图2.6时钟电路此系统的晶振电路设计是采用的内部方式,即利用芯片内部的振荡电路。单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1 和XTAL2 分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1 和C2 构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12 MHz,电容应尽可能的选择陶瓷电容,电容值约为30pF。单片机晶振电路原理图如图2-9 所示。图2-9单片机晶振电路原理图3软件设计3.1系统整体程序处理流程图 图3-1 系统程序流程图在电子琴开始工作时,系统默认电子琴处于弹奏状态,歌曲选择功能键的目的是赋予独立键盘第二功能,即对系统内置的歌曲进行选择,在放歌时能且只能通过弹奏/停止键来结束放歌,选歌时必须先按下歌曲选择功能键,在通过独立键盘来选择和切换曲目。3.2音乐播放图3-2 音乐播放流程图3.3放歌设计 图3-3 放歌设计流程图该程序实现的是单首曲目循环播放,无法在程序内部实现歌曲的切换。只能通过外部功能键来实现曲目及功能的切换,是该电子琴设计的一个缺憾。4元件清单名称单位数量备注AT89S52个1USB-A型接口母座个1晶振12M个140P IC座 2.54mm个1单片机座10uF/25V个11/4W五色环电阻 1k个11/4W五色环电阻 10k个1接插件DC3-10P个1下载线接头A09-561排阻, 560欧个1代替电路板上的RP1,470欧3*6*5微动开关 (复位,2脚)个1纸盒松香个11*40PIN2.54mm个1LED超高亮发光二极红色5毫米个1电磁式蜂鸣器个130p磁片电容个2短路块个36*6*5微动开关(4脚)个11嘉田焊锡丝( CM)个1020P排线 ( CM)个5单片机开发板个1LED数码管个 2杜邦线根115课程设计体会通过这次课程设计,我感觉收获了很多:首先,通过实践,加深对单片机系列知识及其系统的认识。这个设计题目并不是新的,但是使用的单片机不是我们理论教学中熟知的MCS-51而是较为先进的AT89S52单片机,扩大了我们的实际应用知识。从本次课程设计中能体现到一个系统开发设计的过程,让我们受益匪浅。第二,通过设计学习到了很多软件的使用。本次设计,软件部分用到了protues进行硬件设计,用keil进行程系编译,用protel进行制板,还使用到AVR-fighter for USBASP下载程序到焊接电路中。第三,提高了自己的动手能力。动手在一定程度上反映了一个人的能力,作为当代大学生,社会要求的我们不是只能说而不能做的人才;作为安徽财经大学的一员,“三能”人才标准更让我清醒地认识到,实际动手能力无比重要。从这次实物制作中,我的动手能力提高了。感谢我们的老师教育了我们单片机相关知识。 参考文献1 徐惠民,安德宁.单片微型计算机原理、接口及应用.第二版 M, 北京:北京邮电大学出版社,20002 刘乐喜.微机计算机接口技术及应用.华中科技大学出版社.2005.083 谢嘉奎.电子线路(线性部分).高等教育出版社.2004.044 潭浩强.C语言程序设计.清华大学出版社.2005.075 李群芳,肖看.单片机原理、接口及应用嵌入式系统技术基础.清华大学出版社.2005.036 冯博琴.微型计算机原理与接口技术.清华大学出版社.20047 长德,李华,李东.MCS51/98系列单片机原理与应用.机械工业出版社.19978 李群芳,张士军,黄建.单片微型计算机原理与接口技术.电子工业出版社.20029 石东海等.单片机数据通信技术从入门到精通.西安电子科技大学出版社.200210 冯建华,赵亮编.单片机应用系统设计与产品开发M. 北京:人民邮电出版社,2004.1111 刘午平,幸坤涛.小家电与洗衣机修理从入门到精通M.北京:国防工业出版社,2004.6.12 王晓明.电动机的单片机控制M.北京:航天航空大学出版社,2002.513 曾璐,李明.基于AT89C52单片机的洗衣机智能控制系统J. 家电科技, 2007.0214 傅丰林,陈建编.低频电子线路M.北京:高等教育出版社,200615 蒋力培.单片微机系统实用教程 M.北京:机械工业出版社, 2004附录1源程序代码KEYBUF EQU 30HSTH0 EQU 31HSTL0 EQU 32HSTH1EQU 33HSTL1EQU 34HTEMP EQU 35H ORG 00H LJMP START ORG 0BH LJMP INT_T0ORG 1BH JMP INT_T1START: MOV TMOD,#11H SETB ET0 SETB EASETB ET1KAI: CLR P2.1 CLR P2.0 MOV P0,#3FHAAA:MOV C,P3.3 JC WAITLJMP START1WAIT: MOV A,P3 ANL A,#0FH ORL A,#0F0H CPL AJZ KAI CJNE A,#01H,NY1 LCALL DELAY10 MOV A,P3 ANL A,#0FH ORL A,#0F0H CPL A CJNE A,#01H,NY1 SETB P2.0 CLR P2.1 MOV P0,#03HMOV SMN0,#03H LJMP KEY0NY1: LJMP KEY1 RETKEY0: MOV A,P1 CPL A JZ WAIT LCALL DELAY10 MOV A,P1 CPL A JZ WAIT JNB ACC.0,LK1 MOV KEYBUF,#0 LJMP DK1LK1: JNB ACC.1,LK2 MOV KEYBUF,#1 LJMP DK1LK2: JNB ACC.2,LK3 MOV KEYBUF,#2 LJMP DK1LK3: JNB ACC.3,LK4 MOV KEYBUF,#3 LJMP DK1LK4: JNB ACC.4,LK5 MOV KEYBUF,#4 LJMP DK1LK5: JNB ACC.5,LK6 MOV KEYBUF,#5 LJMP DK1LK6: JNB ACC.6,LK7 MOV KEYBUF,#6 LJMP DK1LK7: NOPDK1: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTRSETB P2.1 CLR P2.0 MOV P0,A MOV A,KEYBUF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE2 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 TR0DK1A: MOV A,P1 CPL A JNZ DK1A CLR TR0SETB P3.7LJMP WAITKEY1: MOV A,P3 ANL A,#0FH ORL A,#0F0H CPL A CJNE A,#02H,NY2 LCALL DELAY10 MOV A,P3 ANL A,#0FH ORL A,#0F0H CPL A CJNE A,#02H,NY2 SETB P2.0 CLR P2.1 MOV P0,#6DH MOV A,P1 CPL A JZ KEY1 JNB ACC.0,LL1 MOV KEYBUF,#0 LJMP DK2NY2: LJMP KEY2 RETLL1: JNB ACC.1,LL2 MOV KEYBUF,#1 LJMP DK2LL2: JNB ACC.2,LL3 MOV KEYBUF,#2 LJMP DK2LL3: JNB ACC.3,LL4 MOV KEYBUF,#3 LJMP DK2LL4: JNB ACC.4,LL5 MOV KEYBUF,#4 LJMP DK2LL5: JNB ACC.5,LL6 MOV KEYBUF,#5 LJMP DK2LL6: JNB ACC.6,LL7 MOV KEYBUF,#6 LJMP DK2LL7: NOPDK2: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR SETB P2.1 CLR P2.0 MOV P0,A MOV A,KEYBUF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE3 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 TR0DK2A: MOV A,P1 CPL A JNZ DK2A CLR TR0SETB P3.7LJMP KEY1KEY2: MOV A,P3 ANL A,#0FH ORL A,#0F0H CPL A CJNE A,#04H,NY3 LCALL DELAY10 MOV A,P3 ANL A,#0FH ORL A,#0F0H CPL A CJNE A,#04H,NY3 SETB P2.0 CLR P2.1MOV P0,#67H MOV A,P1 CPL A JZ KEY2 JNB ACC.0,LM1 MOV KEYBUF,#0 LJMP DK3NY3: LJMP WAIT RETLM1: JNB ACC.1,LM2 MOV KEYBUF,#1 LJMP DK3LM2: JNB ACC.2,LM3 MOV KEYBUF,#2 LJMP DK3LM3: JNB ACC.3,LM4 MOV KEYBUF,#3 LJMP DK3LM4: JNB ACC.4,LM5 MOV KEYBUF,#4 LJMP DK3LM5: JNB ACC.5,LM6 MOV KEYBUF,#5 LJMP DK3LM6: JNB ACC.6,LM7 MOV KEYBUF,#6 LJMP DK3LM7: NOPDK3: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR SETB P2.1 CLR P2.0 MOV P0,AMOV A,KEYBUF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE4 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 SE

温馨提示

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

评论

0/150

提交评论