“可切换内容的电子音乐”设计说明
1 工程文件下载:
2 程序设计框架说明
本案例程序设计主要分为:无源蜂鸣器、按键扫描两个模块。
2.1宏定义
#defineuint unsigned int
#defineuchar unsigned char
2.2 引脚定义
sbitbeep=P3^4; //蜂鸣器
sbitkey1=P3^2; //按键1
sbitkey2=P3^3; //按键2
2.3变量定义
uchartimeh,timel; //定义定时器的重装值
ucharflag; //所选择点亮的数码管0-7标志位
ucharjindu=0; //music数组中指向的位置
ucharcode music1[]、uchar code music2[]、uchar code music3[]为音乐代码数组
ucharcode quzi[] //此数组为各个音符在定时器中的重装值
3 程序函数说明
void delay(unsigned int xms); //延时程序
uchar quyin(uchar tem); //找到tem音符在quzi数组中的位置值
void playmusic(); //播放音乐函数
void init_sys(); //系统初始化
void init(); //定时器初始化
void ex1() interrupt 0; //外部中断服务程序,对应播放还是暂停
void tim1() interrupt 1; //定时器中断服务程序,对应蜂鸣器发声
void ex2() interrupt 2 //外部中断服务程序,对应key2切歌
4 程序总框图设计流程

附录:附加实例中的其他几个曲谱




