




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于51单片机的复音电子琴课程设计刘汇鹏课程组1班指导老师:宋荣摘要:本设计是基于数字电路为基础,以单片机技术为核心,软件设计采用模块化结构,采用C语言编程,通过按键控制,可以发出两个不同的声音,并实现音乐盒的功能。内容上首先描述系统硬件工作原理,介绍各个接口模块的功能,而后介绍软件上的各个功能模块。关键字:单片机,电子琴,STC90C51一 绪论 随着科学技术的迅速发展,尤其是在电子领域上的发展,让电器走进千家万户,越来越多的物件可以用电器用品代替,电子乐器渐渐代替传统乐器出现在众人眼前,电子乐器相比于传统乐器更轻便,也更加便宜,让乐器走进千家万户,这次制作的核心在于单片机,单片机体积小,性能好,造价便宜。并且能实现强大的功能。复音电子琴不仅能够实现复音效果,还能成为一个音乐盒,这也是得益于单片机的强大功能。二 设计要求与方案(一) 设计要求1能够实现电子琴的复音功能。2能够实现音乐盒的功能(二) 设计方案1. 关于电子琴的发声原理本作品采用了用单片机模块产生的频率进行输出,蜂鸣器作为输入,蜂鸣器收到来自单片机控制端口的不同频率的信号,会发出对应的声音频率,这就完成了从电信号转换成声音信号的过程。2. 关于电子琴的复音功能复音是指由许多纯音组成的声音。复音的频率用组成这个复音的基音的频率来表示。一般乐器发出的声音都是复音。由于单片机程序执行是按照顺序执行,所以本作品利用两个单片机模块,一个单片机模块控制一个蜂鸣器,再用8个独立按键作为键盘,当两个不同按键被按下的时候,两个蜂鸣器能几乎同时发出这两个声音。在空间中产生和弦效果。使之相比于单音电子琴能使旋律变得更加丰富。3. 关于音乐盒功能按下按键后能够播放音乐。利用单片机片内存储功能,通过软件编程的方式,将一些曲目编写在片内ROM里,通过按下控制键加普通按键,实现8个独立按键的功能转换。4. 关于单片机芯片的选择方案一:采用89C51芯片作为硬件核心,采用FlashROM,内部具有4KBROM存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。方案二: 采用AT89S52,片内ROM全都采用FlashROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为8KBROM存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。所以选择采用AT89S52作为主控制系统。三 硬件设计(一) 系统硬件概述1. 硬件电路设计框图蜂鸣器单片机A单片机B蜂鸣器独立按键图1 硬件电路设计框图2. 硬件电路设计概述硬件电路由两片AT89C52单片机芯片为核心,接上复位电路,晶振电路,按键电路以及发声电路组成的。通过软件编程,编写代码烧写到单片机芯片里,配合复位电路和晶振电路组成单片机最小系统,晶振产生的频率由单片机进行程序控制,得到想要的电信号频率。通过两个单片机控制端,使单片机能够准确得到两个按键信号,并使对应的蜂鸣器发声。(二) 主要单元电路设计1. 晶振电路设计晶振电路如图2所示图2 晶振电路2. 复位电路设计复位电路如图3所示,使两片单片机芯片共用一个复位按键,相比互相独立的两个复位按键的单片机模块更加便捷。图3 复位电路设计3. 按键电路设计按键电路如图4所示,使两片单片机共同对独立按键的信号进行实时扫描,读取信号进行下一步操作。图4 按键电路设计四 软件设计(一) 单片机发音原理1音调的确定 音调就是我们常说的音高。它是由频率来确定的!我们可以查出各个音符所对应的相应的频率,那么现在就需要我们来用51来发出相应频率的声音!我们常采用的方法就是通过单片机的定时器定时中断,将单片机上对应蜂鸣器的I/O口来回取反,或者说来回清零,置位,从而让蜂鸣器发出声音,为了让单片机发出不同频率的声音,我们只需将定时器予置不同的定时值就可实现。那么怎样确定一个频率所对应的定时器的定时值呢? 以标准音高A为例:A的频率f=440Hz,其对应的周期为:T=1/f=1/440=2272s那么,单片机上对应蜂鸣器的I/O口来回取反的时间应为:t=T/2=2272/2=1136s,也就是清零、置位在一个周期内完成。这个时间t也就是单片机上定时器应有的中断触发时间。一般情况下,单片机奏乐时,其定时器为工作方式1,它以振荡器的十二分频信号为计数脉冲。设振荡器频率为f0,则定时器的予置初值由下式来确定:t=12*(TALLTHL)/f0式中TALL=216=65536,THL为定时器待确定的计数初值。因此定时器的高低计数器的初值为:TH=THL/256=(TALL-t*f0/12)/256TL=THL%256=(TALL-t*f0/12)%256将t=1136s代入上面两式(注意:计算时应将时间和频率的单位换算一致)即可求出标准音高A。在单片机晶振频率f0=12Mhz,定时器在工作方式1下的时器高低计数器的予置初值为:TH440Hz=(655361136*12/12)/256=FBHTL440Hz=(655361136*12/12)%256=90H就这样,我们通过延时,发出了我们所需要的频率,同理可求出其他音频。如图5所示:图5 音符频率表(二) 软件流程图软件流程图如图6,图7所示开始开始 N N 判断是否有按键按下? 判断是否有按键按下? Y Y 延时去抖 延时去抖 发出对应按键的声音 发送标志位为1的命令 判断标志位是否为1? 发出对应按键的声音 N N 判断是否松手 Y 结束图6 电子琴流程图开始 N 判断控制位是否为1 Y N 判断是否有按键按下 Y 播放音乐 结束 图7 音乐盒程序流程图(三) 程序代码1. 主单片机程序代码#include unsigned char temp;/unsigned char key;unsigned char STH0;unsigned char STL0;unsigned int code tab= /音符表0,/DO DO# RE RE# MI FAFA# SOSO# LA LA# SI63628,63731,63853,63928,64021,64103,64185,64260,64331,64400,64463,64524,64580,64633,64684,64732,64777,64820,64860,64898,64934,64968,64994,65030,65058,65085,65110,65134,65157,65178,65198,65217,65235,65252,65268,65283,65297,65311,65323,65335,65346,65357,65367,65377,65385,65394,65402,65409;void delaymusic(unsigned char d) unsigned long e,f;for(e=0;ed;e+)for(f=0;f1000;f+);/音符定义void x0(unsigned char g)EA=0;STH0=tab0/256;STL0=tab0%256;TR0=1;delaymusic(g);TR0=0;void m1(unsigned char g)EA=1;STH0=tab1/256;STL0=tab1%256;TR0=1;delaymusic(g);TR0=0;void m1_(unsigned char g)EA=1;STH0=tab2/256;STL0=tab2%256;TR0=1;delaymusic(g);TR0=0;void m2(unsigned char g)EA=1;STH0=tab3/256;STL0=tab3%256;TR0=1;delaymusic(g);TR0=0;void m2_(unsigned char g)EA=1;STH0=tab4/256;STL0=tab4%256;TR0=1;delaymusic(g);TR0=0;void m3(unsigned char g)EA=1;STH0=tab5/256;STL0=tab5%256;TR0=1;delaymusic(g);TR0=0;void m4(unsigned char g)EA=1;STH0=tab6/256;STL0=tab6%256;TR0=1;delaymusic(g);TR0=0;void m4_(unsigned char g)EA=1;STH0=tab7/256;STL0=tab7%256;TR0=1;delaymusic(g);TR0=0;void m5(unsigned char g)EA=1;STH0=tab8/256;STL0=tab8%256;TR0=1;delaymusic(g);TR0=0;void m5_(unsigned char g)EA=1;STH0=tab9/256;STL0=tab9%256;TR0=1;delaymusic(g);TR0=0;void m6(unsigned char g)EA=1;STH0=tab10/256;STL0=tab10%256;TR0=1;delaymusic(g);TR0=0;void m6_(unsigned char g)EA=1;STH0=tab11/256;STL0=tab11%256;TR0=1;delaymusic(g);TR0=0;void m7(unsigned char g)EA=1;STH0=tab12/256;STL0=tab12%256;TR0=1;delaymusic(g);TR0=0;void n1(unsigned char g)EA=1;STH0=tab13/256;STL0=tab13%256;TR0=1;delaymusic(g);TR0=0;void n1_(unsigned char g)EA=1;STH0=tab14/256;STL0=tab14%256;TR0=1;delaymusic(g);TR0=0;void n2(unsigned char g)EA=1;STH0=tab15/256;STL0=tab15%256;TR0=1;delaymusic(g);TR0=0;void n2_(unsigned char g)EA=1;STH0=tab16/256;STL0=tab16%256;TR0=1;delaymusic(g);TR0=0;void n3(unsigned char g)EA=1;STH0=tab17/256;STL0=tab17%256;TR0=1;delaymusic(g);TR0=0;void n4(unsigned char g)EA=1;STH0=tab18/256;STL0=tab18%256;TR0=1;delaymusic(g);TR0=0;void n4_(unsigned char g)EA=1;STH0=tab19/256;STL0=tab19%256;TR0=1;delaymusic(g);TR0=0;void n5(unsigned char g)EA=1;STH0=tab20/256;STL0=tab20%256;TR0=1;delaymusic(g);TR0=0;void n5_(unsigned char g)EA=1;STH0=tab21/256;STL0=tab21%256;TR0=1;delaymusic(g);TR0=0;void n6(unsigned char g)EA=1;STH0=tab22/256;STL0=tab22%256;TR0=1;delaymusic(g);TR0=0;void n6_(unsigned char g)EA=1;STH0=tab23/256;STL0=tab23%256;TR0=1;delaymusic(g);TR0=0;void n7(unsigned char g)EA=1;STH0=tab24/256;STL0=tab24%256;TR0=1;delaymusic(g);TR0=0;void x1(unsigned char g)EA=1;STH0=tab25/256;STL0=tab25%256;TR0=1;delaymusic(g);TR0=0;void x1_(unsigned char g)EA=1;STH0=tab26/256;STL0=tab26%256;TR0=1;delaymusic(g);TR0=0;void x2(unsigned char g)EA=1;STH0=tab27/256;STL0=tab27%256;TR0=1;delaymusic(g);TR0=0;void x2_(unsigned char g)EA=1;STH0=tab28/256;STL0=tab28%256;TR0=1;delaymusic(g);TR0=0;void x3(unsigned char g)EA=1;STH0=tab29/256;STL0=tab29%256;TR0=1;delaymusic(g);TR0=0;void x4(unsigned char g)EA=1;STH0=tab30/256;STL0=tab30%256;TR0=1;delaymusic(g);TR0=0;void x4_(unsigned char g)EA=1;STH0=tab31/256;STL0=tab31%256;TR0=1;delaymusic(g);TR0=0;void x5(unsigned char g)EA=1;STH0=tab32/256;STL0=tab32%256;TR0=1;delaymusic(g);TR0=0;void x5_(unsigned char g)EA=1;STH0=tab33/256;STL0=tab33%256;TR0=1;delaymusic(g);TR0=0;void x6(unsigned char g)EA=1;STH0=tab34/256;STL0=tab34%256;TR0=1;delaymusic(g);TR0=0;void x6_(unsigned char g)EA=1;STH0=tab35/256;STL0=tab35%256;TR0=1;delaymusic(g);TR0=0;void x7(unsigned char g)EA=1;STH0=tab36/256;STL0=tab36%256;TR0=1;delaymusic(g);TR0=0;void y1(unsigned char g)EA=1;STH0=tab37/256;STL0=tab37%256;TR0=1;delaymusic(g);TR0=0;void y1_(unsigned char g)EA=1;STH0=tab38/256;STL0=tab38%256;TR0=1;delaymusic(g);TR0=0;void y2(unsigned char g)EA=1;STH0=tab39/256;STL0=tab39%256;TR0=1;delaymusic(g);TR0=0;void y2_(unsigned char g)EA=1;STH0=tab40/256;STL0=tab40%256;TR0=1;delaymusic(g);TR0=0;void y3(unsigned char g)EA=1;STH0=tab41/256;STL0=tab41%256;TR0=1;delaymusic(g);TR0=0;void y4(unsigned char g)EA=1;STH0=tab42/256;STL0=tab42%256;TR0=1;delaymusic(g);TR0=0;void y4_(unsigned char g)EA=1;STH0=tab43/256;STL0=tab43%256;TR0=1;delaymusic(g);TR0=0;void y5(unsigned char g)EA=1;STH0=tab44/256;STL0=tab44%256;TR0=1;delaymusic(g);TR0=0;void y5_(unsigned char g)EA=1;STH0=tab45/256;STL0=tab45%256;TR0=1;delaymusic(g);TR0=0;void y6(unsigned char g)EA=1;STH0=tab46/256;STL0=tab46%256;TR0=1;delaymusic(g);TR0=0;void y6_(unsigned char g)EA=1;STH0=tab47/256;STL0=tab47%256;TR0=1;delaymusic(g);TR0=0;void y7(unsigned char g)EA=1;STH0=tab48/256;STL0=tab48%256;TR0=1;delaymusic(g);TR0=0;void delay(unsigned int a) unsigned int b,c; for(b=0;ba;b+) for(c=0;c1000;c+);sbit flag=P00;sbit ctrl=P11;void main(void) /主程序TMOD=0x01;EA=1;ET0=1;while(1)if(ctrl=1)if(P2&0x01)=0x00)/检测按键确实按下,进行按键处理delay(10); /去抖动if(P2&0x01)=0x00)STH0=tab25/256;/计算音符对应的定时器计数值STL0=tab25%256;TR0=1;flag=0;while(P2&0x01)=0x00);/松手检测TR0=0;P1=0xff;if(P2&0x02)=0x00)/检测按键确实按下,进行按键处理delay(10);if(P2&0x02)=0x00)/去抖动STH0=tab27/256;/计算音符对应的定时器计数值STL0=tab27%256;TR0=1;flag=0;while(P2&0x02)=0x00);/松手检测TR0=0;P1=0xff; if(P2&0x04)=0x00)/检测按键确实按下,进行按键处理delay(10);if(P2&0x04)=0x00)/去抖动STH0=tab29/256;/计算音符对应的定时器计数值STL0=tab29%256;TR0=1;flag=0;while(P2&0x04)=0x00);/松手检测TR0=0;P1=0xff; if(P2&0x08)=0x00)/检测按键确实按下,进行按键处理delay(10);if(P2&0x08)=0x00)/去抖动STH0=tab30/256;/计算音符对应的定时器计数值STL0=tab30%256;TR0=1;flag=0;while(P2&0x08)=0x00);/松手检测TR0=0;P1=0xff; if(P2&0x10)=0x00)/检测按键确实按下,进行按键处理delay(10);if(P2&0x10)=0x00)/去抖动STH0=tab32/256;/计算音符对应的定时器计数值STL0=tab32%256;TR0=1;flag=0;while(P2&0x10)=0x00);/松手检测TR0=0;P1=0xff; if(P2&0x20)=0x00)/检测按键确实按下,进行按键处理delay(10);if(P2&0x20)=0x00) /去抖动STH0=tab34/256;/计算音符对应的定时器计数值STL0=tab34%256;TR0=1;flag=0;while(P2&0x20)=0x00);/松手检测TR0=0;P1=0xff; if(P2&0x40)=0x00)/检测按键确实按下,进行按键处理delay(10);if(P2&0x40)=0x00) /去抖动STH0=tab36/256;/计算音符对应的定时器计数值STL0=tab36%256;TR0=1;flag=0;while(P2&0x40)=0x00);/松手检测TR0=0;P1=0xff; if(P2&0x80)=0x00)/检测按键确实按下,进行按键处理delay(10);if(P2&0x80)=0x00) /去抖动STH0=tab37/256;/计算音符对应的定时器计数值STL0=tab37%256;TR0=1;flag=0;while(P2&0x80)=0x00);/松手检测TR0=0;P1=0xff; else if(ctrl=0) if(P2&0x01)=0x00)/检测按键确实按下,进行按键处理delay(10); /去抖动if(P2&0x01)=0x00) y2(5);x2(5);x5(5);y2(5);y1(5);x2(5);x5(5);y1(5);x7(5);x2(5);x5(5);x7(5);y1(5);x2(5);x5(5);y1(5); y2(5);x3(5);x6(5);y2(5);y1(5);x3(5);x6(5);y1(5);x7(5);x2(5);x5(5);x7(5);y1(5);x2(5);x6(5);y1(5); y3(5);x4_(5);x6(5);y3(5);y2(5);x4_(5);x6(5);y2(5);y1(5);x4_(5);x6(5);y1(5);y2(5);x4_(5);x6(5);y2(5); y3(4);x4(5);x5_(5);y3(5);y2(5);x4(5);x5_(5);y2(5);y1(5);x1(5);x4(5);y1(5); y2(5);x2(5);x4(5);y2(5); y2(5);x2(5);x5(5);y2(5);y1(5);x2(5);x5(5);y1(5);x7(5);x2(5);x5(5);x7(5);y1(5);x2(5);x5(5);y1(5); y2(5);x3(5);x6(5);y2(5);y1(5);x3(5);x6(5);y1(5);x7(5);x2(5);x5(5);x7(5);y1(5);x2(5);x6(5);y1(5); y3(5);x4_(5);x6(5);y3(5);y2(5);x4_(5);x6(5);y2(5);y1(5);x4_(5);x6(5);y1(5);y2(5);x4_(5);x6(5);y2(5); y3(5);x4(5);x5_(5);y3(5);y2(5);x4(5);x5_(5);y2(5);y4(17);y3(17);y1(17);y1(17);y1(17); P1=0xff;if(P2&0x02)=0x00)delay(10); /去抖动if(P2&0x02)=0x00)y5(8);y3(4);y4(4);y5(8);y3(4);y4(4);y5(4);x5(4);x6(4);x7(4);y1(4);y2(4);y3(4);y4(4);y3(8);y1(4);y2(4);y3(8);x3(4);x4(4);x5(4);x6(4);x5(4);x4(4);x5(4);y1(4);x7(4);y1(4);x6(8);y1(4);x7(4);x6(8);x5(4);x4(4);x5(4);x4(4);x3(4);x4(4);x5(4);x6(4);x7(4);y1(4);x6(8);y1(4);x7(4);y1(8);x7(4);y1(4);x7(4);x6(4);x7(4);y1(4);y2(4);y3(4);y4(4);y5(4);y5(8);y3(4);y4(4);y5(8);y3(4);y4(4);y5(4);x5(4);x6(4);x7(4);y1(4);y2(4);y3(4);y4(4);y3(8);y1(4);y2(4);y3(8);x3(4);x4(4);x5(4);x6(4);x5(4);x4(4);x5(4);y1(4);x7(4);y1(4);x6(8);y1(4);x7(4);x6(8);x5(4);x4(4);x5(4);x4(4);x3(4);x4(4);x5(4);x6(4);x7(4);y1(4);x6(8);y1(4);x7(4);y1(8);x7(4);y1(4);x7(4);x6(4);x7(4);y1(4);y2(4);y3(4);y4(4);y5(4);P1=0xff; void t0(void) interrupt 1 /定时器T0中断服务函数TH0=STH0;TL0=STL0;P1_0=P1_0; /产生方波2. 副单片机程序代码#include unsigned char temp;unsigned char STH0;unsigned char STL0;unsigned int code tab= /音符表0,/DO DO# RE RE# MI FAFA# SOSO# LA LA# SI63628,63731,63853,63928,64021,64103,64185,64260,64331,64400,64463,64524,64580,64633,64684,64732,64777,64820,64860,64898,64934,64968,64994,65030,65058,65085,65110,65134,65157,65178,65198,65217,65235,65252,65268,65283,65297,65311,65323,65335,65346,65357,65367,65377,65385,65394,65402,65409;void delay(unsigned int a) unsigned int b,c; for(b=0;ba;b+) for(c=0;c1000;c+);void delaymusic(unsigned char d) unsigned long e,f;for(e=0;ed;e+)for(f=0;f1030;f+);/音符定义void x0(unsigned char g)EA=0;STH0=tab0/256;STL0=tab0%256;TR0=1;delaymusic(g);TR0=0;void m1(unsigned char g)EA=1;STH0=tab1/256;STL0=tab1%256;TR0=1;delaymusic(g);TR0=0;void m1_(unsigned char g)EA=1;STH0=tab2/256;STL0=tab2%256;TR0=1;delaymusic(g);TR0=0;void m2(unsigned char g)EA=1;STH0=tab3/256;STL0=tab3%256;TR0=1;delaymusic(g);TR0=0;void m2_(unsigned char g)EA=1;STH0=tab4/256;STL0=tab4%256;TR0=1;delaymusic(g);TR0=0;void m3(unsigned char g)EA=1;STH0=tab5/256;STL0=tab5%256;TR0=1;delaymusic(g);TR0=0;void m4(unsigned char g)EA=1;STH0=tab6/256;STL0=tab6%256;TR0=1;delaymusic(g);TR0=0;void m4_(unsigned char g)EA=1;STH0=tab7/256;STL0=tab7%256;TR0=1;delaymusic(g);TR0=0;void m5(unsigned char g)EA=1;STH0=tab8/256;STL0=tab8%256;TR0=1;delaymusic(g);TR0=0;void m5_(unsigned char g)EA=1;STH0=tab9/256;STL0=tab9%256;TR0=1;delaymusic(g);TR0=0;void m6(unsigned char g)EA=1;STH0=tab10/256;STL0=tab10%256;TR0=1;delaymusic(g);TR0=0;void m6_(unsigned char g)EA=1;STH0=tab11/256;STL0=tab11%256;TR0=1;delaymusic(g);TR0=0;void m7(unsigned char g)EA=1;STH0=tab12/256;STL0=tab12%256;TR0=1;delaymusic(g);TR0=0;void n1(unsigned char g)EA=1;STH0=tab13/256;STL0=tab13%256;TR0=1;delaymusic(g);TR0=0;void n1_(unsigned char g)EA=1;STH0=tab14/256;STL0=tab14%256;TR0=1;delaymusic(g);TR0=0;void n2(unsigned char g)EA=1;STH0=tab15/256;STL0=tab15%256;TR0=1;delaymusic(g);TR0=0;void n2_(unsigned char g)EA=1;STH0=tab16/256;STL0=tab16%256;TR0=1;delaymusic(g);TR0=0;void n3(unsigned char g)EA=1;STH0=tab17/256;STL0=tab17%256;TR0=1;delaymusic(g);TR0=0;void n4(unsigned char g)EA=1;STH0=tab18/256;STL0=tab18%256;TR0=1;delaymusic(g);TR0=0;void n4_(unsigned char g)EA=1;STH0=tab19/256;STL0=tab19%256;TR0=1;delaymusic(g);TR0=0;void n5(unsigned char g)EA=1;STH0=tab20/256;STL0=tab20%256;TR0=1;delaymusic(g);TR0=0;void n5_(unsigned char g)EA=1;STH0=tab21/256;STL0=tab21%256;TR0=1;delaymusic(g);TR0=0;void n6(unsigned char g)EA=1;STH0=tab22/256;STL0=tab22%256;TR0=1;delaymusic(g);TR0=0;void n6_(unsigned char g)EA=1;STH0=tab23/256;STL0=tab23%256;TR0=1;delaymusic(g);TR0=0;void n7(unsigned char g)EA=1;STH0=tab24/256;STL0=tab24%256;TR0=1;delaymusic(g);TR0=0;void x1(unsigned char g)EA=1;STH0=tab25/256;STL0=tab25%256;TR0=1;delaymusic(g);TR0=0;void x1_(unsigned char g)EA=1;STH0=tab26/256;STL0=tab26%256;TR0=1;delaymusic(g);TR0=0;void x2(unsigned char g)EA=1;STH0=tab27/256;STL0=tab27%256;TR0=1;delaymusic(g);TR0=0;void x2_(unsigned char g)EA=1;STH0=tab28/256;STL0=tab28%256;TR0=1;delaymusic(g);TR0=0;void x3(unsigned char g)EA=1;STH0=tab29/256;STL0=tab29%256;TR0=1;delaymusic(g);TR0=0;void x4(unsigned char g)EA=1;STH0=tab30/256;STL0=tab30%256;TR0=1;delaymusic(g);TR0=0;void x4_(unsigned char g)EA=1;STH0=tab31/256;STL0=tab31%256;TR0=1;delaymusic(g);TR0=0;void x5(unsigned char g)EA=1;STH0=tab32/256;STL0=tab32%256;TR0=1;delaymusic(g);TR0=0;void x5_(unsigned char g)EA=1;STH0=tab33/256;STL0=tab33%256;TR0=1;delaymusic(g);TR0=0;void x6(unsigned char g)EA=1;STH0=tab34/256;STL0=tab34%256;TR0=1;delaymusic(g);TR0=0;void x6_(unsigned char g)EA=1;STH0=tab35/256;STL0=tab35%256;TR0=1;delaymusic(g);TR0=0;void x7(unsigned char g)EA=1;STH0=tab36/256;STL0=tab36%256;TR0=1;delaymusic(g);TR0=0;void y1(unsigned char g)EA=1;STH0=tab37/256;STL0=tab37%256;TR0=1;delaymusic(g);TR0=0;void y1_(unsigned char g)EA=1;STH0=tab38/256;STL0=tab38%256;TR0=1;delaymusic(g);TR0=0;void y2(unsigned char g)E
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电瓶车保险知识培训课件
- (单元培优卷)第4单元 解决问题的策略 单元高频易错培优卷(含答案)六年级上册数学(苏教版)
- 电焊电极知识培训课件
- 北京西城期末考试试题及答案
- E3-ligase-Ligand-66-生命科学试剂-MCE
- 3-4-Dimethylidenehexanedioyl-CoA-3-4-Dimethylidenehexanedioyl-coenzyme-A-生命科学试剂-MCE
- 偏瘫康复考试题及答案
- 保健品考试题及答案
- 木材考试题及答案
- 电热器电流热效应课件
- 《贵阳市公共交通场站设计导则》
- 新时代中小学教师职业行为十项准则
- 工业厂房独立基础土方开挖施工方案
- 职业指导师考试题库及答案(含各题型)
- 企业融资过程中的税务问题解析
- 足球俱乐部股权转让协议
- 电子商务在文化创意产业的应用与案例
- 课件:《科学社会主义概论(第二版)》第二章
- DB50T 1342-2022 预制菜生产加工行为规范
- 呼吸危重症监护病房管理
- 2025届高考数学二轮复习备考策略和方向
评论
0/150
提交评论