第0页共17页目录序言……………………………………………………………………2一.设计内容与技术指标…………………………………………31.1设计内容…………………………………………………………31.2技术指标…………………………………………………………3二.工作原理及设计方案2.1工作原理………………………………………………………42.2系统设计方案…………………………………………………42.2.1电路原理图…………………………………………………52.2.2硬件焊接图…………………………………………………52.2.3软件流程图…………………………………………………72.2.4程序清单……………………………………………………8三.系统调试及结果分析…………………………………………143.1硬件调试………………………………………………………143.2软件调试………………………………………………………143.3结果分析………………………………………………………14四.注意事项………………………………………………………14五.心得体会………………………………………………………15六.参考文献………………………………………………………16单片机原理与应用课程设计(脉冲宽度的测量)第1页共16页1基于单片机脉冲宽度的测量设计序言:近年来随着科技的飞速发展,单片机的应用正在不断地走向深入同时带动传统控制检测日新月益更新。单片机诞生30多年以来,其品种、功能和应用技术都得到飞速的发展,单片机的应用已深入国民经济和日常生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理等。本次课程设计目的主要是培养学生综合运用所学的知识,完成一个单片机应用系统设计。主要任务是通过解决一些实际问题,巩固和加深课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力。加深对单片机软件硬件知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。本系统采用单片机AT89C51为中心器件来设计脉冲宽度测量器,系统实用性强、操作简单、扩展性强。在现有的单片机仿真机系统上掌握相关软硬件设计与调试知识,根据所选择题目,焊接好硬件电路,正确进行元器件的测试与调试,并在计算机上编写汇编程序调试运行,并实现参考选题中要求的设计。单片机原理与应用课程设计(脉冲宽度的测量)第2页共16页2一.设计内容与技术指标1.1设计内容利用单片机及6位LED数码管做成四位脉宽显示,在一个脉宽期间对内部周期进行计数,得到的一个高电平脉冲内的计数值显示在四位数码管上,并达到相应的技术指标要求。1.2技术指标(1)输入脉冲幅度:0-5V(2)脉宽测量范围:0.1-50ms(3)测量精度:±1%(4)显示方式:四位数字显示单片机原理与应用课程设计(脉冲宽度的测量)第3页共16页3二.工作原理及设计方案2.1工作原理把脉冲信号从P3.2脚引入,T0设为定时器方式工作,并工作在门控方式(GATE=1)。在待测信号高电平期间,T0对内部周期脉冲进行计数(周期为1us)。在待测脉冲高电平结束时,其下降沿向P3.2发中断,在外部中断0的中断服务程序中,读取TH0、TL0的计数值,该值就是待测脉冲的脉宽(单位us)。随后,清零TH0和TL0,以便下一个脉宽的测量。图1系统原理框图89C51单片机控制器振荡电路6位数码管显示7407列驱动信号源复位电路单片机原理与应用课程设计(脉冲宽度的测量)第4页共16页42.2系统设计方案2.2.1电路原理图图2电路原理图2.2.2硬件焊接图单片机原理与应用课程设计(脉冲宽度的测量)第5页共16页5图3硬件焊接图采用动态扫描法实现LED数码管显示。共阴7段LED显示器显示原理:引脚数字显示.P0.7gP0.6fP0.5aP0.4bP0.3eP0.2dP0.1cP0.0h数码显示0011111107EH10001001012H2101111000BCH3101101100B6H4110100100D2H5111001100E6H6111011100EEH70011001032H8111111100FEH9111101100F6H该电路采用AT89C51单片机最小化应用,采用共阴7段LED数码管显示器,P3.2口引入脉冲信号,P2.0至p2.3口作为列扫描输出,P0口输出段码数据,采用12Mhz晶振,可提高计数的精确度。单片机原理与应用课程设计(脉冲宽度的测量)第6页共16页610μf电容作用:上电复位;7407作用:同相缓冲器,驱动数码管;12M晶振和两个电容组成晶体振荡器。2.2.3软件设计流程图主程序流程图如图4所示,外部中断0服务程序流程图如5所示。图4主程序流图初始化将测量值转换为十进制数拆为非压缩BCD数调用显示子程序读取TH0、TL0中的计数值并存放在周期单元中清零TH0、TL0计数器返回单片机原理与应用课程设计(脉冲宽度的测量)第7页共16页7图5外中断0服务程序流程图2.2.4程序清单ADCEQU35HCLOCKBITP2.4;定义ADC0808时钟位STBITP2.5EOCBITP2.6OEBITP2.7PWMBITP3.7ORG00HSJMPSTARTORG0BHLJMPINT_T0START:MOVTMOD,#02H;MOVTH0,#20MOVTL0,#00HMOVIE,#82HSETBTR0单片机原理与应用课程设计(脉冲宽度的测量)第8页共16页8WAIT:CLRSTSETBSTCLRST;启动AD转换JNBEOC,$;等待转换结束SETBOEMOVADC,P1;读取AD转换结果CLROESETBPWM;PWM输出MOVA,ADCLCALLDELAYCLRPWMMOVA,#255SUBBA,ADCLCALLDELAYSJMPWAITINT_T0:CPLCLOCK;提供ADC0808时钟信号RETIDELAY:MOVR6,#1D1:DJNZR6,D1DJNZACC,D1单片机原理与应用课程设计(脉冲宽度的测量)第9页共16页9RETEND3.2软件调试在LCA51编译器下进行汇编程序的编写,以子程序为单位调试,一段一段的编译与访真,最后结合电路板,进行整机联调。3.3结果分析因为从设计程序分析,LED显示器动态到秒的频率约为几百赫兹,实际使用观察时完全没有闪烁,由于计时中断程序中加了中断延时误差处理,所以,实际设计时精度非常的高。四.注意事项1.焊接之前,应事先画好硬件原理图,细化到每一根接线,以及芯片内部的各个引脚,合理布局好元器件。这样才能使硬件电路板布线美观。焊接时要注意防止虚焊的产生,在两个较近的焊点之间要注意不要短接。2.焊接时要注意焊接工艺,由于是通用板,质量不是太高,如果不注意,上面的小铜片很容易损坏,容易导致虚焊。焊完后,要用万用表检测,以免出现虚焊漏焊,短接等现象。检查无误后再通电检单片机原理与应用课程设计(脉冲宽度的测量)第10页共16页10测。焊接完一部分后,最好先观察一下该部分的波形是否正确,若有错误,可以方便修改。3.板子及仿真机接电源时,要注意正负极,以免损坏板子或仿真机。4.仿真机一旦与计算机进行连接之后,就不要经常再拔下,以确保正常通信。5.编写程序时,要注意各指令的合理应用。若程序过长,可以先编写子程序,再将其进行组合。以免出现不必要的错误和困扰。6.在插拔器件以及接线过程中,为避免仪器损坏应该在断电的前提下操作。五.心得体会通过几天的课程设计,我对单片机原理与应用技术等知识都有了一定的了解。这次课程设计中,我们采用层次化的设计方法来实现了这个电路。在程序编写结束后,我们还对该程序进行了调试,能按预期的效果进行脉宽测试功能,并设计了动态显示被测信号脉宽的硬件电路。课程设计对学生而言是其对所学课程内容掌握情况的一次自我验证,从而有着极其重要的意义。通过课程设计,能提高学生对所学知识的综合应用能力,能全面检查并掌握所学内容,在这次的课程设计中,收获知识的同时,我们还收获了阅历,收获了成熟,在此过程中。我们通过查找资料,请教老师,以及不懈的努力,不仅培养了独单片机原理与应用课程设计(脉冲宽度的测量)第11页共16页11立思考、动手操作的能力,而且大大加强了团队合作以及设计能力。更重要的是,我们学会了一些学习的方法,而这是日后最实用的,真的是受益匪浅。这次课程设计虽然结束了,相信以后我们会以更加积极的态度对待我们的学习、对待我们的生活。我们的激情永远不会结束,相反,我们会更加努力,努力的去弥补自己的缺点,发展自己的优点,去充实自己,只有在了解充分认识到自己的不足,我们才会更加珍惜拥有的,更加努力的去完善它。今后在剩余不到一年的大学生活里,我会尽力充实自己,为日后走上工作岗位打下坚实的基础。要面对千千万万的挑战,只有不断的学习、实践,再学习、再实践。六.参考文献:1.《单片机应用程序开发指南》尹勇等.科学出版社.20052.《单片机实验与实践教程》夏继强.北京航空航天大学出版社.20013.《单片微型机原理、应用与实验》张友德等.复旦大学出版社.2006