您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 北邮小学期PIC单片机-蓝牙电子琴-实验报告
2013年小学期PIC单片机实验报告题目:蓝牙电子琴组号:班级:学号:姓名:老师:目录一摘要二论证与比较三原理1蓝牙控制原理…………………………………………………..2发音原理………………………………………………………3中断控制………………………………………………………四硬件1框图…………………………………………………………………………………2原理图…………………………………………………………………………………五软件1流程图………………………………………………………………………………2程序…………………………………………………………………………………六实验总结七参考文献一摘要Microcontrollerisknownasthesinglechipmicrocomputerandsinglechipmicrocomputer.Itisthecentralprocessingunit(CPU),randomaccessmemory(RAM),read-onlymemory(ROM),input/outputport(I/O),etc.Themainfunctionofcomputercomponentsareintegratedonachipmicrocomputer.ExperimentsusingPIC16F877single-chipmicrocomputerwithaserialcommunicationport(USARTport),throughtheUSARTportwithbluetoothmoduleconnection,youcanthroughthemobilephonebluetoothbluetoothdevicetocontrolthesingle-chipcomputer,alsocanrealizetheserialcommunicationwithothermodules.PIC16F877singlechipmicrocomputertocontrolthecorrespondingportproduceacertainfrequencyofsquarewave,amplificationandthensenttothespeakerscanemitacertainfrequencyofsound.Interrupttousebluetoothtoreal-timecontrolMCU,thusrealizetheelectric.单片机被称为单片微电脑或单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/O)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。实验中用到的PIC16F877单片机具有串行通信端口(USART端口),通过与蓝牙模块的USART端口连接,就可以通过手机蓝牙等蓝牙设备来控制单片机,也可以实现与其他模块进行串行通信。PIC16F877单片机控制相应的端口产生一定频率的方波,再经放大送到喇叭就可以发出一定频率的声音。可以通过中断来实时用蓝牙来控制单片机,这样就实现了电子琴的相应的功能。在实验中,程序部分使用了汇编语言。二方案论证与比较PIC16F877单片机有USART端口(RC6,RC7),可以进行串行通信。本次实验主要是单片机的开发,只需借助有USART端口的蓝牙模块,就可以通过蓝牙模块来与蓝牙设备进行通信,这样就可以手机来控制单片机来产生调用相应的程序来产生一定频率的声音,这样来看用PIC16F877单片机来制作蓝牙电子琴是可行的。弹奏音乐是随时的,这样就要求手机能通过蓝牙来实时控制单片机,PIC16F877的串行通信模块,在接收缓冲寄存器满时,在中断使能的情况下可以产生中断,这样就可以跳入中断子程序,从而就能够实时控制单片机,来实时弹奏音乐。所以蓝牙电子琴是可行的。基于PIC16F877单片机的电子琴已经有人实现了,实验中的蓝牙电子琴的发生原理与它们基本相同。本组蓝牙电子琴的重点不在电子琴,而是在蓝牙通信。实现了蓝牙控制的电子琴就可以实现蓝牙控制其他功能,蓝牙控制的原理是一样的。现在的智能手机几乎都有蓝牙功能,因此就可以用手机来控制单片机从而实现一些功能,此应用拥有很大的情景,可以应用与家庭和公司的遥控控制等等,而且成本较低。三原理1蓝牙控制原理通过手机蓝牙,向和单片机相连接的蓝牙模块发送一些数据,蓝牙模块接收到数据后通过USART模块传输给单片机,单片机接收到数据后进行判断,完成相应的功能,这样就实现了蓝牙控制。在实验时,单片机的波特率设置要和蓝牙模块的波特率一致。2发音原理单片机最小系统使用4MHZ的晶振,单片机的指令周期为1us,通过使一个输出端口反复向喇叭输出一定频率的高低电平来产生所需的声音。查阅7种音调的高中低音的频率,在通过软件实现分频。(延时一段时间后再用1和相应的输出端口异或,反复这样就可以产生一定频率的声音。)3中断控制单片机的串行接收缓冲寄存器满后,就会使中断标志由0变成1,如果相应的中断使能已经置为1,这时就产生中断,开始执行中断子程序。如果中断使能没有事先置为1,则不产生中断,不会跳入中断子程序,但是中断标志还是为1。当单片机从接收缓冲寄存器中取出数据后,相应的中断标志自动清为0。四硬件1框图2原理图五软件1流程图主程序否是为E为A为B为C为1~7的数字否是且为2是且为1开始是否有键盘按下判断按键选择高音选择中音选择低音发出相应频率的声音播放歌曲判断是否有键按下播放歌曲1播放歌曲22中断子程序是为A为B为1~7之间的数字为C为E否是否是中断子程序是否为串口通信产生中断判断接收到的内容选择高音选择中音选择低音发出相应声音播放歌曲将中断使能置为0接收中断标志是否为1接收到1?播放歌曲1播放歌曲2返回2源程序INCLUDEP16F877.INC;**********************************************************************;定义各寄存器地址和位地址;**********************************************************************INDFEQU00HTMR0EQU01HPCLEQU02H;程序计数器PC低四位STATUSEQU03HFSREQU04HPORTAEQU05H;定义端口A的数据寄存器地址PORTBEQU06H;定义端口B的数据寄存器地址PORTCEQU07H;定义端口C的数据寄存器地址PORTDEQU08H;定义端口D的数据寄存器地址PORTEEQU09H;定义端口E的数据寄存器地址TRISAEQU85H;定义端口A的方向控制寄存器地址TRISBEQU86H;定义端口B的方向控制寄存器地址TRISCEQU87H;定义端口C的方向控制寄存器地址TRISDEQU88H;定义端口D的方向控制寄存器地址TRISEEQU89H;定义端口E的方向控制寄存器地址PIE1EQU8CHINTCONEQU0BH;中断控制寄存器地址INTEEQU4INTFEQU1EECON1EQU18CH;定义烧写控制寄存器1的地址EECON2EQU18DH;定义烧写控制寄存器2的地址EEDATAEQU10CH;定义读/写数据寄存器地质EEADREQU10DH;定义读/写地质寄存器地质RDEQU0;读出启动控制位位址WREQU1;烧写启动控制位位址WRENEQU2;烧写始能控制位位址EEPGDEQU7;访问目标选择控制位位址FEQU1;定义目标寄存器为RAM的指示符WEQU0OPTION_REGEQU81HZEQU2;0标志位位地址RBUPEQU7;定义上拉电阻始能位位地址DATA1EQU20H;延时变量寄存器1,在DELAYTEMP中使用DATA2EQU21H;延时变量寄存器2VALUEEQU22H;暂存按键列码和位置码COUNTEQU23H;延时TEMP0EQU24H;频率OPTION_TEMPEQU0A6H;OPTION_REG数据暂存地址STATUS_TEMPEQU29H;SONGENDEQU30H;曲目终点YINFUEQU31H;按键键值存储地址TABLEEQU40H;按键位置码表表头地址,共16个元素ADDREQU71H;E2PROM地址SPECIALEQU72HSPECIAL2EQU73HW_TEMPEQU7FH;中断保护寄存器ENABLEEQU1;始能端RSEQU0;寄存器选择端ADCON1EQU9FHN2EQU0FFH;内层循环延时常数RP0EQU5;控制不同体之间转换RP1EQU6T0IFEQU2;TMR0的中断标志位COUNT10EQU28H;循环变量MEQU26HNEQU27HQEQU31HLCDREQU32H;LCD循环变量地址XXEQU60H;*******************************************************************ORG000HNOPGOTOMAINORG0004HGOTOSERV;****************MAIN*********************************************MAINBSFSTATUS,RP0;BANK1MOVLW07HMOVWFADCON1;设置LCDBCFSTATUS,RP0;BANK0CALLLCDINITIATE;LCD初始化CALLFUNCTLIST;功能显示界面MOVLWB'00000001';清屏CALLLCDDOWNWRITE;下降触发并写入CLRFVALUECLRFPORTCBSFSTATUS,5MOVLWB'11000000'MOVWFTRISCMOVLW19HMOVWFSPBRGMOVLWB'00100100'MOVWFTXSTAMOVLW0FFH;将端口B设置为输入MOVWFTRISB;MOVLW02H;设置选项寄存器:上拉电阻启用;INT下降沿触发MOVWFOPTION_REG;分频器给TMR0;分频比值设为1:8BSFPIE1,5;开放接收中断使能BCFSTATUS,5MOVLWB'10010000'MOVWFRCSTAMOVLW00HMOVFWPORTCMOVLWH'C0'MOVWFINTCON;开放INT和全局中断使能位;***********table****************************************************MOVLW0DBH;0MOVWF40HMOVLW77H;1MOVWF41HMOVLW7BH;2MOVWF42HMOVLW7DH;3MOVWF43HMOVLW7EH;4MOVWF44HMOVLW0B7H;5MOVWF45HMOVLW0BBH;6MOVWF46HMOVLW0BDH;7MOVWF47HMOVLW0BEH;8MOVWF48HMOVLW0D7H;9MOVWF49HMOVLW0DDH;AMOVWF4AHMOVLW0DEH;BMOVWF4BHMOVLW0E7H;CMOVWF4CHMOVLW0EBH;DMOVWF4DHMOVLW0EDH;EMOVWF4EHMOVLW0EEH;FMOVWF4FH;********判断与功能选择************************************************LOOPMAINCALLCHECKCLRFSPECIALMOVLW0DDH;A高音SUBWFVALUE,0BTFSCSTATUS,ZCALLFENPIN4MOVLW0DEHSUBWFVALUE,0BTFSCSTATUS,ZCALLFENPIN8MOVLW0E7HSUBWFVALUE,0BTFSCSTATUS,ZCALLFENPIN16MOVLW0EDH;E播放SUBWFVALUE,0BTFSCSTATUS,ZCALLSONGMOVLW0H;送0H到W判断寄存器是否为0判断是否为特殊操作(进入特殊操作时都会给PANDUAN加1)SU
本文标题:北邮小学期PIC单片机-蓝牙电子琴-实验报告
链接地址:https://www.777doc.com/doc-2639344 .html