预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共55页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

在计算机控制领域,如检测、控制及智能仪器等,常常需要实时时钟来实现定时或延时控制,也常常要对外部事件进行计数。MCS-51单片机中就有两个定时/计数器,可以实现这些功能。5.1任务4(T4):信号灯的控制 一、要求 按照图任务1中图1.7的电路,不用任务2中的软件延时,也不用任务3中的按键,而用其它硬件方式来完成发光二极管的闪烁,间隔时间为100ms(假如使用的晶振频率为6MHz)。 二、任务分析与实现 在计算机中也经常要用到定时。定时的方法一般有2种: 1、采用软件定时 软件定时是通过反复地执行一个循环程序以进行时间的延迟,特点是时间精确,不需外加硬件电路。 但要注意的是,延时程序实际上是“耗时”,要白白地占用CPU一段时间。此时CPU不能做任何其他的工作,就像机器在不停空转一样,这是程序延时的缺点。因此软件定时的时间不宜过长。 在任务2中,我们使用了一个延时子程序的方式来完成发光二极管闪烁的,通过反复执行一个循环体内的指令以累计机器周期数而实现延时。可以通过改变延时程序的参数来改变延时时间。 2、采用可编程定时器定时 在任务3中,我们是用手动按键模拟一个中断请求来完成发光二极管的亮、灭变化,时间间隔由我们手动控制。但是这样不可能达到间隔时间的精确,显然达不到任务定时间隔100ms的要求。 因此若要在延时时间精确,而在定时过程中需要CPU还能做其它的工作,就需要采用单片机内部的硬件定时器或外接其他定时芯片。比如大家在微机原理中已经接触过的8253芯片,就是一个定时芯片。 MCS-51单片机内部有两个定时器,这样我们就不要外接定时芯片。本次任务就可以采用这两个定时器中的任何一个来完成“定时”,而不是延时。 利用单片机的开发系统输入下面的程序:#include<reg51.h> voidmain(void) { TMOD=0x01; TH0=0x3C; TL0=0xB0; EA=1; ET0=1; TR0=1; while(1); } voidtimer0_int(void)interrupt1 {P1=~P1;}2个16位定时器/计数器 ——(52系列有3个16位Timer) 定时器:对片内机器时钟(周期方波)进行计数 计数器:对Tx引脚输入的负脉冲进行计数 T0引脚输入端:P3.4 T1引脚输入端:P3.5Timer的2个特殊功能寄存器(TCON,TMOD)TR0/TR1:Timer0/1运行控制位: TR0/TR1=0时,Timer0/1停止计数 TR0/TR1=1时,Timer0/1启动计数定时器结构与工作方式THx/TLx赋初值:THx赋高8位,TLx赋低8位由于在方式1工作模式下,TLx、THx计数寄存器各使用8位,而28=256,我们要把计数起点的值除以256,将余数放入TLx计数寄存器,将商数放入THx计数寄存器。例如要使用Timer0计数50000,则填入计数寄存器的指令如下: MOVTL0,#(65536-50000)MOD256;取8位的余数 MOVTH0,#(65536-50000)/256;取8位的商数 定时器(方式1)应用程序举例:分析:已知fosc=6MHz则: (机器周期)1Tm=12Tc=12/6MHz=2S 100mS÷2S=50000 16位定时器最大数值为: 216=65536(=0FFFFH+1) 故选择方式1工作可以满足要求。 计算初值:65536-50000=15536=3CB0H工作方式2:——8位自动重装的定时/计数器☞THx/TLx赋相同初值 在TLx计数达到0FFH再加“1”时,TLx 将溢出,进位位直接进入“TFx”去申请 中断,同时打开三态门,使THx中的值 自动重装(Copy)进TLx分析:fosc=6MHz 1机器周期=2S 1KHz方波周期=1mS 半个方波周期=500S 500uS÷2uS=250 若选择方式2工作,8位定时器最大数值为: 28=256=0FFH+1 可以满足要求。 计算初值:256-250=6#include<reg51.h> sbitP1_0=P1^0; voidmain() { TMOD=0x20; TH0=0x06; TL0=0x06; EA=1; ET1=1; TR1=1; while(1); } voidTimer1_2()interrupte3 {P1_0=!P1_0;} T0:组织成TL0和TH0两个8位定时/计数器定时器小结:(2个16位加法计数器)当定时/计数器设置为计数工作方式时,计数器对来自输入引脚TO(P3.4)和Tl(P3.5)的外部信号计数,外部脉冲的下降沿将触发计数。在每个机器周期的S5P2期间采样引脚输入电平,若前一个机器周期采样值为l,后一个机器周期采样值为O,则计数器加l。新的计数值是在检