《最新单片微机原理第四章411定时中断串行幻灯片》由会员分享,可在线阅读,更多相关《最新单片微机原理第四章411定时中断串行幻灯片(27页珍藏版)》请在金锄头文库上搜索。
1、单片微机原理第四章单片微机原理第四章411定时、定时、中断、串行中断、串行本章要点要点:1、定时器的结构、工作方式、初始化、编程应用2、中断系统的结构、中断的概念、中断的标志、中断优先级、中断响应、中断程序设计3、串行口的结构、串行通信的特点、串行通信的工作方式、波特率的设定难点:1、定时器的工作方式的设定和初始化2、中断响应及中断系统程序设计3、串行口的波特率的设定M1、M0两两位位可可组组合合成成4种种状状态态,控控制制定定时时器器的的4种种工工作作方方式式。每种方式的功能如表每种方式的功能如表41所列所列3方式选择位方式选择位M1、M0三、控制及标志寄存器三、控制及标志寄存器TCON外部
2、中断0触发方式外部中断0中断标志位外部中断1触发方式选择外部中断1中断标志位定时器T0启、停控制位定时器T0溢出标志位定时器T1启、停控制位定时器T1溢出标志位TCON是一个八位寄存器。它控制定时器的启、停、溢出、中断等。有些位是控制设置,有些是标志位,各位都有对应地址,故可位寻址。TCON格式如下:格式如下:8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 位地址位地址TF1TR1 TF0TR0IE1IT1IE0 IT0TCON中各位均是中各位均是“1”有效。有效。 利利用用程程序序把把TR1或或TR0置置“l”则则启启动动定定时时器器,否否则则定定时时器处于关闭状态。器处于关
3、闭状态。当当T1或或T0溢溢出出时时,由由硬硬件件把把TF1或或TF0置置“1”,作作为为溢溢出出标志,标志,TF1和和TF0则还可作为中断申请标志。则还可作为中断申请标志。中断位中断位IE1、IT0、IT1、IT0在介绍中断时详细说明。在介绍中断时详细说明。4.1.2 定时器初始化定时器初始化初初始始化化:使使用用定定时时器器时时,必必须须先先利利用用指指令令对对其其进进行行正正确确设设置置,这种设置过程称为初始化这种设置过程称为初始化。一、定时器初始化的主要内容一、定时器初始化的主要内容1选择工作方式选择工作方式2给定时器赋初值给定时器赋初值3根据需要设置中断控制字根据需要设置中断控制字4
4、启动定时器启动定时器 1选择工作方式选择工作方式选择工作方式,通过对方式寄存器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
5、 TH1,#00H ;送;送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 方式方
7、式3 M28256 原则上:原则上:定时时间长选用定时时间长选用16位或位或13位计数器,位计数器,即方式即方式0或方式或方式1。若时间短选若时间短选8位,位, 即方式即方式2和方式和方式3,如果需要自动装入初值,只能选择方如果需要自动装入初值,只能选择方式式2。2定时初值计算定时初值计算设设初初值值为为x,最最大大计计数数值值为为M。初初值值X与与机机器器周周期期Tm、定时时间定时时间T的关系如下:的关系如下:(M-X)TmTTm=12个时钟周期12/foscXM-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:MOVR0,#20;送延时1s常数MOVR1,#60;送延时1min常数MOVTMOD,#0lH;T0为方式1,送方式字MOVTH0,#3CH;送初值高字节MOVTL0,#0B0H;送初值低字节SETBTR0;启动T0LP:JBC TF0 LP1 ;判断溢出标志;判断溢出标志TF0l转转LP1 SJMP LP ;继续查询;继续查询50ms LP1:MOV TH0,#3CH MOV TL0,#0B0H DJNZ R0,LP ;R00继续查询继续查询 MOV R0
10、,#20 ;R00重装循环常数重装循环常数 DJNZ R1,LP ; R10继续循环定时继续循环定时 MOV R1,#60 RET ;R1=0,1min到返回到返回 无论定时多长,编程方法类似,只是改变定时初值和循环常无论定时多长,编程方法类似,只是改变定时初值和循环常数而已。数而已。二、计数程序设计二、计数程序设计定定时时/计计数数器器作作为为计计数数器器方方式式,记记录录外外部部输输入入脉脉冲冲个个数数,外外部部脉脉冲冲每每下跳变一次计数器加下跳变一次计数器加1。 例例 编写每记录编写每记录100个脉冲,将个脉冲,将P1.0取反一次的程序。取反一次的程序。初值X 28 - 100 1569
11、CH 最大值最大值 脉冲个数脉冲个数 程序程序 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、R1中中读读出出计计数数结结果果(即即脉脉冲冲数数),该该值值乘乘以
13、以机机器器周期则为脉冲宽度周期则为脉冲宽度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