单片机第四章答案ppt课件_第1页
单片机第四章答案ppt课件_第2页
单片机第四章答案ppt课件_第3页
单片机第四章答案ppt课件_第4页
单片机第四章答案ppt课件_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

.,第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;再送计数初值,保证定时时间始终为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;(主程序开始)定时器T1工作方式1CLRP1.0;设置方波的起始状态MOVTL1,#0A1HMOVTH1,#0FEH;送初值,保证定时时间为350usSETBP1.0SETBTR1;启动定时器LOOP:JNBTF1,$;查询是否溢出,CLRTF1;清溢出标志,以便下次判断JNBP1.0,N0;现在为低电平时,150us定时到,转移MOVTL1,#69H;溢出处理MOVTH1,#0FFH;再送计数初值,保证定时时间始终为150usSJMPN1N0:MOVTL1,#0A1H;溢出处理MOVTH1,#0FEH;再送计数初值,保证定时时间始终为350usN1:CPLP1.0;改变P1.0的状态SJMPLOOP;产生连续的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=28t(fosc/12)=256-125(12/12)=83H,ORG0000HSTART:MOVTMOD,#02H;定时器T0工作方式2CLRP1.0;设置方波的起始状态MOVTL0,#83H;送计数初值,MOVTH0,#83H;保证定时时间始终为125sSETBTR0;启动定时器LOP: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种不同的组合逻辑状态,使P1.0分别输出频率0.5kHz、1kHz、2kHz、4kHz的方波,晶振频率为12MHz。查询方式。,.,解:TMOD初始化:GATE=0,C/T=0,M1M0=10B计算初值:方式2:X=28t(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;改变02H的状态;02H,产生2kHz方波JNB02H,LOPCPLP1.0;02H位的上升沿,改变P1.0的状态产生1kHz方波SJMPLOPL2:;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方波SJMPLOPEND,.,11.有一组高电平脉冲的宽度在50100ms之间,利用定时器0测量脉冲的宽度,结果存放到片内RAM区以50H单元为首地址的单元中,晶振频率12MHz。参照【例4-5】,ORG0000HLJMPMAINORG0100HMAIN:MOVR0,#50H;数据存储单元首地址MOVTMOD,#09H;置定时器1为方式1MOVTH0,#0FCH;定时1msMOVTL0,#18HJBP3.2,$;查询低电平SETBTR1;准备启动定时器1LP0:JNBP3.2,$;高电平到,启动定时器1LP1:JBCTF0,LP2JBP3.2,LP1INCR0;低电平到,停止定时器1,存储单元地址加1SJMPLP0;低电平到,停止定时器1LP2:INCR0;存储溢出次数加1msMOVTH0,#0FCH;定时1msMOVTL0,#18HSJMPLP1,方式1:X=216-t/T=216-1000/1=FC18H,.,12.什么是中断?中断系统的功能和特点有哪些?13.8051单片机的中断源有几个?自然优先级是如何排列的?5int0、t0、int1、t1、TX$RX14.外部中断触发方式有几种?它们的特点是什么?15.中断处理过程包括几个阶段?16.请简述中断响应的过程。17.外部中断请求撤销时要注意哪些事项?18.中断系统的初始化一般包括哪些内容?19.扩展外部中断源的方法有几种?中断程序结构框架,.,解:因方式2是8位计数器,其最大定时时间为:2561s=256s,为实现1s延时,可选择定时时间为200s,再循环5000次。定时时间选定后,可确定计数值为200,则定时器0的初值为:X=M计数值=256200=56。采用定时器0,方式2工作,因此,TMOD=02H。ORG0000HMOVTMOD,#02H;置定时器0为方式2MOVTH1,#56;置定时器初值MOVTL1,#56CLRP1.0MAIN:MOVR5,#50;置20ms计数循环初值MOVR6,#100;置200s计数循环初值SETBTR1;启动定时器SETBP1.0LP1:JBCTF1,LP2;查询计数溢出SJMPLP1;无溢出则继续计数LP2:DJNZR6,LP1;未到20ms继续循环MOVR6,#64HCLRP1.0DJNZR5,LP1;未到1s继续循环SJMPMAIN,20利用定时/计数器T0从P1.0输出周期为1s,脉宽为20ms的正脉冲信号,晶振频率为12MHz。试设计程序。参照【例4-6】,.,21要求从P1.1引脚输出1000Hz方波,晶振频率为12MHz。试设计程序。,ORG0000HAJMPSTART;跳转主程序ORG001BHLJMPPITO1;跳转中断服务程序ORG0100HSTART:MOVSP,#60H;堆栈初始化MOVTMOD,#10H;(主程序开始)定时器T1工作方式1MOVTH1,#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=01010000BX=216n=216-100=FF9CH,方式1定时:TMOD=00010000BX=216-t/T=216-10000/1=D8F0H,ORG0000HLP0:MOVTMOD,#50H;置定时器1为方式1计数MOVTH1,#0FFH;置定计数100初值MOVTL1,#9CHCLRP1.7SETBTR1;启动定时器LP1:JBCTF1,LP2;查询计数溢出SJMPLP1;无溢出则继续计数LP2:MOVTMOD,#10H;置定时器1为方式1定时MOVTH1,#0D8H;置定时器10ms初值MOVTL1,#0F0HSETBP1.7LP3:JBCTF1,LP0;查询定时溢出SJMPLP3;无溢出则继续计数,.,23利用定时/计数器T0产生定时时钟,由P1口控制8个指示灯。编一个程序,使8个指示灯依次一个一个闪动,闪动频率为20次/秒(8个灯依次亮一遍为一个周期)。参照【例4-3】,X=216t(fosc/12)=65536-6250(12/12)=3036=E796H,ORG0100HMOVA,#01H;置第一个LED亮LOOP0:MOVP1,AMOVTMOD,#01H;T0工作于方式1MOVTH0,#0E7H;置定时器初值MOVTL0,#96H;定时6.25msSETBTR0;启动T0LOOP1:JBCTF0,LOOP2;6.25ms到转L002,并清TF0SJMPLOOP1LOOP2:RLASJMPLOOP0,.,24若晶振频率为12MHz,如何用T0来测量20ms1s之间的方波周期?又如何测量频率为0.5MHz左右的脉冲频率?参照【例4-5】,ORG0000HLJMPMAINORG0100HMAIN:MOVDPTR,#0;方波周期数据存储单元清零MOVTMOD,#09H;置定时

温馨提示

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

评论

0/150

提交评论