定时计数器T0T1程序设计-2014讲解

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理与应用课程实验
实验四、定时计数器T0/T1应用程序设

实验重点:硬件设计、程序设计、现象分析 实验难点:实际应用
定时计数器T0/T1程序设计
单片机内部定时器/计数器具有定时与计数功能,既 可工作于定时方式,实现对控制系统的定时或延时控制; 又可工作于计数方式,用于对外部事件的计数。
1、实验目的
了解51单片机内部定时器/计数器的基本结
构、工作原理和工作方式,掌握工作在定时器
和计数器两种方式下编程方法。
定时计数器T0/T1程序设计
2、实验要求
1)采用中断编程,利用单片机内部定时器/计数器T0定时, 工作于方式1, 定时1秒,使P1口接的8只发光二极管LED发 光二极管依次从左到右开始逐个点亮或从右到左开始逐个 点亮。
2)利用内部定时器/计数器T1,按计数器模式工作于方式1, 对P3.5引脚进行计数,每计数5个脉冲,使I/O口线上的LED 反转一次,反复循环
定时计数器T0/T1程序设计
3、实验设备与仪器
DICE-5210K单片机实训箱,PC机, DICE_KEIL USB仿真器、KEIL集成开发软 件。
定时计数器T0/T1程序设计
4、硬件设计
89C51
C1 C2
C1 C2
89C51
图2 P1口某一I/O口线状态反转电路
图3 定时50ms轮流点亮电路
定时计数器T0/T1程序设计
4、硬件设计
P1口某一I/O口线状态反转设计电路如图2所示。将 51单片机第40脚Vcc接电源+5V,第20脚Vss接地,为单片 机工作提供能源。 将第19脚XTAL1与18脚XTAL2分别接外部晶体两个引 脚,由石英晶体组成振荡器,保证单片机内部各部分有 序地工作。对外部C1、C2的取值虽然没有严格的要求, 但电容的大小会影响到振荡器频率的高低、振荡器的稳 定性、起振的快速性。C1、C2通常取值C1=C2=30PF左右。 8051的晶振最高振荡频率为12M,AT89C51的外部晶振最 高频率可到24M。
定时计数器T0/T1程序设计
4、硬件设计
单片机可靠的复位是保证单片机正常运行的关键因素。 因此,在设计复位电路时,通常要使RST引脚保持10ms以上 的高电平。当RST从高电平变为低电平之后,单片机就从 0000H地址开始执行程序。本电路是上电自动复位。 将1个LED接在单片机P1端口的P1.5引脚上,注意LED有 长短两个引脚,分别表示正负极,其中较短的负极接单片 机,较长的为正极,通过限流电阻R与Vcc相连。 本实验只需将1个LED与P1口相连。单片机的P0、P1、 P2、P3端口都可以用来控制LED。(反过去再看设备)
定时计数器T0/T1程序设计
5、程序设计 1)工作原理
89C51内部有两个定时器/计数器T0、T1,TL0、TH0 和TL1、TH1分别对应两个定时器/计数器的低8位和高8位, 用于控制与管理定时器/计数器工作的两个寄存器TCON和 TMOD,设置它们相应位,可以对T0、T1进行各种控制。 寄存器TCON为控制寄存器,用于控制两个定时器/计 数器的启动/停止,在溢出时设定标志位,TCON中TR0、 TR1是T0、T1对应的开始运行控制位,TF0、TF1是溢出标 志剩下4位是两个外部中断INT0、INT1对应的方式控制位 IT0、IT1和中断请求标志IE0、IE1。
低电平触发或 下降沿触发
定时计数器T0/T1程序设计 5、程序设计
1)工作原理
TFx:定时器/计数器溢出标志 当定时器溢出时,硬件电路置TFx为 “1”,响应中断时硬 件 自动复位TRx。 TRx:定时器/计数器控制位 “1”:启动; “0”:停止。
定时计数器T0/T1程序设计
5、程序设计
1)工作原理
寄存器TMOD为工作方式控制寄存器,用来设置定时器/计数器 的工作方式,并确定用于定时还是用于计数。 TMOD中每个定时器 /计数器对应GATE、C/T、M1、M0的4位,GATE是选通门控位,它决 定T0、T1的开始运行是否要受外部中断输入引脚电平的控制;C/T 是定时器/计数器选择位,在定时器工作方式时,计数输入信号来 自内部时钟,每个机器周期计数寄存器加1,在计数器工作方式时, 计数输入信号来自T0、T1管脚,输入信号每次从1到0跳变,计数 寄存器加1,要注意的是输入信号的最高频率不得大于机器振荡频 率的1/24;M1、M0是模式控制位,决定了T0、T1的四种工作模式 工作方式0、工作方式1、工作方式2、工作方式3。
定时计数器T0/T1程序设计 5、程序设计
1)工作原理
M1 M0工作方式选择: 0 0:方式0,13位定时器/计数器 0 1:方式1,16定时器/计数器 1 0:方式2,8位自动重装定时器/计数器 1 1:方式3,定时器0的TL0是一个8位的定时器/计数器,TH0是一个8位 的定时器,定时器1停止工作方式3(T1可工作于方式0、1) C/T:定时器/计数器选择: “1”:计数器 “0”:定时器 GAME:选通门控制信号: “1”:由TRx和引脚INTx共同控制启动 “0”:仅由控制位TRx启动
定时计数器T0/T1程序设计 5、程序设计
1)工作原理
本实验用T1工作在方式1,即16位定时计数方式为例简要说明定 时器/计数器的工作过程,根据需要设置TMOD及TL1、TH1的数值,开 启定时或计数,定时或计数溢出时自动置溢出标志,并请求中断。
图4
工作方式1-16位定时器/计数器
定时计数器T0/T1程序设计 2)程序流程如图5所示。
图5
P1口输出程序流程图
定时计数器T0/T1程序设计
3)参考程序
;定时50ms信号反转 CSEG AT 0000H LJMP START ;查询方式 CSEG AT 4100H START: MOV TMOD,#_____ MOV TH1,#______ MOV TL1,#______ SETB TR1 WAIT: JBC TF1,NEXT SJMP WAIT NEXT: CPL P1.____ MOV TH1,#_____ MOV TL1,#_____ SJMP WAIT END
定时计数器T0/T1程序设计
3)参考程序
;用定时器延时60ms后,LED轮流点亮。 ORG 0000H START: MOV R0, #8 ;设右移8次 MOV A, #01111111B ;存入开始点亮灯位置 LOOP: MOV P1, A ;传送到P1并输出 ACALL DELAY ;调延时子程序 RR A ;右移一位 DJNZ R0, LOOP ;判断移动次数 JMP START ;重新设定显示值 DELAY: MOV TMOD,#00000001B ; 设定TO工作在MODE1 SETB TR0 ; 启动TO开始计时 MOV TL0,#LOW(65536-60000) ; 装入低位 MOV TH0,#HIGH(65536-60000); 装入高位 JNB TF0,$ ; T0没有溢出等待 CLR TF0 ; 产生溢出,清标志位 RET ; 子程序返回 END ; 程序结束
定时计数器T0/T1程序设计 6、实验步骤 实际操作注意之处
1)安装好仿真器,用串行数据通信线连接计算机与仿真器,把 仿真头插到模块的单片机插座中,打开实验台电源,打开仿真 器电源,打开电脑。 2)启动计算机,打开KEIL集成开发软件,进行工程项目设置, 通信正常为止。 3)在编辑窗口输入源程序,保存,文件名为T1.ASM。对T1.ASM 源程序进行编译,编译无误后,执行程序,观察LED变化,分析 此现象。 4)编写内容2的T2.ASM源程序,按以上步骤调试该程序,观察实 验现象并分析。
单片机内部定时器/计数器实验
7、实验报告要求
1)实验报告要求有实验目的、要求、设备或仪器、硬件 软件设计、步骤、现象分析、应用分析。现象分析、应 用分析填在原始数据栏。 2)画出实验要求1)2)3)程序设计流程图和2)的硬件设计 电路图。 3)写出2)3)程序设计清单? 4)写出实验过程中所遇到的问题与解决的办法。
8、思考题
1)计算不同工作方式下的最大定时时间是多少? 2)掌握不同工作方式下的编程技巧。
相关文档
最新文档