《单片机第四章答案.ppt》由会员分享,可在线阅读,更多相关《单片机第四章答案.ppt(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第4章章 80C51的定时的定时/计数器与中计数器与中断系统断系统思考题与习题 思考题与习题思考题与习题 1.80C511.80C51单片机的定时单片机的定时/计数器的计数器的定时定时和和计数计数两种两种功能功能各有什么各有什么特点特点?脉冲源不同脉冲源不同 2.2.当定时当定时/计数器的加计数器的加1 1计数器计满溢出时计数器计满溢出时,溢出标志位溢出标志位TF1TF1由硬由硬件件自动置自动置1 1,简述对该标志位的,简述对该标志位的两种两种处理方法。处理方法。查询软件清除查询软件清除和和中中断硬件自动清除断硬件自动清除 3.3.当定时当定时/计数器工作于方式计数器工作于方式0 0时,晶振
2、频率为时,晶振频率为12MHz12MHz,请计算最,请计算最小定时时间、最大定时时间、最小计数值和最大计数值。小定时时间、最大定时时间、最小计数值和最大计数值。最小计数值为最小计数值为1 1,最小定时时间为,最小定时时间为1us1us最大计数值位最大计数值位2 21313,最大计数时间为,最大计数时间为8.19ms8.19ms 4.80C51 4.80C51单片机的定时单片机的定时/计数器四种工作方式各有什么特点计数器四种工作方式各有什么特点?5 5当定时当定时/计数器计数器T0T0用作方式用作方式3 3时,定时时,定时/计数器计数器T1T1可以工作在何可以工作在何种方式下?种方式下?0 0、
3、1 1、2 2,如何控制如何控制T1T1的开启和关闭?的开启和关闭?设置工作方式设置工作方式 6.6.硬件定时与软件定时的最大区别是什么硬件定时与软件定时的最大区别是什么?不占用不占用CPUCPU 7.7.根据定时根据定时/计数器计数器0 0方式方式1 1逻辑结构图,逻辑结构图,分析分析门控位门控位GATEGATE取不同取不同值时,值时,启动启动定时器的定时器的工作过程工作过程。8.用方式用方式0设计两个不同频率的方波,设计两个不同频率的方波,P1.0输出频率为输出频率为200Hz,P1.1输出频率为输出频率为 100Hz,晶振频率,晶振频率12MHz。ORG0000HSTART:MOVTMO
4、D,#00H;(主程序开始)定时器(主程序开始)定时器T1工作方式工作方式0CLRP1.0;设置方波的起始状态设置方波的起始状态CLRP1.1MOVR2,#0MOVTL1,#0CHMOVTH1,#0F0H;送初值,保证定时时间为送初值,保证定时时间为500usSETBTR1;启动定时器启动定时器LOOP:JNBTF1,$;查询是否溢出,等待查询是否溢出,等待500us定时到定时到 CLRTF1;清溢出标志,以便下次判断清溢出标志,以便下次判断MOVTL1,#0CH;溢出处理溢出处理MOVTH1,#0F0H;再送计数初值,保证定时时间始终为再送计数初值,保证定时时间始终为500usINCR2CJ
5、NER2,#5 ,LOOPMOVR2,#0CPLP1.0;改变改变P1.0的状态的状态JNBP1.0,LOOPCPLP1.1;P1.0的上升沿,改变的上升沿,改变P1.1的状态的状态SJMPLOOP;产生连续的方波产生连续的方波END5ms10ms解解:TMOD初始化:初始化:GATE=0,C/T=0,M1M0=00B 计算定时计算定时500us初值:方式初值:方式0:X=213-500=7692=1E0CH=1111000001100B 9.P1.0输出脉冲宽度调制输出脉冲宽度调制(PWM)信号,即脉冲频率为信号,即脉冲频率为2kHz、占空、占空比为比为7:10的矩形波,晶振频率的矩形波,晶
6、振频率12MHz。查询方式:查询方式:ORG0000HSTART:MOV TMOD,#10H;(主程序开始)定时器(主程序开始)定时器T1工作方式工作方式1CLRP1.0;设置方波的起始状态设置方波的起始状态MOVTL1,#0A1HMOVTH1,#0FEH;送初值,保证定时时间为送初值,保证定时时间为350us SETB P1.0SETBTR1;启动定时器启动定时器LOOP:JNBTF1,$;查询是否溢出,查询是否溢出,CLRTF1;清溢出标志,以便下次判断清溢出标志,以便下次判断 JNB P1.0,N0;现在为低电平时;现在为低电平时,150us定时到定时到,转移,转移MOVTL1,#69H
7、;溢出处理溢出处理MOVTH1,#0FFH;再送计数初值,保证定时时间始终为再送计数初值,保证定时时间始终为150us SJMP N1 N0:MOVTL1,#0A1H;溢出处理溢出处理MOVTH1,#0FEH;再送计数初值,保证定时时间始终为再送计数初值,保证定时时间始终为350usN1:CPLP1.0;改变改变P1.0的状态的状态SJMPLOOP;产生连续的产生连续的7 7:1010的矩形波的矩形波END方式方式1:X=216-t/T =216-1/2000*30%*12*106/12 =FF69H方式方式1:X=216-t/T =216-1/2000*70%*12*106/12 =FEA1
8、H解解:TMOD初始化:初始化:GATE=0,C/T=0,M1M0=10B 计算初值:方式计算初值:方式2:X=28 t(foscosc/12)=256-125(12/12)=83HORG0000HSTART:MOV TMOD,#02H;定时器定时器T0工作方式工作方式2CLRP1.0;设置方波的起始状态设置方波的起始状态 MOVTL0,#83H;送计数初值送计数初值,MOVTH0,#83H;保证定时时间始终为保证定时时间始终为125sSETBTR0;启动定时器启动定时器LOP:JBCTF0,$;等待等待125s定时到定时到JNBP3.0,L0;P3.0=0JNBP3.1,L1;P3.1=0,
9、P3.0=1,产生产生1kHz方波方波CPLP1.0;P3.1=1,P3.0=1,产生产生4kHz方波方波SJMPLOP;产生连续的方波产生连续的方波L0:JNBP3.1,L2;P3.1=0,P3.0=0,产生产生0.5kHz方波方波;P3.1=1,P3.0=0,P1.0产生产生2kHz方波方波CPL00H;改变改变00H的状态的状态;00H,产生产生4kHz方波方波JNB00H,LOPCPLP1.0;00H位的上升沿,改变位的上升沿,改变P1.0的状态,的状态,产生产生2kHz方波方波SJMPLOP;产生连续的方波产生连续的方波10.两只开关分别接入两只开关分别接入P3.0、P3.1,在开关
10、信号,在开关信号4种不同的组合种不同的组合逻辑状态,使逻辑状态,使P1.0分别输出频率分别输出频率0.5kHz、1kHz、2kHz、4kHz的方波,晶振频率为的方波,晶振频率为12MHz。查询方式。查询方式。解解:TMOD初始化:初始化:GATE=0,C/T=0,M1M0=10B 计算初值:方式计算初值:方式2:X=28 t(foscosc/12)=256-125(12/12)=83H10.两只开关分别接入两只开关分别接入P3.0、P3.1,在开关信号,在开关信号4种不同的组合种不同的组合逻辑状态,使逻辑状态,使P1.0分别输出频率分别输出频率0.5kHz、1kHz、2kHz、4kHz的方波,
11、晶振频率为的方波,晶振频率为12MHz。查询方式。查询方式。L1:;P3.1=0,P3.0=1,产生产生1kHz方波方波CPL 01H;改变改变01H的状态的状态;01H产生产生4kHz方波方波JNB 01H,LOPCPL 02H;改变改变02H的状态的状态;02H,产生产生2kHz方波方波JNB 02H,LOPCPL P1.0;02H位的上升沿,改变位的上升沿,改变P1.0的状态的状态产生产生1kHz方波方波SJMP LOPL2:;P3.1=0,P3.0=0,产生产生0.5kHz方波方波CPL 03H;改变改变03H的状态的状态;03H产生产生4kHz方波方波JNB 03H,LOPCPL 0
12、4H;改变改变04H的状态的状态;04H,产生产生2kHz方波方波JNB 04H,LOPCPL 05H;改变改变05H的状态的状态;05H产生产生1kHz方波方波JNB 05H,LOPCPL P1.0;05H位的上升沿,改变位的上升沿,改变P1.0的状态的状态产生产生0.5kHz方波方波SJMP LOPEND 11.有一组高电平脉冲的宽度在有一组高电平脉冲的宽度在50100ms之间,利用定时器之间,利用定时器0测量脉冲的宽度,结果存放到片内测量脉冲的宽度,结果存放到片内RAM区以区以50H单元为首地单元为首地址的单元中,晶振频率址的单元中,晶振频率12MHz。参照。参照【例4-5】ORG 00
13、00H LJMP MAIN ORG 0100HMAIN:MOV R0,#50H;数据存储单元首地址;数据存储单元首地址MOV TMOD,#09H;置定时器;置定时器1为方式为方式1MOV TH0,#0FCH ;定时;定时1msMOV TL0,#18HJB P3.2,$;查询低电平;查询低电平SETB TR1 ;准备启动定时器;准备启动定时器1 LP0:JNB P3.2,$;高电平到;高电平到,启动定时器启动定时器1LP1:JBC TF0,LP2 JB P3.2,LP1 INC R0;低电平到低电平到,停止定时器停止定时器1,存储单元地址加存储单元地址加1 SJMP LP0;低电平到;低电平到,
14、停止定时器停止定时器1 LP2:INC R0 ;存储溢出次数加;存储溢出次数加1ms MOV TH0,#0FCH ;定时;定时1ms MOV TL0,#18H SJMP LP1方式方式1:X=216-t/T=216-1000/1=FC18HINT1INT1INT1INT1为高时为高时为高时为高时T1T1开始计数开始计数开始计数开始计数INT1INT1 为低时为低时为低时为低时T1T1停止计数停止计数停止计数停止计数宽度宽度宽度宽度 12.12.什么是中断?中断系统的什么是中断?中断系统的功能功能和和特点特点有哪些?有哪些?13.8051 13.8051单片机的单片机的中断源中断源有几个?有几个
15、?自然优先级自然优先级是如是如何排列的?何排列的?5 5 int0int0、t0t0、int1int1、t1t1、TX$RXTX$RX 14.14.外部中断外部中断触发方式触发方式有几种?它们的有几种?它们的特点特点是什么是什么?15.15.中断处理过程包括几个阶段?中断处理过程包括几个阶段?16.16.请简述中断请简述中断响应响应的的过程过程。17.17.外部中断外部中断请求请求撤销撤销时要注意哪些事项?时要注意哪些事项?18.18.中断系统的中断系统的初始化初始化一般包括哪些内容?一般包括哪些内容?19.19.扩展扩展外部外部中中断源的断源的方法方法有几种?有几种?中断程序结构框架中断程序
16、结构框架 解:因方式2是8位计数器,其最大定时时间为:2561 s=256 s,为实现1 s延时,可选择定时时间为200 s,再循环5000次。定时时间选定后,可确定计数值为200,则定时器0的初值为:X=M 计数值=256 200=56。采用定时器0,方式2工作,因此,TMOD=02H。ORG0000H MOV TMOD,#02H ;置定时器;置定时器0为方式为方式2 MOV TH1,#56 ;置定时器初值;置定时器初值 MOV TL1,#56CLRP1.0MAIN:MOVR5,#50 ;置;置20 ms计数循环初值计数循环初值 MOV R6,#100 ;置;置200 s计数循环初值计数循环
17、初值SETB TR1 ;启动定时器;启动定时器SETBP1.0LP1:JBCTF1,LP2 ;查询计数溢出;查询计数溢出SJMPLP1 ;无溢出则继续计数;无溢出则继续计数 LP2:DJNZR6,LP1 ;未到;未到20 ms继续循环继续循环 MOVR6,#64HCLR P1.0 DJNZ R5,LP1 ;未到;未到1 s继续循环继续循环 SJMPMAIN 20 20利用定时利用定时/计数器计数器T0T0从从P1.0P1.0输出周期为输出周期为1s1s,脉宽为,脉宽为20ms20ms的正的正脉冲信号,晶振频率为脉冲信号,晶振频率为12MHz12MHz。试设计程序。参照。试设计程序。参照【例【例
18、4-64-6】2121要求从要求从P1.1P1.1引脚输出引脚输出1000Hz1000Hz方波,晶振频率为方波,晶振频率为12MHz12MHz。试设计程序。试设计程序。ORG0000HAJMPSTART;跳转主程序跳转主程序ORG 001BHLJMPPITO1;跳转中断服务程序跳转中断服务程序ORG 0100HSTART:MOVSP,#60H;堆栈初始化堆栈初始化MOVTMOD,#10H;(主程序开始)定时器(主程序开始)定时器T1工作方式工作方式1MOVTH1,#0FEH;设置计数初值设置计数初值MOVTL1,#0CHCLRP1.0;设置方波的起始状态设置方波的起始状态SETBEA;开中断开
19、中断SETBET1SETBTR1;启动定时器启动定时器SJMP$;等待中断等待中断PITO1:MOVTL1,#0CHMOVTH1,#0FEH;再送计数初值,保证定时时间始终为再送计数初值,保证定时时间始终为0.5msCPLP1.0;输出方波输出方波RETI;中断返回中断返回END方式方式1:X=216-t/T=216-500/1=FE0CH2222、试用定时、试用定时/计数器计数器T1T1对外部事件计数。要求每计数对外部事件计数。要求每计数100100,就将,就将T1T1改成定时方式,控制改成定时方式,控制P1.7P1.7输出一个脉宽为输出一个脉宽为10ms10ms的正脉冲,然后又的正脉冲,然
20、后又转为计数方式,如此反复循环。设晶振频率为转为计数方式,如此反复循环。设晶振频率为12MHz12MHz。方式方式1计数:计数:TMOD=01010000BX=216 n=216-100=FF9CH方式方式1定时:定时:TMOD=00010000BX=216-t/T=216-10000/1=D8F0HORG 0000HLP0:MOV TMOD,#50H ;置定时器1为方式1计数 MOV TH1,#0FFH ;置定计数100初值 MOV TL1,#9CHCLRP1.7SETB TR1 ;启动定时器LP1:JBCTF1,LP2 ;查询计数溢出SJMP LP1 ;无溢出则继续计数 LP2:MOV T
21、MOD,#10H ;置定时器1为方式1定时 MOV TH1,#0D8H ;置定时器10ms初值 MOV TL1,#0F0HSETB P1.7LP3:JBCTF1,LP0 ;查询定时溢出SJMP LP3 ;无溢出则继续计数 2323利用定时利用定时/计数器计数器T0T0产生定时时钟产生定时时钟,由由P1P1口控制口控制8 8个指示灯。编个指示灯。编一个程序一个程序,使使8 8个指示灯依次一个一个闪动,闪动频率为个指示灯依次一个一个闪动,闪动频率为2020次次/秒秒(8(8个灯依次亮一遍为一个周期个灯依次亮一遍为一个周期)。参照。参照【例【例4-34-3】X=216 t(fosc/12)=6553
22、6-6250(12/12)=3036=E796H ORG 0100H MOV A,#01H ;置第一个;置第一个LED亮亮 LOOP0:MOV P1,A MOV TMOD,#01H ;T0工作于方式工作于方式1 MOV TH0,#0E7H ;置定时器初值 MOV TL0,#96H ;定时;定时6.25ms SETB TR0 ;启动T0 LOOP1:JBC TF0,LOOP2 ;6.25ms到转到转L002,并清并清TF0 SJMP LOOP1 LOOP2:RL A SJMP LOOP02424若晶振频率为若晶振频率为12MHz12MHz,如何用,如何用T0T0来测量来测量20ms20ms1s1
23、s之间的方波周之间的方波周期?又如何测量频率为期?又如何测量频率为0.5MHz0.5MHz左右的脉冲频率?左右的脉冲频率?参照参照【例4-5】ORG 0000H LJMP MAIN ORG 0100HMAIN:MOV DPTR,#0;方波周期数据存储单元清零;方波周期数据存储单元清零MOV TMOD,#09H;置定时器;置定时器0为方式为方式1门控门控MOV TH0,#0FEH ;定时;定时500usMOV TL0,#0CHJB P3.2,$;查询低电平;查询低电平SETB TR0 ;准备启动定时器;准备启动定时器1 LP0:JNB P3.2,$;高电平到;高电平到,启动定时器启动定时器1LP1:JBC TF0,LP2 JB P3.2,LP1 SJMP LP0;低电平到;低电平到,停止定时器停止定时器1 LP2:INC DPTR ;存储溢出次数加;存储溢出次数加1 MOV TH0,#0FEH ;定时;定时500us MOV TL0,#0CH SJMP LP1方式方式1:X=216-t/T=216-500/1=FE0CH INT1INT1INT1INT1为高时为高时为高时为高时T1T1开始计数开始计数开始计数开始计数INT1INT1 为低时为低时为低时为低时T1T1停止计数停止计数停止计数停止计数宽度宽度宽度宽度
限制150内