基于脉冲周期测量
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
\\
单片机原理与应用课程设
计
脉冲周期的测量
学院名称: 电气信息工程学院 班 级: 07电子1Z 姓 名: 张秀银 学 号: 07311126
JIANGSU TEACHERS UNIVERSITY OF TECHNOLOGY
目录
一、课程设计的目的和意义 (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电路的环形振荡器
电路如图所示。其中G4用于整形,以改善输出波形,R为限流电阻,一般取100Ω,。电位器R
w
要求不大于1KΩ。电路利用电容C充放电过程,控制D点电
压V
D ,从而控制与非门的自动启闭,。形成多谐振荡,电容C的充电时间t
w1
、
放电时间t
w2
和总的振荡周期T分别为:
t w1≈0.94RC, t
w2
≈1.26RC ,。T≈2.2RC
调节R和C的值,可改变输出信号的振荡频率。
以上这些电路的状态转换都发生在与非门输入电平达到门的阀值电平V
T
的时
刻。在V
T 附近电容器的充放电速度已经很缓慢,。而且V
T
本身也不够稳定,易
受温度、电源电压变化等因素以及干扰的影响。因此,电路输出频率的稳定性较差。
信号源电路由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 管脚接线图
管脚接线图
四、软件设计流程及描述
初始化
将测量转换为十进制数
拆为非压缩BCD数
调用显示子程序
1 主程序如下所示:
MAIN: MOV SP,#60H
MOV TMOD,#01H ;计数器T0工作在方式1
MOV TH0,#00H
MOV TL0,#00H ;计数器TO清零
MOV IE,#81H ;开总中断外部中断0
SETB TR0 ;T0允许计数且当外部中断输入为高时计数外部中断0为边沿触发
SETB IT0
外中断0服务子程序如下:
INTR_0: MOV 41H,TH0
MOV 40H,TL0 ;将计数器T0中的数转移到40H,41H中
MOV TH0,#00H
MOV TL0,#00H ;重新将定时器T0清零
QQ: RETI
2 数码转换
由于单片机显示的是10进制的数,所以需要将2进制数转换为10进制数来显示
二进制—十进制转换的流程图如下:
因为有16位的二进制,故循环次数为16次,放在R7中。38H37H中的十六位二进制数转换为十进制后放在34H35H36H单元中
开始
38H ←41H
37H ←40H
0→34H,35H,36H
16→R7
C(38H37H)左移一位(移出位bi在C中)
(34H35H36H)*2+C→(34H35H36H)
(十进制运算)
N
(R7)-1--〉=0?
Y
返回
3 压缩BCD码转换成非压缩BCD码
压缩BCD码有4位,所以需要将压缩BCD码转换为非压缩BCD码供8段数码管显示
USBCD:
MOV A,34H
CJNE A,#00H,PD ;判断第五位数值是否为0 为零则按四位有效值处理不为零按5位有效值处理
MOV R1,#35H ;当有4位有效效值时取后四位显示小数点加在第一位
MOV R0,#36H ;显示的是以ms为为单位的
MOV A,#00H
XCHD A,@R0 ;将36H中的低4位转换为非压缩BCD码存到30H
MOV 30H,A
MOV A,@R0
SW AP A
MOV 31H,A ;高4位转换为非压缩BCD码存到31H
MOV A,#00H