实验二定时\计数器实验
一、实验目的
掌握定时器/计数器的工作原理
掌握C程序下中断程序设计调试方法
二、实验原理
1、与定时器相关的SFR
方式寄存器TMOD
GATE:控制方式选择位
GATE=0,计数器由内部TRX位来控制定时/计数器的启动和停止
GATE=1,定时/计数器由TRX和INTX位共同控制启动和停止
GATE
C/T
M1
M0
GATE
C/T
M1
M0
二、实验原理
C/T:定时/计数器方式选择位
C/T=0,定时/计数器工作在定时方式,对内部振荡时钟12分频
脉冲进行计数;
C/T=1,定时/计数器工作在计数方式,计数器对来自引脚T0和
T1的外部脉冲进行计数
二、实验原理
M1、M0:工作模式控制位
M1
M0
工作模式
0
0
模式0。TLX中的低5位和THX中的高8位构成13位计数器。
0
1
模式1。 TLX和THX构成一个16位计数器。
1
0
模式2。8位自动重装载的定时/计数器,当TLX溢出时, THX的内容赋给TLX
1
1
模式3。对于定时器0,分成2个8位计数器,对于定时器1则停止计数。
二、实验原理
控制寄存器TCON
TF1:定时器1的溢出标志
当定时/计数器溢出时,由硬件置位,申请中断。进入中断服
务子程序后被硬件自动清除。
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
二、实验原理
TR1:定时器1运行控制位
通过软件置位或清除,置位时,定时器/计数器接通工作,清
除时则停止工作。
IE1:外部边沿触发中断1请求标志。
在检测到INT引脚上出现的外部中断信号的下降沿时,由硬件
置位,请求进入中断。进入中断服务子程序后该位自动被清除
二、实验原理
IT1:外部中断1类型控制位。
通过软件来设置或清除,以控制外部中断的触发类型。
当IT1=1时,设置为边沿触发方式;
当IT1=0时,设置为低电平触发方式
二、实验内容和步骤
利用定时中断控制发光二极管LED1每秒闪烁一次。
采用定时器/计数器0定时1秒开关LED1一次,定时器/计数
器0工作在方式1,定时方式。系统晶振为
经内部12分频到定时器/计数器0的输入端,每个脉冲宽度为
。定时器的最大计数范围是
二、实验内容和步骤
选取定时基准为50ms,需要计数46080个脉冲,则定
时器的初值设定为65536-46080=19456,用16进制表示为
4C00H
#include <>sbit LED1=P1^0;unsigned char tick; //软定时器,用于计数50ms的中断次数void Timer0( ) interrupt 1{ TH0=0x4c; //给计数寄存器的高8位赋初值; TL0=0x00; //给计数寄存器的低8位赋初值; tick++; //软定时器值加1
二、实验内容和步骤
if(tick==20) { LED1=~LED1; //LED1的状态求反 tick=0; //软定时器清0,计下1个1秒 }}main(){ TMOD=0x01; //定时器0工作在方式1定时方式 TH0=0x4c; TL0=0x00; ET0=1; //允许定时器0溢出中断 EA=1; //开放总中断 TR0=1; //允许定时器0计数 tick=0; //软定时器赋初值 while(1); //等待中断}
实验三定时器计数器及中断实验 来自淘豆网m.daumloan.com转载请标明出处.