“可振动感应的电子音乐”设计说明
1 工程文件下载:
2 程序设计框架说明
本案例程序设计主要分为:无源蜂鸣器、振动传感器两个模块。
2.1宏定义
#defineuint unsigned int
#defineuchar unsigned char
2.2 引脚定义
sbitbeep=P3^4; //蜂鸣器
sbitvibrate=P2^4; //振动传感器
sbitKey1=P3^2; //Key1对应触发外部中断0
2.3 变量定义
uchartimeh,timel; //定义定时器的重装值
uchar flag; //所选择点亮的数码管0-7标志位
bit flag; //播放标志位
ucharjindu=0; //music数组中指向的位置
uchargequ=0; //播放第几首音乐,默认为“0”--同一首歌
ucharzanting=0; //暂停标志位
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 Exint0() interrupt 0 // Key1对应的外部中断0的中断响应函数
void tim1() interrupt 1; //定时器中断服务程序,对应蜂鸣器发声
4 程序总框图设计流程

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




