《最新单片微机原理第四章411定时、中断、串行幻灯片.ppt》由会员分享,可在线阅读,更多相关《最新单片微机原理第四章411定时、中断、串行幻灯片.ppt(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本章要点 要点:1、定时器的结构、工作方式、初始化、编程应用2、中断系统的结构、中断的概念、中断的标志、中断优先级、中断响应、中断程序设计3、串行口的结构、串行通信的特点、串行通信的工作方式、波特率的设定 难点:1、定时器的工作方式的设定和初始化2、中断响应及中断系统程序设计3、串行口的波特率的设定M1、M0两位可组合成两位可组合成4种状态,控制定时器的种状态,控制定时器的4种工作方式。种工作方式。每种方式的功能如表每种方式的功能如表41所列所列3方式选择位方式选择位M1、M0三、控制及标志寄存器三、控制及标志寄存器TCON 外部中断0触发方式 外部中断0中断标志位 外部中断1触发方式选择 外
2、部中断1中断标志位 定时器T0启、停控制位 定时器T0溢出标志位 定时器T1启、停控制位 定时器T1溢出标志位 TCON是一个八位寄存器。它控制定时器的启、停、溢出、中断等。有些位是控制设置,有些是标志位,各位都有对应地址,故可位寻址。TCON格式如下:格式如下:8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 位地址位地址 TF1TR1 TF0TR0IE1IT1IE0 IT0TCON中各位均是中各位均是“1”有效。有效。 利用程序把利用程序把TR1或或TR0置置“l”则启动定时器,否则定时则启动定时器,否则定时器处于关闭状态。器处于关闭状态。当当T1或或T0溢出时,由硬件把溢出
3、时,由硬件把TF1或或TF0置置“1”,作为溢出,作为溢出标志,标志,TF1和和TF0则还可作为中断申请标志。则还可作为中断申请标志。中断位中断位IE1、IT0、IT1、IT0在介绍中断时详细说明。在介绍中断时详细说明。4.1.2 定时器初始化定时器初始化初始化:初始化:使用定时器时,必须先利用指令对其进行正确设置,使用定时器时,必须先利用指令对其进行正确设置,这种设置过程称为初始化这种设置过程称为初始化。一、定时器初始化的主要内容一、定时器初始化的主要内容1选择工作方式选择工作方式2给定时器赋初值给定时器赋初值3根据需要设置中断控制字根据需要设置中断控制字4启动定时器启动定时器 1选择工作方
4、式选择工作方式 选择工作方式,通过对方式寄存器TMOD进行设置。 例如,欲设置T0为定时方式1,TMOD状态应置为: 0 0 0 0 0 0 0 1其状态字为01H。 MOV TMOD,#0lH,把TMOD设置成T0方式l状态。 若设置T1为计数方式l,只需C/ T=1,M0l, 则用指令MOV TMOD,#50H可达此目的。 注意:TMOD不能位寻址不能位寻址GATEC/ T M1M0GATEC/ TM1 M0 例例 T0初值初值3CB0H,T1初值初值00FFH。 利用指令:利用指令: MOV TH0,#3CH ;送;送T0初值初值 MOV TL0, #0B0H MOV TH1,#00H
5、;送;送T1初值初值 MOV TL1,#0FFH2给定时器赋初值给定时器赋初值3根据需要设置中断控制字根据需要设置中断控制字对中断允许寄存器IE和优先级寄存器IP设置,详细在中断中介绍赋初值即把初始常数装入赋初值即把初始常数装入TH0、TL0或或TH1、TL14启动定时器启动定时器例例 SETB TR0 ;启动;启动T0 SETB TR1 ;启动;启动T1 设定时器设定时器T1为方式为方式l,初值,初值3CB0H,若未用中断,初始化,若未用中断,初始化程序如下:程序如下: MOV TMOD,#10H MOV TH1,#3CH MOV TL1,#0B0H SETB TR1二、定时器初值设定方法二
6、、定时器初值设定方法 定时时间和定时器工作方式、初值及时钟周期定时器工作方式、初值及时钟周期均有关系均有关系,欲设定准确时间,必须会计算定时值。 即使同样的时间,工作方式不同,初值则不同;时钟频率不同即使工作方式相同,初值也不同。一般设定初值分几步考虑。1根据定时长短,选择工作方式根据定时长短,选择工作方式 因为工作方式不同,溢出一次计数最大值不同。设用因为工作方式不同,溢出一次计数最大值不同。设用M表示最大计数值,则各种方式计数最大值如下:表示最大计数值,则各种方式计数最大值如下: 方式方式0 M2138192 方式方式l M=21665536 方式方式2 M28256 方式方式3 M282
7、56 原则上:原则上:定时时间长选用定时时间长选用16位或位或13位计数器,位计数器,即方式即方式0或方式或方式1。若时间短选若时间短选8位,位, 即方式即方式2和方式和方式3,如果需要自动装入初值,只能选择方如果需要自动装入初值,只能选择方式式2。2定时初值计算定时初值计算设初值为设初值为x,最大计数值为,最大计数值为M。初值。初值X与机器周期与机器周期Tm、定时时间定时时间T的关系如下:的关系如下: (M - X)TmT Tm=12个时钟周期12/fosc XM - T/Tm 因为因为 Tm12/fosc 当当fosc6MHz时,时, Tm=2s fosc12MHz时,时, Tm1s 例如
8、例如:设采用定时器设采用定时器T1,方式,方式l,定时,定时50ms,计算定,计算定时初值。已知晶振频率时初值。已知晶振频率fosc12MHz 解:解: fosc12MHz Tm1s 定时方式定时方式1时时 M21665536 XM - T/Tm 65536-50000/1 15536 3CB0H 把定时器把定时器T1装入初值装入初值3CB0H,定时器计满溢出一,定时器计满溢出一次的时间就是次的时间就是50MS,若需要继续定时,应再装入初,若需要继续定时,应再装入初值。值。溢出信号使溢出信号使TCON寄存器中的溢出标志位寄存器中的溢出标志位TF1置置“1”,称硬件置位。称硬件置位。4.1.3
9、定时计数器应用程序设计定时计数器应用程序设计一、定时程序设计 例例 编写用定时器延时1分钟的子程序。设fosc=12MHz。程序如下: DELAY:MOV R0,#20 ;送延时1s常数 MOV R1,#60 ;送延时1min常数 MOV TMOD,#0lH ;T0为方式1,送方式字 MOV TH0,#3CH ;送初值高字节 MOV TL0,#0B0H ;送初值低字节 SETB TR0 ;启动T0 LP:JBC TF0 LP1 ;判断溢出标志;判断溢出标志TF0l转转LP1 SJMP LP ;继续查询;继续查询50ms LP1:MOV TH0,#3CH MOV TL0,#0B0H DJNZ R
10、0,LP ;R00继续查询继续查询 MOV R0,#20 ;R00重装循环常数重装循环常数 DJNZ R1,LP ; R10继续循环定时继续循环定时 MOV R1,#60 RET ;R1=0,1min到返回到返回 无论定时多长,编程方法类似,只是改变定时初值和循环常无论定时多长,编程方法类似,只是改变定时初值和循环常数而已。数而已。二、计数程序设计二、计数程序设计定时定时/计数器作为计数器方式,记录外部输入脉冲个数,外部脉冲每计数器作为计数器方式,记录外部输入脉冲个数,外部脉冲每下跳变一次计数器加下跳变一次计数器加1。 例例 编写每记录编写每记录100个脉冲,将个脉冲,将P1.0取反一次的程序
11、。取反一次的程序。初值 X 28 - 100 1569CH 最大值最大值 脉冲个数脉冲个数 程序程序 MOV TMOD,#60H ;T1方式方式2、计数方式、计数方式 MOV TH1,#9CH ;保存备用初值;保存备用初值 MOV TL1,#9CH ;赋初值;赋初值 SETB TR1 ;启动;启动T1LP: JBC TF1,LP1 ;查询;查询T1溢出标志溢出标志 AJMP LP ;TF11转转LP继续查询继续查询LP1:CPL P1.0 ; TF1l时时P10取反取反 AJMP LP ;转;转LP自动循环计数。自动循环计数。 自动装初值的优点:免去用指令重装初值,当溢出自动装初值的优点:免去
12、用指令重装初值,当溢出后,由硬件自动把后,由硬件自动把TH1中备用初值装入中备用初值装入TL1中。这中。这样提高了计数样提高了计数(或定时或定时)精度。精度。三、脉冲宽度测量程序设计三、脉冲宽度测量程序设计测试过程如下: 图4-2 门控波形图所示: 脉冲宽度脉冲宽度T=计数值计数值机器周期机器周期例例 测试INT0(P3.2)引脚上输入的外脉冲宽度。已知晶振频率fosc=12MHz。 选择选择T0方式方式1,门控方式,门控方式(GATE1),计数器从,计数器从00H开始工作比较方便,计数器中的最后值则是总计数开始工作比较方便,计数器中的最后值则是总计数脉冲值脉冲值。脉宽计算:脉宽计算:从从R0
13、、R1中读出计数结果中读出计数结果(即脉冲数即脉冲数),该值乘以机器,该值乘以机器周期则为脉冲宽度周期则为脉冲宽度T 。程序程序 MOV TMOD,#09H ;设置设置T0方式方式l,门控方式,门控方式 MOV TH0,#00H ;初值为初值为0 MOV TL0,#00H SETB TR0 ;T0置置1,等待脉冲高电平到才启动,等待脉冲高电平到才启动 JNB P3.2,$ ;P3.20等待高电平等待高电平 JB P3.2,$ ;高电平到,高电平到,T0启动,测量开始启动,测量开始 CLR TR0 ;P320,关闭计数器,关闭计数器T0,停止计数,停止计数 MOV R0,TH0 ;计数值高位送人计数值高位送人R0保存保存 MOV R1,TL0 ;计数值低位送入计数值低位送入R1保存保存 脉宽计算:脉宽计算:从从R0、R1中读出计数结果中读出计数结果(即脉冲数即脉冲数),该值乘以机器周,该值乘以机器周期则为脉冲宽度期则为脉冲宽度T 。27 结束语结束语