您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 单片机第5,6,7,8章习题答案
五章作业3、见书4、答:有四种方式。方式0计数范围:1~8192;方式1计数范围:1~65536;方式2计数范围:1~256;方式3计数范围:1~256。如果计10个单位,方式0初值为:8192-10=8182;方式1初值为:65536-10=65526;方式2初值为:256-10=246;方式2初值为:256-10=246。5、答:只能选择方式1,初值为65536-50000=15536。10、见书。18、解:分析:从P1.0输出周期为2ms的方波,只须P1.0每1ms取反一次则可。当系统时钟为12MHZ,定时/计数器T0工作于方式1时,最大的定时时间为65.536ms,满足1ms的定时要求,方式控制字应设定为00000001B(01H)。定时1ms,计数值N为1000,初值X=65536-1000=64536,则TH0=FCH,TL0=18H。采用中断处理方式:程序如下:ORG0000HLJMPMAINORG000BH;中断处理程序MOVTH0,#0FCHMOVTL0,#18HCPLP1.0RETIORG0100H;主程序MAIN:MOVTMOD,#01HMOVTH0,#0FCHMOVTL0,#18HSETBEASETBET0SETBTR0SJMP$END19、解:从P1.1产生2s的方波,应产生500ms的周期性的定时,定时到对P1.1取反就可实现。由于定时时间较长,一个定时/计数器T1不能直接实现,采用定时/计数器T1产生周期性为10ms的定时,然后用一个寄存器R2对10ms计数100次来实现。系统时钟为12MHZ,定时/计数器T1定时10ms,计数值N为10000,只能选方式1,方式控制字为00010000B(10H),初值X:X=65536-10000=55536=1101100011110000B则TH1=11011000B=D8H,TL1=11110000B=F0H。定时/计数器T1采用中断处理方式。汇编程序:ORG0000HLJMPMAINORG001BHLJMPINTT1ORG0100HMAIN:MOVTMOD,#10HMOVTH1,#0D8HMOVTL1,#0F0HMOVR2,#00HSETBEASETBET1SETBTR1SJMP$INTT1:MOVTH1,#0D8HMOVTL1,#0F0HINCR2CJNER2,#64H,NEXTCPLP1.1MOVR2,#00HNEXT:RETIEND20、解:本题处理方式有多种,这里采用对定时/计数器T1形成10ms周期定时,用R2对10ms计数,当计到1,则对P1.1置1,当计到2和3,则对P1.1置0来实现。用定时/计数器T1形成10ms周期定时见上题。程序如下:ORG0000HLJMPMAINORG001BHLJMPINTT1ORG0100HMAIN:MOVTMOD,#10HMOVTH1,#0D8HMOVTL1,#0F0HMOVR2,#00HSETBEASETBET1SETBTR1SJMP$INTT1:MOVTH1,#0D8HMOVTL1,#0F0HINCR2CJNER2,#01H,NEXTSETBP1.1SJMPEXITNEXT:CJNER2,#02H,NEXT1CLRP1.1SJMPEXITNEXT1:CJNER2,#03H,NEXTSETBP1.1MOVR2,#00EXIT:RETIEND21、解:采用在串口连接两个CD4094来实现,电路图如下:程序如下;ORG0000HLJMPMAINORG0100HMAIN:MOVSCON,#00HMOVR4,#10HMOVR3,#00HMOVR2,#01HCLRP1.0START:MOVA,R3MOVSBUF,ALOOP:JNBTI,LOOPMOVA,R2LOOP1:JNBTI,LOOP1SETBP1.0ACALLDELAYCLRTICLRCMOVA,R2RLCA8051RXDTXDP1.0DATACLKSTBDATACLKSTBMOVR2,AMOVA,R3RLCAMOVR3,ACLRP1.0DJNZR4,START1SJMPMAINDELAY:MOVR7,#05HLOOP2:MOVR6,#0FFHLOOP1:DJNZR6,LOOP1DJNZR7,LOOP2RETEND22、见书例5-6。第六章作业7、解:使用2764(8K8)芯片通过部分译码法扩展24KB程序存储器,须要3块。采用线译码,P2.5与第一片2764的CE相连,P2.6与第二片2764的CE相连,P2.7与第三片2764的CE相连,硬件连接如下:地址空间如下:第一片:1100000000000000~1101111111111111;即C000H~DFFFH;第二片:1010000000000000~1011111111111111;即A000H~BFFFH;第三片:0110000000000000~0111111111111111;即6000H~7FFFH;8、解:使用6264(8K8)芯片通过全译码法扩展24KB程序存储器,须要3块。采用138译码器译码,硬件连接如下:P2.6P2.5ALE8031PSENEAP2.774LS373OEA0~A7A8~A12CED0~D7OE2764(1)A0~A7A8~A12CE2764(2)OEP0588885885D0~D7G8D0~D7OE2764(3)A0~A7A8~A12CE85P2.4~P2.0地址空间如下:第一片:0000000000000000~0001111111111111;即0000H~1FFFH;第二片:0010000000000000~0011111111111111;即2000H~3FFFH;第三片:0100000000000000~0101111111111111;即3000H~5FFFH;第七章作业其余略10、图见书图7.12程序:MOVP1,#11100001B;在第一个数码管显示1MOVP1,#11010010B;在第二个数码管显示211、图见书图7.13程序如下:显示子程序DISPLAY见书P183,在字段码表最后放不显示的编码00H,显示缓冲区50H~57H;显示效果:在第一个数码管上显示1后,第一个数码管不显示,然后在第二个数码管上显示2,依此类推,直到在第八个上显示8。然后重复。MOVR1,#50HMOVR4,#08HMOVA,#10HLOOP:MOV@R1,A;初始化为全部不显示。INCR1DJNZR4,LOOPSTART:MOVR2,#01HMOVR4,#08HMOVR1,#50HP2.6P2.5ALE8031PSENEAP2.774LS373OEA0~A7A8~A12CED0~D7OE6264(1)A0~A7A8~A12CE6264(2)OEP0588885885D0~D7G8D0~D7OE6264(3)A0~A7A8~A12CE85VccP2.4~P2.074LS138GCBAG1G2AG2BY3Y2Y1Y0LOOP2:MOVA,R2MOV@R1,AMOVR5,#0FFHLOOP1:LCALLDISPLAYDJNZR5,LOOP1INCR1INCR2DJNZR4,LOOP2SJMPSTARTEND第七章作业3、解:图见书图8.4,采样结果放于片内RAM30H~37H单元中。ORG0100H;主程序START:MOVR0,#30H;设立数据存储区指针MOVR2,#08H;设置8路采样计数值MOVDPTR,#0000H;送入口地址并指向IN0LOOP:MOVX@DPTR,A;启动A/D转换,A的值无意义HERE:JNBP3.2,HERE;等待转换结束。MOVXA,@DPTR;读取转换后的数字量MOV@R0,A;存入片内RAM单元INCDPTR;指向下一模拟通道INCR0;指向下一个数据存储单元DJNZR2,LOOP;8路未转换完,则继续,转换完,结束。RET5、解:图见书图8.8,根据图,输入寄存器地址选择为7FFFH,DAC寄存器地址选择为BFFFH,梯形波每个周期8级,程序如下:START:MOVDPTR,#7FFFHMOVA,#00HMOVX@DPTR,AMOVDPTR,#0BFFFHMOVX@DPTR,ALCALLDELAYADDA,#20HSJMPSTARTDELAY:MOVR7,#0FFHDJNZR7,$RET
本文标题:单片机第5,6,7,8章习题答案
链接地址:https://www.777doc.com/doc-2606615 .html