




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
INCLUDEDEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTDEFINEDISP_OFF0X3EDEFINEDISP_ON0X3FDEFINEPAGE_ADD0XB8/页DEFINECOL_ADD0X40/列DEFINESTART_LINE0XC0/行/以下是C调中音的音频宏定义DEFINEZ1523/将“Z1“宏定义为中音“1“的频率523HZDEFINEZ2587/将“Z2“宏定义为中音“2“的频率587HZDEFINEZ3659/将“Z3“宏定义为中音“3“的频率659HZDEFINEZ4698/将“Z4“宏定义为中音“4“的频率698HZDEFINEZ5784/将“Z5“宏定义为中音“5“的频率784HZDEFINEZ6880/将“Z6“宏定义为中音“6“的频率880HZDEFINEZ7987/将“Z7“宏定义为中音“7“的频率523H/以下是C调高音的音频宏定义DEFINEH11046/将“H1“宏定义为高音“1“的频率1046HZDEFINEH21174/将“H2“宏定义为高音“2“的频率1174HZDEFINEH31318/将“H3“宏定义为高音“3“的频率1318HZDEFINEH41396/将“H4“宏定义为高音“4“的频率1396HZDEFINEH51567/将“H5“宏定义为高音“5“的频率1567HZDEFINEH61760/将“H6“宏定义为高音“6“的频率1760HZDEFINEH71975/将“H7“宏定义为高音“7“的频率1975HZ/液晶显示器的端口定义SBITCS1P21/片选1SBITCS2P22/片选2SBITRESP23/复位信号SBITRSP24/数据/指令选择SBITRWP25/读/写选择SBITENP26/读/写使能SBITKEY2P27/定义功能键KEY2,按下后开始播放音乐SBITSOUNDP20/定义音频输出端SBITKEY1P37/定义功能键KEY1,按下后键入电子琴状态/矩阵键盘的定义端口SBITP14P14/将P14位定义为P14引脚SBITP15P15/将P15位定义为P15引脚SBITP16P16/将P16位定义为P16引脚SBITP17P17/将P17位定义为P17引脚/定义LED端口SBITD0P30SBITD1P31SBITD2P32SBITD3P33SBITD4P34SBITD5P35SBITD6P36UINTC,FF,K,NUM/C为初值,FF为频率UCHARKEYVAL/定义变量储存按键值/数码管显示数组UCHARCODETABLE0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X71/以下是天空之城简谱UINTCODEFZ6,Z7,/H1,Z7,H1,H3,/Z7,Z3,Z3,/Z6,Z5,Z6,H1,/Z5,Z3,Z3,/Z4,Z3,Z4,H1,Z3,H1,H1,H1,/Z7,Z4,Z4,Z7,/Z7,Z6,Z7,/H1,Z7,H1,H3,/Z7,Z3,Z3,/Z6,Z5,Z6,H1,Z5,Z3,/Z4,H1,Z7,H1,/H2,H2,H2,H1,/H1,Z6,Z7,Z5,/Z6,H1,H2,/H3,H2,H3,H5,H2,Z5,Z5,/H1,Z7,H1,H3,/H3,/Z6,H1,Z7,H2,/H1,Z5,Z5,/H4,H3,H2,H1,H3,/Z3,H3,/H6,H5,H5,/H3,H2,H1,H1,/H2,H1,H2,H5,/H3,H3,H6,H5,/H3,H2,H1,H1,/H2,H1,H2,Z7,/Z6,Z6,Z7,/Z6,0XFF/以0XFF作为音符的结束标志/以下是简谱中每个音符的节拍/“4“对应4个延时单位,“2“对应2个延时单位,“1“对应1个延时单位UCHARCODEJP4,4,/12,4,8,8,/20,4,4,/12,4,8,8,/20,4,4,/12,4,4,12,20,4,4,4,/12,4,8,8,/20,4,4,/12,4,8,8,/20,4,4,/12,4,8,8,32,4,/8,4,6,8,/4,4,4,16,/8,4,6,8,/24,4,4,/12,4,8,8,24,4,4,/4,4,8,8,/32,/4,8,8,6,/12,4,16,/8,8,8,8,30,/20,8,/16,8,8,/4,4,16,8,/8,4,4,8,/20,8,16,16,/4,20,8,/8,4,4,8,/20,4,4,/32,/定义“正0在1播2放34“数组UCHARCODEHZ10X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X02,0X02,0XC2,0X02,0X02,0X02,0XFE,0X82,0X82,0X82,0X82,0X82,0X02,0X00,0X00,0X40,0X40,0X40,0X7F,0X40,0X40,0X40,0X7F,0X40,0X40,0X40,0X40,0X40,0X40,0X40,0X00,/“正“,0/正0X08,0X08,0X88,0XC8,0X38,0X0C,0X0B,0X08,0X08,0XE8,0X08,0X08,0X08,0X08,0X08,0X00,0X02,0X01,0X00,0XFF,0X40,0X41,0X41,0X41,0X41,0X7F,0X41,0X41,0X41,0X41,0X40,0X00,/“在“,1/在0X10,0X10,0XFF,0X10,0X90,0X82,0X56,0X3A,0X12,0X7F,0X11,0X39,0X55,0X90,0X80,0X00,0X42,0X82,0X7F,0X01,0X00,0X00,0XFF,0X49,0X49,0X7F,0X49,0X49,0XFF,0X00,0X00,0X00,/“播“,2/播0X08,0X08,0XF9,0X4A,0X48,0XC8,0X48,0X20,0XD8,0X17,0X10,0X10,0XF0,0X10,0X10,0X00,0X40,0X30,0X0F,0X20,0X40,0X3F,0X80,0X40,0X21,0X16,0X08,0X16,0X21,0X40,0X80,0X00,/“放“,3/放0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X36,0X36,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,/“,4/0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,/定义“0天1空2之3城45“数组UCHARCODEHZ20X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X80,0X40,0X20,0X90,0X48,0X24,0X12,0X09,0X04,0X02,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X02,0X04,0X09,0X12,0X24,0X48,0X10,0X20,0X00,0X00,/“,0/0X40,0X40,0X42,0X42,0X42,0X42,0X42,0XFE,0X42,0X42,0X42,0X42,0X42,0X40,0X40,0X00,0X80,0X80,0X40,0X20,0X10,0X0C,0X03,0X00,0X03,0X0C,0X10,0X20,0X40,0X80,0X80,0X00,/“天“,1/天0X10,0X0C,0X44,0X24,0X14,0X04,0X05,0X06,0X04,0X04,0X14,0X24,0X44,0X14,0X0C,0X00,0X00,0X40,0X40,0X41,0X41,0X41,0X41,0X7F,0X41,0X41,0X41,0X41,0X40,0X40,0X00,0X00,/“空“,2/空0X00,0X10,0X10,0X10,0X10,0X10,0X11,0X16,0X10,0X90,0X50,0X30,0X10,0X00,0X00,0X00,0X00,0X40,0X20,0X10,0X10,0X28,0X44,0X42,0X41,0X40,0X40,0X40,0X40,0X40,0X40,0X00,/“之“,3/之0X20,0X20,0XFF,0X20,0X20,0XF8,0X88,0X88,0X88,0X08,0XFF,0X08,0X09,0XCA,0X08,0X00,0X10,0X30,0X1F,0X88,0X68,0X1F,0X10,0X20,0X9F,0X40,0X27,0X18,0X26,0X41,0XF0,0X00,/“城“,4/城0X00,0X00,0X02,0X04,0X09,0X12,0X24,0X48,0X90,0X20,0X40,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X20,0X10,0X48,0X24,0X12,0X09,0X04,0X02,0X01,0X00,0X00,0X00,0X00,0X00,/“,5/0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00/函数功能1个延时单位,延时200MS,用于节拍延时/VOIDDELAYJPUNSIGNEDCHARI,JFORI0I0IFORJ110J0J/函数功能数码管显示函数/VOIDDISPLAYUCHARKEYUCHARKEY1KEY1KEY1P0TABLEKEY1/函数功能输出音频、输出数码管显示函数/VOIDOUTPUTVOIDDISPLAYKEYVALC46083/FF10/计算定时常数,C为定时常数TH18192C/32/可证明这是13位计数器TH0高8位的赋初值方法TL18192C32/可证明这是13位计数器TL0低5位的赋初值方法TR11/开定时T0DELAYMS200/延时200MS,播放音频TR10/关闭定时器SOUNDSOUND/关闭蜂鸣器KEYVAL0XFF/播放按键音频后,将按键值更改,停止播放/函数功能当播放音乐时使对应音符的LED灯亮/VOIDOPLEDUINTNUMIFNUM523|NUM1046D00IFNUM587|NUM1174D10IFNUM659|NUM1318D20IFNUM698|NUM1396D30IFNUM784|NUM1567D40IFNUM880|NUM1760D50IFNUM987|NUM1975D60/函数功能进行矩阵键盘扫描,判断键位/VOIDKEYSCANVOIDP10XF0/所有行线置为低电平“0”,所有列线置为高电平“1”IFP1/延时一段时间、软件消抖IFP1/第一行置为低电平“0”(P10输出低电平“0”)IFP140/如果检测到接P14引脚的列线为低电平“0”KEYVAL1/可判断是S1键被按下WHILEP10XFEIFP150/如果检测到接P15引脚的列线为低电平“0”KEYVAL2/可判断是S2键被按下WHILEP10XFEIFP160/如果检测到接P16引脚的列线为低电平“0”KEYVAL3/可判断是S3键被按下WHILEP10XFEIFP170/如果检测到接P17引脚的列线为低电平“0”KEYVAL4/可判断是S4键被按下WHILEP10XFEP10XFD/第二行置为低电平“0”(P11输出低电平“0”)IFP140/如果检测到接P14引脚的列线为低电平“0”KEYVAL5/可判断是S5键被按下WHILEP10XFDIFP150/如果检测到接P15引脚的列线为低电平“0”KEYVAL6/可判断是S6键被按下WHILEP10XFDIFP160/如果检测到接P16引脚的列线为低电平“0”KEYVAL7/可判断是S7键被按下WHILEP10XFDIFP170/如果检测到接P17引脚的列线为低电平“0”KEYVAL8/可判断是S8键被按下WHILEP10XFDP10XFB/第三行置为低电平“0”(P12输出低电平“0”)IFP140/如果检测到接P14引脚的列线为低电平“0”KEYVAL9/可判断是S9键被按下WHILEP10XFBIFP150/如果检测到接P15引脚的列线为低电平“0”KEYVAL10/可判断是S10键被按下WHILEP10XFBIFP160/如果检测到接P16引脚的列线为低电平“0”KEYVAL11/可判断是S11键被按下WHILEP10XFBIFP170/如果检测到接P17引脚的列线为低电平“0”KEYVAL12/可判断是S12键被按下WHILEP10XFBP10XF7/第四行置为低电平“0”(P13输出低电平“0”)IFP140/如果检测到接P14引脚的列线为低电平“0”KEYVAL13/可判断是S13键被按下WHILEP10XF7IFP150/如果检测到接P15引脚的列线为低电平“0”KEYVAL14/可判断是S14键被按下WHILEP10XF7IFP160/如果检测到接P16引脚的列线为低电平“0”KEYVAL15/可判断是S15键被按下WHILEP10XF7IFP170/如果检测到接P17引脚的列线为低电平“0”KEYVAL16/可判断是S16键被按下WHILEP10XF7/函数功能检查LCD是否忙/VOIDCHECKSTATEUCHARDAT,DATA/状态信息(判断是否忙)RS0/数据指令选择RW1/R/W“H“,E“H“数据被读到DB7DB0DODATA0X00EN1/EN下降源DELAYLCD1/延时DATDATAEN0DAT0X80/仅当第7位为0时才可操作判别BUSY信号WHILEDAT0X00/函数功能写命令到LCD程序/VOIDWRITE_COMUCHARCMDCODECHECKSTATE/检测LCD是否忙RS0RW0P0CMDCODEDELAYLCD1EN1DELAYLCD1EN0/函数功能写数据到LCD程序/VOIDWRITE_DATAUCHARDISPDATACHECKSTATE/检测LCD是否忙RS1RW0P0DISPDATADELAYLCD1EN1DELAYLCD1EN0/函数功能LCD初始化程序/VOIDINIT_LCDDELAYLCD1CS11/刚开始关闭两屏CS21DELAYLCD1WRITE_COMDISP_OFF/写初始化命令WRITE_COMPAGE_ADD0WRITE_COMSTART_LINE0WRITE_COMCOL_ADD0WRITE_COMDISP_ON/函数功能清屏函数/VOIDCLR_SCRUCHARJ,KCS10/左、右屏均开显示CS20WRITE_COMPAGE_ADD0WRITE_COMCOL_ADD0FORK0K8K/控制页数07,共8页WRITE_COMPAGE_ADDK/每页每页进行写FORJ0J64J/每页最多可写32个中文文字或64个ASCII字符WRITE_COMCOL_ADDJWRITE_DATA0X00/控制列数063,共64列,写点内容,列地址自动加1/函数功能LCD一行一行写入显示数据/DISPUCHARPAGE,UCHARCOLUMN,UCHARCODEWORDUCHARICS10CS21WRITE_COM0XB8PAGEWRITE_COM0X40COLUMNFORI0I16IWRITE_DATAWORDIFORI32I48IWRITE_DATAWORDIFORI64I80IWRITE_DATAWORDIFORI96I112IWRITE_DATAWORDICS11CS20WRITE_COM0XB8PAGEWRITE_COM0X40FORI128I144IWRITE_DATAWORDIFORI160I176IWRITE_DATAWORDIFORI192I208IWRITE_DATAWORDIFORI224I240IWRITE_DATAWORDICS10CS21WRITE_COM0XB8PAGE1WRITE_COM0X40COLUMNFORI16I32IWRITE_DATAWORDIFORI48I64IWRITE_DATAWORDIFORI80I96IWRITE_DATAWORDIFORI112I128IWRITE_DATAWORDICS11CS20WRITE_COM0XB8PAGE1WRITE_COM0X40FORI144I160IWRITE_DATAWORDIFORI176I192IWRITE_DATAWORDIFORI208I224IWRITE_DATAWORDIFORI240I250IWRITE_DATAWORDI/函数功能程序主函数,进行功能选择/VOIDMAINUCHARII,JJ/II确定音频数组元素,JJ控制节拍数EA1/开总中断ET01/定时器T0中断允许ET11/定时器T1中断允许TMOD0X00/使用定时器T0、T1的模式0(13位计数器P00/开始使数码管不显示IFKEY20/功能键KEY2按下,用于显示12864DELAYMS10/延时去抖IFKEY20/功能键KEY2确实按下P00INIT_LCDCLR_SCRK0WHILE1FORK0XC0K0XFFKK16DISP2,0,HZ1DISP4,0,HZ2II0/从第1个音符F0开始播放WHILEFII0XFF/只要没有读到结束标志就继续播放C460830/FII/确定初值TH08192C/32/可证明这是13位计数器TH0高8位的赋初值方法5TL08192C32/可证明这是13位计数器TL0低5位的赋初值方法TR01/启动定时器T0NUMFIIOPLEDNUMFORJJ0JJJPIIJJ/控制节拍数DELAYJP/延时1个节拍单位TR00/关闭定时器T0P30XFFII/播放下一个音符IFKEY10/功能键KEY1按下DELAYMS10/延时去抖IFKEY10/功能键KEY1确实按下CS11CS21P00XFF/使数码管全亮WHILE1/无限循环KEYSCANSWITCHKEYVALCASE1FFZ1/如果第1个键按下,将中音1的频率赋给FFOUTPUT/转去计算定时常数,输出音频和数字BREAKCASE2FFZ2/如果第2个键按下,将中音2的频率赋给FFOUTPUT/转去计算定时常数,输出音频和数字BREAKCASE3FFZ3/如果第3个键按下,将中音3的频率赋给FFOUTPUT/转去计算定时常数,输出音频和数字BREAKCASE4FFZ4/如果第4个键按下,将中音4的频率赋给FFOUTPUT/转去计算定时常数,输出音频和数字BREAKCASE5FFZ5/如果第5个键按下,将中音5的频率赋给FFOUTPUT/转去计算定时常数,输出音频和数字BREAKCASE6FFZ6/如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二年级数学家长参与计划
- 外语口语教学情景创设心得体会
- 慢病管理健康管理路径与流程他
- 河北省张家口市宣化区2024-2025学年八年级下学期4月期中考试数学试卷(人教版)(含解析)
- 播音主持兴趣小组文化传播活动计划
- 2025年医院感染监测计划方案
- 未来版六年级下册健康成长学习兴趣计划
- 部编版一年级下册语文课本分析计划
- 企业火灾应急处置措施
- 新人教版小学数学一年级下册教师培训计划
- 百词斩雅思核心词汇
- 电气控制及Plc应用技术电子教案
- 部编版四季之美课件完美版公开课一等奖课件省课获奖课件
- 同济大学信纸
- 大学生暑期安全教育班会PPT
- PFMEA模板完整版文档
- ECMO IABP完整版可编辑
- 珠心算习题汇总(可以打印版A4)
- 冲压基础知识及常见缺陷培训
- 《铁路交通事故应急救援和调查处理条例》
- GB/T 27771-2011病媒生物密度控制水平蚊虫
评论
0/150
提交评论