单片机习题参考答案_第1页
单片机习题参考答案_第2页
单片机习题参考答案_第3页
单片机习题参考答案_第4页
单片机习题参考答案_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机习题参考答案 第四章 P97 6,7,9,10,12,16,17,18,19,23,27,28,29 6 在80C51片内RAM中,已知(30H)38H,(38H)40H,(40H)48H,(48H)90H,请分析下段程序中各指令的作用,并翻译成相应的机器码;说明源操作数的寻址方式及顺序执行每条指令后的结果。 机器码(H) 指令 结果 源操作数的寻址方式 E540 MOV A,40H ;A=(40H)=48H 直接寻址 F8 MOV R0,A ;R0=48H 寄存器寻址 7590F0 MOV P1,#0F0H ;P1=0F0H 立即寻址 A630 MOV R0,30H ;(48H)= 3

2、8H 直接寻址 901246 MOV DPTR,#1246H;DPTR=1246H 立即寻址 853840 MOV 40H,38H ;(40H)=40H 直接寻址 A830 MOV R0,30H ;R0=38H 直接寻址 8890 MOV 90H,R0 ;(90H)=38H 寄存器寻址 754830 MOV 48H,#30H ;(48H)=30H 立即寻址 E6 MOV A,R0 ;A=40H 寄存器间接寻址 8590A0 MOV P2,P1 ;P2=P1=38H 直接寻址 7 试说明下列指令的作用,并将其翻译成机器码,执行最后一条指令对PSW有何影响?A的终值为多少? 机器码(H) 指令 结

3、果 (1) 7872 MOV R0,#72H ;R0=72H E8 MOV A,R0 ;A=72H,P=0 244B ADD A,#4BH ;A=BDH,CY=0,OV=1,AC=0,P=0 (2) 7402 MOV A,#02H ;A=02H,P=1 F5F0 MOV B,A ;B=02H 740A MOV A,#0AH ;A=0AH,P=0 25F0 ADD A,B ;A=0CH,CY=0,OV=0,AC=0,P=0 A4 MUL AB ;A=18H,B=0,CY=0,OV=0,AC=0,P=0 (3) 7420 MOV A,#20H ;A=20H,P=1 F5F0 MOV B, A ;B

4、=20H 25F0 ADD A,B ;A=40H,CY=0,OV=0,AC=0,P=1 9410 SUBB A,#10H ;A=30H,CY=0,OV=0,AC=0,P=0 84 DIV AB ;A=01H,B=10H,CY=0,OV=0,AC=0,P=1 9 试编程将片外数据存储器60H中的内容传送到片内RAM 54H单元中。 MOV DPTR,#0060H MOVX A,DPTR MOV 54H,A (MOV P2,#0 MOV R0,#60H MOVX A,R0 MOV 54H,A) 10试编程将寄存器R7内容传送到R1中去。 MOV A,R7 MOV R1,A 12试说明下段程序中每条

5、指令的作用,并分析当执行完指令后,R0中的内容是什么? MOV R0,#0A7H ;R0=A7H XCH A,R0 ;A=A7H,A的内容暂存R0 SWAP A ;A=7AH XCH A,R0 ;R0=7AH,A的内容恢复 16试编程将片外RAM中30H和31H单元的内容相乘,结果存放在32H和33H单元中,高位存放在33H单元中。 MOV P2,#0 MOV DPTR,#30H MOV R0,#30H MOVX A,DPTR MOVX A,R0 MOV B,A MOV B,A INC DPTR INC R0 MOVX A,DPTR MOVX A,R0 MUL AB MUL AB INC DP

6、TR INC R0 MOVX DPTR,A MOVX R0,A INC DPTR INC R0 MOV A,B MOV A,B MOVX DPTR,A MOVX R0,A 17试用三种方法将累加器A中无符号数乘2。 (1) CLR C RLC A (2) MOV R0,A ADD A,R0 或 ADD A,ACC (3) MOV B,#2 MUL AB 18请分析依次执行下面指令的结果: MOV 30H,#0A4H ;(30H)=A4H MOV A,#0D6H ;A=D6H,P=1 MOV R0,#30H ;R0=30H MOV R2,#47H ;R2=47H ANL A,R2 ;A=46H,

7、P=1 ORL A,R0 ;A=E6H,P=1 SWAP A ;A=6EH,P=1 CPL A ;A=91H,P=1 XRL A,#0FFH ;A=6EH,P=1 ORL 30H,A ;(30H)=EEH 19求执行下列指令后,累加器A及PSW中进位位CY、奇偶位P和溢出位OV的值。 (1)当A5BH时 ;ADD A,#8CH 0101 1011 +) 1000 1100 1110 0111 结果:A=E7H,CY=0,OV=0,P=0,AC=1 (2)当A5BH时 ;ANL A,#7AH 0101 1011 )0111 1010 0101 1010 结果:A=5AH,P=0 (3)当A5BH

8、时 ;XRL A,#7FH 0101 1011 )0111 1111 0010 0100 结果:A=24H,P=0 (4)当A5BH,CY1时 ;SUBB A,#0E8H 0101 1011 或将减法转换成补码加法 0101 1011 1110 1000 -E8H的补码 0001 1000 -) 1 -1的补码 +) 1111 1111 0111 0010 10111 0010 结果:A=72H,CY=1,OV=0,P=0,AC=0 23执行下述程序后,SP?A?B?解释每一条指令的作用,并将其翻译成机器码。 地址(H) 机器码(H) ORG 200H 0200 758140 MOV SP,#

9、40H ;SP=40H 0203 7430 MOV A,#30H ;A=30H 0205 120250 LCALL 250H ;调用250H开始的子程序SP=42H, ;(42H)=02H,(41H)=08H 0208 2410 ADD A,#10H ;此句没有执行 020A F5F0 MOV B,A ;B=30H 020C 80FE L1:SJMP L1 ; ORG 0250H 0250 90020A MOV DPTR,#20AH;DPTR=020AH 0253 C082 PUSH DPL ;DPL进栈,SP=43H,(43H)=0AH 0255 C083 PUSH DPH ;DPH进栈,S

10、P=44H,(44H)=02H 0257 22 RET ;返回,此处是利用RET将栈顶内容弹出 PC=020AH,SP=42H 44H 02H 43H 0AH 栈区 42H 02H 41H 08H 40H 30H B,30HA,42HSP执行程序后,27试编一程序将外部数据存储器2100H单元中的高4位置“1”,其余位清”0”。 MOV DPTR,#2100H MOVX A,DPTR ANL A,#0F0H MOV A,#0F0H ORL A,#0F0H MOVX DPTR,A 28试编程将内部数据存储器40H单元的第0位和第7位置”1”,其余位变反。 MOV A,40H CPL A SETB

11、 ACC.0 (或ORL A,#81H) SETB ACC.7 MOV 40H,A 29请用位操作指令,求下面逻辑方程: (1)P1.7?ACC.0?(B.0?P2.1)?P3.2 MOV C,P2.1 C,B.0 ORL C,ANL ACC.0 C,ORL /P3.2 P1.7MOV ,C (2)PSW.5?P1.3?ACC.2?B.5?P1.1 MOV C,P1.3 CANL ,ACC.2 C,ORL B.5 C,/P1.1 ANL PSW.5,MOV C (3)P2.3?P1.5?B.4?ACC.7?P1.0 MOV C,B.4 C,ANL /P1.5 CORL ,/ACC.7 CANL

12、 ,P1.0 P2.3,MOV C 第五章 20117, P112 1,3,6, 1. 编程将片内40H60H单元中内容送到以3000H为首的片外RAM存储区中 方法1: MOV R0,#40H MOV DPTR,#3000H MOV R2,#21H R0 ,AMOV :LOOP MOVX DPTR,A R0 INC DPTR INC R2,LOOP DJNZ R0,#40H MOV 方法2:MOV ,#3000H DPTR ,#0 MOV R2LOOP:A,R0 MOV MOVX DPTR,A R0 INC DPTR INC R2 INC ,R2#21H,LOOP CJNE MOV ,#40

13、H :方法3 R0MOV DPTR,#3000H MOV R0 LOOP:,A ,MOVX A DPTR R0 INC DPTR INC ,R0#61H,LOOP CJNE 补充:编程将ROM中3000H3020H单元的内容送片内RAM40H60H单元中去。 MOV R0,#40H MOV DPTR,#3000H MOV R2,#21H LOOP: CLR A MOVC A,A+DPTR MOV R0,A INC R0 INC DPTR DJNZ R2,LOOP 3.编程计算片内RAM区50H57H 8个单元中数的算术平均值,结果存放在5AH中。 解: ORG 2000H MOV R0,#50

14、H CLR A MOV R2,A LOOP: ADD A,R0 DOWN JNC INC R2 DOWN: INC R0 CJNE R0,#58H,LOOP MOV R7,#3 SHIFT: XCH A,R2 CLR C RRC A XCH A,R2 RRC A DJNZ R7,SHIFT MOV 5AH,A 6设有100个有符号数,连续存放在以2000H为首地址的片外RAM存储区中,试编程统计其中正数、负数、零的个数。 方法1:CLR A MOV R5,A ;存零的个数 MOV R6,A ;存负数的个数 MOV R7,A ;存正数的个数 MOV R2,#100 MOV DPTR,#2000H

15、 LOOP: MOVX A,DPTR JNZ NZERO INC R5 SJMP DOWN NZERO: JNB ACC.7,PLUS INC R6 SJMP DOWN PLUS: INC R7 DOWN: INC DPTR DJNZ R2,LOOP 方法2: CLR A MOV R5,A ;存零的个数 MOV R6,A ;存负数的个数 MOV R7,A ;存正数的个数 MOV R2,#100 MOV DPTR,#2000H LOOP: MOVX A,DPTR INC DPTR CJNE A,#0,NZERO INC R5 SJMP DOWN NEGATIVE JC :NZERO INC R7

16、 SJMP DOWN NEGATIVE: INC R6 DOWN: DJNZ R2,LOOP 7请将片外数据存储器地址为1000H1030H的数据块,全部搬迁到片内RAM 30H60H中,并将原数据块区域全部清“0”。 解: ORG 1000H MOV DPTR,#1000H MOV R0,#30H MOV R2,#31H LOOP: MOVX A,DPTR MOV R0,A CLR A MOVX DPTR,A INC R0 INC DPTR DJNZ R2,LOOP 8试编写一子程序,使间址寄存器R1所指向的2个片外RAM连续单元中的高4位二进制数合并为1个字节装入累加器A中。已知R0指向低

17、地址,并要求该单元高4位放在A的高4位中。 XX: MOVX A,R1 ANL A,#0F0H MOV B,A INC R1 MOVX A,R1 ANL A,#0F0H SWAP A ORL A,B RET 10试编一查表程序,从首地址为1000H、长度为100的数据块中找出ASCII码A,将其地址送到10A0H和10A1H单元中。 MOV DPTR,#1000H MOV R7,#100 LOOP: MOVX A,DPTR CJNE A,#A,NXET MOV A,DPL MOV B,DPH MOV DPTR,#10A0H DPTR,A MOVX MOV A,B INC DPTR MOVX D

18、PTR,A SJMP $ NEXT: INC DPTR DJNZ R7,LOOP SJMP $ 11设在200H204H单元中存放有5个压缩BCD码,编程将它们转换成ASCII码,存放到以205H单元为首地址的存储区中。 方法1: ORG 1000H MOV P2,#02H MOV R0,#00H MOV R1,#05H MOV R2,#05 LOOP: MOVX A,R0 ANL A,#0FH ORL A,#30H MOVX R1,A INC R1 MOVX A,R0 SWAP A ANL A,#0FH ORL A,#30H MOVX R1,A INC R1 INC R0 DJNZ R2,L

19、OOP 方法2: ORG 1000H MOV R2,#02H MOV R3,#00H MOV R4,#05H MOV R7,#05 MOV DPH,R2 LOOP: MOV DPL,R3 MOVX A,DPTR MOV B,A INC DPTR MOV R3,DPL MOV DPL,R4 ANL A,#0FH ORL A,#30H A ,DPTRMOVX INC DPTR A ,MOV B A SWAP AANL , #0FH AORL ,#30H DPTR MOVX ,A DPTR INC R4,DPL MOV R7 ,LOOP DJNZ P1.7个变量的输入端,8而其中13试编程实现下列逻

20、辑表达式的功能。设P1.7P1.0为 又作为变量输出端。 XXX?XX?XY?XX 74603125P1.0 X0 解: BIT P1.1 X1 BIT P1.2 BIT X2 P1.3 BIT X3 P1.4 BIT X4 P1.5 BIT X5 P1.6 BIT X6 P1.7 X7 BIT 2000H ORG X0 C MOV ,X1 ,CANL /X2 ANL C,/X3 CORL ,X4 ORL C,X5 ,ANL CX6 C,ANL /X7 ORL C,C P1.7MOV , Y?XX?XXX?XXX 73152064解:ONE BIT 20H ;存第一项逻辑值 21H BIT T

21、WO ;存第二项逻辑值 P1.0 X0 BIT P1.1 BIT X1 P1.2 BIT X2 P1.3 BIT X3 P1.4 X4 BIT P1.5 BIT X5 X6 BIT P1.6 BIT P1.7 X7 ORG 2000H X0 MOV C, X1 ANL C, CPL C C ,MOV ONEX2 C MOV ,X3 ANL C, X4 ANL C, C CPL C TWO, MOV X5 C, MOV X6 C, ANL X7 ,ANL CC CPL TWO , ORL CC CPL ONE ORL C,C MOV P1.7, 只发光二极管每次亮一个,点亮时间为20根据图5.6

22、的线路设计灯亮移位程序,要求8 24MHz。40ms。顺次一个一个地循环右移点亮,循环不止。已知时钟频率为#01H , 解:MOV AA MOV P1,LOOP:D40MS LCALL A RR LOOP SJMP #160 ,D40MS: MOV R2 MOV R3,#250 EXTERNAL:INTERNAL , DJNZ R3:INTERNALEXTERNAL R2, DJNZ RET 第六章 P155 5,6,8 5已知80C51单片机系统时钟频率为24MHz,请利用定时器T0和P1.2输出矩形脉冲其波形如下: 选择T0工作于方式2(8位重置初值)定时50s 1212 fosc=24M

23、Hz6?s0?10.5s机器周期T?0?.5 610?f24osc8s X=156=9CH 0.5S=50(2-X)#02H , MOV TMOD方法1:#9CH ,MOV TH0#9CH ,MOV TL0P1.2=0 ;P1.2 CLR TR0 SETB 高电平s50 ;P1.2=1,输出HIGH: SETB P1.2 ,转输出低电平到清TF0 ;50sHIGH1: JBC TF0,LOW 等待未到,转HIGH1 ;50sAJMP HIGH1 s 50;350s=7LOW: MOV R7,#7 低电平s;P1.2=0输出350CLR P1.2 LOW2 TF0,转50s到清JBC LOW1:

24、 TF0,LOW2 ;LOW1 AJMP LOW1 7次未到,转,LOW1 ;LOW2: DJNZ R7 s高电平,输出50 AJMP HIGH ;7次到,转HIGH 2定时;设置T0为方式: MOV TMOD,#02H 方法2 ;赋初值TH0,#9CH MOV #9CH ,MOV TL0P1.2 CLR 工作 ;启动T0SETB TR0 高电平50s ;P1.2=1,输出L1: SETB P1.2 #8 R7, MOV ,转输出低电平到清TF0 ;50sDEL: JBC TF0,REP DEL AJMP s低电平P1.2=0输出350 REP: CLR P1.2 ; DEL DJNZ R7,

25、 AJMP L1 s 1定时50方式3: 选择T0工作于方法16s X=65436=FF9CH 0.5S=50(2-X)s 定时350 选择T0工作于方式1 16s X=64836=FD44H S=3502-X)0.5( 1定时;设置T0为方式#01H START: MOV TMOD, s ;赋初值定时50: MOV TH0,#0FFH LP0#9CH ,MOV TL0P1.2 CLR T0工作TR0 ;启动SETB P1.2 SETB s高电平,输出;LP2 TF0 LP1:JBC , P1.2=150LP1 SJMP LP2: CLR P1.2 MOV TH0,#0FDH ;赋初值定时35

26、0s MOV TL0,#44H LP3: JBC TF0,LP4 ;P1.2=1,输出350s低电平 SJMP LP3 LP4: SJMP LP0 6在80C51单片机中,已知时钟频率为12MHz,请编程使P1.0和P1.1分别输出周期为2ms和500s的方波。 方法1:选择T0工作于方式1定时250s 1212 fosc=12MHz6?s1?s?1?10T机器周期 612?f10osc16(2-X)1S=250s X=65286=FF06H MOV TMOD,#01H MOV TH0,#0FFH MOV TL0,#06H SETB TR0 DEL: MOV R7,#4 ;1ms=4250s

27、D250: JBC TF0,D2 ;250s到清TF0,转移 AJMP D250 ;250s未到,等待 D2: CPL P1.1 MOV TH0,#0FFH ;重装初值 MOV TL0,#06H DJNZ R7,D250 ;4次未到,转D500 CPL P1.0 AJMP DEL ;4次到,转DEL 方法2:选择T0工作于方式2定时250s 8(2-X)1S=250s X=6 MOV TMOD,#02H MOV TH0,#06H MOV TL0,#06H SETB TR0 DEL: MOV R7,#4 ;1ms=4250s D250: JBC TF0,D2 ;250s到清TF0,转移 AJMP

28、 D250 ;250s未到,等待 D2: CPL P1.1 DJNZ R7,D250 ;4次未到,转D250 CPL P1.0 AJMP DEL ;4次到,转DEL 方法3:选择T0工作于方式2定时250s,中断 8(2-X)1S=250s X=6 中断1ms,定时1方式工作于T116s X=64536=FC18H S=1000-X(2)10000H ORG MAIN LJMP 000BH ORG T00 LJMP 001BH ORG T11 LJMP #12H ,MOV TMODMAIN: #06H ,MOV TH0#06H ,MOV TL0#0FCH TH1,MOV #18H TL1,MO

29、V IE,#8AH MOV TR0 SETB TR1 SETB $ SJMP P1.1 T00: CPL RETI #0FCH TH1,T11: MOV #18H TL1,MOV P1.0 CPL RETI 中断。250s,:选择T0工作于方式3定时方法48s X=6 S=250(2-X)1 TF1。TH0占用TR1、占用T0方式3时TL0TR0、TF0,0000H ORG MAIN LJMP 000BH ORG ITL0 LJMP 001BH ORG ITH0 LJMP SP,#50H MOV MAIN: #03H ,MOV TMOD#06H TH0MOV ,#06H TL0,MOV R7,

30、#4 MOV TR0 SETB TR1 SETB IE,#8AH MOV $ SJMP #06H TL0,ITL0: MOV P1.1 CPL RETI #06H ,TH1MOV ITH0: DJNZ R7,ITH01 MOV R7,#4 CPL P1.0 ITH01: RETI 7设系统时钟频率为24MHz,试用定时器T0作外部计数器,编程实现每计到1000个脉冲,使T1开始2ms定时,定时时间到后,T0又开始计数,这样反复循环不止。 1212 fosc=24MHz6?s0105?.5机器周期T?s?0. 624f?10oscT0作外部计数器选择工作于方式1: 161000=2-X X=64

31、536=FC18H T1定时2ms选择工作于方式1: 16(2-X)0.5S=2000s X=61536=F060H MOV TMOD,#15H START: MOV TH0,#0FCH MOV TL0,#18H SETB TR0 JNB TF0,$ CLR TF0 CLR TR0 MOV TH1,#0F0H MOV TL1,#60H SETB TR1 JNB TF1,$ CLR TF1 CLR TR1 SJMP START 8利用80C51单片机定时器计数器测量某正脉冲宽度,已知此脉冲宽度小于10ms,主机频率为12MHz。编程测量脉冲宽度,并把结果转换为BCD码顺序存放在以片内50H单元为

32、首地址的内存单元中(50H单元存个位)。 二进制数转换成BCD码是利用按权展开式计算,由于是BCD码计算中要用DA A指令 设脉冲由/INT0输入,T0工作于方式1 1212 fosc=12MHz6?s?10?1T机器周期?s?1? 612?f10oscMOV TMOD,#09H ;设T0为方式1,GATE=1 #00H TL0MOV ,#00H ,TH0MOV #4EH ,R0MOV ;等待P3.2 JB $ P3.2,变低 ;启动T0 SETB TR0 准备工作 ;等待,JNB P3.2$ P3.2 变高 ;等待JB P3.2$ P3.2, 再次变低 ;停止计数 TR0 CLR MOV R

33、0,TL0 ;存放计数的二进制数低字节入4EH R0 INC ;存放计数的二进制数高字节入4EH R0,MOV TH0 ;BCD码首址R1,#50H MOV ;BCD 码字节数MOV R5,#3 A CLR ;清存R1,A BCD码单元 LOOP1: MOV R1 INC LOOP ,R5DJNZ ;二进制数位数 R7,MOV #10H ;二进制数首址 #4EH :LOOP4 MOV R0,;二进制数字节数 MOV ,R6#2 C CLR R0 A,LOOP2: MOV A RLC A R0MOV ,R0 INC ;2DJNZ 字节二进制数左移1位 R6,LOOP2 ;BCDMOV 码字节数

34、,R5#3 R1 LOOP3: MOV A,;A,BCD 码乘 ADDC 2加CR1 运算 A DA A R1MOV ,R1 INC LOOP3 ,DJNZ R5LOOP4 R7,DJNZ $ SJMP 第7章作业参考答案 P175 2,6,7 2.某异步通讯接口按方式3传送,已知其每分钟传送3600个字符,计算其传送波特率。 解:11(位)3600(字符/秒)/60秒=660位/秒 注:方式3为11位异步通讯方式。 6.已知定时器T1设置为方式2,用做波特率发生器,系统时钟频率为24MHz,求可能产生的最高和最低的波特率是多少?此时串口工作于方式1或3 SMODf2osc波特率? 3212?

35、(256?X)SMOD1610?24f22osc?波特率?125000 MAX3212?(256?X)3212?(256?255)SMOD061024?f22 osc波特率?244? inm)0?256(?1232)X?256(?12327设计一个AT89C51单片机的双机通信系统,并编写程序将甲机片外RAM 3400H3420H单元中的数据块通过串行口传送到乙机的片内RAM 40H60H单元中。 串行口定义在工作方式1下发送。采用定时器T1方式2作波特率发生器,设波特率为4800,fosc=11.0592MHz。 6)1SMOD?f?(?(SMOD?101)11.0592 oscX?256?

36、256? 波特率?3844800?384 SMOD=0时,X=250=FAH SMOD=1时,X=244=F4H 本题取SMOD为0 双机异步通信连接图 解:编写发送子程序如下: MOV TM0D,20H ;设置定时器T1为方式2 MOV TL1,0FAH ;设预置值 MOV TH1,0FAH SETB TR1 ;启动定时器T1 MOV SCON,#40H ;设置串行口为方式1 MOV PCON,#00H ;SMOD0 MOV DPTR,#3400H ;设数据块指针 MOV R7,#21H ;设数据长度 TRS: MOVX A,DPTR ;取数据送至A MOV SBUF,A ;数据送至SBUF

37、,启动发送 WAIT: JNB TI,$ ;判1帧是否发送完 CLR TI INC DPTR ;更新数据单元 DJNZ R7,TRS ;循环发送至结束 RET ;返回 在进行双机通信时,两机应用相同的工作方式和波特率,因而接收子程序如下: MOV TMOD,#20H ;设置定时器1为方式2 MOV TL1,#0FAH ;设预置值 MOV TH1,#0FAH SETB TR1 ;启动定时器T1 MOV SCON,#40H ;设置串行口为方式3 MOV PCON,#00H ;SMOD0 MOV R0,#40H ;设置数据块指针 MOV R7,#21H ;设数据块长度 SETB REN ;允许接收

38、WAIT: JNB RI, ;判1帧是否接收完 CLR RI MOV A,SBUF ;读入一帧数据 MOV R0,A ;存放数据 INC R0 ;修改地址指针 DJNZ R7,WAIT ;判断数据块接收完否 ;返回 RET 8.利用80C51串行口控制8位发光二极管工作,要求发光二极管每1S交替地亮、灭,画出电路图并编写程序。 CLK P3.1 EQU ;B) SDA(A、;P3.0 EQU CLR P1.0 EQU ;P1.0 CLR P1.0 SETB #00H SCON, MOV #55H , MOV AA ,AA: MOV SBUF$ ,JNB TITI CLR DELAY_1S AC

39、ALL A RR AA AJMP 章作业参考答案第85 ,P199 3响应中CPU0”的?3AT89S51有几个中断源,各中断申请标志是如何产生的,又如何清“ 断时,中断入口地址各是多少?)和2P35个中断源,分别为:2个外部输入中断源(答:AT89S51单片机有 1INTINT0个片;1TF1(TCON.7)T0和T1的溢出中断源TF0(TCON.5)和2(P33)个片内定时器 )。RI(SCON.0内串行口发送和接收中断源TI(SCON.1)和 0”如下: 各中断标志的产生和清“ )外部中断类 (1和外部中断0外部中断是由外部原因引起的,可以通过两个固定引脚,即外部中断 0INT 输入信号

40、: 1INT)来决定中断请求TCON.0IT0(0请求信号,由P3.2脚输入。通过外部中断 0INT。并且使IE0=1一旦输入信号有效,则向CPU申请中断,信号是低电平有效还是下跳变有效。 硬件复位。 。1外部中断请求信号,功能与用法类似外部中断0 1INT )定时中断类 (2定时中断是为满足定时或计数溢出处理的需要而设置的。当定时器计数器中的计数 结构发生计数溢出时,即表明定时时间到或计数值已满,这时就以计数溢出信号作为中断请求,去置位一个溢出标志位。这种中断请求是在单片机芯片内部发生的,无需在芯片上 设置引入端,但在计数方式时,中断源可以由外部引入。中断请求标志产生溢出时,定时器T0定时器

41、T0溢出中断请求。当定时器T0 TF0 。0”)TF0=1,请求中断处理。使用中断时由硬件复位,在查询方式下可由软件复位(即清“ T0。定时器 TF1TI溢出中断请求。功能与用法类似定时器 3()串行口中断类 串行口中断是为串行数据的传送需要而设置的。串行中断请求也是在单片机芯片内部 端引入芯片,才可能RI发生的,但当串行口作为接收端时,必须有一完整的串行帧数据从引发中断。 RI或TI串行中断请求。当接收或发送完一串行帧数据时,使内部串行口中断请求标志RI或TI=1,并请求中断。响应中断后必须软件复位。 CPU响应中断时,各中断源的中断入口地址是: 中断源 入口地址 0003H 0 外部中断定时器T0中断 000BH 0013H 1 外部中定时T中001BH0023H串行口中定时T中002B(AT89S5有 5.用定时器T1定时,要求在P1.6口输出一个方波,周期是1min。晶振频率为12MHz,请用中断方式实现,并分析采用中断后的优点。 解:计算半周期为250S方波的时间初值。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论