单片机第四章答案.ppt

上传人:小飞机 文档编号:6449703 上传时间:2023-11-01 格式:PPT 页数:13 大小:391.82KB
返回 下载 相关 举报
单片机第四章答案.ppt_第1页
第1页 / 共13页
单片机第四章答案.ppt_第2页
第2页 / 共13页
单片机第四章答案.ppt_第3页
第3页 / 共13页
单片机第四章答案.ppt_第4页
第4页 / 共13页
单片机第四章答案.ppt_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《单片机第四章答案.ppt》由会员分享,可在线阅读,更多相关《单片机第四章答案.ppt(13页珍藏版)》请在三一办公上搜索。

1、第4章 80C51的定时/计数器与中断系统,思考题与习题,8.用方式0设计两个不同频率的方波,P1.0输出频率为200Hz,P1.1输出频率为 100Hz,晶振频率12MHz。,ORG0000HSTART:MOVTMOD,#00H;(主程序开始)定时器T1工作方式0CLRP1.0;设置方波的起始状态CLRP1.1MOVR2,#0MOVTL1,#0CHMOVTH1,#0F0H;送初值,保证定时时间为500usSETBTR1;启动定时器LOOP:JNBTF1,$;查询是否溢出,等待500us定时到 CLRTF1;清溢出标志,以便下次判断MOVTL1,#0CH;溢出处理MOVTH1,#0F0H;再送

2、计数初值,保证定时时间始终为500usINCR2CJNER2,#5,LOOPMOVR2,#0CPLP1.0;改变P1.0的状态JNBP1.0,LOOPCPLP1.1;P1.0的上升沿,改变P1.1的状态SJMPLOOP;产生连续的方波END,解:TMOD初始化:GATE=0,C/T=0,M1M0=00B 计算定时500us初值:方式0:X=213-500=7692=1E0CH=1111000001100B,9.P1.0输出脉冲宽度调制(PWM)信号,即脉冲频率为2kHz、占空比为7:10的矩形波,晶振频率12MHz。,查询方式:ORG0000HSTART:MOVTMOD,#10H;(主程序开始

3、)定时器T1工作方式1CLRP1.0;设置方波的起始状态MOVTL1,#0A1HMOVTH1,#0FEH;送初值,保证定时时间为350us SETBP1.0SETBTR1;启动定时器LOOP:JNBTF1,$;查询是否溢出,CLRTF1;清溢出标志,以便下次判断 JNB P1.0,N0;现在为低电平时,150us定时到,转移MOVTL1,#69H;溢出处理MOVTH1,#0FFH;再送计数初值,保证定时时间始终为150us SJMP N1 N0:MOVTL1,#0A1H;溢出处理MOVTH1,#0FEH;再送计数初值,保证定时时间始终为350usN1:CPLP1.0;改变P1.0的状态SJMP

4、LOOP;产生连续的7:10的矩形波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=FEA1H,解:TMOD初始化:GATE=0,C/T=0,M1M0=10B 计算初值:方式2:X=28 t(fosc/12)=256-125(12/12)=83H,ORG0000HSTART:MOV TMOD,#02H;定时器T0工作方式2CLRP1.0;设置方波的起始状态MOVTL0,#83H;送计数初值,MOVTH0,#83H;保证定时时间始终为125sSETBTR0;启动定时器L

5、OP:JBCTF0,$;等待125s定时到JNBP3.0,L0;P3.0=0JNBP3.1,L1;P3.1=0,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,在开关信号4种不同

6、的组合逻辑状态,使P1.0分别输出频率0.5kHz、1kHz、2kHz、4kHz的方波,晶振频率为12MHz。查询方式。,解:TMOD初始化:GATE=0,C/T=0,M1M0=10B 计算初值:方式2:X=28 t(fosc/12)=256-125(12/12)=83H,10.两只开关分别接入P3.0、P3.1,在开关信号4种不同的组合逻辑状态,使P1.0分别输出频率0.5kHz、1kHz、2kHz、4kHz的方波,晶振频率为12MHz。查询方式。,L1:;P3.1=0,P3.0=1,产生1kHz方波CPL01H;改变01H的状态;01H产生4kHz方波JNB01H,LOPCPL02H;改变

7、02H的状态;02H,产生2kHz方波JNB02H,LOPCPLP1.0;02H位的上升沿,改变P1.0的状态产生1kHz方波SJMP LOPL2:;P3.1=0,P3.0=0,产生0.5kHz方波CPL03H;改变03H的状态;03H产生4kHz方波JNB03H,LOPCPL04H;改变04H的状态;04H,产生2kHz方波JNB04H,LOPCPL05H;改变05H的状态;05H产生1kHz方波JNB05H,LOPCPLP1.0;05H位的上升沿,改变P1.0的状态产生0.5kHz方波SJMP LOPEND,11.有一组高电平脉冲的宽度在50100ms之间,利用定时器0测量脉冲的宽度,结果

8、存放到片内RAM区以50H单元为首地址的单元中,晶振频率12MHz。参照【例4-5】,ORG 0000H 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;低电平到,停止定时器1 LP2:INC R0;存

9、储溢出次数加1ms MOV TH0,#0FCH;定时1ms MOV TL0,#18H SJMP LP1,方式1:X=216-t/T=216-1000/1=FC18H,12.什么是中断?中断系统的功能和特点有哪些?13.8051单片机的中断源有几个?自然优先级是如何排列的?5 int0、t0、int1、t1、TX$RX 14.外部中断触发方式有几种?它们的特点是什么?15.中断处理过程包括几个阶段?16.请简述中断响应的过程。17.外部中断请求撤销时要注意哪些事项?18.中断系统的初始化一般包括哪些内容?19.扩展外部中断源的方法有几种?中断程序结构框架,解:因方式2是8位计数器,其最大定时时间

10、为: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计数循环初值SETB TR1;启动定时器SETBP1.0LP1:JBCTF1,LP2;查询计数溢出SJMPLP1;无溢出则继续计

11、数 LP2:DJNZR6,LP1;未到20 ms继续循环 MOVR6,#64HCLR P1.0 DJNZ R5,LP1;未到1 s继续循环 SJMPMAIN,20利用定时/计数器T0从P1.0输出周期为1s,脉宽为20ms的正脉冲信号,晶振频率为12MHz。试设计程序。参照【例4-6】,21要求从P1.1引脚输出1000Hz方波,晶振频率为12MHz。试设计程序。,ORG0000HAJMPSTART;跳转主程序ORG 001BHLJMPPITO1;跳转中断服务程序ORG 0100HSTART:MOVSP,#60H;堆栈初始化MOVTMOD,#10H;(主程序开始)定时器T1工作方式1MOVTH

12、1,#0FEH;设置计数初值MOVTL1,#0CHCLRP1.0;设置方波的起始状态SETBEA;开中断SETBET1SETBTR1;启动定时器SJMP$;等待中断PITO1:MOVTL1,#0CHMOVTH1,#0FEH;再送计数初值,保证定时时间始终为0.5msCPLP1.0;输出方波RETI;中断返回END,方式1:X=216-t/T=216-500/1=FE0CH,22、试用定时/计数器T1对外部事件计数。要求每计数100,就将T1改成定时方式,控制P1.7输出一个脉宽为10ms的正脉冲,然后又转为计数方式,如此反复循环。设晶振频率为12MHz。,方式1计数:TMOD=01010000

13、BX=216 n=216-100=FF9CH,方式1定时:TMOD=00010000BX=216-t/T=216-10000/1=D8F0H,ORG0000HLP0:MOV TMOD,#50H;置定时器1为方式1计数 MOV TH1,#0FFH;置定计数100初值 MOV TL1,#9CHCLRP1.7SETB TR1;启动定时器LP1:JBCTF1,LP2;查询计数溢出SJMPLP1;无溢出则继续计数 LP2:MOV TMOD,#10H;置定时器1为方式1定时 MOV TH1,#0D8H;置定时器10ms初值 MOV TL1,#0F0HSETB P1.7LP3:JBCTF1,LP0;查询定时

14、溢出SJMPLP3;无溢出则继续计数,23利用定时/计数器T0产生定时时钟,由P1口控制8个指示灯。编一个程序,使8个指示灯依次一个一个闪动,闪动频率为20次/秒(8个灯依次亮一遍为一个周期)。参照【例4-3】,X=216 t(fosc/12)=65536-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.2

15、5ms到转L002,并清TF0 SJMP LOOP1 LOOP2:RL A SJMP LOOP0,24若晶振频率为12MHz,如何用T0来测量20ms1s之间的方波周期?又如何测量频率为0.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,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号