第六章单片微机的定时器计数器原理及应用_第1页
第六章单片微机的定时器计数器原理及应用_第2页
第六章单片微机的定时器计数器原理及应用_第3页
第六章单片微机的定时器计数器原理及应用_第4页
第六章单片微机的定时器计数器原理及应用_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第六章第六章 单片微机的定时器单片微机的定时器/计数器计数器原理及应用原理及应用6.1 概述概述6.2 定时器定时器/计数器计数器T0、T16.3 定时器定时器/计数器计数器T26.4 监视定时器(看门狗)监视定时器(看门狗)T36.5 定时器定时器/计数器的应用编程计数器的应用编程第六章第六章 单片微机的定时器单片微机的定时器/ /计数器计数器 原理及应用原理及应用定时或计数方法:定时或计数方法:1硬件法:硬件法:定时功能完全由硬件电路完成,不占用定时功能完全由硬件电路完成,不占用CPUCPU时间时间;不够灵活、方便;不够灵活、方便;2软件法:软件法:编循环程序,时间精确;占用编循环程序,时

2、间精确;占用CPUCPU;3可编程定时器计数器:可编程定时器计数器:通过软件编程来实现定通过软件编程来实现定时时间的改变,通过中断或查询方法来完成定时功时时间的改变,通过中断或查询方法来完成定时功能或计数功能能或计数功能6-1 概述概述定时器资源:定时器资源:80C51:T0和和T1;80C52:T0、T1、T280C552(Philips): T0、T1、T2、 T3(看门狗)(看门狗)定时器计数器的定时器计数器的核心核心:加加1 1计数器计数器其基本功能是计数加其基本功能是计数加1 1。 计数计数 T0、T1 (或(或T2)引脚,)引脚,10计数增计数增l 定时定时 对单片机内部的对单片机

3、内部的机器周期计数机器周期计数 计数值计数值N N乘以机器周期乘以机器周期T T就是定时时间就是定时时间t t 。 波特率发生器波特率发生器 串行接口的波特率发生器串行接口的波特率发生器功能:功能:6.2 6.2 定时器计数器定时器计数器T0T0、T1T1图图61 定时器定时器/计数器计数器T0、T1的内部结构框图的内部结构框图 T0、T1 的方式寄存器的方式寄存器TMOD6.2.1 与定时器计数器与定时器计数器T0、T1有关的特殊功能有关的特殊功能寄存器寄存器-TMOD、TCON、TH、TL、IE、IPD7 D6 D5 D4 D3 D2 D1 D0GATE C/TM1M0GATE C/TM1

4、M0T1T0M1、M0:工作方式选择位。工作方式选择位。M1 M0工作方式工作方式 计数器配置计数器配置 0 0方式方式0 13位计数器位计数器 0 1方式方式1 16位计数器位计数器 1 0方式方式2 自动重装载的自动重装载的8位计数器位计数器 1 1方式方式3 T0分为两个分为两个8位计数器,位计数器,T1停止计数停止计数 GATE1时,由外部中断引脚时,由外部中断引脚INT0、INT1和和TR0、TR1共同来启动定时器。当共同来启动定时器。当INT0引脚为高电平时,引脚为高电平时,TR0置位启动置位启动定时器定时器T0;当引脚;当引脚INT1为高电平时,为高电平时,TR1置位,启动定时器

5、置位,启动定时器T1。 GATE0时,仅由时,仅由TR0和和TR1置位来启动定时器置位来启动定时器T0和和T1。 C/T0时时,选择定时功能选择定时功能. 计数输入信号是内部时钟脉冲计数输入信号是内部时钟脉冲,1/12 fosc C/T1时时,选择计数功能选择计数功能. 通过引脚通过引脚T0和和T1对外部信号进行计数对外部信号进行计数, 在每个机器周期的在每个机器周期的S5P2期间,期间,CPU采样引脚的输入电平。若前一机器周期采样采样引脚的输入电平。若前一机器周期采样值为值为1,下一机器周期采样值为,下一机器周期采样值为0,则计数器增,则计数器增1 GATE门控位门控位CT:功能选择位功能选

6、择位 定时器计数器定时器计数器T0、T1 的控制寄存器的控制寄存器TCON 位地址位地址8FH8FH8EH8EH8DH8DH8CH8CH8BH8BH8AH8AH89H89H88H88H位名称位名称TF1TF1TR1TR1TF0TF0TR0TR0IE1IE1IT1IT1IE0IE0IT0IT0功能功能 T1T1 中断中断标志标志启动启动T1T0T0中断中断标志标志启动启动T0中断中断标志标志触发触发方式方式中断中断标志标志 触发触发方式方式1 1)启动控制位)启动控制位TR0TR0、TR1TR1: =0=0,停止定时器工作;,停止定时器工作; =1=1,启动定时器工作,启动定时器工作2 2)溢出

7、中断标志位)溢出中断标志位TF0TF0、TF1TF1:定时器溢出使定时器溢出使TFxTFx=1=1,引起中断请求,引起中断请求,CPUCPU响应响应TxTx中中断后,系统自动将断后,系统自动将TFxTFx清清0 0。也可用软件检测也可用软件检测TFxTFx,这时必须软件清,这时必须软件清0 0。 T0、T1 的数据寄存器的数据寄存器TH1、TL1,TH0、TL0 定时器定时器/计数器中断计数器中断 中断允许寄存器中断允许寄存器IE 中断矢量中断矢量 定时器定时器T0T0:000BH000BH定时器定时器T1T1:001BH001BH 中断优先级寄存器中断优先级寄存器IPEX0EX0ET0ET0

8、EX1EX1ET1ET1ESESEAEAPX0PX0PT0PT0PX1PX1PT1PT1PSPS- 复位后,这复位后,这4 4个寄存器全部清零。个寄存器全部清零。T0:有有4种种工作方式可选(方式工作方式可选(方式0,1,2,3)T1:有有3种种工作方式可选(方式工作方式可选(方式0,1,2) 方式方式0-130-13位定时器位定时器/ /计数器计数器( (M10、M00) ) 最大计数值最大计数值213 = 8192,当当fosc=12MHZ时时,Tmax=8192S6.2.2 6.2.2 定时器计数器定时器计数器T0T0、T1 T1 的工作方式的工作方式B=TRx(GATE+INTx) 注

9、意:注意:TFxTFx置位后,若中断允许,则置位后,若中断允许,则CPUCPU进入中断服务程序进入中断服务程序, ,后由硬件自动清后由硬件自动清0 0。 若中断禁止,可由程序查询并由软件清若中断禁止,可由程序查询并由软件清0 0。 方式方式1-16位定时器位定时器/计数器计数器(M10、M01)最大计数值最大计数值216 = 65536,当当fosc=12MHZ时,时,Tmax=65536S 计数时,计数时,TLxTLx溢出后向溢出后向THxTHx进位,进位,THxTHx溢出后将溢出后将TFxTFx置位,如置位,如果中断允许,果中断允许,CPUCPU响应中断并转入中断服务程序,由内部硬件响应中

10、断并转入中断服务程序,由内部硬件清清TFxTFx。TFxTFx也可以由程序查询和清零。也可以由程序查询和清零。 方式方式2- 8位定时器位定时器/计数器自动重装载计数器自动重装载(M11、M00)优点优点:定时初值可自动恢复:定时初值可自动恢复,TH,TH中存放初值中存放初值; ;缺点缺点:计数范围小,:计数范围小,最大计数值为最大计数值为2 28 8= 256= 256适用范围适用范围:需要重复定时,而定时范围不大的应用场合,比需要重复定时,而定时范围不大的应用场合,比如:作为串行口如:作为串行口波特率发生器波特率发生器使用使用 方式方式3-仅仅T0有此方式,有此方式,T1无方式无方式3中断

11、矢量中断矢量000BH中断矢量中断矢量001BHT0T0分成分成2 2个个8 8位定时器:位定时器:TL0TL0定时定时/ /计数器和计数器和TH0TH0定时器;定时器;TL0TL0占用占用T0T0控制位:控制位:C/TC/T,TF0,TR0TF0,TR0,GATEGATE;TH0TH0占用占用T1T1控制位控制位:TR1TR1、TF1TF1;只能对片内机器周期脉冲计数;只能对片内机器周期脉冲计数定时器定时器/ /计数器计数器T0T0方式方式3 3时,时,T1T1的逻辑结构图的逻辑结构图 T1 T1由于其由于其TF1TF1、TR1TR1被被T0T0的的TH0TH0占用,计数器溢出时,只能将输占

12、用,计数器溢出时,只能将输出信号送至串行口,即出信号送至串行口,即用作串行口波特率发生器用作串行口波特率发生器 定时器初值的计算定时器初值的计算6.5 6.5 定时器定时器/ /计数器的应用编程计数器的应用编程 机器周期时间机器周期时间定时时间定时时间初值初值LOSCLCftT2122oscf12L与工作方式有与工作方式有关,关,13、16、8fosc=12MHZ时时,1机周机周=1 S;fosc=6MHZ 时时, 1机周机周=2 S6.5.1 6.5.1 定时器的应用定时器的应用 定时器计数器运行前,在数据寄存器中预先置入的定时器计数器运行前,在数据寄存器中预先置入的常数,称为定时常数或计数

13、常数常数,称为定时常数或计数常数T TC C。 定时时间定时时间=脉冲数脉冲数脉冲周期(机器周期)脉冲周期(机器周期)定时时间定时时间t=(2L-初值初值TC) 解:解:工作方式工作方式0 0: 2 21313500500 S/2S/2 S=8192-250=7942S=8192-250=7942 =1F06H =1F06H =1111100000110B =1111100000110B TL0= TL0=0011000110B=06HB=06H TH0= TH0=1111100011111000B=F8HB=F8H【例例】 已知晶振已知晶振6MHz6MHz,要求定时,要求定时0.5ms0.5

14、ms,试分别求,试分别求出出T0T0工作于方式工作于方式0 0、方式、方式1 1、方式、方式2 2时的定时初值。时的定时初值。 工作方式工作方式1 1: T0T0初值初值 =2=21616-500-500 s s/2/2 s s=65536250=65286=FF06H=65536250=65286=FF06H TH0=FFH TH0=FFH;TL0=06HTL0=06H 工作方式工作方式2 2: T0T0初值初值 =2=28 8-500-500 s s/2/2 s s=256-250=6=256-250=6 TH0=06H TH0=06H;TL0=06HTL0=06H。解:分析解:分析 采用

15、方式采用方式0定时时间定时时间 t1ms=1000S定时常数:定时常数:TC=213-1000/2=8192-500=7692 = 11110000 01100B用定时器用定时器T0:TMOD=00H,TH0=F0H,TL0=0CH【例例】 要求在要求在 P10引脚上输出周期为引脚上输出周期为2 ms的方波的方波fosc=6MHz中断方式:中断方式: ORG 0000HAJMP MAINORG 000BH;T0中断矢量中断矢量AJMP INQPORG 0030HMAIN:MOV TMOD,00H ;设设T0为定时器方式为定时器方式0 0 MOV TH0,0F0H ;写定时常数;写定时常数( (

16、定时定时1ms)1ms) MOV TL0,0CH SETB TR0 ;启动;启动 T0 SETB ET0 ;允许;允许T0中断中断 SETB EA ;开放;开放CPU中断中断 AJMP $ ;定时中断等待;定时中断等待ORG 0100 H ;T0中断服务程序中断服务程序 INQP:MOV TH0,0F0H ;重写定时常数;重写定时常数 MOV TL0,0CHCPL P1.0 ;P10变反输出变反输出 RETI 查询方式查询方式ORG 0000HAJMP STORG 0030HST: MOV SP,#60HMOV TMOD,#00H;方式;方式0L1:MOV TH0,#0F0H;初值;初值MOV

17、 TL0,#0CHCPL P1.0SETB TR0L2:JBC TF0,L1SJMP L2END采用方式采用方式1 1定时时间定时时间 t1ms=1000S定时常数:定时常数:TC=216-1000/2=65536-500=65036 = 11111110 00001011B=FE0CH用定时器用定时器T1:TMOD=10H,TH0=FEH,TL0=0CH编程与前相同编程与前相同【例例】欲用欲用80C51产生两个方波,一个方波周期为产生两个方波,一个方波周期为200s,另一,另一个方波周期为个方波周期为400s,该,该80C51同时使用串行口,用定时器同时使用串行口,用定时器/计计数器作为波特

18、率发生器数器作为波特率发生器,波特率为波特率为2400, fOCS9.216 MHz 。计算:计算:TL0初值:初值:HBftTOSCCL3101100112179876256121021691010025612266180.TH0初值:初值:HTCH6641021210216910200256660.TH1、TL1初值为:初值为:分析:分析:这时这时T0采用方式采用方式3工作,其中,工作,其中,TL0产生产生100s定时,由定时,由 P1.0输出方波输出方波1TH0产生产生200s定时,由定时,由Pl.1输出方波输出方波2 ;T1设置为方式设置为方式2,作波特率发生器用。,作波特率发生器用。

19、F6H编程:编程:ORG 0000H AJMP MAINORG 000BH ;TL0的中断入口的中断入口AJMP ITL0ORG 00lBH;TH0的中断入口的中断入口AJMP ITH0ORG 0100H MAIN: MOV SP, 60H ;设栈指针;设栈指针MOV TMOD, 23H ;设;设T0为方式为方式3,TI为为2 MOV TL0,0B3H ;设;设TL0初值初值(100s定时定时) MOV TH0,66H ;设;设TH0初值初值(200s定时定时) MOV TL1,0F6H ;设;设TL1初值初值(波特率为波特率为2400) MOV TH1, 0F6H ;设;设 TH1初值初值

20、SETB TR0 ;启动;启动 TL0 SETB TR1 ;启动;启动TH0 SETB ET0 ;允许;允许TL0中断中断 SETB ET1 ;允许;允许TH0中断中断 SETB EA ;CPU中断开放中断开放 AJMP ORG 0200HITL0:MOV TL0, 0B3H ;重装定时常数;重装定时常数 CPL P10 ;输出方波;输出方波1(200s) RETIITH0:MOV TH0,66H ;重装定时常数;重装定时常数CPL P11 ;输出方波;输出方波2(400s) RETI【例例】假如一个用户系统已使用了两个外部中断源,假如一个用户系统已使用了两个外部中断源,即即INT0和和INT

21、1,用户系统要求从,用户系统要求从P1.0引脚上引脚上输出输出一个一个5kHz的方波的方波,并要求采用定时器,并要求采用定时器/计数器作为串行口计数器作为串行口的的波特率发生器波特率发生器,另外还需要再增加一个,另外还需要再增加一个外部中断源外部中断源。6.5.2 6.5.2 计数器的应用计数器的应用分析分析:除两个外中断除两个外中断(INT0、INT1)外,还需要)外,还需要两个定时器两个定时器(5KHZ和波特率发生器)和和波特率发生器)和一个计数器一个计数器(扩展外中断)(扩展外中断)把把T0设置为方式设置为方式3: TL0设置为计数器,设置为计数器, TH0只能做只能做8位定时器位定时器

22、(产生(产生5KHz方波),方波),T1就作为波特率发生器,设为方式就作为波特率发生器,设为方式2。频率频率5kHz即周期为即周期为200s,则定时时间,则定时时间100s,若采用,若采用12MHz的晶体振荡器,则机器周期为的晶体振荡器,则机器周期为1s。 计算时间常数:计算时间常数:TC28100/1156编程:编程:ORG 0000HSJMP MAINORG 000BHAJMP TL0INT;TL0中断入口中断入口 ORG 001BHAJMP TH0INT;TH0中断入口中断入口ORG 0030H MAIN: MOV TMOD,#27H ;T0为方式为方式3,TL0为计数方式为计数方式,

23、TH0为为 ;定时定时;T1作波特率发生器,方式作波特率发生器,方式2MOV TH0,#156 ;TH0定时常数定时常数MOV TL0, #0FFH ;TL0计数常数计数常数MOV TL1,#BAUD ;BAUD根据波特率算出根据波特率算出MOV TH1,#BAUDMOV TCON,#55H ;TR0和和TR1为为1,启动启动TL0和和TH0MOV IE,#8AH SJMP$ORG 0100HTL0INT:MOV TL0,#0FFH;重置计数长度;重置计数长度(中断处理中断处理)RETITH0INT:MOV TH0,#156;重置定时常数;重置定时常数CPLP1.0;P1.0引脚输出方波引脚输

24、出方波RETI TF1 TF1 TR1 TR1 TF0 TF0 TR0 TR0 IE1 IT1 IE0 IT0IE1 IT1 IE0 IT0GATE C/T M1 M0 GATE C/T M1 M0 GATE C/T M1 M0GATE C/T M1 M06.5.3 6.5.3 门控位门控位GATEGATE的应用的应用 门控位门控位GATE可用作对可用作对INTx引脚上的高电平持引脚上的高电平持续时间进行计量。续时间进行计量。当当GATE位设为位设为“1”,并设定时,并设定时器器/计数器启动位计数器启动位TRx为为“1”,这时定时器,这时定时器/计数器计数器定时完全取决于定时完全取决于INTx

25、引脚,仅当引脚,仅当INTx引脚电平为引脚电平为“1”时,定时器才工作,换另一角度看,定时器实时,定时器才工作,换另一角度看,定时器实际记录的时间就是相应际记录的时间就是相应INTx引脚上高电平的持续引脚上高电平的持续时间。时间。通过反相器,通过反相器,则可测得相应则可测得相应INTxINTx引脚上低电引脚上低电平的持续时间。平的持续时间。二个时间的和即为二个时间的和即为INTxINTx引脚上输入引脚上输入波形的周期,其倒数即为波形的周期,其倒数即为INTxINTx引脚上输入波形的频引脚上输入波形的频率。还可算出占空比等参数。率。还可算出占空比等参数。6.5.3 6.5.3 门控位门控位GAT

26、EGATE的应用的应用 【例例】利用定时器计数器测定图示波形的一个周期长度。利用定时器计数器测定图示波形的一个周期长度。 INT1(P3.3)TR1 置置1T1开始计时开始计时TR1清零清零分析:分析:若若GATE=1,则则T1为定时器时,当为定时器时,当TR1=1且且INT1为高为高电平时,才启动定时器。电平时,才启动定时器。查询法查询法: ORG 0000HSTART:MOV TMOD,#90HMOV TL1,#00H;置为最大定时值;置为最大定时值MOV TH1,#00HLP1:JBP3.3,LP1;P3.3为高电平,等待为高电平,等待 SETB TR1;当;当P3.3为低时为低时,置置

27、TR1为为1LP2: JNBP3.3,LP2;当;当P3.3为低电平时,再等待为低电平时,再等待LP3:JBP3.3,LP3CLRTR1MOV 30H,TL0MOV 31H,TH0SJMP $当当fosc12MHz时,最大被测脉宽为时,最大被测脉宽为65536s。此编程实际只测量了高电平的宽度,此编程实际只测量了高电平的宽度,若被测波形除了接至若被测波形除了接至P3.3,另外同时通,另外同时通过一个反相器接至过一个反相器接至P3.2 (INT0) ,则通,则通过编程同时可以测得波形的高电平宽过编程同时可以测得波形的高电平宽度和低电平宽度。度和低电平宽度。中断法:中断法:【分析】设设6MHz晶振

28、晶振,T0为方式为方式1,定时溢出时间为,定时溢出时间为 100 ms 计数初值为计数初值为 FFFEH:(:(TH1)FFH,(,(TL1)FEH。 编程编程: ORG0000HSJMP MAINORG 000BH ;定时器;定时器T0中断入口中断入口 AJMP TIME0 ORG 00IBH ;定时器;定时器 T1中断入口中断入口 AJMP TIME1 ORG 0030HMAIN:MOV R0,0;清除;清除T0定时中断次数计数器定时中断次数计数器MOV TMOD,59H;T0为定时器为定时器,方式方式1, GATE1 ;T1为计数器、方式为计数器、方式1 MOV TH0,3CH ;T0定

29、时器初值定时器初值 MOV TL0,0B0H MOV TH1,0FFH ;T1计数器初值计数器初值 MOV TL1,0FEH SETB TR0;启动;启动T0定时器定时器 SETB TR1;启动;启动T1计数器计数器 MOV IP,08H ;T1中断优先级高于中断优先级高于T0SETB ET1 ;允许;允许T1中断中断 SETB ET0;允许;允许T0中断中断 SETB EA ;CPU开中断开中断SETB 20H ;设;设20H为为T1计数中断标志计数中断标志LOOP:SETB F0;设;设F0为为T0定时中断标志定时中断标志 JB F0,$;T0定时未溢出,等待定时未溢出,等待 JB 20H

30、,LOOP ;判;判T1若未溢出则循环若未溢出则循环SJMP $ ORG 0100HTIME0:MOV TL0,0B0H;重置;重置T0定时器初值定时器初值MOV TH0, 3CH INCR0;T0定时溢出计数器加定时溢出计数器加 1 CPL F0;T0定时中断标志变反定时中断标志变反RETIORG 0200HTIME1:CLR F0;清除;清除T0定时中断标志定时中断标志 CLR 20H;清除;清除T1计数中断标志计数中断标志 CLR ET0 ;禁止;禁止T0、T1 中断中断 CLR ET1CLR EA ;关中断;关中断 RETI 80C51可以随时读写计数寄存器可以随时读写计数寄存器TLx

31、和和THx (x为为0或或1) ,用于实时显示计数值等。用于实时显示计数值等。办法是:办法是:先读先读THx,后读后读TLx,再重读再重读THx,若两次读得的若两次读得的THx值是一样的,则可以确定读入的数据值是一样的,则可以确定读入的数据是正确的;是正确的;若两次读得的若两次读得的THx值不一致,则必须重读。值不一致,则必须重读。 6.5.4 6.5.4 运行中读定时器运行中读定时器/ /计数器计数器例例. 飞读飞读RDTIME:MOVA,TH0;读;读TH0 MOVR0,TL0;读;读TL0并存入并存入R0 CJNE A,TH0,RDTIME;与上次读入的与上次读入的TH0比较,若不等,重

32、读比较,若不等,重读 MOVR1,A;存;存TH0在在R1中中 RETEND【 6- 7 】 80C51 单片机的定时器计数器单片机的定时器计数器 T0 以以定时方法在定时方法在 P3.1 引脚上输出周期为引脚上输出周期为 400 s ,占空,占空比为比为 9: 1的矩形脉冲,以定时工作方式的矩形脉冲,以定时工作方式 2 编程实现编程实现。并对源程序加以注释。并对源程序加以注释。 fosc=6 M H z 。【答答】矩形脉冲高电平时间为矩形脉冲高电平时间为 3 6 0 s ,低电平,低电平时间为时间为 40 s 。机器周期为。机器周期为 2 s 。计算:计算: 360s 定时定时, TC =2

33、8-360 s/2 s=256-180=76 TC=4CH 40s 定时,定时, TC =28-40 s/2 s=256-20=236 TC=ECH 采用查询法编程:采用查询法编程: ORG 0000H AJMP MAIN ORG 0030H MAIN : MOV TMOD , #02H ;定时器;定时器 T0 以方式以方式 2 定时定时 MOV TH0 , #0ECH ;定时;定时 40 s MOV TL0 , #0ECH CLR P3.1 ; P3.1 初始值初始值 SETB TR0 ;开启定时器;开启定时器 T0 LOOP : CLR P3.1 JBC TF0 ,REP ;查询;查询 4

34、0s 定时到,则转定时到,则转 AJMP LOOP REP : SETB P3.1; P3 .1 输出高电平输出高电平 360 s MOV R7 , #09H ;定时;定时 40 s X 9=360 s LOOPl : JBC TF0 ,REPI ;查询高电平;查询高电平 360s 定时到,则转定时到,则转 AJMP LOOPl REPI : DJNZ R7 ,LOOPl AJMP LOOP ; 360 s 到,则转回输出周期波形到,则转回输出周期波形 END【 6-12 6-12 】 采用中断方法设计采用中断方法设计 8OC51 8OC51 单片机的秒、单片机的秒、分脉冲发生器。要求采用定时

35、器计数器分脉冲发生器。要求采用定时器计数器T1T1的方的方式式 1 1编程,实现编程,实现 P1.0 P1.0 每秒钟产生一个机器周期每秒钟产生一个机器周期的正脉冲的正脉冲,P1.1 ,P1.1 每分钟产生一个机器周期的正脉每分钟产生一个机器周期的正脉冲。并对源程序加以注释。晶振频率为冲。并对源程序加以注释。晶振频率为12MHz 12MHz 。【答答】机器周期为机器周期为1s1s,定时器采用方式,定时器采用方式 1 1 时,最时,最长定时时间仅为长定时时间仅为65ms 65ms 。需要采用定时。需要采用定时溢出次数溢出次数 = = 所需定时。所需定时。 如定时设为如定时设为10ms10ms,则

36、定时溢出中断,则定时溢出中断100100次时,为次时,为定时定时1S 1S 。计算:计算: TC=2TC=21616-10000/1-10000/1 TC=55536=D8F0H TC=55536=D8F0H程序如下:程序如下: ORG 0000H AJMP MAIN ORG 001BH AJMP INTER ORG 0030HMAIN : MOV TMOD , #1 0H ;T1 为定时器方式为定时器方式 1 MOV THI , #0D8H ; 1 0 ms 定时初始值定时初始值 MOV TLI , #0F0H MOV R7 , #60 ;定时;定时 1 分计数器分计数器 MOV R0 ,

37、#1 00 ;定时;定时 1 S 计数器计数器 SETB TRI ;开启定时器;开启定时器 T1 SETB ETI ;开定时器;开定时器 T1 中断中断 SETB EA ;开中断;开中断 CLR P1.0 ;初始值;初始值 CLR P1.1 AJMP $ ;定时中断等待;定时中断等待10ms中断服务程序中断服务程序 INTER : MOV THI , #0D8H MOV TLI , #0F0H ;重置;重置 10ms 定时常数定时常数 DJNZ R0, REP CPL P1 . 0 ; 1 s 定时到,定时到, P1.0 取反输出取反输出 MOV R0 ,#1 00 CLR P1.0 DJNZ

38、 R7 ,REP ;若;若 R7 不为不为 0 ,则中断返回,则中断返回 CPL P1.1 ; 1 分定时到,则分定时到,则 P1.1 取反输出取反输出 MOV R7 , #60 ; CLR P1.0 REP : RETI END 实验三实验三 外中断外中断P1.0P1.7接接8个发光二极管,管脚个发光二极管,管脚INT0、INT1接两个按键,分别定义为接两个按键,分别定义为“L”和和“R”。要求:上电全灭,按要求:上电全灭,按 “L”(或或R)键,最右(左)键,最右(左)侧灯亮,侧灯亮,每按一次每按一次“L” ”(或或R)键,则亮的灯向左(右)键,则亮的灯向左(右)移一位,移一位,当移到最左

39、(右)端时,灯全灭当移到最左(右)端时,灯全灭vORG 0000HvSJMP MAINvORG 0003HvSJMP INTLvORG 0013HvSJMP INTRvORG 1000H vMAIN: SETB EX0v SETB EX1v SETB IT0v SETB IT1v SETB EAv MOV A,#0FFHv MOV P1,Av MOV R1,#0FEHv MOV R0,#7FHv MOV R3,#9v MOV R4,#9vHEAR:SJMP HEARINTL:MOV A,R1INTL:MOV A,R1 MOV P1,A MOV P1,A RL A RL A MOV R1,A M

40、OV R1,A DJNZ R3,LL DJNZ R3,LL MOV A,#0FFH MOV A,#0FFH MOV P1,A MOV P1,A MOV R1,#0FEH MOV R1,#0FEH MOV R3,#9 MOV R3,#9 LL: RETI LL: RETI INTR:MOV A,R0INTR:MOV A,R0 MOV P1,A MOV P1,A RR A RR A MOV R0,A MOV R0,A DJNZ R4,LL DJNZ R4,LL MOV A,#0FFH MOV A,#0FFH MOV P1,A MOV P1,A MOV R0,#7FH MOV R0,#7FH MOV R4,#9 MOV R4,#9 LL: RETI LL: RETI END END 使用使用 MCS-51 内部定时内部定时/计数器,定时一秒钟,计数器,定时一秒钟,CPU 运用定运用定时中断方式,实

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论