




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 06122班14号王豪单片机设计实验报告2015年小学期单片机设计实验报告题目:基于红外探测的小车自动循迹系统班 级: 2013211117 班班内序号: 2 号 实验组号: 23 学生姓名: 李昊然 指导教师: 丘广晖 张媛媛 电子音乐发生器2013211117班 李昊然实验摘要 我们小组制作的电子音乐发生器涵盖播放音乐,键盘演奏和存储音乐并播放三个基本功能。在功能设计上分为四个模块:液晶屏显示模块、键盘模块、音乐发生模块、音乐存储模块。四个模块首先独立编程再进行整合连接。整个系统中,音乐发声部分采用了Microchip公司的PIC16F877芯片实现,采用PORTD作为控制液晶屏显示的端
2、口,用PORTB和PORTD作为控制键盘操作的端口,用PORTC6作为控制蜂鸣器发声的端口。存储音乐播放,用户在键盘上输入,将数据写入ROM中,点击播放按键后,将其数据读取,播放。概括来说,本实验采用单片机接受用户指令来控制各个模块,达到音乐播放、键盘演奏、 录放音的功能。关键字单片机 芯片 eeprom 键盘检测一. 实验论证与比较二. 液晶屏显示模块 在整个程序中,液晶屏用于为用户显示说明及指令,实现交互可视性。其中,PORTE作为普通数字I/O口。由于所有的功能位数据和数据位数据送到液晶各引脚时液晶并不读入,而是通过将第六脚先置1再置0来触发,之后指令或数据才被读入,故设计ENABLE程
3、序使其执行相应指令,相当于使能指令。三. 键盘输入模块 键盘作为输入模块的作用主要是为单片机输送用户指令,用户通过键盘输入操控音乐发生器的功能,同时在键盘演奏的功能下,按动不同键值发出不同音阶。在4x4键盘中,循环检测行码和列码有无低电平,通过异或和与运算找到低电平所在位置,通过键盘查询表及FSR指针翻译出键值,执行相应指令。 四. 音乐发生模块音乐发生模块的作用主要是按照接收的指令使蜂鸣器发出不同音调和时长的声音。其核心程序是方波产生器。通过设置分频比和计数器TMR0来控制方波的频率。对于不同音阶,用M1和M2控制时长和频率,并通过PORTC6端口输送至蜂鸣器,发出不同声音。在按键电子琴功能
4、部分,通过键码返回值FSR确定执行P1P14,并且进行循环扫描,发出声音。但是这种方法由于扫描程序存在延迟,致使声音粘连性不够好,需要加以改进。五. 录音模块通过键盘输入,将输入的数据存储在ROM中,按播放键将其读取,播放音乐。按照参考书上定义SPI的基本状态,将芯片的输出改为SPI串行通信协议,ISD4002语音芯片是16位命令,而16F877则是8位,所以需要给串行通信输出端口sspbuf无延迟的赋值两次8位指令。二.系统总体设计系统分为三个功能模块,播放存储音乐,按键电子琴和录音。用户打开系统后,会进行相应的选择,选择播放音乐,则播放存储音乐;选择按键电子琴,则会根据用户的按键,发出不同
5、音调的声音;选择录音,则用户按键,系统则会自动将其存储在ROM中,当用户选择播放后,则会将用户连续的按键对应的声音播放出来,完成录音且播放的功能。1. 系统总体框图2.录音存储模块系统框图录音存储键盘输入播放按键录音播放三.硬件连接1.液晶屏显示模块由于控制指令与写入数据的PORTE值有所不同,故编写两个不同ENALE程序分别控制写入指令及数据的使能。定义PORTD为输出端口。对于指令,通过给PORTD赋值,可实现显示屏开关、光标闪烁、光标右移、清屏、写入位置等设置。对于写入数据,通过给PORTD赋予字符的ASCII码值来显示相应的字母、数字及标点。2.键盘输入模块将PORTB设置为存储列码,
6、PORTD存储行码。在键盘扫描时,先将PORTB作为间接寻址读表直至键值表末尾,并存入W,与位置码比较,返回FSR的值(0F)。3.音乐发生模块输入,屏蔽掉D口,将列码存入VALUE。之后将PORTD作为出入,屏蔽掉B口,读取行码。使行码列码组合送入VALUE中。在翻译程序中,首先使FSR指针指向表头,在方波产生器中,首先设置占空比OPTION_REG为8,产生方波,然后通过两个循环嵌套LPT1 和LPT2作为延时。在方波产生器程序中,声音的播放时长和频率是通过M1和M2这两个参数设置的,M1的值=发声频率*0.125*2,在这里0.125为按键按下发出声音的时长,M2的值=256-1/(发声
7、频率/2),并将其赋值给TMR0。4.录音模块录音模块的原理在第一部分已经说明,SPI串行通信协议实现起来也比较容易。先给16位指令赋值然后调用OUTPUT函数实现各种功能。在系统流程走至录音模块时,按住1键开始录音,3键播放录音,2键控制暂停和继续,0键为返回键。四.调试过程1.实验箱调试之前没有接触过单片机,刚开始对硬仿真也不是很熟悉,后来随着学习和熟悉,也熟练的掌握了实验箱调试的方法。在进行任何插头的插拔之前需要先断电,包括查到电脑之前也需要先关机。2.软件调试 软件调试类似我们之前的编程语言学习,诸如要严格按照编程语言语法规定,不要出现逻辑错误等,与单纯的编程语言相比较,更多的是要考虑
8、变量的地址。但在编程中,也遇到以下问题。首先是没有转体。定义端口输入输出方向的时候需要转至体1,在赋值时需转为体0。在看书时对这一问题并没有意识到,但在自己编程液晶屏部分时最开始定义了TRISB和TRISD后没有转回体0,虽然编译并没有错误但就是运行不正确,再仔细检查才发现少了一句“BCF STATUS,RP0”。再有就是程序嵌套层次要尽量少,逻辑要尽量简单,不然会导致程序崩溃。在下载到实验箱时有时会出现问题3.硬件调试在硬件调试时,我们开始没有分模块,分区域进行焊接,而是将整体焊接完成后,直接进行整体的调试。结果,LCD显示屏什么也不显示。在检查时,也因为整体布线过于凌乱,无法发现问题所在。
9、所以,第二次,我们痛定思痛,将电路拆掉,重新分模块,分区域进行焊接,调试,最后用万用表测出接电源部分输出异常,最后是因为将其中的电阻算错导致的。在整体测试中,我们LCD显示屏显示异常,再次检查,检查电路图设计,电路焊接,仍是查不出问题所在。最后我们怀疑是不是部分元器件损坏,最后查明,晶振坏了。在硬件调试中,我们学习了不少书本上没有的知识。首先,做实验时,一定要分模块,分区域进行,便于自己检查。其次,也要大胆怀疑,质疑,有了问题不一定就是主观因素导致的,也有可能是客观因素导致的,要大胆质疑,全面考虑。五.参考文献:PIC单片机实用教程基础篇 (五号 宋体)李学海北京航空航天大学出版社使用说明:的
10、确是一本不可或缺的教材,本书列举了很多实用的具有实战意义的例子,单片机入门就是通过把这本书里的好例子一字一行敲进电脑去来实现的。PIC单片机实用教程提高篇李学海北京航空航天大学出版社使用说明:继承了前面基础篇的风格,例子也具有实战意义,主要讲RA、TMR2的使用和CCP模块的PWM脉宽调制功能。六.实验心得体会经过本次小学期的实验课,我学到了很多平时上课学不到的东西。这次电路综合实验与以往的实验课有很大不同,之前我们接触到的实验课,更多的是由老师教会我们实验的基本知识和操作步骤,我们只需要按照老师的指导完成操作即可。但这次实验之前,刚刚接触到单片机时,我可以说是一窍不通,甚至对于单片机究竟是什
11、么也不能很精确地表达出来。尽管实验之前老师讲了一些单片机的基本知识,但我对于如何使用单片机,如何用汇编语言编程还是一头雾水。我们只能依靠两本参考书和自己查阅资料来逐渐熟悉理解汇编语言和单片机。通过四天的学习,我对汇编语言和单片机有了一个初步的认识,这四天的学习很艰苦,也很枯燥乏味。但同时收获也很大,我学会了如何快速的大概翻阅一本新书,以及如何从书本中筛选出对实验有用的知识,这对我是一个很大的锻炼和提高。开始进行程序设计时,我们又遇到了一些困难,比如我们要实现那些功能,如何实现,能不能在规定时间内完成等等。经过一段时间的困惑之后,我们小组成员通过讨论确定了题目,让我体会出团队的团结、相互的默契和
12、彼此的信任在团队的协作中是多么重要。 在学习和实验过程中,我们收获了新知识,更重要的是学会了如何获取并运用知识。我们遇到了很多困难,但通过对理论知识的一步步学习,并且查阅相关资料,逐渐有了自己的目标,也逐渐形成了实验步骤的规划,并付诸于实际程序设计和电路连接之中,在这个过程中,我们遇到了很多问题,也走了很多弯路,例如分工不明确,开始设计的功能过于简单等等。但是我们都通过自己的努力和同学老师的帮助一一解决,我认为解决问题的过程远比一帆风顺的实验过程更有价值,吃一堑长一智,这次实验中的不足之处和没有解决的问题,我们下次一定能做得更好七硬件图八.关键代码1.屏幕显示 MOVWF PORTD CALL
13、 DOWN MOVLW 0F4H;音 MOVWF PORTD CALL DOWN MOVLW 0C0H MOVWF PORTD CALL DOWN MOVLW 0D6H;乐 MOVWF PORTD CALL DOWN MOVLW 0B7H MOVWF PORTD CALL DOWN MOVLW 0A2H;发 MOVWF PORTD CALL DOWN MOVLW 0C9H MOVWF PORTD CALL DOWN MOVLW 0FAH;生 MOVWF PORTD CALL DOWN MOVLW 0C6H MOVWF PORTD CALL DOWN MOVLW 0F7H;器 2.键盘检测STA
14、RT CLRF PORTCMOVLWB01111111;第三行MOVWFPORTD BTFSSPORTB,3 CALLZERO BCF PORTA,0BTFSSPORTB,2 CALLONE BCF PORTA,0BTFSSPORTB,1 CALLTWO BCF PORTA,0 BTFSSPORTB,0CALLTHREE BCF PORTA,0 MOVLWB10111111;第二行MOVWFPORTD BTFSSPORTB,3CALLFOUR BCF PORTA,0BTFSSPORTB,2 CALLFIVE BCF PORTA,0BTFSSPORTB,1 CALLSIX BCF PORTA,0
15、 BTFSSPORTB,0CALLSEVEN BCF PORTA,0 MOVLWB11011111;第一行MOVWFPORTDBTFSSPORTB,3 CALLEIGHT BCF PORTA,0BTFSSPORTB,2CALLNINE BCF PORTA,0BTFSSPORTB,1 CALLRECORDMOVLWB11101111;第0行 MOVWF PORTDBTFSSPORTB,3 ;若第三位为1,则跳一步CALLCCGOTOSTART3.录音功能WRITE BSF STATUS,RP0 BSF STATUS,RP1 ;选定体3 BTFSC EECON1,WR ;上一次写操作是否完成 GO
16、TO $-1 ;否!返回继续检测 BCF STATUS,RP0 ;选定体2 MOVF ADDR,W ;取地址 MOVWF EEADR ;送地址寄存器 MOVF DATA1,W ;取数据 MOVWF EEDATA ;送数据寄存器 BSF STATUS,RP0 ;选定体3 BCF EECON1,EEPGD ;选定EEPROM为访问对向 BSF EECON1,WREN ;开放写操作使能控制 MOVLW 55H ; MOVWF EECON2 ;送55H到寄存器EECON2(读写内部EEPROM,这句是固定的) MOVLW 0AAH ; MOVWF EECON2 ;送AAH到寄存器EECON2(读写内部
17、EEPROM,这句是固定的) BSF EECON1,WR ;启动写操作 BCF EECON1,WREN ;禁止写操作发生 INCF ADDR,F ;地址递增 INCF DATA2,F ;数量递增 BCF STATUS,RP0 BCF STATUS,RP1 MOVLW B11111111 MOVWF PORTC CALL DELAY50MS GOTO RECORD ;否!继续写后面单元READ1 DECF ADDR,F ;地址递减 BCF STATUS,RP0 ;选体2为当前体 BSF STATUS,RP1 ; MOVF ADDR,W ;取地址 MOVWF EEADR ;送地址寄存器 BSF S
18、TATUS,RP0 ;选体3为当前体 BCF EECON1,EEPGD ;选定EEPROM为访问对象 BSF EECON1,RD ;启动读操作 BCF STATUS,RP0 ;体2为当前体 MOVF EEDATA,W ;取数据 BCF STATUS,RP1 ;体0为当前体 ;MOVWF PORTC ;送显LED ;CALL DELAYDSP ;调用廷时子程序 MOVF ADDR,F ;检测当前地址 BTFSS STATUS,Z ;是否为0?是!跳一步 GOTO READ1 ;否!返回继续读出和显示 GOTO READ2READ2 INCF ADDR,F ;地址递增 BCF STATUS,RP0
19、 ;选体2为当前体 BSF STATUS,RP1 ; MOVF ADDR,W ;取地址 MOVWF EEADR ;送地址寄存器 BSF STATUS,RP0 ;选体3为当前体 BCF EECON1,EEPGD ;选定EEPROM为访问对象 BSF EECON1,RD ;启动读操作 BCF STATUS,RP0 ;体2为当前体 MOVF EEDATA,W ;取数据 BCF STATUS,RP1 ;体0为当前体 CALL OUTPUT ;送数码管显示READ3 MOVF ADDR,W XORLW DATA2 BTFSS STATUS,Z GOTO READ2GOTO READ14.歌曲CALLDELAY1CALLDELAY1CALLDELAY1CALLDELAY1CALLDELAY2CALLDELAY2CALLDELAY2CALLDELAY2CALLDELAY3CALLDELAY3CALLDELAY3CALLDELAY3CALLDELAY1C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年国际美术设计师作品集展示试题及答案
- 建模应用技术试题及答案
- 2024年广告设计师证书考试设计业务题及答案
- 2024年广告设计师数字传播试题及答案
- 护士呼吸考试题及答案
- 广告设计中的文化表现与反映试题及答案
- 2024年设计师考试的严谨准备策略试题及答案
- 2024年纺织品设计师证书考试的复习提示及答案
- 2024年助理广告师各科目的复习建议试题及答案
- 检验员在质量控制中的实践经验试题及答案
- (整理)年产20万吨氯乙烯工艺设计
- 电动葫芦(行车)检查记录表
- DB2110T 0004-2020 辽阳地区主要树种一元、二元立木材积表
- 100以内进位加法练习题1
- 建设工程施工项目每日“防高坠三检”检查记录表
- 服装厂建设项目可行性研究报告
- 学校体育学(第三版)ppt全套教学课件
- 住建部《建筑业10项新技术(2017版)》解读培训课件
- 基于深度学习的问题链讲座课件(44张PPT)
- 水文学习题和答案解析
- 西安交通大学赵进全模拟电子技术基础第8-9章
评论
0/150
提交评论