电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

单片机课后习题参考答案VIP免费

单片机课后习题参考答案_第1页
1/26
单片机课后习题参考答案_第2页
2/26
单片机课后习题参考答案_第3页
3/26
习题参考答案(P.204)1.什么是中断、中断源和中断优先级?(见P173,174,175)2.8051中断有多少优先级答:(见p176)2个习题参考答案(P.204)答:1、中断寄存器IE中的EA和相应的中断使能位激活;2、CPU没有在处理同级或者更高级的中断;3、现行执行周期是所执行指令的最后一个周期;4、当前指令不是RETI或者是访问IE或IP的指令。BTW:5个中断源及入口地址表编号中断源入口地址0外部中断00003H1定时器/计数器0000BH2外部中断10013H3定时器/计数器1001BH4串行口中断0023H答:8051的CPU在每个机器周期采样引脚INT0上的电平,当前一个周期采样为高,而这个周期采样为低,即置位中断标志IE0。同时8051的CPU在每个机器周期还采样中断标志IE0,如果中断标志IE0被置位,中断被激活,且没有中断阻止条件,则CPU自动转向中断0的入口地址0x0003进入中断服务程序。答:可以利用寄存器IP通过设置不同中断的优先级,或者利用中断的自然优先级实现两级中断嵌套。当单片机处理一个中断的时候,可以再去响应高优先级的中断,或者自然优先级较高的中断。但不能去响应同级或者更低的中断。(P176)答:中断通过把保存有现场数据的寄存器压入堆栈进行现场保护。当一个特定任务正在执行时,可能有更紧急的事需要引起CPU的注意。在一个具有优先级的系统中,CPU不是等待第一个任务完成,而是假定前一个任务已经完成,立即处理新的任务。若程序流程立刻转向新任务,则新任务使用的各个寄存器将会破坏第一个任务使用的中间信息。但第一个任务恢复运行时,寄存器的值将不再可靠而导致错误的发生。解决问题的方法是每次发生任务的切换时执行一些指令进行现场保护和现场恢复,这就是上下文切换。p17910.8051定时器方式和计数器方式的区别是什么?基本的8051有2个可编程的16位定时器/计数器(各工作方式只是用到哪些位?)。计数器内部晶振驱动-------定时器;计数8051的输入引脚的脉冲信号----计数器。定时器实际上也是工作在计数方式下的。解.1.50Hz的方波即周期为20ms的方波,要求定时间隔为10ms,每次时间到时,P1.6脚取反。定时器计数频率为fosc/12=500kHz其周期即单片机的机器周期为12/fosc=2us计数周期10ms需要计数10ms/2us=5000次计数器向上计数需要的初值为65536-5000主程序TMODTMOD=0x01DTH0,TL0装初值DEA,ET0,TR0置1TMODP1_6=!P1_6TMOD等待中断DTH0,TL0装初值T0中断主程序流程中断服务程序流程TMOD返回#includesbitP1_6=P1^6;voidtimer0()interrupt1using1{TH0=65536-5000/256;TL0=65536-5000%256;P1_6=!P1_6;//取反}voidmain(){TMOD=0x01;//T0方式1TH0=65536-5000/256;TL0=65536-5000%256;EA=1;//开总中断ET0=1;//使能T0中断TR0=1;//启动T0while(1);//等待}T0装初值overflow_count++返回解二:INT0中断方式#includesbitLED=P1^7;/*P1.7电平控制灯亮灯灭,高电平灯亮*/sbitdark=P3^2;/*通过P3.2脚INT0判断白天黑夜,INT0下降沿到来表黑夜*/staticunsignedlongoverflow_count=0;bitflg=1;/*设标志位*/voidtimer0()interrupt1using0//{TH0=(65536-50000)/256;TL0=(65536-50000)%256;overflow_count++;}voidint_0()interrupt0using1{if(overflow_count==20)//100ms*20=2s{overflow_count=0;LED=!LED;}if(dark){flg=0;}//dark高电平为白天elseflg=1;}voidmain(){TMOD=0x01;//T0方式1TH0=(65536-50000)/256;//T0装初值TL0=(65536-50000)%256;PX0=1;//ITN0中断优先IT0=1;//INT0下降沿触发p174EA=1;ET0=1;EX0=1;TR0=1;/*使用T0,INT0中断*/while(1){while(flg);//等待中断LED=0;//LED白天熄灭}}一般在LED闪烁的时候,如果使用延时程序dlms(T)也可以,但是本题要求用定时器。没有延时,人眼视觉看不清。人眼能够察觉的景物变化频率20Hz,也就是LED闪烁至少要延时50ms,一般1s钟即可,T=?voiddlms(uinta)//延时a*1ms{ucharj;while(a--){for(j=0;j<125;j++){;}}}解.fosc=12MHz时,最大定时为几十ms。100Hz对应的周期为10ms。占空比2:1时,高电平6.7ms,低电平3.3ms。可取0.1ms定时,对应计数0.1ms/1us=100次。定时器计数频率为fosc/12=1MHz其周期即单片机的机器周期为12/fo...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

单片机课后习题参考答案

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部