微机原理与单片机技术实践报告

上传人:第*** 文档编号:55325716 上传时间:2018-09-27 格式:DOC 页数:16 大小:623.50KB
返回 下载 相关 举报
微机原理与单片机技术实践报告_第1页
第1页 / 共16页
微机原理与单片机技术实践报告_第2页
第2页 / 共16页
微机原理与单片机技术实践报告_第3页
第3页 / 共16页
微机原理与单片机技术实践报告_第4页
第4页 / 共16页
微机原理与单片机技术实践报告_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《微机原理与单片机技术实践报告》由会员分享,可在线阅读,更多相关《微机原理与单片机技术实践报告(16页珍藏版)》请在金锄头文库上搜索。

1、20132014学年度第 二 学期微机原理与单片机技术实践报告课题:基于 PIC16F877A 的红外 测距学院 自动化 专业 电子信息科学与技术 班级 学号 姓名 指导教师 目录目录1 设计任务目的及要求31.1 设计任务目的31.2 设计任务要求32 原理与模块介绍32.1 硬件部分3系统设计总框图:32.1.1 最小系统42.1.2 设计的应用系统72.1.3 电路设计的原理介绍73 设计方案113.1 硬件部分113.2 软件部分124 实验结果与数据处理124.1 硬件部分.124.2 软件部分135 结论与问题讨论135.1 结论136. 参考文献137 附录:141 设计任务目的

2、及要求设计任务目的及要求1.1 设计任务目的课程设计的主要目的是通过对 PIC 单片机的设计实践,了解 PIC 单片机系统控制过程、设计要求、应完成的工作内容和具体设计方法。通过设计也有助于复习、巩固以往所学的知识,达到灵活应用的目的。课程设计应强调能力培养为主,在独立完成设计任务的同时,还要注意其他方面的能力的培养与提高,如独立工作能力与创造力;综合运用专业及基础知识的能力,解决实际工程技术问题的能力等。1.2 设计任务要求设计任务要求任务:任务:利用 PIC16F877a 单片机和 SHARP 2Y0A21 红外测距模块设计红外 测距。 要求:要求:利用 PIC16F877a 单片机内嵌

3、ADC 模块,将 SHARP 2Y0A21 红外测 距模块发出的模拟信号转换为数字信号,并输出到 LED。2 原理与模块介绍原理与模块介绍2.1 硬件部分系统设计总框图:PIC16f877a 最小系统八个 LED 灯SHARP 2Y0A21 红外测距模块2.1.1 最小系统最小系统本次制作的 PIC16f877a 最小系统由一 PIC16f877a 芯片、晶振模块、复位 模块、按键模块、AD 转换模块、外部中断模块、ICD2 接口模块、LED 模块、 电源电路(采用三节干电池)组成。以下为本人在 multisim10 下的电路图。晶振模块:晶振模块:晶振模块 - 此电路中采用 12MHz 的晶

4、振,加上两个电容构成外部振荡电路。复位模块:复位模块:复位模块 - 因为 PIC 单片机的人工复位是低电平有效,所以设计出的电路 为按键前输出高电平,按键后输出低电平。按键模块:按键模块:AD 转换模块:转换模块:外部中断模块:外部中断模块:ICD2 接口模块接口模块:LED 模块模块:LED 模块 - 接单片机的 I/O 口,为低电平有效。总体电路:总体电路:2.1.2 设计的应用系统设计的应用系统除了最小系统外,还要添加外设 - SHARP 2Y0A21 红外测距模块2.1.3 电路设计的原理介绍电路设计的原理介绍(1) PIC16F877a 原理简介 PIC16F877a 特性:PIC1

5、6F877a 是由 Microchip 公司所生产开发的新产品, 属于PICmicro 系列单片微机,具有 Flash program 程序内存功能,可以重复 烧录程序,适合教学、开发新产品等用途;而其内建 ICD(In Circuit Debug) 功能,可以让使用者直接在单片机电路或产品上,进行如暂停微处理器执行、观 看缓存器内容等,让使用者能快速地进行程序除错与开发。 如图 1 为 PIC16F877a 的 40 根接脚图,PDIP 是指一般最常见的DIP(Dual In Line Package)包装,而 PIC 单片机也有PLCC(Plastic Leaded Chip Carrie

6、r) 与 QFP(Quad Flat Package)两种形式的包装,依照不同的需求,寻找不同的 包装形式。如图所示,每根接脚都有其特定功能,例如 Pin11 与 Pin32(VDD) 为正电源接脚,Pin12 与 Pin31(VSS)为地线接脚;而有些接脚有两种甚至三种 以上功能,例如 Pin2(RA0/AN0)代表 PORTA 的第一支接脚,在系统重置(Reset) 后,可自动成为模拟输入接脚,接收模拟讯号,也可经由程序规划为数字输出输 入接脚。 (2) 输入输出接口 PIC16F877a 除了上述基本电路所占用的 7 支接脚外,其余的 33 支接脚都可当成输出、输入接脚,输入输出端口是单

7、片机基本界面,可以与周边电路进行电路 控制和信号传输与检测。PIC 是 8 位的单片机,以接脚特性分组,每组尽量凑满 8 支接脚,并将 I/O 命名为 PORTA(RA0RA5)、PORTB(RB0RB7)、 PORTC(RC0RC7)、PORTD(RD0RD7)和 PORTE(RE0RE2)等,各分组 接口特性说明如下: PORTA PIC16F877 的 PORTA 总共有 6 个位(RA0RA5),PORTA 的接脚可作为数 字输出输入端口,而系统重置后,PORTA 自动成为模拟输入状态,可读取模拟 输入讯号。 PORTB PORTB 总共有 8 个位(RB0RB7),可以撰写程序规划输

8、入输出方向、状态, 其中,要进行烧录时,使用到三支接脚,分别是 Pin36(RB3/PGM)、Pin39(RB6/PGC)与 Pin40(RB7/PGD)。 PORTC PORTC 总共有 8 个位(RC0RC7),除了可作为数位 I/O 外,还和一些特殊功 能的周边电路共享接脚,例如 CCP(直流马达控制) 、I2C、SPI(同步串行通 讯电路) 、UART(异步串行传输电路)等等。 PORTD(2)SHARP GP2Y0A21YK0F 红外测距模块介绍产品规格:Sharp 的红外传感器都是基于一个原理,三角测量原理。红外发射器按照一定的角度发射红外光束,当遇到物体以后,光束会反射回来,如图

9、 1 所示。反射回来的红外光线被 CCD 检测器检测到以后,会获得一个偏移值 L,利用三角关系,在知道了发射角度 a,偏移距 L,中心矩 X,以及滤镜的焦距 f 以后,传感器到物体的距离 D 就可以通过几何关系计算。出来了。可以看到,当 D 的距离足够近的时候,L 值会相当大,超过 CCD 的探测范围,这时,虽然物体很近,但是传感器反而看不到了。当物体距离 D 很大时,L 值就会很小。这时 CCD 检测器能否分辨得出这个很小的 L 值成为关键,也就是说 CCD 的分辨率决定能不能获得足够精确的 L 值。要检测越是远的物体,CCD 的分辨率要求就越高。下图就是 GP2D12 红外线测距传感器的电

10、压值与距离值的关系曲线,从这个曲线可以看出,电压输出与距离成反比,而且是非线性关系。根据上图关系曲线,大约关系为 10cm 距离时有 2.55V 输出,80cm 距离时有0.42V 输出。可以通过该曲线拟合出电压值与距离值的数学关系式,但是这个关系式里的距离是参考距离值,实际距离值=(参考距离值-0.42)cm,另外由于Arduino 的模拟量采样命令 analogRead(),采样的数据范围是 0 至 1023,对应的电压范围是 0 至 5V,每格数据代表 0.0049V,于是读取的有效数据应该由86(0.42V)至 520(2.548V)。而 SHARP 2Y0A21 很受欢迎的感应器会在

11、 10 公分的距离及 80 公分的距离时, 分别产生 3.1V 及 0.3V 的类比输出。将 SensorValue 转换成 Distance 的公式(此公式仅在 SensorValue 介于 80 到 500 之间有效)如下,Distance (cm) = 4800/(SensorValue - 20) 3 设计方案设计方案3.1 硬件部分硬件部分基于 PIC16F877a 芯片,设置一个最小的应用系统,他至少包括产生时钟信号的外部 振荡电路、手动复位电路、供电电路;借着,需要检测所设计的最小系统是否工作,还需 要一些输入和输出模块,如这次设计中的 LED 灯等。为了实现此次任务的要求,需要

12、对最小系统进行相应的扩展,即HARP 2Y0A21 红 外测距模块。3.2 软件部分软件部分程序设计中所考虑的各部分:ADC 模块的 I/O 口设置设置 ADC 模块输入口设置时钟清除 ADC 中断标志位ADC 中断许可位打开高优先级中断打开总中断延时ADC 扫描清除 ADC 中断标志位4 实验结果与数据处理实验结果与数据处理4.1 硬件部分硬件部分1) 把相关的电路设计软件(此次设计用到 multisim10)进行电路图的设计;然后按照完整应用系统的电路图,把各个元件焊接在万用版上,完成此次设计所需要的硬件部件。2) 对焊接好的电路板进行检测,查看电路板是否完整焊好、是否出现短路等等;另外在

13、焊接过程中各个接线的链接要处理好,以便额外的查错。3) 初步检查电路板没出现问题后,接下来是下载一些小程序到芯片中,分别检验各个模块是否能正常工作;如晶振是否起振、LED 是否工作等。4) 若进行了以上的小程序测试后,各部分能正常工作,则硬件部分到这里完成了。4.2 软件部分软件部分1)编写小程序,用于检测电路板各模块是否正常工作。2)根据上文所描述的程序设计思想、模块和流程,编写相应功能程序,然后将各部分整合起来。3)在编写程序是,配合电路板,检测所写程序的正确性。4)配合电路板,进行调试,要增强程序的容错能力。5 结论与问题讨论结论与问题讨论5.1 结论结论本文主要从硬件方面说明设计的总体

14、思路和设计的实现过程,预期的设计目的是:能够实现红外测距的基本功能,启停及正常显示.在设计过程中,曾经遇到很多的障碍,程序设计流程图经过许多次的修改最后才定下来。在设计中有好多问题都是因为理论知识不扎实,这使我明白要把所学到的理论转化为实践需要一段努力学习的过程;在做一个设计的过程中,一定要注意理论和实践同步进行,光有理论知识还是远远不够的,要用时间去检验理论,用理论指导实践6. 参考文献参考文献1刘启忠,李荣正,陈学军.PIC 单片机实例教程M. 北京航空航天大学出版社 (第三版) ,2006.10 2刘和平. PIC16F87X 单片机实用软件与接口技术-C 语言及其应用. 北京航空 航天

15、大学出版社,2002.47 附录:附录:源程序代码:#include void delay(int x); /延时函数void main()int x=0xff;TRISD=0;ADCON1bits.PCFG3=0;ADCON1bits.PCFG2=0;ADCON1bits.PCFG1=0;ADCON1bits.PCFG0=0; /AD 的 I/O 口设置ADCON0bits.CHS2=0;ADCON0bits.CHS1=0;ADCON0bits.CHS0=1; /设置 AD 输入口(RA1/AN1)ADCON1bits.ADCS2=0;ADCON0bits.ADCS1=1;ADCON0bits.ADCS0=1; /设置时钟 Fosc/64ADCON0bits.ADON=1; /打开 ADCPIR1bits.ADIF=0; /清除 ADC 中断标志位PIE1bits.ADIE=1; /ADC 中断许可位INTCONbits.PEIE=1; /打开高优先级中断INTCONbits.GIE=1; /打开总中断delay(10); /等待一段时间while(1)ADCON0bits.GO=1; /开始 ADC 扫描x=ADRESH;PORTD=x;PIR1bits.ADIF=0; /清除 ADC 中断标志位void delay(int x)int y;for(y=0;yx;y+);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号