单片机的脉冲周期测量.docx
- 文档编号:29966032
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:20
- 大小:191.11KB
单片机的脉冲周期测量.docx
《单片机的脉冲周期测量.docx》由会员分享,可在线阅读,更多相关《单片机的脉冲周期测量.docx(20页珍藏版)》请在冰豆网上搜索。
单片机的脉冲周期测量
目录
一、课程设计的目的和意义······································2
二、程序设计的具体要求········································2
三、程序设计的硬件连接·····································2
四、软件设计流程及描述········································5
五、程序清单··········································9
六、调试与分析·················································13
七、课程设计的体会·············································13
八参考文献················································14
一、程序设计的目的和意义
(1)目的:
通过本次课程设计,巩固和加深“单片机原理与应用”中的理论知识,了解和应用单片机仿真系统,结合软硬件,基本掌握单片机的应用的一般设计方法,提高电子电路的设计和实验能力,并且提高自身查找和运用资料能力
(2)意义:
通过本次课程设计,理论知识系统化,从中或得一些实战工作经验,提高个人与团体合作的能力。
二、程序设计的具体要求
利用单片机AT89C51单片机的T0、T1的定时/计数功能,完成对待测信号的周期进行测量,测量的结果通过8位动态数码管显示出来。
设计要求的技术指标有:
1、输入脉冲幅度:
0-5v
2、周期量测量范围:
0.1ms—50ms
3、测量精度:
正负1%
4、显示方式:
四位数字显示
三、程序设计的硬件连接h
1总体框图
被测信号
89C51
单片机控制器
4位数码管显示
晶振电路
7407
列驱动
2信号源的产生:
被测信号源用的是带RC电路的环形振荡器电路图
带RC电路的环形振荡器
电路如图所示。
即温度每增加10℃输入偏流将增加一倍。
其中G4用于整形,OPA335.pdfREF3025.pdf由运放OPA335及基准电压源REF3025在LOG102输入端构成具有失调补偿的电流源电路如图所示为由运放OPA335及基准电压源REF3025在LOG102输入端构成具有失调补偿的电流源电路。
以改善输出波形,由于功率放大器在大信号下工作,R为限流电阻,问题是要把失真控制在允许范围内,一般取100Ω,输出端连接不同的脚(3、4、5)可以得到不同的系数K(1、3、5)。
电位器Rw要求不大于1KΩ。
由于两管轮流地工作,电路利用电容C充放电过程,
(2)晶体管的最大集电极电压Ucm>2Ec。
控制D点电压VD,BG1截止、BG2导通,从而控制与非门的自动启闭,自动气体循环炉控温电路图。
形成多谐振荡,Icm=IcM/2,电容C的充电时间tw1、放电时间tw2和总的振荡周期T分别为:
由于输出端使用变压器,
tw1≈0.94RC,请使用27K。
tw2≈1.26RC,串联输入式电压反馈的基本形式电路图。
T≈2.2RC
调节R和C的值,内部放大器A1、A2是场效应晶体管(FET)输入,可改变输出信号的振荡频率。
为了克服交越失真,
以上这些电路的状态转换都发生在与非门输入电平达到门的阀值电平VT的时刻。
555和R1,在VT附近电容器的充放电速度已经很缓慢,
(1)甲类功率放大器:
。
而且VT本身也不够稳定,射频探头用负压源电路图如图所示,易受温度、电源电压变化等因素以及干扰的影响。
对数和对数比率放大器LOG101/104的偏流调零电路如图所示为LOG101/104的偏流调零电路。
因此,运算放大器电路图:
包含单电源、低压、低功耗运算放大器电路图。
电路输出频率的稳定性较差。
扬声器的阻抗为400欧,
信号源电路由RC振荡器构成,电阻选510欧姆,电容选择0.1uf,,产生矩形波后通过非门整形,非门由与非门74LS00构成,实际电路中用到四个与非门,使得整形更好,波形更稳定。
根据公式T=2.2*RC,计算可得周期为112.2ms
3数码显示电路
采用的为共阴极。
P0口来送段选信号,P0口内部并没有带上拉电阻,在接收数码管时需要在两者之间加一排阻,降低电流来保护P0口。
利用了P2.0~P2.3来送位选信号即哪一个数码管来亮,且送低电平时有效,数码管用动态显示的方式来显示测量的周期值。
在单片机与数码管之间我们采用了7407来驱动,7407为位6输入高压缓冲器。
4单片机
单片机使用12m的晶振
晶振和C1、C2组成振荡器,使单片机内部产生产生周期为1us的脉冲信号。
5管脚接线图
管脚接线图
四、软件设计流程及描述
1主程序如下所示:
MAIN:
MOVSP,#60H
MOVTMOD,#01H;计数器T0工作在方式1
MOVTH0,#00H
MOVTL0,#00H;计数器TO清零
MOVIE,#81H;开总中断外部中断0
SETBTR0;T0允许计数且当外部中断输入为高时计数外部中断0为边沿触发
SETBIT0
外中断0服务子程序如下:
INTR_0:
MOV41H,TH0
MOV40H,TL0;将计数器T0中的数转移到40H,41H中
MOVTH0,#00H
MOVTL0,#00H;重新将定时器T0清零
QQ:
RETI
2数码转换
由于单片机显示的是10进制的数,所以需要将2进制数转换为10进制数来显示
二进制—十进制转换的流程图如下:
因为有16位的二进制,故循环次数为16次,放在R7中。
38H37H中的十六位二进制数转换为十进制后放在34H35H36H单元中
3压缩BCD码转换成非压缩BCD码
压缩BCD码有4位,所以需要将压缩BCD码转换为非压缩BCD码供8段数码管显示
USBCD:
MOVA,34H
CJNEA,#00H,PD;判断第五位数值是否为0为零则按四位有效值处理不为零按5位有效值处理
MOVR1,#35H;当有4位有效效值时取后四位显示小数点加在第一位
MOVR0,#36H;显示的是以ms为为单位的
MOVA,#00H
XCHDA,@R0;将36H中的低4位转换为非压缩BCD码存到30H
MOV30H,A
MOVA,@R0
SWAPA
MOV31H,A;高4位转换为非压缩BCD码存到31H
MOVA,#00H
XCHDA,@R1;将35H中的低4位转换为非压缩BCD码存到32H
MOV32H,A
MOVA,@R1;高4位转换为非压缩BCD码存到33H
SWAPA
ADDA,#10;加小数点显示(如果显示us为单位可以不加小数点)
MOV33H,A
RET
PD:
MOVR1,#34H;当有5位有效值时取前四位显示小数点加在第二位
MOVR0,#35H;将35H中的低4位转换为非压缩BCD码存到31H
MOVA,#00H
XCHDA,@R0;高4位转换为非压缩BCD码存到32H
MOV31H,A
MOVA,@R0
SWAPA
ADDA,#10加小数点显示(如果显示us为单位可以不加小数点)
MOV32H,A
MOVA,#00H;将34H中的低4位转换为非压缩BCD码存到33H
XCHDA,@R1
MOV33H,A
MOVA,@R1
SWAPA
ANL36H,#0F0H
MOVA,36H
SWAPA
MOV30H,A
RET
4数码管显示子程序
LEDS:
MOVDPTR,#TAB;显示千位
MOVA,U4
MOVCA,@A+DPTR
MOVP0,A
MOVA,#0FEH;位选信号第一个数码管
MOVP2,A
LCALLDELAY
MOVDPTR,#TAB;显示百位
MOVA,U3
MOVCA,@A+DPTR
MOVP0,A
MOVA,#0FDH;位选信号第二个数码管
MOVP2,A
LCALLDELAY
MOVDPTR,#TAB;显示十位
MOVA,U2
MOVCA,@A+DPTR
MOVP0,A
MOVA,#0FBH;位选信号第三个数码管
MOVP2,A
LCALLDELAY
MOVDPTR,#TAB;显示个位
MOVA,U1
MOVCA,@A+DPTR
MOVP0,A
MOVA,#0F7H;位选信号第四个数码管
MOVP2,A
LCALLDELAY
RET
选用4个共阴极数码管显示,每个数码管的选通是由P2.0~P2.3来控制
每位点亮时间为2048us,采用延时子程序,有四个数码管,用扫描的方式显示,每一个时刻只选通一个数码管。
不带小数点的0~9的数据对应表带小数点的0~9的数据对应表:
0
3FH
0
0BFH
1
06H
1
86H
2
5BH
2
0DBH
3
4FH
3
0CFH
4
66H
4
0E6H
5
6DH
5
0EDH
6
7DH
6
0FDH
7
07H
7
87H
8
7FH
8
0FFH
9
6FH
9
0EFH
5延时程序
DELAY:
MOVR7,#08H
DELA:
MOVR6,#80H
DJNZR6,$
DJNZR7,DELA
RET
采用软件延时,延时时间为8*128*2=2048us
五、程序清单
下面的程序是本次课程设计的源程序:
ORG0000H
AJMPMAIN
ORG0003H
AJMPINTR_0;外部中断低电平触发处理
ORG0033H
MAIN:
MOVSP,#60H
MOVTMOD,#01H;计数器T0工作在方式1
MOVTH0,#00H
MOVTL0,#00H;计数器TO清零
MOVIE,#81H;开总中断外部中断0
SETBTR0;T0允许计数且当外部中断输入为高时计数外部中断0为边沿触发
SETBIT0
LOOPS:
LCALLBCD;二进制转十进制
LCALLUSBCD;压缩BCD码,转非压缩BCD码
LCALLLEDS
LCALLDELAY
LCALLLEDS
LCALLDELAY
LCALLLEDS
LCALLDELAY
LCALLLEDS
LCALLDELAY
LCALLLEDS
LCALLDELAY
LCALLLEDS
LCALLDELAY
LCALLLEDS
LCALLDELAY
LCALLLEDS
LCALLDELAY
LCALLLEDS
LCALLDELAY
LCALLLEDS
AJMPLOOPS;循环处理显示
INTR_0:
MOV41H,TH0
MOV40H,TL0;将计数器T0中的数转移到40H,41H中
MOVTH0,#00H
MOVTL0,#00H;重新将定时器T0清零
QQ:
RETI
BCD:
CLRA;十进制转换
;将41H42H中的数值转换成BCD码分别按高低存储在34H35H36H中
MOV38H,41H
MOV37H,40H
MOV34H,A
MOV35H,A
MOV36H,A
MOVR7,#16
LOOPS1:
CLRC
MOVA,37H
RLCA
MOV37H,A
MOVA,38H
RLCA
MOV38H,A
MOVA,36H
ADDCA,36H
DAA
MOV36H,A
MOVA,35H
ADDCA,35H
DAA
MOV35H,A
MOVA,34H
ADDCA,34H
DAA
MOV34H,A
DJNZR7,LOOPS1
RET
USBCD:
MOVA,34H
CJNEA,#00H,PD;判断第五位数值是否为0为零则按四位有效值处理不为零按5位有效值处理
MOVR1,#35H;当有4位有效效值时取后四位显示小数点加在第一位
MOVR0,#36H;显示的是以ms为为单位的
MOVA,#00H
XCHDA,@R0;将36H中的低4位转换为非压缩BCD码存到30H
MOV30H,A
MOVA,@R0
SWAPA
MOV31H,A;高4位转换为非压缩BCD码存到31H
MOVA,#00H
XCHDA,@R1;将35H中的低4位转换为非压缩BCD码存到32H
MOV32H,A
MOVA,@R1;高4位转换为非压缩BCD码存到33H
SWAPA
ADDA,#10;加小数点显示(如果显示us为单位可以不加小数点)
MOV33H,A
RET
PD:
MOVR1,#34H;当有5位有效值时取前四位显示小数点加在第二位
MOVR0,#35H
MOVA,#00H
XCHDA,@R0
MOV31H,A
MOVA,@R0
SWAPA
ADDA,#10;加小数点显示
MOV32H,A
MOVA,#00H
XCHDA,@R1
MOV33H,A
MOVA,@R1
SWAPA
ANL36H,#0F0H
MOVA,36H
SWAPA
MOV30H,A
RET
LEDS:
MOVDPTR,#TAB;显示千位
MOVA,U4
MOVCA,@A+DPTR
MOVP0,A
MOVA,#0FEH;位选信号第一个数码管
MOVP2,A
LCALLDELAY
MOVDPTR,#TAB;显示百位
MOVA,U3
MOVCA,@A+DPTR
MOVP0,A
MOVA,#0FDH;位选信号第二个数码管
MOVP2,A
LCALLDELAY
MOVDPTR,#TAB;显示十位
MOVA,U2
MOVCA,@A+DPTR
MOVP0,A
MOVA,#0FBH;位选信号第三个数码管
MOVP2,A
LCALLDELAY
MOVDPTR,#TAB;显示个位
MOVA,U1
MOVCA,@A+DPTR
MOVP0,A
MOVA,#0F7H;位选信号第四个数码管
MOVP2,A
LCALLDELAY
RET
DELAY:
MOVR7,#08H;延时程序
DELA:
MOVR6,#80H
DJNZR6,$
DJNZR7,DELA
RET
TAB:
DB3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
DB0Bfh,86h,0DBh,0Cfh,0E6h,0Edh,0Fdh,87h,0FFh,0Efh
NOP
END
六、调试与分析
硬件调试:
将信号源的输出脚接在示波器上,并加上正负电源,观察波形,如果得到的波形不太好,可将74LS00的4个与非门全部串联,并将对应的周期记录下来。
软件的测试:
在软件测试的时候,将各子程序分别进行调试,数码管显示可先编一段小程序来验证,不能利用数码管显示的程序部分可以利用软件上添加观察程序来实现观察结果是否正确。
分析与误差计算:
由于我们的理论值为T=2.2RC=112.2us,而我们实际测量得到的值为113ms,求得精度误差小于1%,符合测量要求。
七、课程设计的体会
在单片机应用系统设计时,必须先确定该系统的技术要求,这是系统设计的依据和出发点,整个设计过程都必须围绕这个技术要求来工作。
在设计时遵循从整体到局部也即自上而下的原则。
把复杂的问题分解为若干个比较简单的、容易处理的问题,分别单个的加以解决。
在设计开始时,我们应根据应用的和设计要求提出设计的总体任务,绘制硬件和软件的总框图。
将总任务分解成可以独立表达的子任务,这些子任务再向下分,直到每个子任务足够简单,能够直接而容易的实现为止。
在程序调试时应按各个功能模块分别调试。
在程序设计时,正确合理的设计是非常重要的,比如说,有些执行程序以实时中断方式调用时,如果不正确的设计,有可能陷入无休止的中断申请,使程序无法正常工作。
正确的程序设计包括程序的结构是否合理,一些循环结构和循环指令的使用是否恰当,能否使用较少的循环次数或较快的指令,是否能把某些延迟等待的操作改为中断申请服务,能否把某些计算方法和查表技术适当简化等。
另外程序的设计要具有可扩展性,程序的结构要标准化,便于阅读、修改和扩充。
总体来说,此次设计是很有意义的,是提高学习效率和学习积极性的一种很有效的途径,这个过程中,我花费了很多的时间和精力,更重要的是,我在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作。
同时在此次课程设计中还运用到以前学过的知识,虽然过去从未独立应用过他们,但在学习的过程中带着问题去发现效率很高,这是我在课程设计中的又一次收获。
参考文献:
《单片微型机原理应用与实验》
《程序设计》
《单片微机控制技术》
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 脉冲 周期 测量