内容发布更新时间 : 2024/12/23 12:51:06星期一 下面是文章的全部内容请认真阅读。
2.1 实验五 定时/计数器实验
一、 实验目的
加深对MCS-51单片机定时/计数器基础知识的理解。
二、 实验设备
Keil C单片机程序开发软件。
Proteus仿真软件
DP51-PROC单片机综合实验仪。 DT-2003数字万用表。
三、 实验内容和步骤
内容:
利用定时/计数器测量电动机的转速。
实验程序:
使用T1作为定时器(定时时间为50毫秒),T0作为计数器(计数由电机测速
电路产生的脉冲个数,每转4个脉冲),每1秒时间后,读出T0的值(读出后须将T0清0),将该值(速度值*4)显示到LCM显示器上(显示子程序/函数由实验库文件提供)。
本次实验程序需要使用实验库文件(LCMDRV_12864.LIB)。该库中的子程序/函数占用单片机片内RAM中地址为18H~20H的单元,因此实验程序不能使用这些单元。
如果用汇编编写实验程序,必须先用$INCLUDE (LCMDRV_12864.INC )指令加载实验库头文件,表2.5说明了LCMDRV_12864.LIB中子程序的功能和在汇编语言编程时的调用方法。
如果用C51编写实验程序,必须先用#include \.h\语句加载实验库头文件,库函数的使用详见LCMDRV_12864.h中的说明。 设计思路:
① 主程序在完成对T0和T1的设置后,可进入死循环(等待中断请求)。
② 在T1的中断服务程序中需要使用一存储单元对T1的中断次数进行计数,当计
数次数达20次时,意味着定时1秒时间到(此后需要重置存储单元的内容,以便进行下1秒定时)。
③ 为便于理解,速度值在显示前应进行BCD转换(库文件自动完成转换)。
- 20 -
表2.5 LCMDRV_12864.LIB的子程序说明
子程序名 _DelayX10us _DelayX1ms _DelayX100ms 功能 延时 延时。 延时。 将字型无符号二进制整数转换成组合型BCD码 参数 入参:R7延时系数N 出参:无 入参:R7延时系数N 出参:无 入参:R7延时系数N 出参:无 入参:R7二进制数的低位 R6二进制数的高位 R1结果的首地址 出参:无 入参:R7 =0 不显示光标 =1 显示光标 出参:无 入参:R7 行值(0-7) R5 列值(0-20) R1 字串首地址 出参:无 入参:R7 行值(0-7) R5 列值(0-20) R3 无符号整数的低位 R2 无符号整数的高位 出参:无 说明 时间=(N+1)*10us,12MHz 占用R7,A,C 时间= N * 1ms + 12us,12MHz 占用1FH,R7,A,C 时间= N * 100ms + 12us,12MHz 占用1EH,1FH,R7,A,C 结果为3字节,高位在前,低位再后。 占用R0,R1,R2,R3, R6,R7,A,C 初始化LCM后,屏幕清屏,光标位置为0行0列。 (共8行21列) 占用1DH,1EH,1FH,20H,DPTR,R6,R7,A,C 占用18H,19H,1DH,1EH,1FH,DPTR, R1 ~ R7,A,B,C _BCD16 _LCM_Init LCM初始化 _LCM_DispStrXY 从屏幕的指定位置开始显示字符串 从屏幕的指定位置开始显示无符号整数 _LCM_DispUIntXY 占用18H~20H,DPTR,R0 ~ R7,A,B,C
设计参考:
① 主程序需要设置的控制位如下:
ET0和ET1 中断允许控制 0=屏蔽 1=允许 PT0和PT1 中断优先级级别控制 0=低级 1=高级
在同级别(PT0=PT1)时T0的优先级高于T1
EA 中断允许总控制 0=屏蔽 1=允许 TR0和TR1 定时/计数器运行控制 0=停止 1=允许 ② 定时/计数器工作方式控制寄存器(TMOD):
D7 D6 D5 D4 D3 D2 D1 D0 GATE C / T M1 M0 GATE C / T M1 M0 T1 T0 GATE
门控位
0=由TRX控制定时/计数器运行
1=TRX和INTX信号共同控制 ( X = 0或1)
- 21 -
C/T M1M0 定时/计数方式选择 工作方式选择
0=定时 1=计数
00=13位定时/计数器工作方式 01=16位定时/计数器工作方式 10=常数自动装入的8位定时/计数
器工作方式
11=两个8位定时/计数器工作方式
(仅适用于T0)
③ 中断服务程序的入口地址:
000BH 定时/计数器0 001BH 定时/计数器1
预习:
1) 编写好实验程序。
2) 根据编写的程序和实验步骤的要求制定调试仿真的操作方案。
实验单元电路:
1) 电机测速电路。
电机测速电路使用光电检测传感器,通过联接在电机转轴上的光码盘,将电机的转动变换成脉冲序列(每转4个脉冲)。如图2.9。
+ – + – DCM_SPEED 光电 传感器 光源 电机 图2.9 电机测速电路原理图
2) 电机驱动电路
ZDJ_A ZDJ_B H桥 M 图2.10 直流电机驱动电路原理图
当ZDJ_A为高电平,ZDJ_B为低电平时,电机正转;反之,则电机反转。如果两端电平相同,则电机不转。
- 22 -