基于单片机的脉冲宽度 实验报告Word格式文档下载.docx
《基于单片机的脉冲宽度 实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的脉冲宽度 实验报告Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
单片机是指在一个芯片上集成了中央处理器、存储器和各种I/O接口的微型计算机,它主要面向控制性应用领域,因此又称为嵌入式微控制器。
单片机诞生30多年以来,其品种、功能和应用技术都得到飞速的发展,单片机的应用已深入国民经济和日常生活的各个领域。
本次课程设计目的主要是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
一.设计内容与技术指标
1.1设计内容
利用单片机及4位LED数码管做成四位脉宽显示,在一个脉宽期间对内部周期进行计数,得到的一个高电平脉冲内的计数值显示在四位数码管上,并达到相应的技术指标要求。
1.2技术指标
(1)输入脉冲幅度:
0-5V
(2)脉宽测量范围:
0.1-50ms
(3)测量精度:
±
1%
(4)显示方式:
四位数字显示
从P3.2脚引入脉冲信号,在待测信号高电平期间,T0对内部周期脉冲进行计数。
在待测脉冲高电平结束时,其下降沿向P3.2发中断,读取TH0、TL0的计数值,该值就是待测脉冲的脉宽(单位us)。
随后清零TH0和TL0,以便下一个脉宽的测量。
系统框图如图2.1所示
图2.1系统框图
1.硬件电路的设计,硬件电路图如图2.2所示
图2.2硬件电路图
该电路采用AT89C51单片机最小化应用,采用共阴7段LED数码管显示器,P3.2口引入脉冲信号,P2.0至p2.3口作为列扫描输出,P0口输出段码数据,采用12Mhz晶振,可提高计数的精确度。
采用动态扫描法实现LED数码管显示。
共阴7段LED显示器显示原理:
引脚
数字显示
.P0.7
g
P0.6
f
P0.5
a
P0.4
b
P0.3
e
P0.2
d
P0.1
c
P0.0
h
数码显示
1
7EH
12H
2
0BCH
3
0B6H
4
0D2H
5
0E6H
6
0EEH
7
32H
8
0FEH
9
0F6H
10μf电容作用:
上电复位;
7407作用:
同相缓冲器,驱动数码管;
12M晶振和两个电容组成晶体振荡器。
2.软件设计流程及描述
(一)流程图。
主程序流程图如图2.3所示,外部中断0服务程序流程图如2.4所示。
图2.3主程序流图
图2.4外中断0服务程序流程图
(二)程序功能描述
s1EQU30H;
第一个数码管显示的数值
s2EQU31H;
第二个数码管显示的数值
s3EQU32H;
第三个数码管显示的数值
s4EQU33H;
第四个数码管显示的数值
ORG0000H
AJMPMAIN
ORG0003H
AJMPCHULI;
外部中断低电平触发处理
ORG0033H
MAIN:
MOVSP,#60H
MOVTMOD,#09H;
计数器T0工作在方式1门控信号为1MOVTH0,#00H
MOVTL0,#00H;
计数器TO清零
MOVIE,#81H;
开放定时器中断开总中断外部中断0
MOVTCON,#11H;
T0允许计数且当外部中断输入为高时计数外部中断0为边沿触发方式下降沿有效
LOOP:
ACALLBCD;
十六位二进制转十进制
ACALLUBCD;
压缩BCD码,转非压缩BCD码
ACALLDISP;
显示程序
ACALLDELAY
ACALLDISP;
ACALLDISP;
ACALLDELAY
ACALLDISP;
AJMPLOOP;
循环处理显示计数器T0采集得数
CHULI:
MOV41H,TH0
MOV40H,TL0;
将计数器T0中的数转移到40H,41H中
MOVTH0,#00H
MOVTL0,#00H;
重新将定时器T0清零
TT:
RETI
BCD:
CLRA;
将41H42H中的数值转换成BCD码分别按高低存储在34H35H36H中
MOV38H,41H
MOV37H,40H
MOV34H,A
MOV35H,A
MOV36H,A
MOVR7,#16
LOOP1:
CLRC
MOVA,37H
RLCA
MOV37H,A
MOVA,38H
RLCA
MOV38H,A
MOVA,36H
ADDCA,36H
DAA
MOV36H,A
MOVA,35H
ADDCA,35H
MOV35H,A
MOVA,34H
ADDCA,34H
MOV34H,A
DJNZR7,LOOP1
RET
UBCD:
MOVA,34H
CJNEA,#00H,QUSHU;
判断第五位数值是否为0为零则按四位有效值处理不为零按5位有效值处理
MOVR1,#35H;
当有4位有效效值时取后四位显示小数点加在第一位
MOVR0,#36H
MOVA,#00H
XCHDA,@R0
MOV30H,A
MOVA,@R0
SWAPA
MOV31H,A
XCHDA,@R1
MOV32H,A
MOVA,@R1
ADDA,#10;
加小数点显示
MOV33H,A
RET
QUSHU:
MOVR1,#34H;
当有5位有效值时取前四位显示小数点加在第二位
MOVR0,#35H
XCHDA,@R0
ADDA,#10;
MOVA,@R1
ANL36H,#0F0H
MOVA,36H
DISP:
MOVDPTR,#TAB;
显示千位
MOVA,s4
MOVCA,@A+DPTR
MOVP0,A
MOVA,#7FH;
位选信号第一个数码管
MOVP2,A
ACALLDELAY
MOVDPTR,#TAB;
显示百位
MOVA,s3
MOVP0,A
MOVA,#0BFH;
位选信号第二个数码管
显示十位
MOVA,s2
MOVA,#0DFH;
位选信号第三个数码管
显示个位
MOVA,s1
MOVA,#0EFH;
位选信号第四个数码管
RET
DELAY:
MOVR7,#08H;
延时程序
DELAY1:
MOVR6,#80H
DJNZR6,$
DJNZR7,DELAY1
TAB:
DB3fh,06h,5bh,4fh,66h,6dh,7dh,07h,07fh,6fh
DB0Bfh,86h,0DBh,0Cfh,0E6h,0Edh,0Fdh,87h,0FFh,0Efh
NOP
END
三.系统调试及结果分析
3.1硬件调试
硬件电路板中器件连接好后,先用万用表测试电路中有无虚焊短接之处,测试无误后,将板子通电,进行静态调试。
取好两跟短的导线,一根导线的其中一端接地,另一端接P2.3~P2.0口中的一个口,若数码管亮,再用另一根导线,其中异端接地,另一端与P0.0~P0.7依次接触,看数码管各段的亮灭情况,从而判断每个数码管各段的好坏及电路的是否正确。
3.2软件调试
在LCA51编译器下进行汇编程序的编写,以子程序为单位调试,一段一段的编译与访真,最后结合电路板,进行整机联调。
3.3结果分析
因为从设计程序分析,LED显示器动态到秒的频率约为167HZ,实际使用观察时完全没有闪烁,由于计时中断程序中加了中断延时误差处理,所以,实际设计时精度非常的高。
四.注意事项与解决问题的方案
1.焊接之前,应事先画好硬件原理图,细化到每一根接线,以及芯片内部的各个引脚,合理布局好元器件。
这样才能使硬件电路板布线美观。
焊接时要注意防止虚焊的产生,在两个较近的焊点之间要注意不要短接。
2.焊接时要注意焊接工艺,由于是通用板,质量不是太高,如果不注意,上面的小铜片很容易损坏,容易导致虚焊。
焊完后,要用万用表检测,以免出现虚焊漏焊,短接等现象。
检查无误后再通电检测。
焊接完一部分后,最好先观察一下该部分的波形是否正确,若有错误,可以方便修改。
3.板子及仿真机接电源时,要注意正负极,以免损坏板子或仿真机。
4.仿真机一旦与计算机进行连接之后,就不要经常再拔下,以确保正常通信。
5.编写程序时,要注意各指令的合理应用。
若程序过长,可以先编写子程序,再将其进行组合。
以免出现不必要的错误和困扰。
6.在插拔器件以及接线过程中,为避免仪器损坏应该在断电的前提下操作。
五.心得体会
这次课程设计中,我们用层次化的设计方法来实现了这个电路。
在程序编写结束后,我们还对该程序进行了调试,能按预期的效果进行脉宽测试功能,并设计了动态显示被测信号脉宽的硬件电路。
在这次课程设计中,使我学到很多的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正掌握专业知识,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,遇到了很多的问题,最主要的是对以前所学过的知识理解得不够深刻,掌握得不够牢固。
总之,这次实验不仅仅加强了我的动手编程能力,也大大加强了团队合作以及设计能力,使我在理论学习和编程练习方面都获得了较大的收获。
虽然验收时老师比较“苛刻”,但是我能体会到老师的良苦用心,今后在剩余一年的大学生活里,我会尽力充实自己,为日后走上工作岗位打下坚实的基础。
1.《单片微型计算机原理接口与应用》第1版.徐惠民、安德宁北京邮电大学出版社,1996
2.《MCS-51单片机原理及应用》赵晓安天津大学出版社,2001.3
3.《单片机实验与实践教程》夏继强北京航空航天大学出版社,2001