




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include #include intrins.h/#include delay.hsbit SPK=P22; /扬声器端口定义sbit KEY1=P34; /按键端口定义sbit KEY2=P35;sbit KEY3=P36;sbit KEY4=P37;sbit led1=P10; /发光二极管端口定义sbit led2=P11;sbit led3=P12;sbit led4=P13;sbit led5=P14;sbit RS = P24; /液晶屏端口定义sbit RW = P25;sbit E = P26;/sbit RES = P23;sbit PSB = P21;#define
2、DataPort P0 /MCU P0 LCM#define uchar unsigned charunsigned char Timer0_H,Timer0_L,Time;void choose(unsigned int i);void write_sfm(uchar miao,uchar fen);unsigned char f,miao,fen; unsigned char k,i,j;char aa3=0; /三个数值一组: 第一个数值音调(1234567) 第二个数值 低中高音 第三个数字节拍/昆明湖 code unsigned char MUSIC1=1,2,3, 6,1,1, 5
3、,2,1, 2,2,1, 3,2,1, 1,2,1, 2,2,1, 1,2,1, 6,1,1, 5,1,1, 5,1,4, 6,1,1, 5,1,1, 6,1,1, 1,2,1, 2,2,1, 3,2,1, 5,2,1, 3,2,1, 3,2,3, 3,2,1, 2,2,1, 1,2,1, 1,2,2, 1,2,3, 6,1,1, 5,2,1, 2,2,1, 3,2,1, 1,2,1, 2,2,1, 1,2,1, 6,1,1, 5,1,1, 5,1,4, 6,1,1, 1,2,1, 2,2,1, 3,2,1, 2,2,1, 1,2,1, 6,1,1, 5,1,1, 1,2,2, 6,1,1,
4、5,1,1, 6,1,4, 1,2,3, 6,1,1, 5,2,1, 2,2,1, 3,2,1, 1,2,1, 2,2,1, 1,2,1, 6,1,1, 5,1,1, 5,1,4, 6,1,1, 5,1,1, 6,1,1, 1,2,1, 2,2,1, 3,2,1, 5,2,1, 3,2,1, 3,2,3, 3,2,1, 2,2,1, 1,2,1, 1,2,2, 1,2,3, 6,1,1, 5,2,1, 2,2,1, 3,2,1, 1,2,1, 2,2,1, 1,2,1, 6,1,1, 5,1,1, 5,1,4, 0,0,0 ;/生日歌code unsigned char MUSIC2=5,1,
5、1, 5,1,1, 6,1,2, 5,1,2, 1,2,2, 7,1,4, 5,1,1, 5,1,1, 6,1,2, 5,1,2, 2,2,2, 1,2,4, 5,1,1, 5,1,1, 5,2,2, 3,2,2, 1,2,2, 7,1,2, 6,1,2, 4,2,1, 4,2,1, 3,2,2, 1,2,2, 2,2,2, 1,2,4, 0,0,0 ;/小苹果code unsigned char MUSIC3=3,2,2, 1,2,2, 2,2,2, 6,1,2, 3,2,1, 2,2,1, 1,2,1, 2,2,1, 6,1,4, 3,2,2, 1,2,2, 2,2,2, 2,2,2, 5
6、,2,1, 3,2,1, 7,1,2, 1,2,2, 1,2,1, 7,2,1, 6,1,2, 7,1,1, 1,2,1, 2,2,2, 5,1,2, 6,2,1, 5,2,1, 3,2,2, 3,2,2, 3,2,1, 2,2,1, 1,2,2, 2,2,1, 3,2,1, 2,2,1, 3,2,1, 2,2,1, 5,2,1, 5,2,2, 5,2,2, 5,2,2, 5,2,2, 3,2,2, 1,2,2, 2,2,2, 6,1,2, 3,2,1, 2,2,1, 1,2,1, 2,2,1, 6,1,4, 3,2,2, 1,2,2, 2,2,2, 2,2,1, 2,2,1, 5,2,1,
7、3,2,1, 7,1,2, 1,2,2, 1,2,1, 7,2,1, 6,1,2, 7,1,1, 1,2,1, 2,2,2, 5,1,2, 6,2,1, 5,2,1, 3,2,2, 3,2,2, 3,2,1, 2,2,1, 1,2,2, 2,2,1, 3,2,1, 2,2,2, 5,1,2, 6,1,2, 6,1,1, 1,2,1, 6,1,4, 0,0,0 ;/梁祝 code unsigned char MUSIC4=1,2,3, 2,2,1, 6,1,1, 1,2,1, 5,1,2, 5,2,3, 1,3,1, 6,2,1, 5,2,1, 3,2,1, 5,2,1, 2,2,4, 2,2,
8、3, 3,2,1, 7,1,2, 6,1,2, 5,1,3, 6,1,1, 1,2,2, 2,2,2, 3,1,2, 1,2,2, 6,1,1, 5,1,1, 6,1,1, 1,2,1, 5,1,4, 3,2,3, 5,2,1, 7,1,2, 2,2,2, 6,1,1, 1,2,1, 5,1,4, 3,1,1, 5,1,2, 3,1,2, 5,1,1, 6,1,1, 7,1,1, 2,2,1, 6,1,4, 5,1,1, 6,1,1, 1,2,3, 2,2,1, 5,2,2, 3,2,2, 2,2,2, 3,2,1, 2,2,1, 1,2,2, 6,1,1, 5,1,1, 3,1,2, 3,1
9、,4, 1,2,4, 6,1,3, 1,2,1, 6,1,1, 5,1,1, 3,1,1, 5,1,1, 6,1,1, 1,2,1, 5,1,4, 0,0,0 ;/送别code unsigned char MUSIC5=5,1,2, 3,1,3, 5,1,1, 1,2,3, 6,1,2, 1,2,2, 5,1,4, 5,1,2, 1,1,1, 2,1,1, 3,1,2, 2,1,1, 1,1,1, 2,1,4, 5,1,2, 3,1,1, 5,1,1, 1,2,2, 7,1,1, 6,1,2, 1,2,2, 5,1,4, 5,1,2, 2,1,1, 3,1,1, 4,1,2, 7,1,1, 1
10、,1,4, 6,1,2, 1,2,2, 1,2,4, 7,1,2, 6,1,1, 7,1,1, 1,2,4, 6,1,1, 7,1,1, 1,2,1, 6,1,1, 6,1,1, 5,1,1, 3,1,1,1,1,1, 2,1,4, 5,1,2, 3,1,1, 5,1,1, 1,2,2, 7,1,1, 6,1,2, 1,2,2, 5,1,4, 5,1,2, 2,1,1, 3,1,1, 4,1,2, 7,1,2, 1,1,4, 5,1,2, 3,1,3, 5,1,1, 1,2,3, 6,1,2, 1,2,2, 5,1,4, 5,1,2, 1,1,1, 2,1,1, 3,1,2, 2,1,1, 1
11、,1,1, 2,1,4, 5,1,2, 3,1,1, 5,1,1, 1,2,2, 7,1,1, 6,1,2, 1,2,2, 5,1,4, 5,1,2, 2,1,1, 3,1,1, 4,1,2, 7,1,1, 1,1,4, 0,0,0 ; / 音阶表高八位code unsigned char FREQH= 0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8, /低音1,2,3,4,5,6,7 0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, /1,2,3,4,5,6,7,8,i 0xFC,0xFD,0xFD,0xFD,0xFD,0xFE, /高音
12、2,3,4,5,6,7 0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF, /超高音1,2,3,4,5,6,7 ; /音阶表低八位code unsigned char FREQL= 0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6, 0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, /1,2,3,4,5,6,7,8,i 0xEE,0x44, 0x6B,0xB4,0xF4,0x2D, 0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16, ;/微秒延时void DelayUs2x(unsigned char
13、t) while(-t);/毫秒延时void DelayMs(unsigned char t) while(t-) DelayUs2x(245); DelayUs2x(245); /写命令void Write_Cmd(unsigned char Cmd)RS=0;RW=0;E=1;DataPort=Cmd;DelayUs2x(5);E=0;DelayUs2x(5);/写数据void Write_Data(unsigned char Data)RS=1;RW=0;E=1;DataPort=Data;DelayUs2x(5);E=0;DelayUs2x(5);/液晶初始化void Init_ST7
14、920() DelayMs(40); PSB=1; DelayMs(1); Write_Cmd(0x30); DelayUs2x(50); Write_Cmd(0x30); DelayUs2x(20); Write_Cmd(0x0c); DelayUs2x(50); Write_Cmd(0x01); DelayMs(15); Write_Cmd(0x06); DelayUs2x(50); /*- 显示字符串x:范围 08y:范围 14-*/void LCD_PutString(unsigned char x,unsigned char y,unsigned char code *s) swit
15、ch(y) case 1: Write_Cmd(0x80+x);break; case 2: Write_Cmd(0x90+x);break; case 3: Write_Cmd(0x88+x);break; case 4: Write_Cmd(0x98+x);break; default:break; while(*s0) Write_Data(*s); s+; DelayUs2x(50); /清屏函数void ClrScreen() Write_Cmd(0x01); DelayMs(15); void xianshi1()ClrScreen();Init_ST7920(); /LCD_Pu
16、tString(0,1, );LCD_PutString(0,2, ); LCD_PutString(0,3,);LCD_PutString(0,4,11); void xianshi2() ClrScreen(); Init_ST7920(); / LCD_PutString(0,1,); LCD_PutString(0,2, ); LCD_PutString(0,3,); LCD_PutString(0,4,11); void xianshi3()ClrScreen();Init_ST7920(); /LCD_PutString(0,1,); LCD_PutString(0,2, ); L
17、CD_PutString(0,3, );LCD_PutString(0,4,11); void xianshi4() ClrScreen();Init_ST7920(); /LCD_PutString(0,1,); LCD_PutString(0,2, );LCD_PutString(0,3, );LCD_PutString(0,4,11); void xianshi5() ClrScreen();Init_ST7920(); /LCD_PutString(0,1, ); LCD_PutString(0,2, );LCD_PutString(0,3,);LCD_PutString(0,4,11
18、); /*- 1/4 4/4 125ms 2/4 250ms 3/4 187ms-*/void delay(unsigned int t) unsigned int g;for(g=0;gt;g+)DelayMs(250); TR0=0; /*- 延时 -*/void delay_us(int us)int g;for(g=0;g50;g+)_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();void delay_ms(int ms)int g;for(g=0;g10000;g+)delay_us(1);/*- 中断-
19、*/void TIM0_ISR() interrupt 1 TR0=0; SPK=!SPK; TH0=Timer0_H; TL0=Timer0_L; TR0=1; /*- 计时函数-*/void write_sfm(uchar miao,uchar fen) int i;int j=0; aa0=fen%10; aa1=miao/10; aa2=miao%10; LCD_PutString(5,2,:); for(i=0;i3;i+) Write_Cmd(0x94+j); Write_Data(aai+0x30); j+; if(j=3) j=0; void Init_Timer1(void)
20、 TMOD |= 0x10; TH1=(65536-50000)/256; TL1=(65536-50000)%256; EA=1; ET1=1; TR1=1; void Timer1_isr(void) interrupt 3 TH1=(65536-50000)/256; TL1=(65536-50000)%256; f+;if(f=20)f=0;miao+;if(miao=60)miao=0;fen+; write_sfm(miao,fen);/*- 歌曲演奏函数-*/void Song() TH0=Timer0_H; TL0=Timer0_L; TR0=1; delay(Time); /
21、*- 按键扫描函数 -*/unsigned char KeyScan(void) if(KEY1=0) delay_us(10) if(KEY1=0) return 1; /*/ else if(KEY2=0) delay_us(10); if(KEY2=0) return 2; /*/ else if(KEY3=0) delay_us(10); if(KEY3=0) return 3; /*/ else if(KEY4=0) delay_us(10); if(KEY4=0) return 4; /*/ else return 0;/*- 歌曲播放函数 -*/void Play(unsigne
22、d int count)switch(count) case 1: xianshi1(); led1=0; i=0; j=0; miao=fen=0; while(i240) k=MUSIC1i+7*MUSIC1i+1-1; Timer0_H=FREQHk; Timer0_L=FREQLk; Time=MUSIC1i+2; , i=i+3; Song();j=KeyScan(); if(j=1) led1=1;choose(5); if(j=2) led1=1; choose(2);/暂停 if(j=3) led1=1; while(1) j=KeyScan();if(j=4) break;
23、led1=0; led1=1; delay_ms(5); case 2: xianshi2(); led2=0; i=0; j=0; miao=fen=0; while(i75) k=MUSIC2i+7*MUSIC2i+1-1; Timer0_H=FREQHk; Timer0_L=FREQLk; Time=MUSIC2i+2; i=i+3; Song();j=KeyScan();if(j=1) led2=1; choose(1); if(j=2) led2=1; choose(3); if(j=3) led2=1; while(1) j=KeyScan();if(j=4) break; led2=0; led2=1; delay_ms(5); case 3: xianshi3(); led3=0; i=0; j=0; miao=fen=0; while(i230) k=MUSIC3i+7*MUSIC3i+1-1; Timer0_H=FREQHk; Timer0_L=FREQLk; Time=MUSIC3i+2; i=i+3; Song(); j=KeyScan(); if(j=1) led3=1; choose(2); if(j=2) led3=1; choose(4); if(j=3) led3=1; while(1) j=KeyScan(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 住宅小区公共区域租赁及社区服务管理合同示范
- 车辆质押融资担保服务合同书
- 生态保护区土地租赁使用权合同
- 上市公司财务代理与审计服务合同范本
- 奥体公园体育馆项目施工组织设计
- 医院婚丧喜庆管理制度
- 聚苯乙烯外墙外保温工程投标文件
- 公司日报周报管理制度
- 公司安全保护管理制度
- 市场值班经理管理制度
- 第二部 第四章-名著《钢铁是怎样炼成的》阅读导引+思维导图+内容概括+原文批注+阅读训练
- 2023年湖南省高考生物真题卷和答案
- 2024春期国开电大本科《现代汉语专题》在线形考(任务1至6)试题及答案
- JTG F80-1-2004 公路工程质量检验评定标准 第一册 土建工程
- 国开《当代中国政治制度》机考复习题汇总
- 机动车车辆全损协议书范本
- 《计算机控制系统》课后题答案刘建昌等科学出版社
- 安全联锁保护系统投用、摘除、停运审批管理制度
- 核桃购销合同范本
- 塑料制品的市场分析与营销策略
- 跟阿里云合作协议
评论
0/150
提交评论