新编单片机原理与应用第五章课件.ppt
文本预览下载声明
* * * * * * * * 5.2.5 定时/计数器的初始化编程及应用 1、MCS-51单片机定时/计数器初始化编程步骤 根据要求选择方式,确定方式控制字,写入方式控制寄存器TMOD。 根据要求计算定时/计数器的计数值,再由计数值求得初值,写入初值寄存器。 根据需要开放定时/计数器中断,设置中断优先级。 设置定时/计数器控制寄存器TCON的值,启动定时/计数器开始工作。 2、编程前需确定的参数: (1)定时/计数器 —— T0、T1选择其一, (2)工作方式 —— C/T及GATE, (3)计数初值 —— 加1计数、16位。 (4)工作模式 —— M1、M0 例5-3 设单片机晶振频率为12MHz,使用定时器1以方式0产生周期为500μs的等宽方波连续脉冲,并由P1.0输出。以查询方式完成。 (1)、方式0的应用 3、定时/计数器应用举例 500μs 250μs (1)计算计数初值: 欲产生500μs的等宽方波脉冲,只需在P1.0端以250us为周期交替输出高低电平即可实现,定时时间应为250μs. 使用12MHz晶振,机器周期为1μs,定时脉冲数N为250μs/ 1μs=250. 方式0为13位计数器结构,计数初值: X = 213 – N = 7942 =00110 B 00000110 F8 06H TH1=0F8H,TL1=06H (2)TMOD寄存器初始化: T1工作于定时模式: C/T=0 方式0: M1 M0 = 00 不使用外部启动信号: GATE=0 T0不用,有关位设定为0。 因此TMOD寄存器应初始化为00H。 TMOD M0 M1 C / GATE M0 M1 C / GATE T1 T0 (3)由定时器控制寄存器TCON中的TR1位控制定时的启动和停止。 TR1=1 启动, TR1=0 停止。 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TCON (4)程序设计 MOV TMOD, #00H ;设置T1为工作方式0 MOV TH1, #0F8H ;设置计数初值 MOV TL1, #06H MOV IE, #00H ;禁止中断 SETB TR1 ;启动定时期 ;----------------------------------------------------- LOOP: JNB TF1, LOOP ;查询计数溢出 MOV TH1, #0F8H ;重置计数初值 MOV TL1, #06H CLR TF1 ;计数溢出标志位清0 CPL P1.0 ;输出取反 AJMP LOOP ;重复循环 例5-4设单片机晶振频率为12MHz,使用定时器1以方式1产生周期为500μs的等宽方波连续脉冲,并由P1.0输出。以中断方式完成。 (1)、方式1的应用 (1)计算计数初值: 欲产生500μs的等宽方波脉冲,只需在P1.0端以250us为周期交替输出高低电平即可实现,定时时间应为250μs. 使用12MHz晶振,机器周期为1μs,定时脉冲数N为250μs/ 1μs=250. 方式1为16位计数器结构,计数初值: X = 216 – N = 65286 = 1111 1111 0000 0110 B = FF06H TH1=0FFH,TL1=06H (2)TMOD寄存器初始化: T1工作于定时模式: C/T=0 方式1: M1 M0 = 01 不使用外部启动信号: GATE=0 T0不用,有关位设定为0。 因此TMOD寄存器应初始化为10H。 TMOD M0 M1 C / GATE M0 M1 C / GATE T1 T0 (3)程序设计 ORG 0000H LJMP START ORG 001BH ;定时器1中断向量 LJMP T1INT ORG 0030H START: MOV TMOD,#10H ;定时器1工作方式1 MOV TH1, #0FFH ;设置计数初值 MOV TL1, #06H SETB EA ;开中断 SETB ET1 ;定时器1允许中断 SETB TR1 ;定时开始 HERE: SJMP $ ;等待中断 ORG 0100H T1INT: MOV
显示全部