《最新微机原理答案1PPT课件》由会员分享,可在线阅读,更多相关《最新微机原理答案1PPT课件(59页珍藏版)》请在金锄头文库上搜索。
1、微机原理答案微机原理答案11.6将下列补码转化成二进制数的真值。1)X补=001011002)X补=11111111 3)X补=10000000 (1) X=0101100 (2) X=-0000001 (3) X=-10000000; 1.7已知下列补码X补和Y补,分别求X+Y补、 X-Y补。并判断运算结果是否出现溢出 (1) X+Y补=11000101 110011001 +000101100 111000101 不溢出 X-Y补=01101101 110011001 -000101100 101101101 溢出 (2) X+Y补=01111111 111111111 +11000000
2、0 101111111 溢出 X-Y补=01111111 111111111 -110000000 001111111 不溢出 第三章答案3.6 (1)(R0)=32H (2)(25H)=F8H (3)(A)=13H P=1 (4)(A)=38H P=1 (5)(A)=33H P=0 (6)(A)=03H P=0 (7)(A)=36H (34H)=03H (8)(A)=08H (36H)=F3H (9)(SP)=72H (72H)=05H (10)(DPH)=00H (SP) =70H (11)0CCH, 1,0,1,0 (12)E7H,0,0,0,0 (13)FCH,0,0,0,0 (14)
3、2CH,01H (15)01H (16)02H,1 (17)52H,0,0 (18)02H,36H,1 (19)5BH,1 (20)77H,0 (21)03H,0 (22)00H,0 (23)0FCH,0 (24)0FCH,0 (25)06H,1 (26)81H,1 (27)1 (28)0A0H (29)88H (30)00H (31)0 (32)1202H (33)0900H (34)1280H (35)1148H (36)1800H,73H,03H,12H (37)80H,6FH第三章答案第三章答案3.7 分析下列程序段功能1) MOV A, R3 MOV R4,A2) MOV A, R5
4、3) MOV A, R4 MOV B, R5 DIV AB MOV R4,B MOV R5,A4) MOV C,P1.1 ANL C, P1.2 ANL C, /P1.3 MOV P1.6, C5) MOV C, 0 ORL C,1 MOV F0,C MOV C, 2 ORL C, 3 ANL C, F0 MOV P1.7,C 8) CLRA MOVR0,A MOVR7,ALOOP: MOVR0,A INCR0 DJNZR7,LOOPSTOP: SJMPSTOP9) PUSH ACC PUSH B POPACC POPB10) MOVR0,#30H XCHD A,R0 SWAP A INC R
5、0 XCHD A,R0 SWAP A MOV40H,A第三章答案第三章答案6) CLR C MOV A,R4 RLC A MOV R4,A MOV A,R3 RLC A MOV R3,A7) CLR C MOV A,R5 RLC A ADD A,R5 MOV R5,A答 合法:1,5,10 不合法:2,3,4,6,7,8,9第三章答案3-8、指出下列指令中哪些是合法指令,哪些是非法指令.1)MOVP1,R42)MOVR2,R43)CLRR34)RLCR55)MOV30H,31H6)MOV00H,P7)ORL40H,R78)PUSHR69)POPR010)INCDPTR3.9按要求编制下列各程序
6、 (1).mov R0,30H mov A,31H mov 30H,A mov 31H,R0 (2).mov A,R7 RR A mov R7,A (3).mov A,R3 mov B,#4 mul AB mov R3,A (4).movx A,DPTR dec A movx DPTR, A (5).push 1EH (6). mov A,R4 rrc A mov R4,A mov A,R5 rrc A mov R5,A mov A,R4 rl A rrc A mov R4,A第三章答案第四章答案4.1用伪指令将下列常数依次定义在1600H为首地址的程序存储器中。 org 1600H LABL
7、E: db 0,1,4,9,16,25,36,49,64,814.2用伪指令将下列常数依次定义在1700H为首地址的程序存储器中,要求数据类型一致 。 org 1700H LABLE: dw 0,1,8,27,64,125,216,343,512,7294.3用伪指令将字节型变量X1、X2定义在内部数据存储器30H、31H单元中,将字节型变量Y1、Y2定义在外部数据存储器2000H、2001H中。 X1 data 30H X2 data 31H Y1 xdata 2000H Y2 xdata 2001H4.4用伪指令将ASCII码字符串“Beijing,how are you!”定义在1200
8、H为首地址的程序存储器中。 org 1200H LABLE: db Beijing, how are you!4.5用伪指令将逻辑变量A1、A2定义在00H、01H位单元中。 A1 bit 00H A2 bit 01H4.6 编一程序段,将1400H为首地址外部数据存储器中200个单字节数据转移至1500H为首地址的外部数据存储器中 mov R2,#200 mov DPTR,#1400H mov P2,#15H mov R0,#00HLOOP: movx A,DPTR mov P2,#15H movx R0,A inc DPTR inc R0 djnz R2,LOOP sjmp $ end4.
9、7 编一程序段,将30H为首地址的内部数据存储器中的20个单字节补码数据中的负数传送至以2400H为首地址的外部数据存储器中。 mov R2,#20 mov DPTR,#2400H mov R0,#30HLOOP: mov A,R0 jnb ACC.7 NEXT movx DPTR,A inc DPTRNEXT: inc R0 d jnz R2,LOOP sjmp $ end4.8 编一程序段,将40H为首地址的内部数据存储器中25个单字节数据,依次下移一个单元。 mov R2,#25 mov R0,#40H mov R1,#3FHLOOP: movx A,R0 movx R1,A inc R
10、0 inc R1 djnz R2,LOOP sjmp $ end 4.9编一程序段,完成函数y=x2+5x+6的计算。设0x10。 x data 30h y data 31h mov A ,x mov B,#5 mul AB mov y,A mov A,x mov B,A mul AB add A,#6 add A,y mov y,A stop: sjmp,stop4.10 编一程序段,完成逻辑函数 的计算。 x bit 00h y bit 01h z bit 02h L bit 03h org 0000h ljmp main org 0040hmain: mov c,x anl c,/y a
11、nl c,z cpl c mov L,cStop: sjmp $ end4.12 编制一子程序,将一个非压缩8421BCD码转换成七段显示码。设09的BCD码对应的七段显示码分别为3FH、06H、6BH、4FH、66H、6DH、7DH、07H、7FH、6FH。进子程序前,BCD码被放在累加器ACC中;子程序运行后,相应的七段显示码也放在累加器ACC中。 DISP:push psw push DPH push DPL mov DPTR, #TABLE movc A,A+DPTR pop DPL pop DPH pop psw ret TABLE: DB 3fh,06h,6bh,4fh,66h D
12、B 6ph,7dh,07h,7fh,6fh4.14编制一子程序,完成两双字节无符号数相加。设加数和被加数分别存放在0区寄存器R2、R3和R4、R5中,运算的结果存放在0区寄存器R6、R7中。若运算结果发生进位,使00H位单元=1;反之,使00H位单元=0。 COMADD: push psw push ACC clr c mov A,03h add A,05h mov 07h,A mov A,02h addc A,04h mov 06h,A mov 00h,c pop ACC pop psw ret4.15编制一子程序,完成10ms较精确延时功能。设系统时钟频率为24Mhz。 D10ms: mo
13、v R7,#40 LOOP1: mov R6,#248 nop LOOP2: djnz R6,LOOP2 djnz R7,LOOP1 ret分析程序,并计算时间(精确计算)4.16 BCDCON: push psw push ACC mov psw #08h mov R0,#40h mov R1,#50h mov R6,#5 LOOP: clr A xchd A,R0 swap A inc R0 xchd A,R0 mov R1,A inc R0 inc R1 djnz R6,LOOP pop ACC pop psw ret4-16、编制一子程序,将10个非压缩BCD码转换成5个压缩BCD码。
14、设进子程序前,非压缩BCD码被放在40H为首地址的内部数据存储器中;子程序运行后,压缩BCD放在50H为首地址的内部数据存储器中。 4-174-17、编制一子程序,完成、编制一子程序,完成、编制一子程序,完成、编制一子程序,完成1515个单字节补码数据按绝个单字节补码数据按绝个单字节补码数据按绝个单字节补码数据按绝对值大小从小到大进行排队。设数据放在对值大小从小到大进行排队。设数据放在对值大小从小到大进行排队。设数据放在对值大小从小到大进行排队。设数据放在30H30H为首地为首地为首地为首地址的内部数据存储器中。址的内部数据存储器中。址的内部数据存储器中。址的内部数据存储器中。4.17 SOR
15、T: push psw push ACC mov psw #08h mov B,#14 START: mov R7,B mov R0,#30 clr 00h LOOP: mov A,R0 mov 0Bh,A cpl A inc A mov 09h,A inc R0 mov A,R0 cpl A inc A mov 0Ah,A mov A,0Bh cjne 09h,0Ah,COMP COMP: jc NEXT xch A,R0 dec R0 xch A,R0 setb 00h NEXT: djne R7,LOOP dec B jb 00h,START pop ACC pop psw ret4.1
16、8 RL: push psw push ACC clr c clr A mov R0,#39H mov R6,#10 LOOP: mov A,R0 rlc A mov R0 ,A dec R0 djnz R6, LOOP pop ACC pop psw ret4-18、编制一子程序,将内部数据存储器30H39H单元的数据连起来向左移动1位,39H单元的最低位添0。补充题: 如图为单片机控制交通信号灯如图为单片机控制交通信号灯的简易控制电路,单片机的时的简易控制电路,单片机的时钟频率为钟频率为12MHz12MHz,P1.4P1.7P1.4P1.7经反向器驱动四个红绿发光二经反向器驱动四个红绿发光
17、二极管,其中极管,其中A A为东西向红灯,为东西向红灯,B B为东西向绿灯,为东西向绿灯,C C为南北向为南北向红灯,红灯,D D为南北向绿灯。要求为南北向绿灯。要求用定时器用定时器0 0,产生,产生0.040.04秒的时秒的时间基准,东西向绿灯和南北向间基准,东西向绿灯和南北向红灯亮红灯亮4 4秒,东西向红灯和南秒,东西向红灯和南北向绿灯亮北向绿灯亮2 2秒,交替循环。秒,交替循环。请编制实现上述功能的程序。请编制实现上述功能的程序。+5VP1.4P1.5P1.6P1.7ABCD解:解: TMOD=00000001, TCON=00000000 TMOD=00000001, TCON=000
18、00000 IE=10000010, IP=00000000 IE=10000010, IP=00000000 0.04 0.04秒秒=40=40毫秒毫秒=40000=40000微秒微秒 因时钟为因时钟为12MHz12MHz,所以有:,所以有: a0=2 a0=21616-40000=65536-40000-40000=65536-40000 =25536=0110001111000000 =25536=0110001111000000 TL0=0C0H,TH0=63H TL0=0C0H,TH0=63H 4 4秒钟,则秒钟,则R4=100R4=100,2 2秒钟,则秒钟,则R4=50R4=50
19、 ORG 0000H ORG 0000H LJMP START LJMP START ORG 000BH ORG 000BH LJMP T0 LJMP T0 ORG 200H ORG 200HSTART: MOV SPSTART: MOV SP,#60H#60H MOV P1,#9FH MOV P1,#9FH MOV TMOD,#01H MOV TMOD,#01H MOV TCON,#00H MOV TCON,#00H MOV TL0,#0C0H MOV TL0,#0C0H MOV TH0,#63H MOV TH0,#63H MOV R4,#100 MOV R4,#100 MOV IE,#82
20、H MOV IE,#82H MOV IP,#00H MOV IP,#00H SETB TR0 SETB TR0 LOOP: SJMP LOOP LOOP: SJMP LOOP ORG 300H ORG 300HT0: MOV TL0,#0C0HT0: MOV TL0,#0C0H MOV TH0,#63H MOV TH0,#63H DJNZ R4,EXIT DJNZ R4,EXIT MOV R4,#100 MOV R4,#100 JNB P1.4,CONT JNB P1.4,CONT MOV R4,#50 MOV R4,#50CONT: XRL P1,#0F0HCONT: XRL P1,#0F0
21、HEXIT: RETIEXIT: RETI2) 设单片机系统的fosc6MZH,要求T0作为计数器工作在方式1,计到50个脉冲就停止工作。而要求T1作为定时器工作在方式2,每隔200us产生一次中断申请,利用该信号在P1.1口上产生一个周期为400us的方波。试编一程序实现T0、T1和中断的初始化及各项功能2)2)解:解:TMOD=00100101, TCON=00000000TMOD=00100101, TCON=00000000 IE=10001010, IP=00000000 IE=10001010, IP=00000000 a0=2 a0=21616-50=65536-50=65486
22、=1111111111001110-50=65536-50=65486=1111111111001110 TL0=0CEH,TH0=0FFH TL0=0CEH,TH0=0FFH t=12/fosc(2 t=12/fosc(28 8-a) (us)-a) (us) a1 a12 28 8200/2200/22562561001001561560B8H0B8H TL1=0B8H,TH1=0B8H TL1=0B8H,TH1=0B8H ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ORG 000BH ORG 000BH LJMP T0 LJMP T0 ORG 001B
23、H ORG 001BH LJMP T1 LJMP T1 : : ORG 0040H ORG 0100H ORG 0040H ORG 0100HMAIN: MOV SP,#60H T0: CLR TR0MAIN: MOV SP,#60H T0: CLR TR0 MOV TMOD,#24H RETI MOV TMOD,#24H RETI MOV TCON,#00H : MOV TCON,#00H : MOV IE,#8AH ORG 0200H MOV IE,#8AH ORG 0200H MOV IP,#00H T1: CPL P1.1 MOV IP,#00H T1: CPL P1.1 MOV TL
24、0,#0CEH RETI MOV TL0,#0CEH RETI MOV TH0,#0FFH MOV TH0,#0FFH MOV TL1,#0B8H MOV TL1,#0B8H MOV TH1,#0B8H MOV TH1,#0B8H SETB TR0 SETB TR0 SETB TR1 SETB TR1 CLR P1.1 CLR P1.1 : : 第五章答案第五章答案5-15-1、中断申请信号如何才能被、中断申请信号如何才能被CPUCPU检测到?检测到?答:中断允许寄存器的设置为答:中断允许寄存器的设置为11,即允许中断,即允许中断5-25-2、中断响应时、中断响应时CPUCPU需要做哪些事情?
25、需要做哪些事情?答:保护正在执行程序的断点地址,转入特定的中答:保护正在执行程序的断点地址,转入特定的中断入口地址。断入口地址。5-35-3、中断入口与中断服务子程序入口有什么区别?、中断入口与中断服务子程序入口有什么区别?答:中断入口地址是答:中断入口地址是CPUCPU在固定的程序存储单元地在固定的程序存储单元地址中存放中断源的入口地址。址中存放中断源的入口地址。5-45-4、89C5289C52单片机中有哪些中断源?它们的中断申单片机中有哪些中断源?它们的中断申请标志分别是什么?请标志分别是什么?答:中断源有答:中断源有INT0INT0、INT1INT1、T0T0、T1T1、RI/TIRI
26、/TI、T2T2,标志为标志为IE0IE0、IE1IE1、TF0TF0、TF1TF1、RI/TIRI/TI、TF2TF2。第五章答案第五章答案第五章答案第五章答案5-5、若在某一个89C52单片机应用系统中,在系统初始化中将特殊功能寄存器IE和IP分别设置为10101111B和00101100B。当该系统正在运行时,问:如果外部中断1和定时器/计数器1同时申请中断,CPU将为哪一个中断源服务?为什么?答:为中断1服务,应为在同级中断中中断1的级别比T1的高。如果CPU正在执行外部中断0的中断服务子程序,这时CPU还能响应系统哪些中断源的中断申请?为什么?答:能响应外部中断1、定时器T1、以及定
27、时器T2,应为它们是高级中断,而外部中断0是低级中断第五章答案5.6若在某一个单片机应用系统中,有一个外部中断1,中断级别为低级中断,中断申请信号为脉冲信号,中断服务子程序的首地址为1100H,中断服务子程序的任务是将P1口的数据传递至外部数据存储器2400H单元。 org 0000h ljmp MAIN org 0013h ljmp INT1 org 0100hMAIN: mov sp, #60h setb EA setb EX1 setb IT1 clr PX1 : org 1100hINT1: push ACC push PSW push DPH push DPL mov A,P1 mo
28、v DPTR,#2400h mov DPTR,A pop DPL pop DPH pop PSW pop ACC reti5.7 org 0000h ljmp MAIN org 0003h mov A,P1 cpl A mov P1,A reti org 0100hMAIN: mov sp, #60h setb EA setb EX0 setb IT0 setb PX05.7 有一个单片机实验系统,实验线路如实验八所示。要求编制一程序,当开关5发出一脉冲信号时,程序由此转入中断服务子程序,该中断服务子程序的任务是将P1口的内容取反,然后返回到主程序。第六章答案第六章答案6-1、单片机中的定时器
29、/计数器具有哪些功能?答:具有定时与计数功能6-2、请说明CTC的定时器工作方式的工作原理。答:P108页的最后一段。第六章答案6.4若系统时钟的频率为fosc=6Mhz,请分析T1工作在模式1和模式2时,定时器最长的定时时间分别为多少。T1工作在模式1时,定时器最长的定时时间为: T1工作在模式2时,定时器最长的定时时间为: 6.5已知系统时钟频率fosc=6Mhz,若要求T1工作在模式1进行5ms的定时,采用内部启动。请计算T1计数器的初值a,并对T1进行初始化编程。解:根据题意,先计算T1计数器初值。由于T1工作在模式1,所以根据题意,对T1初始化编程如下:MOV TMOD, #10H;
30、将T1设置为模式1定时器方式,内部启动。MOV TH1,#F6H;设置计数器初值。MOV TL1,#3CH;设置计数器初值。SETB TR1;启动计数器工作。00010000TMOD6.6 解:根据题意,先计算T0计数器初值。由于T0工作在模式2,所以根据题意,对T0初始化编程如下:MOV TMOD, #0AH;将T0设置为模式2定时器方式,外部启动。MOV TH0,#83H;设置计数器初值。MOV TL0,#83H;设置计数器初值。SETB TR0;准备接受外部启动。6.7 已知系统时钟频率fosc=24Mhz,若要求T0工作在模式1计数器方式,计满500个信号,向CPU申请中断,采用内部启
31、动。问该系统对外部计数信号的频率最高是多少?请计算T0计数器的初值a,并对T0进行初始化编程。解:根据题意,先计算T0计数器初值。由于T0工作在模式1计数器方式,所以根据题意,对T0初始化编程如下:MOV TMOD, #05H;将T0设置为模式1计数器方式,内部启动。MOV TH0,#FEH;设置计数器初值。MOV TL0,#0CH;设置计数器初值。SETB TR0;启动计数器工作,准备对外部信号计数。系统对外部计数信号的频率最高为:0 0 0 0 0 1 0 1TMOD6-96-9、若有某、若有某、若有某、若有某5151系列的单片机应用系统,试编制程序,系列的单片机应用系统,试编制程序,系列
32、的单片机应用系统,试编制程序,系列的单片机应用系统,试编制程序,分别采用三种方式使得分别采用三种方式使得分别采用三种方式使得分别采用三种方式使得P1.0P1.0引脚上产生周期为引脚上产生周期为引脚上产生周期为引脚上产生周期为200s200s的方波。方法的方波。方法的方波。方法的方波。方法1 1是将是将是将是将T1T1设置在模式设置在模式设置在模式设置在模式1 1的定时器方式;的定时器方式;的定时器方式;的定时器方式;方法方法方法方法2 2将将将将T1T1设置在模式设置在模式设置在模式设置在模式2 2的定时器方式;方法的定时器方式;方法的定时器方式;方法的定时器方式;方法3 3是将是将是将是将T
33、2T2设置在信号发生器工作模式。设设置在信号发生器工作模式。设设置在信号发生器工作模式。设设置在信号发生器工作模式。设fosc=12Mhzfosc=12Mhz。6.9 方法一: 进行100s定时,T1设置在模式1的定时器方式,其初值计算如下: 程序如下: ORG 0000H LJMP MAIN ORG 001BH LJMP INT_T1 ORG 0100H MAIN: MOV SP, #60H;设置堆栈。 MOV TMOD, #10H;将T1设置为模式1定时器方式,内部启动。 MOV TH1, #FFH; 设置计数器初值。 MOV TL1, #9CH; 设置计数器初值。 SETB EA;中断系
34、统开放。 SETB ET1;开放T1中断源。 SETB TR1;启动计数器工作。 ORG 1000HINT_T1: CPL P1.0;每隔100s翻动P1.0的电平。 MOV TH1, #FFH;重新装入初值。 ORL TL1, #9CH;重新装入初值。 RETI;中断返回。 END 执行其他程序。6.9 方法二: 进行100s定时,T1设置在模式2的定时器方式,其初值计算如下: 程序如下: ORG 0000H LJMP MAIN ORG 001BH CLR TF1 CPL P1.0; 每隔100s翻动P1.0的电平。 RETI; 中断返回。 ORG 0100H MAIN: MOV SP, #
35、60H; 设置堆栈。 MOV TMOD, #20H; 将T1设置为模式2定时器方式,内部启动。 MOV TH1, #9CH; 设置计数器初值。 MOV TL1, #9CH; 设置计数器初值。 SETB EA; 中断系统开放。 SETB ET1; 开放T1中断源。 SETB TR1; 启动计数器工作。 END 执行其他程序。6-106-10、若有某、若有某、若有某、若有某5151系列的单片机应用系统,要求其利用系列的单片机应用系统,要求其利用系列的单片机应用系统,要求其利用系列的单片机应用系统,要求其利用T0T0的定的定的定的定时,编一个程序使得时,编一个程序使得时,编一个程序使得时,编一个程序
36、使得P1.2P1.2引脚上产生周期为引脚上产生周期为引脚上产生周期为引脚上产生周期为1s1s、脉冲宽度为、脉冲宽度为、脉冲宽度为、脉冲宽度为100ms100ms的脉冲波。的脉冲波。的脉冲波。的脉冲波。 设设设设fosc=12Mhzfosc=12Mhz。6.10 本题中信号的周期比较长,而且不是方波。解决的方法是设立两个软件计数器counter_L、counter_H,分别控制信号低电平和高电平的持续时间。在信号低电平和高电平的持续时间中选一个公约数10ms,作为T0的定时时间。再设立一个信号电平状态标志位level_F,当level_F=1时,对信号高电平计时;当level_F=0时,对信号低
37、电平计时。编程如下: counter_HDATA30H; 定义软件计数器。counter_LDATA31H; 定义软件计数器。level_F BIT 00H; 定义电平标志位。 ORG 0000H LJMP MAIN ORG 000BH; T0中断入口。 LJMP INT_T0; 转入中断服务子程序。 ORG 0100H MAIN: MOV SP, #60H; 设置堆栈。 MOV TMOD, #01H; 将T0设置为模式1定时器方式,内部启动。 MOV TH0, #0D8H; 设置计数器初值。 MOV TL0, #0F0H; 设置计数器初值。 MOV counter_H,#10;设置软件计数器
38、,初值为10。 MOV counter_L,#90;设置软件计数器,初值为90。SETB level_F; 设置信号电平状态标志位,初值为高电平。SETB EA; 中断系统开放。SETB ET0; 开放T0中断源。SETBTR0; 启动计数器工作。 ORG 1000H INT_T0: JNB level_F,NEXT; 如果level_F=0,转入NEXT。 DJNZ counter_H, STOP; 计数器counter_H减1。 CPL P1.2; 如果计数器counter_H为零,将P1.2取反。 MOV counter_H, #20; 计数器counter_H归零后重装初值。 CLR
39、level_F; 将标志位level_F清0。 SJMP STOP; NEXT: DJNZ counter_L, STOP; 计数器counter_L减1。 CPL P1.2; 如果计数器counter_L为零,将P1.2取反。 MOV counter_L, #80; 计数器counter_L归零后重装初值。 SETB level_F; STOP: MOV TH0, #0D8H; 重新装入初值。 ORL TL0, #0F0H; 重新装入初值。 RETI; END 7.1串行通信相比并行通信的优点有传输线成本低,传输距离远。第七章答案7.2异步通信按帧传送数据,具有接口电路简单的优点。7.3因为
40、实际应用中,单片机控制对象往往很多,而单片机限于引脚,最多只能提供4个8位的I/O口,串行口工作方式0弥补了单片机I/O接口的不足。7.4串行口工作方式2作为9位UART接口,是加了控制位的UART。波特率是fosc/32或fosc/64,不需要T1或T2充当波特率发生器,有利于节省单片机CTC资源。7.5有利于获得常用波特率。7.7解 根据题意,T1初值计算如下:a1=28-2SMODfosc/(384BR) =28-2111.0592106/(38419000) =253=FDH 初始化程序如下:CLRTCLK;CLKRCLK;MOVTMOD, #20H;MOVTH1,#0FDH;MOVT
41、L1,#0FDH;ORLPCON, #80H;SETBTR1;MOVSCON, #0D0H;第七章答案7.9解 根据题意,T1初值计算如下:a1=28-2SMODfosc/(384BR) =28-2111.0592106/(3844800) =244=F4H发送程序:M1T:PUSHPSW;PUSHACC;LOOP:MOVXA, DPTR; PUSHDPH; MOVC, P;PUSHDPL;MOVACC.7C;MOVPSW,#08H;MOVSBUF,A;CLRTCLK;WAIT:JBCTI, NEXT;CLKRCLK;SJMPWAIT;MOVTMOD, #20H;NEXT:INCDPTR;MO
42、VTH1,#0F4H;DJNZR7, LOOP;MOVTL1,#0F4H;POPDPL;MOVSCON,#40H; POPDPH;ORLPCON,#80H;POPACC;SETBTR1;POPPSW;MOVDPTR,#2300H;RET;MOVR7,#64H;第七章答案7.9(续) 接受程序:M1R:PUSHPSW;CLRF0;PUSHACC;RIGHT: MOVXDPTR,A;PUSHDPH;INCDPTR;PUSHDPL;DJNZR7WAIT;MOVPSW,#08H;SETBF0;CLRTCLK;SJMPRETURN;CLKRCLK;RETURN: POPDPL;MOVTMOD, #20H
43、; POPDPH;MOVTH1,#0F4H; POPACC;MOVTL1,#0F4H; POPPSW;MOVSCON,#50H; RET;ORLPCON,#80H;SETBTR1;MOVDPTR,#1600H;MOVR7,#64H;WAIT:JBCRI,FETCH;SJMPWAIT;FETCH: MOVA,SBUF;JNBP,RIGHT;第七章答案8-1、如果将例8-1图中存储器芯片27128上 引脚接8031单片机的P2.7线,请分析扩展的程序存储器芯片27128的地址空间。第八章答案答:这种连接时,A15=0,并当A14=0时,程序存储器27128在系统中的首地址为0000H,它末地址为3
44、FFFH;存储器空间为0000H3FFFH。当A14=1时,程序存储器27128在系统中的首地址为4000H,它末地址为7FFFH;存储器空间为4000H7FFFH。因此,程序存储器的空间为0000H7FFFH。 第八章答案答:地址空间为:2000H3FFFH、4000H5FFFH、6000H7FFFHA15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A00010000000000000001111111111111101000000000000000101111111111111011000000000000001111111111111118-2、如果将例8-4图中三
45、块存储器芯片上引脚接分别接译码器输出线 、 、 ,请分析扩展的数据存储器的地址空间。、 解:程序存储器和数据存储器该芯片各需要2片。采用列表法推出每一块外部程序存储器和数据存储器的地址空间、以及片外地址的状态,连接图见下页。 A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0100000000000000010011111111111111010000000000000101111111111111111000000000000001101111111111111111000000000000011111111111111118-3、若某一个MCS-51单片机应用系统需要扩展程序存储器和数据存储器,现只有规格为8KB8的EPROM芯片和规格为8KB8的SRAM芯片 。要求分别扩展16KB程序存储器和数据存储器,程序存储器地址空间在8000HBFFFH,数据存储器的地址空间在C000HFFFFH。请计算一下需要几片所给定的程序存储器芯片和数据存储器芯片,并画出存储器与系统的连接图。8-4、执行指令“MOVX A, DPTR”需要几个机器周期?该指令执行期间ALE信号出现了几次?答:二个机器周期,出现三次ALE为高电平的信号。见P163的图8-11 结束语结束语谢谢大家聆听!谢谢大家聆听!59