您好,欢迎访问三七文档
第1页共6页信息工程学院实验报告课程名称:单片机原理及接口实验项目名称:51定时器实验实验时间:2016年5月23日班级:通信141姓名:林志斌学号:201411402115一、实验目的:熟悉keil仿真软件、proteus仿真软件的使用和单片机定时程序的编写。了解51单片机中定时、计数的概念,熟悉51单片机内部定时/计数器的结构与工作原理。掌握中断方式处理定时/计数的工作过程,掌握定时/计数器在C51中的设置与程序的书写格式以及使用方法。二、实验设备与器件硬件:微机、单片机仿真器、单片机实验板、连线若干软件:KEILC51单片机仿真调试软件,proteus系列仿真调试软件三、实验原理8051型单片机有两个十六位定时/计数器T0、T1,有四种工作方式,跟定时/计数器相关的特殊功能寄存器有这样几个:方式控制寄存器TMOD;D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0M1、M0的状态决定定时器的工作方式,定时和外部事件计数方式选择位C/T,GATE与TR0、TR1配合决定定时/计数器的启停。加法计数寄存器TH0、TH1(高八位)TL0、TL1(低八位);定时/计数到标志TF0、TF1(中断控制寄存器TCON);定时/计数器启停控制位TR0、TR1(TCON);定时/计数器中断允许位ET0、ET1(中断允许寄存IE);定时/计数器中断优先级控制位PT0、PT1(中断优IP)。MCS-51单片机定时计数器的工作原理如下图所示,成绩:指导老师(签名):第2页共6页÷12振荡器T1端TR1GATEINT1端C/T=0C/T=1TL1(8位)TH1(8位)TF1中断控制定时/计数器÷12振荡器T1端TR1GATEINT1端C/T=0C/T=1TL1(8位)TH1(8位)TF1中断控制定时/计数器÷12振荡器T1端TR1GATEINT1端C/T=0C/T=1TL1(8位)TH1(8位)TF1中断控制定时/计数器单片机内部的定时计数模块,在定时时,对工作频率的12分频进行计数,先记入TL后记入TH,直到溢出为止,根据TL、TH内的初值不同可以定出不同的时间;在计数工作方式时,对T0(T1)引脚的输入脉冲进行计数,将计数值记入TL、TH。当定时/计数溢出时,会引起中断。计数初值与定时时间的关系为:T=12×(T_all–a)/fosc定时间隔为T,计数初值为a。所以有计数初值a=–T×fosc/12,THx=a/256,TLx=a%256。定时器均有一个最大定时时间,对于长时间的定时需要,可以将定时间隔为固定的较小时间,通过另设一全局变量ah1用于计数,累加固定的较小定时时间来进行。使用MCS-51单片机的定时/计数器的步骤是:1.设定TMOD,确定:工作状态(用作定时器/计数器);工作方式;控制方式。2.设置合适的计数初值,以产生期望的定时间隔。由于定时/计数器在方式0、方式1和方式2时的最大计数间隔取决于使用的晶振频率fosc,如下表所示,当需要的定时间隔较大时,要采用适当的方法,即将定时间隔分段处理。3.确定定时/计数器工作于查询方式还是中断方式,若工作于中断方式,则在初始化时开放定时/计数器的中断及总中断:ET0=1;EA=1;还需要编写中断服务函数:voidT0_srv(void)interrupt1using1{TL0=a%256;第3页共6页TH0=a/256;中断服务程序段}4.启动定时器:TR0(TR1)=1。四、实验内容与步骤1、电路图的设计。(1)打开proteus软件,单击P,打开搜索元器件窗口,如图1-1所示:图1-1搜索元器件(2)添加元器件,修改元器件的参数,绘制电路图,如图1-2所示:图1-2LED显示电路2、keil项目程序的建立。第4页共6页①运行keil软件,启动后,点击Project菜单新建项目,新建项目界面如图1-3所示:图1-3新建项目工程②新建项目后,完成用定时器实现一个00-59自动走时的秒表功能,到59后跳到00程序的写入,代码如图1-4所示:图1-4代码③设置输出HEX文件,如图1-5所示,单击确定保存,运行程序得到HEX文件:第5页共6页图1-5设置输出HEX文件五、实验结果及分析:1、用定时器实现一个00-59自动走时的秒表功能,到59后跳到00实验结果如图3:第6页共6页图3六、实验总结:通过这次实验,了解了51单片机中定时、计数的概念,并熟悉51单片机内部定时/计数器的结构与工作原理。掌握中断方式处理定时/计数的工作过程,掌握定时/计数器在C51中的设置与程序的书写格式以及使用方法。
本文标题:51定时器实验
链接地址:https://www.777doc.com/doc-2927915 .html