单片机第四章答案ppt课件.ppt

上传人:牧羊曲112 文档编号:1907887 上传时间:2022-12-25 格式:PPT 页数:13 大小:215.50KB
返回 下载 相关 举报
单片机第四章答案ppt课件.ppt_第1页
第1页 / 共13页
单片机第四章答案ppt课件.ppt_第2页
第2页 / 共13页
单片机第四章答案ppt课件.ppt_第3页
第3页 / 共13页
单片机第四章答案ppt课件.ppt_第4页
第4页 / 共13页
单片机第四章答案ppt课件.ppt_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《单片机第四章答案ppt课件.ppt》由会员分享,可在线阅读,更多相关《单片机第四章答案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,

2、#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。,查询方式:ORG0000HS

3、TART:MOVTMOD, #10H;(主程序开始)定时器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;再送计数初值,保证定时

4、时间始终为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 = 28 t(fosc/12)=256-125(12/12)=83H,ORG0000HSTART:MOV TMOD, #02H;定时器T0工作方式2CLRP1.0;设置方波的起始状

5、态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位的上升沿,改

6、变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 = 28 t(fosc/12)=256-125(12/12)=83H,10. 两只开关分别接入P3.0、P3.1,在开关信号4种不同的组合逻辑状态,使P1.0分别输出频率0.5kHz、1kHz、2kHz、4kHz的方波,晶振频率为12MHz。 查询方式。

7、,L1:;P3.1=0,P3.0=1,产生1kHz方波CPL01H;改变01H的状态;01H产生4kHz方波JNB01H,LOPCPL02H;改变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位的上升沿

8、,改变P1.0的状态产生0.5kHz方波SJMP LOPEND,11. 有一组高电平脉冲的宽度在50100ms之间,利用定时器0测量脉冲的宽度,结果存放到片内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

9、: JBC TF0 ,LP2 JB P3.2 , LP1 INC R0;低电平到,停止定时器1,存储单元地址加1 SJMP LP0;低电平到,停止定时器1 LP2: INC R0 ;存储溢出次数加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. 中断处理

10、过程包括几个阶段? 16. 请简述中断响应的过程。 17. 外部中断请求撤销时要注意哪些事项? 18. 中断系统的初始化一般包括哪些内容? 19. 扩展外部中断源的方法有几种?中断程序结构框架,解:因方式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 ;置定时器初值

11、MOV TL1,#56CLRP1.0MAIN:MOVR5,#50 ;置20 ms计数循环初值 MOV R6,#100 ;置200 s计数循环初值SETB TR1 ;启动定时器SETBP1.0LP1: JBCTF1,LP2 ;查询计数溢出SJMPLP1 ;无溢出则继续计数 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

12、方波,晶振频率为12MHz。试设计程序。,ORG0000HAJMPSTART;跳转主程序ORG 001BHLJMPPITO1;跳转中断服务程序ORG 0100HSTART:MOVSP, #60H;堆栈初始化MOVTMOD, #10H;(主程序开始)定时器T1工作方式1MOVTH1, #0FEH;设置计数初值MOVTL1, #0CHCLRP1.0;设置方波的起始状态SETBEA;开中断SETBET1SETBTR1;启动定时器SJMP$;等待中断PITO1:MOVTL1, #0CHMOVTH1, #0FEH;再送计数初值,保证定时时间始终为0.5msCPLP1.0;输出方波RETI;中断返回END

13、,方式1:X = 216 - t/T = 216 -500/1 = FE0CH,22、试用定时/计数器T1对外部事件计数。要求每计数100,就将T1改成定时方式,控制P1.7输出一个脉宽为10ms的正脉冲,然后又转为计数方式,如此反复循环。设晶振频率为12MHz。,方式1计数: TMOD =01010000BX = 216 n = 216 -100 = FF9CH,方式1定时: TMOD =00010000BX = 216 - t/T = 216 -10000/1 = D8F0H,ORG0000HLP0:MOV TMOD,#50H ;置定时器1为方式1计数 MOV TH1,#0FFH ;置定计

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

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

16、参照【 例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号