ImageVerifierCode 换一换
格式:DOC , 页数:20 ,大小:1.58MB ,
资源ID:4516557      下载积分:5 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4516557.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(北邮基于单片机的超声波测距附源代码.doc)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

北邮基于单片机的超声波测距附源代码.doc

1、 2013年小学期单片机设计实验报告 题目:基于单片机的超声波测距 班 级: 班内序号: 实验组号: 学生姓名: 指导教师: 实验摘要 本次实验我们制作的超声波测距仪主要实现的功能是非接触式测距,应用于测量环境处于黑暗、有灰尘,烟雾,有毒的情况下的距离测量,利用超声波的直线传播性,较低速性,便于发射和接收,有较高的分辨率和精准度。 整个系统中,微控制器采用了Microchip公司的PIC16F877,软件设计中涉及Rc1、RB4用作超声波发射和接收管脚和LCD1602液晶显示屏用作显

2、示测量结果。本实验用单片机RB4管脚产生高电平使发射电路使能发射超声波,并开始计时,当接收电路接收到超声波后,电平由高变低,送入到单片机Rc1管脚,发送中断请求,停止计时,计算出超声波传播距离,实现测距。 其中发射电路由NE555电路40KHz超声波发生模块和由CD4069反相器构成的信号推挽放大模块组成,接收电路由CX20106模块组成。 概括来说,本实验就是用单片机通过记录超声波发射接收时间,并以此计算出距离。 Abstract In this experiment we produce ultrasonic range finder functions of the

3、main non-contact distance, used in the measurement environment is dark, dust, smoke, toxic case of distance measurement, using an ultrasonic wave transmission line resistance, low speed , ease of transmitting and receiving, a higher resolution and accuracy. Throughout the system, the microcontrolle

4、r uses Microchip's PIC16F877, software design involves Rc1, RB4 for transmitting and receiving ultrasonic LCD1602 LCD monitor as a pin and display the measurement results. The experimental chip produces high RB4 pin enables the emission of ultrasonic transmitter circuit and start the timer, when the

5、 receiving circuit receives the ultrasonic waves, the level from high to low, Rc1 fed to the microcontroller pin interrupt request is sent, stop time, calculated from the ultrasonic wave propagation, to achieve ranging.       Wherein the transmission circuit from 40KHz ultrasonic NE555 circuit CD40

6、69 inverter module and constituted by a push-pull signal amplification module, the receiving circuit by the CX20106 modules. In summary, the present study is to use the microcontroller through the recording ultrasonic transmitting and receiving time, and thus calculate the distance. 关键字 单片机——micro

7、controller 芯片——CMOS chip 超神波——Ultrasonic wave 计时计算——Timing and calculation 一. 实验论证与比较 1.超声波发射模块 超声波测距的发射电路作用是有效发生较强的超声波寻向被测物,以供接收电路接收,其由NE555电路40KHz超声波发生模块和由CD4069反相器构成的信号推挽放大模块组成。如图1所示: 图1 1.1其中控制电路和震荡电路由555基本电路组成,这基本电路能通过改变电阻和电容的值可以改变频率和占空比。如图2

8、 图2 555多谐振荡电路的脉冲宽度TL由电容C 的放电时间来决定: TL≈0.7R2C TH由电容C 的充电时间来决定: TH≈0.7(R1+R2)C 输出振荡信号的周期为: T = TL + TH 频率为: 输出脉冲占空比为: 若调整可调电阻VR1,可改变输出矩形波的频率和占空比。 当调整VR1使得输出为40kHz时,由于(VR1+R4)>>R3,输出波形占空比约为50%,为近似理想对称方波。 555的强制复位端4脚由另一个555低频振荡器的输出取反后控制。 1.2本电路采用CMOS六反

9、相器CD4069构成驱动电路,为了增大驱动电流,可以采用CD4069中两个甚至三个方向器并联的方式实现。 此电路结构称为桥式驱动方式,由于超声波传感器具有高阻特性,其正常工作时需要一定的驱动电流,而每个反相器的输出电流(负载能力)是一定的。两个并联,输出电流加倍,驱动能力提高 图3 2. 超声波接收模块 接收模块是通过cx20106a芯片和相应的的接收电路实现的。其电路如图4 图4 Cx20106a的各管脚功能

10、如下图 图6 以上资料摘自cx20106a的使用资料。 在以上网上提供的电路参数基础上,我们通过使用示波器调整R的阻值,使其接收的中心频率为40KHz左右 二.系统总体设计 系统模块总体框图如下: 发射电路 接收电路 单片机系统 液晶显示 障碍物 整个系统开始工作后,发射电路向障碍物发射1ms的超声波,间歇64ms后再发射一次,如此循环发射电磁波。而接受电路一旦接收到障碍物反射回来的超声波,输出管脚7电位由高变低,单片机跳入中

11、断,根据所计时计算出距离,并在显示屏上显示。 软件设计框图如下: N 若接收到超声波,计时停止, 寄存器将TMR0的值储存 RB4赋值为1,开始发射超声波,tmr0开始计时 Y 是否按下总开关? 数据经过乘法器和编码转换器,转换成8421BCD码送显 三.硬件连接 ⒈发射接收模块连接 整个发射接收电路在面包板上撘出,各个元器件的值起初都用电路图所示的值。然后进行调试,根据发射电路原理,利用示波器,调试R1和R2的值,使发射的超声波频率为40

12、khz,占空比为50%。根据接收电路,利用信号发生器发射40khz信号,调测接收电路输出端由高电位变成地点位。然后进行整体调试,及发射电路发射超声波,接收电路接收,并输出低电平。 ⒉发射接收模块和单片机连接 本实验中应用单片机RB4管脚产生高电平使发射电路使能发射超声波,并开始计时,当接收电路接收到超声波后,电平由高变低,送入到单片机Rc1管脚,发送中断请求,停止计时,计算出超声波传播距离,实现测距。 整个系统连接模块如下: 单片机PIC16F877 发射模块 RB4 液晶显示 接收模块 RC1

13、 四.调试过程 这部分是由搭档林负责,摘自他报告。 ⒈开始软仿真时RB0总是无法清0 在刚开始做软仿真时,出现了RB0无论用任何语句,在WATCHWINDOW下观察均无法使之清0的麻烦,后经过询问老师问题得到解决,原来是在设置为输入管脚的前提下,外部语句是无法对寄存器值进行修改的。 2.单片机始终无法下载 在开始阶段用单片机仿真时,总是出现OPERATION PROBLEM相关的字样,导致下载不成功。更有一次单片机不停发热,最终导致单片机损坏。后来发现是单片机与插槽接触不良,经过不断断电调整问题得到解决。 3.软仿真没问题,但硬仿真总是莫名其妙的跳到中断 这个问题

14、困扰了我整整一上午,这个问题很难被察觉,因为在软仿真上没有出现任何逻辑错误,但在硬仿真时却连总开关的作用都没起到就跳到了中断。后来经过反复排查,发现是单片机的RB6和RB5两脚损坏,电平不稳导致单片机跳到RB中断,经过更换单片机问题得到解决。 4.在跳出中断是总是马上又回到中断 在软仿真时,出现了永远在中断中循环,无法进行后面语句的问题。后来经过排查反思,发现是中断标志位一直赋值为1,经过软件清0,问题得到解决。 5.在送往显示器时遇到了一定困扰 因为计算出的数字在寄存器内是以2进制数的形式表示的,而在液晶屏的代码中仅与相应数字的十进制有关,这对送显造成了极大的困扰。后来经过查阅资料,

15、想到了先把二进制码转化为8421BCD码然后通过筛选前后四位来分别送显,问题得以解决。 五.参考文献: PIC单片机实用教程——基础篇 北京航空航天大学出版社 使用说明:的确是一本不可或缺的教材,本书列举了很多实用的具有实战意义的例子,单片机入门就是通过把这本书里的好例子一字一行敲进电脑去来实现的。 PIC单片机实用教程——提高篇 李学海 北京航空航天大学出版社 使用说明:继承了前面基础篇的风格,例子也具有实战意义,主要讲RA、TMR2的使用和CCP模块的PWM脉宽调制功能。 六.实验心得体会 整个实验过程历时15天左右,刚刚开始的时候,对单片机没什么概

16、念,不得头绪,无从下手。听学长学姐们介绍说,单片机实验其实很有趣,也比较“热血”,想想自己能亲手做出一个能实现简单功能的小应用产品,对于我们以前只是从课本中得来而不常动手实践的来说,绝对是一件增长知识,锻炼能力的事。后经过老师们对实验的简单介绍,我们有了一个初步了解,也表现的信心满满。 在确定要做的实验题目时,我和我的搭档有些分歧,我坚持做这个超声波测距,而林小斐觉得做电子琴或音乐发生器什么的比较简单,容易完成,而超声波测距容易受外界干扰,不易出结果。于是我和他交流,说简单的人人都愿意做,就没有什么挑战性,并且对于这个小学期,我对自己还是很有期望的,希望能做的比较好,不能应付了事。最

17、后我们达成一致意见,决定做这个实验。 我主要负责实验中硬件的部分,设计电路,搭电路,调试电路,焊电路。等等一体手工工作由我负责,而林小斐负责程序部分,前期我们双管齐下,很快就把电路和程序都给弄出来了,到了调试的时候,发现接收电路出现一个问题,就是通过信号发生器发生的信号加在接收电路中有正常现象出现,即能输出方波,然而整机调试时就是接收不到超声波信号,经过多次尝试,多次更换元器件,仍然没有效果。在这个问题上我们停滞了两天,由于时间的原因,我们及时改变方案,转换了思路,采用cx20106a芯片作为接收电路。虽然,我们没有找出先前的接收电路有什么问题,但我们尝试了在有问题时另辟蹊径,及时找到替代方

18、案。我们体会到在解决问题是要多方面考虑多角度入手,只要能符合工程要求就可以,具体什么途径都是可行的,不能拘泥一条路,要综合考虑时效性,工作量,选择最佳途径。 到后期,实验进程就比较顺利了。焊电路,几乎是一次就成功了,加上单片机调试时,也更是一次就成功了,虽然结果,所测距离不太尽人意。但是还是很让我们鼓舞,我们从这里深深体会到,合作分工,每个人都要认真负责,专注做好自己的那部分,这样才能马到成功,如果两个人都很敷衍,出现问题互相指责对方,那一定得不到结果的。还有就是遇到问题要冷静,要让问题成竹于胸,如果出现问题都不知道如何入手,那就说明前面的工作都是不靠谱的,不值得信赖的,因为你压根不知道自己

19、在做一些什么。 在这个两个礼拜里,两位老师也辛苦了,对待学生非常和蔼,非常耐心。有时候连我们自己拿着问题去问老师时,自己都要觉得老师应该要被我们问毛了,可谁知老师们态度非常好,非常耐心的给我们解决问题,而且两位老师在教学上非常专业,所以一直很钦佩两位老师。我想对你们说一句,你们辛苦了,谢谢老师。 验收时,由于操作不当,在我手上坏了一个显示屏,一个单片机。真是不应该,细心点也就不会了,不过我还在心里调侃自己,小学期嘛,不坏几个东西,也学不到什么东西,呵呵。不过还是要吸取教训,下次实践时,注意些,多留点心。 总的来讲,小学期还是学到了很多的,不仅仅是单片机的简单应用。还学会了如何合作,如何找

20、到问题,解决问题。还亲自自己动手焊了一块像样的板子,自己感觉还是不错的。小学期,受益匪浅呐! 附汇编语言源代码 N EQU 20H ;define N M EQU 21H ;define M COUNT EQU 22H ;define COUNT tmr0 EQU 01H option_reg EQU 81H intcon EQU 0BH mulcnd equ 30h ; 8 bit multiplicand mulplr equ 31h ; 8 bit multiplier H_byte equ 32h ; H

21、igh byte of the 16 bit result L_byte equ 33h ; Low byte of the 16 bit result stepcounter equ 34h ; loop counter porta EQU 05h trisa EQU 85h portb EQU 06h trisb EQU 86h portc EQU 07h trisc EQU 87h status EQU 03h rp0 EQU 5 flag EQU 23H CNT EQU 43H TEMP2 EQU 44H TEMP3

22、 EQU 45H INDF EQU 00H FSR EQU 04H TEMP1 EQU 46H R2 EQU 47H RLT EQU 40H SOUH EQU 41H SOU EQU 42H showport1 EQU 50H showport2 EQU 51H showport3 EQU 52H showport4 EQU 53H showport5 EQU 54H showport6 EQU 55H porte equ 09h trise equ 89h portd equ 08h trisd

23、 equ 88h adcon1 equ 9fh count1 equ 60h count4 equ 61h ;**********************fuwei***************************** org 000h nop goto main ;************************zhongduan******************** org 004h btfss intcon,0 retfie bcf intcon,0

24、 movf tmr0,0 movwf COUNT goto calculate retfie ;**********************zhuchengxu************************ org 0010h main bsf status,rp0 ;ti1 movlw 000h movwf trisb bcf status,rp0 ;ti0 movlw 000h movwf portb bsf status,rp0 ;ti1 movlw 007h movwf option_reg movl

25、w 0FFh movwf trisb movlw 0 movwf trisc movlw 0 movwf trisd movlw 0 movwf trise bcf status,rp0 ;ti0 bcf intcon,5 bcf intcon,0 bcf intcon,4 bsf intcon,3 bcf intcon,6 movlw 000h movwf portc call init nop check btfsc portb,0 ;if rb0=0,step over

26、goto check CLRF COUNT movlw 000h movwf tmr0 bcf intcon,0 bcf intcon,0 bsf intcon,7 bsf portc,1 a goto a ;****************************************************** calculate movf COUNT,0 movwf mulcnd movlw d'43' movwf mulplr call mpy_S ;*************

27、chengfa**************************** mpy_S clrf H_byte clrf L_byte movlw 8 movwf stepcounter movf mulcnd,0 bcf status,0 ; Clear the carry bit in the status Reg. loop rrf mulplr btfsc status,0 addwf H_byte,1 rrf H_byte,1 rrf L_byte,1

28、 decfsz stepcounter goto loop goto bianhuan retlw 0 ;***************************bianhuan*********************************** bianhuan movf H_byte,0 movwf SOUH movf L_byte,0 movwf SOU DBTBCD MOVF SOU,0 MOVWF TEMP2 MOVF SOUH,0

29、 MOVWF TEMP3 CLRF SOU CLRF SOUH CLRF RLT BCF status,0 MOVLW .16 MOVWF CNT LOOPC1 RLF TEMP2,1 RLF TEMP3,1 RLF SOU

30、1 RLF SOUH,1 RLF RLT,1 DECFSZ CNT,1 GOTO ADJDEC1 nop GOTO getshowport ;整个子程序结束 ADJDEC1 MOVLW SOU MOVWF FSR CALL ADJBCD1 ;

31、调整RLT MOVLW SOUH MOVWF FSR CALL ADJBCD1 ;调整RLTH MOVLW RLT MOVWF FSR CALL ADJBCD1 ;调整TEMP1 GOTO LOOPC1 ;********************调整BCD******************** ADJBC

32、D1 MOVLW 03H ADDWF INDF,0 ;低四位加3 MOVWF TEMP1 ;暂存 BTFSC TEMP1,3 ;结果大于7, MOVWF INDF ;则存起来 MOVLW 30H ADDWF INDF,0 ;高四位加3 MOVWF TEMP1

33、 BTFSC TEMP1,7 ;结果大于7, MOVWF INDF ;则存起来 RETLW 0 getshowport movf RLT,0 ANDLW 00FH IORLW 030H movwf showport2 SWAPF RLT,0 ANDLW 00FH IORLW 030H movwf showport1 movf SOUH,0 ANDLW 00FH IORLW 0

34、30H movwf showport4 SWAPF SOUH,0 ANDLW 00FH IORLW 030H movwf showport3 movf SOU,0 ANDLW 00FH IORLW 030H movwf showport6 SWAPF SOU,0 ANDLW 00FH IORLW 030H movwf showport5 goto show ;****************************************************** show movlw d

35、'8' movwf count1 movlw d'1' movwf count4 bsf status,5 clrf trisd clrf trise movlw 0x06 movwf adcon1 bcf stat

36、us,5 bcf porte,0 call delay10ms call init circle1 call vshow call delay10ms call sshow call delay10ms goto circle1 ;--------

37、 init bcf porte,0 call delay10ms movlw b'00110000' movwf portd call down call delay10ms movlw b'00110000'

38、 movwf portd call down call delay10ms movlw b'00110100' movwf portd call down call delay10ms movlw b'00001000' movwf po

39、rtd call down call delay10ms movlw b'00000001' movwf portd call down call delay10ms movlw b'00001100' movwf portd call

40、 down call delay10ms return ;------------------------------------------------ down bsf porte,1 nop nop nop nop bcf porte,1 return ;------------------------------------------------- vshow bcf porte,0 movlw b'100

41、00000' movwf portd call down call delay10ms bsf porte,0 movlw b'01100100' movwf portd call down call delay10ms movlw b'00111101' movwf portd

42、 call down call delay10ms movf showport1,0 movwf portd call down call delay10ms movf showport2,0 movwf portd call down

43、 call delay10ms movf showport3,0 movwf portd call down call delay10ms movlw b'00101110' movwf portd call down call delay10ms

44、 movf showport4,0 movwf portd call down call delay10ms movf showport5,0 movwf portd call down call delay10ms movf sh

45、owport6,0 movwf portd call down call delay10ms movlw b'01001101' movwf portd call down call delay10ms return ;---------------------

46、 sshow bcf porte,0 movlw 0c0h movwf portd call down call delay10ms bsf porte,0 movlw b'00110000' movwf portd call down call delay10ms

47、 movlw b'00110000' movwf portd call down call delay10ms movlw b'01000011' movwf portd call down call delay10ms movlw

48、 b'01001101' movwf portd call down call delay10ms return ;------------------------------------------------------- delay10ms movlw 0fh movwf 30h loop2 movlw 0ffh movwf 31h loop1 decfsz 31h,f goto loop1 decfsz 30h,f goto loop2 return ;------------------------- end

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服