1、单片机设计与制作实训报告 题目: 电子琴 系别: xx系 班级: xx班 姓名: xxx 学号: 123456789 指导老师:xxx 实训时间:一周 x年x月xx日 1、实训目的:熟悉单片机使用方法及领域,软硬件结合掌握单片机综合应用糸统设计和调试的方法, 2、设计要求:电子琴有九个按键,其中有八个按键分别对应八个乐谱中的基本音符
2、第九个按键为自动播放按键,当按下此键即自动播放歌曲直到播放歌曲直到歌曲结束或按下音符键即停止播放音乐。 3、开发环境及简介: 1. 系统概述 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成
3、的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。 4、实训器件: 1. AT89C51 1个 2. 按键 9个 3. PNP三极管 1个 4. 4.7K电阻 1个 5. 10k电阻 1个 6. 无源蜂鸣器 1个 7. 电解电容 1个 8. 30pF磁片电容
4、 2个 9. 晶振 1个 4.1主要元器件简介 (1)AT89C51单片机 AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制
5、器,AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 主要特性:与MCS-51 兼容;4K字节可编程闪烁存储器;寿命:1000写/擦循环;数据保留时间:10年;全静态工作:0Hz-24MHz;三级程序存储器锁定;128×8位内部RAM;32可编程I/O线;两个16位定时器/计数器;5个中断源;可编程串行通道;低功耗的闲置和掉电模式;片内振荡器和时钟电路。 (2) 蜂鸣器 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣
6、器两种类型。 1. 电压式蜂鸣器 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。 压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。 2.电磁式蜂鸣器 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 (3)多谐振荡器 多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作电压),多谐振荡
7、器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 5、设计原理: 通过单片机实现电子琴演奏实质就是将不同按键和特定频率的方波信号对应起来,以方波信号驱动蜂鸣器发出乐音,乐音实质是固有频率的信号,在音乐理论中,把一组音按音调高低依次排列起来就成为音阶,也就是1234567和高音1。 为了发出某一特定频率的乐音,可以控制I/O接口产生该频率的方波信号经三极管放大信号后发出该乐音。对于方波的产生可以使用单片机的一个定时,产生溢出中断,中断发生时将输出引脚的电平取反,然后重新载入计数器的计数初值。 6、设计思路: 6.1 实训原理
8、图: 开始 6.3 程序流程图 音符乐谱编码 初始化 音符键有按下? N 关闭T0定时器 判断键值 Y T0定时器赋初值 开启T0定时器 中断P10取反 音乐键有按下? N a值是否<100? Y N 音符键是否按下? Y N Y 给T1定时器赋值 开启T1定时器 中断取反P10 延时节拍时长 6.2 软件程序: //电
9、子琴+歌曲
#include
10、8,1(高) 0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,//高音 0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,//超高音 }; //音阶频率表低八位 code uchar FL[]={ 0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,//低音 0x21,0xE1,0x8C,0xD8,0x68,0x
11、E9,0x5B,0x8F, //中音1,2,3,4,5,6,7,8,1(高) 0xEE,0x44, 0x6B,0xB4,0xF4,0x2D,// 高音 0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,//超高音 }; //世上只有妈妈好数据表 code uchar sszymmh[]={ 6,2,3,5,2,1,3,2,2,5,2,2,1,3,2,6,2,1,5,2,1,
12、 6,2,4,3,2,2,5,2,1,6,2,1,5,2,2,3,2,2,1,2,1, 6,1,1,5,2,1,3,2,1,2,2,4,2,2,3,3,2,1,5,2,2, 5,2,1,6,2,1,3,2,2,2,2,2,1,2,4,5,2,3,3,2,1, 2,2,1,1,2,1,6,1,1,1,2,1,5,1,6,0,0,0 }; unsigned char k1,k2;//T0定时器高八位,低八位初
13、值 uchar keymode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //键模 void delay(unsigned char time);//延时子函数 void keyscan();//键值查询函数 void gequ();//歌曲处理函数 //************************************************************** void main(void) { TMOD=0x11;//初始化 EA=1; ET0=1; ET1=1; IT0=1;
14、 EX0=1; TH0=k1; TL0=k2; while(1) { keyscan(); if(P30==0)//当键按下后播放歌曲 gequ(); } } //************************************************************** void keyscan() //键值查询函数 { int i; P2=0xff; if(P2!=0xff) { for(i=0;i<8;i++) { while(P
15、2==keymode[i]) { k1=FH[i+7];//键音为中音中音时的计数初值 k2=FL[i+7]; TR0=1;//当有键按下开定时器T0 } } } else TR0=0;//无键按下等待按键按下 if(i==8){i=0;TR0=0;}//当执行一次无按键按下时置零 } //************************************************************** void delay(uchar t) // 延时函数 { uchar t1; unsigne
16、d long t2;
for(t1=0;t1 17、ymmh[a+1]-1;
timer0h=FH[s];
timer0l=FL[s];
time=sszymmh[a+2];
a=a+3;//每执行该一个音符歌曲数据表跳过三个数据
TH1=timer0h;
TL1=timer0l;
TR1=1;
delay(time);
}
}
//**************************************************************
void time0() interrupt 1 //定时器T0中断函数
{
P10=!P10;
18、
TH0=k1;//重新装T0计数初值
TL0=k2;
}
//**************************************************************
void t1int() interrupt 3 //定时器T1中断函数
{
TR1=0;
P10=!P10;
TH1=timer0h;
TL1=timer0l;
TR1=1;
}
7、设计总结
通过这一个星期的单片机实训,我收获了很多关于单片机的知识。这次课程设计使我对很多东西有了更深刻的认识。 19、总结如下:
1. 单片机的基础知识要熟练掌握,并且要进一步加强把理论转化为实际的能力
2.认识到了向同学请教的重要性以及团队协作的重要性。同学之间要多交流。
3. 对待任何事情都要有耐心和毅力,遇到问题要冷静地思考,积极找出症结所在,逐个解决。并且做事情要仔细,不能马虎,否则的话有可能会把问题复杂化,浪费自己大把的时间。
通过这次单片机设计我不仅加深了对单片机理论的理解将理论很好地应用到实际当中去同时也使我认识到自身存在的不足之处无论是理论上还是遇到问题的处理能力上都还有待提高而且这也激发了我今后努力学习的兴趣。发现问题、提出问题、分析问题、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。
8.实物图






