资源描述:
《单片机部分习题答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第三章部分习题答案3.2(1)立即寻址(2)直接寻址(3)寄存器间接寻址(4)寄存器寻址(5)变址间接寻址(6)相对寻址3.3答:(A)=40H;(R1)=38H;(DPTR)=#1234H;(40H)=40H;(P1)=#0F0H;(P2)=#0F0H;(90H)=38H3.8(1)MOVR2,R1(2)MOV30H,20H(3)MOVX@DPTR,20HMOVXA,@DPTRMOV20H,A(4)MOVX@DPTR,2000HMOVXA,@DPTRMOV20H,A(5)MOVC@DPTR,2000HMOVCA,@D
2、PTEMOV20H,A(6)MOVC@DPTR,2000HMOVCA,@DPTEMOV3000H,A(7)MOVX@DPTR,4000HMOVXA,@DPTRMOVXA,@R0MOVX@DPTR,5000HMOVXA,@DPTRXCHA,@R0第五章5.10.要求从P1.1引脚输出1000Hz方波,晶振频率为12MHz。试设计程序。答:采用T0实现a、T0工作在定时方式1时,控制字TMOD配置:M1M0=01,GATE=0,C/=0,可取方式控制字为01H;b、计算计数初值X:晶振为12MHz,所以机器周期Tcy为1。
3、1/1000=1×10-3N=t/Tcy=0.5×10-3/1×10-6=500X=216-N=65536-500=65036=FE0CH即应将FEH送入TH0中,0CH送入TL0中。c、实现程序如下:ORG0000HAJMPMAIN;跳转到主程序ORG000BH;T0的中断入口地址LJMPDVT0ORG0030HMAIN:MOVTMOD,#01H;设T0工作于方式2MOVTH0,#0FEH;装入循环计数初值MOVTL0,#0CH;首次计数值SETBET0;T0开中断SETBEA;CPU开中断SETBTR0;启动T0S
4、JMP$;等待中断DVT0:CPLP1.1MOVTH0,#0FEHMOVTL0,#0CHSETBTR0RETIEND5.11.试用定时/计数器T1对外部事件计数。要求每计数100,就将T1改成定时方式,控制P1.7输出一个脉宽为10ms的正脉冲,然后又转为计数方式,如此反复循环。设晶振频率为12MHz。答:a、T1工作在计数方式2时,控制字TMOD配置:M1M0=10,GATE=0,C/=1,可取方式控制字为60H;T1工作在定时方式1时,控制字TMOD配置:M1M0=01,GATE=0,C/=0,可取方式控制字为10
5、H;b、计算初值X:定时10ms时:晶振为12MHz,所以机器周期Tcy为1。N=t/Tcy=10×10-3/1×10-6=10000X=216-N=65536-10000=55536=D8F0H即应将D8H送入TH1中,F0H送入TL1中。计数100时:N=100X=28-N=256-100=156=9CHc、实现程序如下:ORG0000HAJMPMAIN;跳转到主程序ORG001BH;T1的中断入口地址LJMPDVT1ORG0030HMAIN:MOVTMOD,#60H;T1工作于计数方式2MOVTH1,#9CH;装
6、入计数初值MOVTL1,#9CH;CLRP1.7SETBET1;T1开中断SETBEA;CPU开中断SETBTR1;启动T1SJMP$;等待中断DVT1:SETBP1.7CLRET1CLRTR1MOVTMOD,#10H;T1工作于定时方式1MOVTH1,#0D8H;装初值MOVTL1,#0F0HSETBTR1JNBTF1,$;查询等待10msCLRTF1CLRTR1CLRP1.7MOVTMOD,#60H;T1工作于计数方式2MOVTH1,#9CH;装初值MOVTL1,#9CH;SETBET1;T1开中断SETBTR1;
7、启动T1RETIEND5.12.利用定时/计数器T0产生定时时钟,由P1口控制8个指示灯。编一个程序,使8个指示灯依次闪动,闪动频率为1次/秒(即,亮1秒后熄灭并点亮下一个,-----)。答:采用定时20ms,计数50次实现1秒定时。编制1秒延时子程序,由主程序调用。a、T0工作在定时方式1时,控制字TMOD配置:M1M0=01,GATE=0,C/=0,可取方式控制字为01H;b、计算计数初值X:晶振为12MHz,所以机器周期Tcy为1。N=t/Tcy=20×10-3/1×10-6=20000X=216-N=65536
8、-20000=45536=B1E0H即应将4EH送入TH1中,20H送入TL1中。c、实现程序如下:ORG0000HAJMPMAIN;跳转到主程序ORG0030HMAIN:CLRCYMOVA,#01HLP0:MOVP1,ACALLD1SECRLAAJMPLP0D1SEC:MOVR7,#50;计数50次MOVTMOD,#01HDL: